Ticket #4712: tools_gui_tmp_lame_fix.patch
File tools_gui_tmp_lame_fix.patch, 23.3 KB (added by , 13 years ago) |
---|
-
scummvm/tools/trunk/compress.h
87 87 AudioFormat _format; 88 88 89 89 // Settings 90 // These functions are used by the GUI Tools and by CLI argument parsing functions 90 91 // mp3 settings 91 std::string _mp3CompressionType; 92 std::string _mp3MpegQuality; 93 std::string _mp3ABRBitrate; 94 std::string _mp3VBRMinBitrate; 95 std::string _mp3VBRMaxBitrate; 96 std::string _mp3VBRQuality; 92 void setMp3LamePath(const std::string&); 93 void setMp3CompressionType(const std::string&); 94 void setMp3MpegQuality(const std::string&); 95 void setMp3ABRBitrate(const std::string&); 96 void setMp3VBRMinBitrate(const std::string&); 97 void setMp3VBRMaxBitrate(const std::string&); 98 void setMp3VBRQuality(const std::string&); 97 99 98 100 // flac 99 std::string _flacCompressionLevel;100 std::string _flacBlockSize;101 void setFlacCompressionLevel(const std::string&); 102 void setFlacBlockSize(const std::string&); 101 103 102 104 // vorbis 103 std::string _oggQuality;104 std::string _oggMinBitrate;105 std::string _oggAvgBitrate;106 std::string _oggMaxBitrate;105 void setOggQuality(const std::string&); 106 void setOggMinBitrate(const std::string&); 107 void setOggAvgBitrate(const std::string&); 108 void setOggMaxBitrate(const std::string&); 107 109 108 110 public: 109 111 bool processMp3Parms(); -
scummvm/tools/trunk/gui/pages.cpp
833 833 834 834 wxWindow *ChooseAudioOptionsMp3Page::CreatePanel(wxWindow *parent) { 835 835 wxWindow *panel = WizardPage::CreatePanel(parent); 836 837 wxSizer *sizer = new wxBoxSizer(wxVERTICAL); 838 839 // Add a ScrolledWindow in that panel as there is a lot of options 840 // and there might not be enough place to display them all. 841 wxScrolledWindow *scroll = new wxScrolledWindow(panel); 842 scroll->SetScrollbars(10, 10, 60, 40); 843 844 sizer->Add(scroll, 1, wxEXPAND | wxALL); 836 845 837 838 846 /* 839 847 "\nMP3 mode params:\n" 848 " -lame-path <path> Path to the lame excutable to use (default: lame)\n" 840 849 " -b <rate> <rate> is the target bitrate(ABR)/minimal bitrate(VBR) (default:" minBitrDef_str "%d)\n" 841 850 " -B <rate> <rate> is the maximum VBR/ABR bitrate (default:%" maxBitrDef_str ")\n" 842 851 " --vbr LAME uses the VBR mode (default)\n" … … 846 855 " --silent the output of LAME is hidden (default:disabled)\n" 847 856 */ 848 857 849 wxFlexGridSizer *sizer = new wxFlexGridSizer(6, 2, 10, 25); 850 sizer->AddGrowableCol(1); 858 // Grid 859 wxFlexGridSizer *gridSizer = new wxFlexGridSizer(7, 2, 10, 25); 860 gridSizer->AddGrowableCol(1); 851 861 862 // Create output selection 863 gridSizer->Add(new wxStaticText(scroll, wxID_ANY, wxT("Lame executable:"))); 852 864 865 wxFilePickerCtrl *lamePicker = new wxFilePickerCtrl( 866 scroll, wxID_ANY, _configuration.outputPath, wxT("Select lame executable"), 867 wxT("lame"), 868 wxDefaultPosition, wxSize(250, -1), 869 wxFLP_USE_TEXTCTRL | wxFLP_FILE_MUST_EXIST | wxFLP_OPEN, wxDefaultValidator, 870 wxT("LamePath") 871 ); 872 873 gridSizer->Add(lamePicker, wxSizerFlags().Expand()); 874 853 875 // Type of compression 854 sizer->Add(new wxStaticText(panel, wxID_ANY, wxT("Compression Type:")));876 gridSizer->Add(new wxStaticText(scroll, wxID_ANY, wxT("Compression Type:"))); 855 877 856 wxRadioButton *abrButton = new wxRadioButton( panel, wxID_ANY, wxT("ABR"),878 wxRadioButton *abrButton = new wxRadioButton(scroll, wxID_ANY, wxT("ABR"), 857 879 wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, wxT("ABR")); 858 880 859 881 wxSizer *radioSizer = new wxBoxSizer(wxHORIZONTAL); 860 882 radioSizer->Add(abrButton); 861 883 862 wxRadioButton *vbrButton = new wxRadioButton( panel, wxID_ANY, wxT("VBR"),884 wxRadioButton *vbrButton = new wxRadioButton(scroll, wxID_ANY, wxT("VBR"), 863 885 wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, wxT("VBR")); 864 886 radioSizer->Add(vbrButton); 865 887 866 sizer->Add(radioSizer, wxSizerFlags().Expand());888 gridSizer->Add(radioSizer, wxSizerFlags().Expand()); 867 889 868 890 // Bitrates 869 891 const int possibleBitrateCount = 160 / 8; … … 872 894 possibleBitrates[i] << (i+1)*8; 873 895 } 874 896 875 sizer->Add(new wxStaticText(panel, wxID_ANY, wxT("Minimum Bitrate:")));897 gridSizer->Add(new wxStaticText(scroll, wxID_ANY, wxT("Minimum Bitrate:"))); 876 898 877 899 wxChoice *vbrMinBitrate = new wxChoice( 878 panel, wxID_ANY, wxDefaultPosition, wxDefaultSize,900 scroll, wxID_ANY, wxDefaultPosition, wxDefaultSize, 879 901 possibleBitrateCount, possibleBitrates, 0, wxDefaultValidator, wxT("MinimumBitrate")); 880 sizer->Add(vbrMinBitrate, wxSizerFlags().Expand().Border(wxRIGHT, 100));902 gridSizer->Add(vbrMinBitrate, wxSizerFlags().Expand().Border(wxRIGHT, 100)); 881 903 882 904 883 sizer->Add(new wxStaticText(panel, wxID_ANY, wxT("Maximum Bitrate:")));905 gridSizer->Add(new wxStaticText(scroll, wxID_ANY, wxT("Maximum Bitrate:"))); 884 906 885 907 wxChoice *vbrMaxBitrate = new wxChoice( 886 panel, wxID_ANY, wxDefaultPosition, wxDefaultSize,908 scroll, wxID_ANY, wxDefaultPosition, wxDefaultSize, 887 909 possibleBitrateCount, possibleBitrates, 0, wxDefaultValidator, wxT("MaximumBitrate")); 888 sizer->Add(vbrMaxBitrate, wxSizerFlags().Expand().Border(wxRIGHT, 100));910 gridSizer->Add(vbrMaxBitrate, wxSizerFlags().Expand().Border(wxRIGHT, 100)); 889 911 890 912 891 sizer->Add(new wxStaticText(panel, wxID_ANY, wxT("Average Bitrate:")));913 gridSizer->Add(new wxStaticText(scroll, wxID_ANY, wxT("Average Bitrate:"))); 892 914 893 915 wxChoice *abrAvgBitrate = new wxChoice( 894 panel, wxID_ANY, wxDefaultPosition, wxDefaultSize,916 scroll, wxID_ANY, wxDefaultPosition, wxDefaultSize, 895 917 possibleBitrateCount, possibleBitrates, 0, wxDefaultValidator, wxT("AverageBitrate")); 896 sizer->Add(abrAvgBitrate, wxSizerFlags().Expand().Border(wxRIGHT, 100));918 gridSizer->Add(abrAvgBitrate, wxSizerFlags().Expand().Border(wxRIGHT, 100)); 897 919 898 920 abrButton->Connect(wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler(ChooseAudioOptionsMp3Page::onChangeCompressionType), NULL, this); 899 921 vbrButton->Connect(wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler(ChooseAudioOptionsMp3Page::onChangeCompressionType), NULL, this); … … 905 927 possibleQualities[i] << i; 906 928 } 907 929 908 sizer->Add(new wxStaticText(panel, wxID_ANY, wxT("VBR Quality:")));930 gridSizer->Add(new wxStaticText(scroll, wxID_ANY, wxT("VBR Quality:"))); 909 931 910 932 wxChoice *vbrQuality = new wxChoice( 911 panel, wxID_ANY, wxDefaultPosition, wxDefaultSize,933 scroll, wxID_ANY, wxDefaultPosition, wxDefaultSize, 912 934 possibleQualityCount, possibleQualities, 0, wxDefaultValidator, wxT("VBRQuality")); 913 sizer->Add(vbrQuality, wxSizerFlags().Expand().Border(wxRIGHT, 100));935 gridSizer->Add(vbrQuality, wxSizerFlags().Expand().Border(wxRIGHT, 100)); 914 936 915 937 916 sizer->Add(new wxStaticText(panel, wxID_ANY, wxT("MPEG Quality:")));938 gridSizer->Add(new wxStaticText(scroll, wxID_ANY, wxT("MPEG Quality:"))); 917 939 918 940 wxChoice *mpegQuality = new wxChoice( 919 panel, wxID_ANY, wxDefaultPosition, wxDefaultSize,941 scroll, wxID_ANY, wxDefaultPosition, wxDefaultSize, 920 942 possibleQualityCount, possibleQualities, 0, wxDefaultValidator, wxT("MpegQuality")); 921 sizer->Add(mpegQuality, wxSizerFlags().Expand().Border(wxRIGHT, 100));943 gridSizer->Add(mpegQuality, wxSizerFlags().Expand().Border(wxRIGHT, 100)); 922 944 923 945 // Finish the window 946 scroll->SetSizer(gridSizer); 924 947 SetAlignedSizer(panel, sizer); 925 948 926 949 927 950 // Load settings 951 lamePicker->SetPath(_configuration.mp3LamePath); 928 952 if (_configuration.mp3CompressionType == wxT("ABR")) 929 953 abrButton->SetValue(true); 930 954 else … … 941 965 } 942 966 943 967 void ChooseAudioOptionsMp3Page::save(wxWindow *panel) { 968 wxFilePickerCtrl *lamePath = static_cast<wxFilePickerCtrl *>(panel->FindWindowByName(wxT("LamePath"))); 969 944 970 wxRadioButton *abr = static_cast<wxRadioButton *>(panel->FindWindowByName(wxT("ABR"))); 945 971 // wxRadioButton *vbr = static_cast<wxRadioButton *>(panel->FindWindowByName(wxT("VBR"))); 946 972 … … 950 976 wxChoice *vbrQuality = static_cast<wxChoice *>(panel->FindWindowByName(wxT("VBRQuality"))); 951 977 wxChoice *mpegQuality = static_cast<wxChoice *>(panel->FindWindowByName(wxT("MpegQuality"))); 952 978 979 _configuration.mp3LamePath = lamePath->GetPath(); 953 980 _configuration.mp3VBRMinBitrate = vbrMinBitrate->GetStringSelection(); 954 981 _configuration.mp3VBRMaxBitrate = vbrMaxBitrate->GetStringSelection(); 955 982 _configuration.mp3ABRBitrate = abrAvgBitrate->GetStringSelection(); -
scummvm/tools/trunk/gui/gui_tools.cpp
146 146 compression->_format = conf.selectedAudioFormat; 147 147 148 148 // mp3 149 compression-> _mp3ABRBitrate = (const char *)conf.mp3ABRBitrate.mb_str();150 compression-> _mp3CompressionType = (const char *)conf.mp3CompressionType.mb_str();151 compression-> _mp3MpegQuality = (const char *)conf.mp3MpegQuality.mb_str();152 compression-> _mp3ABRBitrate = (const char *)conf.mp3ABRBitrate.mb_str();153 compression-> _mp3VBRMinBitrate = (const char *)conf.mp3VBRMinBitrate.mb_str();154 compression-> _mp3VBRMaxBitrate = (const char *)conf.mp3VBRMaxBitrate.mb_str();155 compression-> _mp3VBRQuality = (const char *)conf.mp3VBRQuality.mb_str();149 compression->setMp3LamePath ( (const char *)conf.mp3LamePath.mb_str() ); 150 compression->setMp3CompressionType( (const char *)conf.mp3CompressionType.mb_str() ); 151 compression->setMp3MpegQuality ( (const char *)conf.mp3MpegQuality.mb_str() ); 152 compression->setMp3ABRBitrate ( (const char *)conf.mp3ABRBitrate.mb_str() ); 153 compression->setMp3VBRMinBitrate ( (const char *)conf.mp3VBRMinBitrate.mb_str() ); 154 compression->setMp3VBRMaxBitrate ( (const char *)conf.mp3VBRMaxBitrate.mb_str() ); 155 compression->setMp3VBRQuality ( (const char *)conf.mp3VBRQuality.mb_str() ); 156 156 157 157 // flac 158 compression-> _flacCompressionLevel = (const char *)conf.flacCompressionLevel.mb_str();159 compression-> _flacBlockSize = (const char *)conf.flacBlockSize.mb_str();158 compression->setFlacCompressionLevel( (const char *)conf.flacCompressionLevel.mb_str() ); 159 compression->setFlacBlockSize ( (const char *)conf.flacBlockSize.mb_str() ); 160 160 161 161 // vorbis 162 compression-> _oggQuality = (const char *)conf.oggQuality.mb_str();163 compression-> _oggMinBitrate = (const char *)conf.oggMinBitrate.mb_str();164 compression-> _oggAvgBitrate = (const char *)conf.oggAvgBitrate.mb_str();165 compression-> _oggMaxBitrate = (const char *)conf.oggMaxBitrate.mb_str();162 compression->setOggQuality ( (const char *)conf.oggQuality.mb_str() ); 163 compression->setOggMinBitrate ( (const char *)conf.oggMinBitrate.mb_str() ); 164 compression->setOggAvgBitrate ( (const char *)conf.oggAvgBitrate.mb_str() ); 165 compression->setOggMaxBitrate ( (const char *)conf.oggMaxBitrate.mb_str() ); 166 166 } 167 167 168 168 _backend->run(); -
scummvm/tools/trunk/gui/configuration.cpp
37 37 advancedAudioSettings = false; 38 38 39 39 // mp3 params 40 mp3LamePath = wxT("lame"); 40 41 mp3CompressionType = wxT("VBR"); 41 42 mp3MpegQuality = wxT("2"); 42 43 … … 67 68 filecnf->Read(wxT("outputpath"), &outputPath); 68 69 69 70 // mp3 params 71 filecnf->Read(wxT("mp3LamePath"), &mp3LamePath, mp3LamePath); 70 72 filecnf->Read(wxT("mp3CompressionType"), &mp3CompressionType, mp3CompressionType); 71 73 filecnf->Read(wxT("mp3MpegQuality"), &mp3MpegQuality, mp3MpegQuality); 72 74 filecnf->Read(wxT("mp3ABRBitrate"), &mp3ABRBitrate, mp3ABRBitrate); … … 92 94 93 95 wxFileName op(outputPath); 94 96 filecnf->Write(wxT("outputpath"), op.GetPath(wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR)); 97 filecnf->Write(wxT("mp3LamePath"), mp3LamePath); 95 98 96 99 if (all) { 97 100 // mp3 params -
scummvm/tools/trunk/gui/configuration.h
84 84 bool advancedAudioSettings; 85 85 86 86 // mp3 settings 87 wxString mp3LamePath; 87 88 wxString mp3CompressionType; 88 89 wxString mp3MpegQuality; 89 90 wxString mp3ABRBitrate; -
scummvm/tools/trunk/compress.cpp
48 48 uint32 algqual; 49 49 uint32 vbrqual; 50 50 bool silent; 51 std::string lamePath; 51 52 }; 52 53 53 54 struct oggencparams { … … 70 71 uint8 bitsPerSample; 71 72 }; 72 73 73 lameparams encparms = { minBitrDef, maxBitrDef, false, algqualDef, vbrqualDef, 0 };74 lameparams encparms = { minBitrDef, maxBitrDef, false, algqualDef, vbrqualDef, 0, "lame" }; 74 75 oggencparams oggparms = { -1, -1, -1, (float)oggqualDef, 0 }; 75 76 flaccparams flacparms = { flacCompressDef, flacBlocksizeDef, false, false }; 76 77 rawtype rawAudioType = { false, false, 8 }; … … 123 124 char *tmp = fbuf; 124 125 125 126 if (compmode == AUDIO_MP3) { 126 tmp += sprintf(tmp, " lame -t ");127 tmp += sprintf(tmp, "%s -t ", encparms.lamePath.c_str()); 127 128 if (rawInput) { 128 129 tmp += sprintf(tmp, "-r "); 129 130 tmp += sprintf(tmp, "--bitwidth %d ", rawAudioType.bitsPerSample); … … 772 773 encodeAudio(outName, true, real_samplerate, tempEncoded, compMode); 773 774 } 774 775 776 // mp3 settings 777 void CompressionTool::setMp3LamePath(const std::string& arg) { 778 encparms.lamePath = arg; 779 } 780 781 void CompressionTool::setMp3CompressionType(const std::string& arg) { 782 encparms.abr = (arg == "ABR"); 783 } 784 785 void CompressionTool::setMp3MpegQuality(const std::string& arg) { 786 encparms.algqual = atoi(arg.c_str()); 787 788 if (encparms.algqual == 0 && arg != "0") 789 throw ToolException("Quality (-q) must be a number."); 790 791 if (encparms.algqual > 9) 792 throw ToolException("Quality (-q) out of bounds, must be between 0 and 9."); 793 } 794 795 void CompressionTool::setMp3ABRBitrate(const std::string& arg) { 796 setMp3VBRMinBitrate(arg); 797 } 798 799 void CompressionTool::setMp3VBRMinBitrate(const std::string& arg) { 800 encparms.minBitr = atoi(arg.c_str()); 801 802 if (encparms.minBitr == 0 && arg != "0") 803 throw ToolException("Minimum bitrate (-b) must be a number."); 804 805 if (encparms.minBitr < 8 || encparms.minBitr > 160) 806 throw ToolException("Minimum bitrate out of bounds (-b), must be between 8 and 160."); 807 } 808 809 void CompressionTool::setMp3VBRMaxBitrate(const std::string& arg) { 810 encparms.maxBitr = atoi(arg.c_str()); 811 812 if (encparms.maxBitr == 0 && arg != "0") 813 throw ToolException("Maximum bitrate (-B) must be a number."); 814 815 if ((encparms.maxBitr % 8) != 0) 816 encparms.maxBitr -= encparms.maxBitr % 8; 817 818 if (encparms.maxBitr < 8 || encparms.maxBitr > 160) 819 throw ToolException("Maximum bitrate out of bounds (-B), must be between 8 and 160."); 820 } 821 822 void CompressionTool::setMp3VBRQuality(const std::string& arg) { 823 encparms.vbrqual = atoi(arg.c_str()); 824 if (encparms.vbrqual > 9) 825 throw ToolException("Quality (-q) out of bounds, must be between 0 and 9."); 826 } 827 828 // flac 829 void CompressionTool::setFlacCompressionLevel(const std::string& arg) { 830 flacparms.compressionLevel = atoi(arg.c_str()); 831 832 if (flacparms.compressionLevel == 0 && arg != "0") 833 throw ToolException("FLAC compression level must be a number."); 834 835 if (flacparms.compressionLevel < 0 || flacparms.compressionLevel > 8) 836 throw ToolException("FLAC compression level ot of bounds, must be between 0 and 8."); 837 838 } 839 840 void CompressionTool::setFlacBlockSize(const std::string& arg) { 841 flacparms.blocksize = atoi(arg.c_str()); 842 843 if (flacparms.blocksize == 0 && arg != "0") 844 throw ToolException("FLAC block size (-b) must be a number."); 845 } 846 847 // vorbis 848 void CompressionTool::setOggQuality(const std::string& arg) { 849 oggparms.quality = (float)atoi(arg.c_str()); 850 851 if (oggparms.quality == 0. && arg != "0") 852 throw ToolException("Quality (-q) must be a number."); 853 854 if (oggparms.quality < 0. || oggparms.quality > 10.) 855 throw ToolException("Quality out of bounds (-q), must be between 0 and 10."); 856 } 857 858 void CompressionTool::setOggMinBitrate(const std::string& arg) { 859 oggparms.minBitr = atoi(arg.c_str()); 860 861 if (oggparms.minBitr == 0 && arg != "0") 862 throw ToolException("Minimum bitrate (-m) must be a number."); 863 864 if ((oggparms.minBitr % 8) != 0) 865 oggparms.minBitr -= oggparms.minBitr % 8; 866 867 if (oggparms.minBitr < 8 || oggparms.minBitr > 160) 868 throw ToolException("Minimum bitrate out of bounds (-m), must be between 8 and 160."); 869 } 870 871 void CompressionTool::setOggAvgBitrate(const std::string& arg) { 872 oggparms.nominalBitr = atoi(arg.c_str()); 873 874 if (oggparms.nominalBitr == 0 && arg != "0") 875 throw ToolException("Nominal bitrate (-b) must be a number."); 876 877 if ((oggparms.nominalBitr % 8) != 0) 878 oggparms.nominalBitr -= oggparms.nominalBitr % 8; 879 880 if (oggparms.nominalBitr < 8 || oggparms.nominalBitr > 160) 881 throw ToolException("Nominal bitrate out of bounds (-b), must be between 8 and 160."); 882 } 883 884 void CompressionTool::setOggMaxBitrate(const std::string& arg) { 885 oggparms.maxBitr = atoi(arg.c_str()); 886 887 if (oggparms.maxBitr == 0 && arg != "0") 888 throw ToolException("Maximum bitrate (-M) must be a number."); 889 890 if ((oggparms.maxBitr % 8) != 0) 891 oggparms.maxBitr -= oggparms.maxBitr % 8; 892 893 if (oggparms.maxBitr < 8 || oggparms.maxBitr > 160) 894 throw ToolException("Maximum bitrate out of bounds (-M), must be between 8 and 160."); 895 } 896 775 897 bool CompressionTool::processMp3Parms() { 776 898 while (!_arguments.empty()) { 777 899 std::string arg = _arguments.front(); … … 781 903 encparms.abr = 0; 782 904 } else if (arg == "--abr") { 783 905 encparms.abr = 1; 906 } else if (arg == "-lame-path") { 907 if (_arguments.empty()) 908 throw ToolException("Could not parse command line options, expected value after -lame-path"); 909 setMp3LamePath(_arguments.front()); 910 _arguments.pop_front(); 911 784 912 } else if (arg == "-b") { 785 913 if (_arguments.empty()) 786 914 throw ToolException("Could not parse command line options, expected value after -b"); 787 encparms.minBitr = atoi(_arguments.front().c_str()); 788 789 if (encparms.minBitr > 160) 790 throw ToolException("Minimum bitrate out of bounds (-b), must be between 8 and 160."); 791 792 if (encparms.minBitr == 0 && _arguments.front() != "0") 793 throw ToolException("Minimum bitrate (-b) must be a number."); 794 795 if (encparms.minBitr < 8) 796 throw ToolException("Minimum bitrate out of bounds (-b), must be between 8 and 160."); 797 915 setMp3VBRMinBitrate(_arguments.front()); 798 916 _arguments.pop_front(); 799 917 800 918 } else if (arg == "-B") { 801 919 if (_arguments.empty()) 802 920 throw ToolException("Could not parse command line options, expected value after -B"); 803 encparms.maxBitr = atoi(_arguments.front().c_str()); 804 805 if ((encparms.maxBitr % 8) != 0) { 806 encparms.maxBitr -= encparms.maxBitr % 8; 807 } 808 809 if (encparms.maxBitr > 160) 810 throw ToolException("Maximum bitrate out of bounds (-B), must be between 8 and 160."); 811 812 if (encparms.maxBitr == 0 && _arguments.front() != "0") 813 throw ToolException("Maximum bitrate (-B) must be a number."); 814 815 if (encparms.maxBitr < 8) 816 throw ToolException("Maximum bitrate out of bounds (-B), must be between 8 and 160."); 817 921 setMp3VBRMaxBitrate(_arguments.front()); 818 922 _arguments.pop_front(); 819 923 820 924 } else if (arg == "-V") { 821 925 if (_arguments.empty()) 822 926 throw ToolException("Could not parse command line options, expected value after -V"); 823 encparms.vbrqual = atoi(_arguments.front().c_str()); 824 825 if (encparms.vbrqual > 9) 826 throw ToolException("Quality (-q) out of bounds, must be between 0 and 9."); 827 927 setMp3VBRQuality(_arguments.front()); 828 928 _arguments.pop_front(); 829 929 830 930 } else if (arg == "-q") { 831 931 if (_arguments.empty()) 832 932 throw ToolException("Could not parse command line options, expected value after -q"); 833 encparms.algqual = atoi(_arguments.front().c_str()); 834 835 if (encparms.algqual > 9) 836 throw ToolException("Quality (-q) out of bounds, must be between 0 and 9."); 837 933 setMp3MpegQuality(_arguments.front()); 838 934 _arguments.pop_front(); 839 935 840 936 } else if (arg == "--silent") { … … 856 952 if (arg == "-b") { 857 953 if (_arguments.empty()) 858 954 throw ToolException("Could not parse command line options, expected value after -b"); 859 oggparms.nominalBitr = atoi(_arguments.front().c_str()); 860 861 if ((oggparms.nominalBitr % 8) != 0) 862 oggparms.nominalBitr -= oggparms.nominalBitr % 8; 863 864 if (oggparms.nominalBitr > 160) 865 throw ToolException("Nominal bitrate out of bounds (-b), must be between 8 and 160."); 866 867 if (oggparms.nominalBitr == 0 && _arguments.front() != "0") 868 throw ToolException("Nominal bitrate (-b) must be a number."); 869 870 if (oggparms.nominalBitr < 8) 871 throw ToolException("Nominal bitrate out of bounds (-b), must be between 8 and 160."); 872 955 setOggAvgBitrate(_arguments.front()); 873 956 _arguments.pop_front(); 874 957 875 958 } else if (arg == "-m") { 876 959 if (_arguments.empty()) 877 960 throw ToolException("Could not parse command line options, expected value after -m"); 878 oggparms.minBitr = atoi(_arguments.front().c_str()); 879 880 if ((oggparms.minBitr % 8) != 0) 881 oggparms.minBitr -= oggparms.minBitr % 8; 882 883 if (oggparms.minBitr > 160) 884 throw ToolException("Minimal bitrate out of bounds (-m), must be between 8 and 160."); 885 886 if (oggparms.minBitr == 0 && _arguments.front() != "0") 887 throw ToolException("Minimal bitrate (-m) must be a number."); 888 889 if (oggparms.minBitr < 8) 890 throw ToolException("Minimal bitrate out of bounds (-m), must be between 8 and 160."); 891 961 setOggMinBitrate(_arguments.front()); 892 962 _arguments.pop_front(); 893 963 894 964 } else if (arg == "-M") { 895 965 if (_arguments.empty()) 896 966 throw ToolException("Could not parse command line options, expected value after -M"); 897 oggparms.maxBitr = atoi(_arguments.front().c_str()); 898 899 if ((oggparms.maxBitr % 8) != 0) 900 oggparms.maxBitr -= oggparms.maxBitr % 8; 901 902 if (oggparms.maxBitr > 160) 903 throw ToolException("Minimal bitrate out of bounds (-M), must be between 8 and 160."); 904 905 if (oggparms.maxBitr == 0 && _arguments.front() != "0") 906 throw ToolException("Minimal bitrate (-M) must be a number."); 907 908 if (oggparms.maxBitr < 8) 909 throw ToolException("Minimal bitrate out of bounds (-M), must be between 8 and 160."); 910 967 setOggMaxBitrate(_arguments.front()); 911 968 _arguments.pop_front(); 912 969 913 970 } else if (arg == "-q") { 914 oggparms.quality = (float)atoi(_arguments.front().c_str()); 915 916 if (oggparms.quality == 0 && _arguments.front() != "0") 917 throw ToolException("Quality (-q) must be a number."); 918 971 if (_arguments.empty()) 972 throw ToolException("Could not parse command line options, expected value after -q"); 973 setOggQuality(_arguments.front()); 919 974 _arguments.pop_front(); 920 975 921 976 } else if (arg == "--silent") { … … 937 992 if (arg == "-b") { 938 993 if (_arguments.empty()) 939 994 throw ToolException("Could not parse command line options, expected value after -b"); 940 flacparms.blocksize = atoi(_arguments.front().c_str());995 setFlacBlockSize(_arguments.front()); 941 996 _arguments.pop_front(); 942 997 } else if (arg == "--fast") { 943 998 flacparms.compressionLevel = 0; … … 1057 1112 1058 1113 if (_supportedFormats & AUDIO_MP3) { 1059 1114 os << "\nMP3 mode params:\n"; 1115 os << " -lame-path <path> Path to the lame excutable to use (default: lame)\n"; 1060 1116 os << " -b <rate> <rate> is the target bitrate(ABR)/minimal bitrate(VBR) (default:" << minBitrDef << "%d)\n"; 1061 1117 os << " -B <rate> <rate> is the maximum VBR/ABR bitrate (default:%" << maxBitrDef << ")\n"; 1062 1118 os << " --vbr LAME uses the VBR mode (default)\n";