X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=scripts%2Fmanicure.rb;h=ae1139bb0a437c9269fd5879dc146fb1df0d9c57;hb=4f0019f03c2e85e8634150ff0c9a31bee6d35ce5;hp=ce5c63f2e1e6173663bed26f7540bccf378cb19f;hpb=5758384b500f5bd0df2717dae0e5f29796b886d2;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/scripts/manicure.rb b/scripts/manicure.rb index ce5c63f2..ae1139bb 100755 --- a/scripts/manicure.rb +++ b/scripts/manicure.rb @@ -275,10 +275,6 @@ class Display case hash["FileFormat"] when /MP4/ commandString << "mp4 " - when /AVI/ - commandString << "avi " - when /OGM/ - commandString << "ogm " when /MKV/ commandString << "mkv " end @@ -289,8 +285,8 @@ class Display case hash["VideoEncoder"] when /x264/ commandString << "x264" - when /XviD/ - commandString << "xvid" + when /Theora/ + commandString << "theora" end end @@ -318,176 +314,79 @@ class Display end #Audio tracks - commandString << " -a " - commandString << hash["Audio1Track"].to_s - if hash["Audio2Track"] - commandString << "," << hash["Audio2Track"].to_s - end - if hash["Audio3Track"] - commandString << "," << hash["Audio3Track"].to_s - end - if hash["Audio4Track"] - commandString << "," << hash["Audio4Track"].to_s - end - - #Audio encoders - commandString << " -E " - case hash["Audio1Encoder"] - when /AC3 / - commandString << "ac3" - when /AAC/ - commandString << "faac" - when /Vorbis/ - commandString << "vorbis" - when /MP3/ - commandString << "lame" - end - case hash["Audio2Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio3Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio4Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - - #Audio bit rate - commandString << " -B " - commandString << hash["Audio1Bitrate"] - if hash["Audio2Bitrate"] - if hash["Audio2Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio2Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio3Bitrate"] - if hash["Audio3Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio3Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio4Bitrate"] - if hash["Audio4Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio4Bitrate"] - else - commandString << "," << "auto" - end - end + audioBitrates = "" + audioEncoders = "" + audioMixdowns = "" + audioSamplerates = "" + audioTracks = "" + audioTrackDRCs = "" + audioCount = hash["AudioList"].size + + hash["AudioList"].each do |audioTrack| + audioCount = audioCount - 1 - #Audio sample rate - commandString << " -R " - commandString << hash["Audio1Samplerate"] - if hash["Audio2Samplerate"] - commandString << "," << hash["Audio2Samplerate"] - end - if hash["Audio3Samplerate"] - commandString << "," << hash["Audio3Samplerate"] - end - if hash["Audio4Samplerate"] - commandString << "," << hash["Audio4Samplerate"] - end - - #Audio Mixdown - commandString << " -6 " - case hash["Audio1Mixdown"] - when /Mono/ - commandString << "mono" - when /Stereo/ - commandString << "stereo" - when /Dolby Surround/ - commandString << "dpl1" - when /Dolby Pro Logic II/ - commandString << "dpl2" - when /discrete/ - commandString << "6ch" - when /Passthru/ - commandString << "auto" - end - - if hash["Audio2Mixdown"] - case hash["Audio2Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" + #Bitrates + audioBitrates << audioTrack["AudioBitrate"] + + #Encoders + case audioTrack["AudioEncoder"] + when /AC3 / + audioEncoders << "ac3" + when /AAC/ + audioEncoders << "faac" + when /Vorbis/ + audioEncoders << "vorbis" + when /MP3/ + audioEncoders << "lame" end - end - - if hash["Audio3Mixdown"] - case hash["Audio3Mixdown"] + + #Mixdowns + case audioTrack["AudioMixdown"] when /Mono/ - commandString << ",mono" + audioMixdowns << "mono" when /Stereo/ - commandString << ",stereo" + audioMixdowns << "stereo" when /Dolby Surround/ - commandString << ",dpl1" + audioMixdowns << "dpl1" when /Dolby Pro Logic II/ - commandString << ",dpl2" + audioMixdowns << "dpl2" when /discrete/ - commandString << ",6ch" + audioMixdowns << "6ch" when /Passthru/ - commandString << ",auto" + audioMixdowns << "auto" end - end - - if hash["Audio4Mixdown"] - case hash["Audio4Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" + + #Samplerates + audioSamplerates << audioTrack["AudioSamplerate"] + + #Tracks + audioTracks << audioTrack["AudioTrack"].to_s + + #DRC + audioTrackDRCs << audioTrack["AudioTrackDRCSlider"].to_s + + if audioCount > 0 + audioBitrates << "," + audioEncoders << "," + audioMixdowns << "," + audioSamplerates << "," + audioTracks << "," + audioTrackDRCs << "," end + end - + commandString << " -a " << audioTracks + commandString << " -E " << audioEncoders + commandString << " -B " << audioBitrates + commandString << " -6 " << audioMixdowns + commandString << " -R " << audioSamplerates + commandString << " -D " << audioTrackDRCs + #Container commandString << " -f " case hash["FileFormat"] when /MP4/ commandString << "mp4" - when /AVI/ - commandString << "avi" - when /OGM/ - commandString << "ogm" when /MKV/ commandString << "mkv" end @@ -525,7 +424,7 @@ class Display end #Subtitles - if hash["Subtitles"] != "None" + if hash["Subtitles"] && hash["Subtitles"] != "None" if hash["Subtitles"] == "Autoselect" commandString << " --subtitle-scan" else @@ -538,37 +437,38 @@ class Display if hash["UsesPictureFilters"] == 1 case hash["PictureDeinterlace"] - when 1 - commandString << " --deinterlace=\"fast\"" when 2 - commandString << " --deinterlace=\slow\"" + commandString << " --deinterlace=\"fast\"" when 3 - commandString << " --deinterlace=\"slower\"" + commandString << " --deinterlace=\slow\"" when 4 + commandString << " --deinterlace=\"slower\"" + when 5 commandString << " --deinterlace=\"slowest\"" end case hash["PictureDenoise"] - when 1 - commandString << " --denoise=\"weak\"" when 2 - commandString << " --denoise=\"medium\"" + commandString << " --denoise=\"weak\"" when 3 + commandString << " --denoise=\"medium\"" + when 4 commandString << " --denoise=\"strong\"" end - if hash["PictureDetelecine"] == 1 then commandString << " --detelecine" end - if hash["PictureDeblock"] == 1 then commandString << " --deblock" end - if hash["VFR"].to_i == 1 then commandString << " --vfr" end - if hash["PictureDecomb"] == 1 then commandString << " --decomb" end + if hash["PictureDetelecine"] == 2 then commandString << " --detelecine" end + if hash["PictureDeblock"] != 0 then commandString << " --deblock=" << hash["PictureDeblock"].to_s end + if hash["PictureDecomb"] == 2 then commandString << " --decomb" end end #Anamorphic if hash["PicturePAR"] == 1 - commandString << " -p" + commandString << " --strict-anamorphic" elsif hash["PicturePAR"] == 2 - commandString << " -P" + commandString << " --loose-anamorphic" + elsif hash["PicturePAR"] == 3 + commandString << " --custom-anamorphic" end #Booleans @@ -628,8 +528,8 @@ class Display case hash["VideoEncoder"] when /x264/ commandString << "x264" - when /XviD/ - commandString << "xvid" + when /Theora/ + commandString << "theora" end end @@ -657,177 +557,79 @@ class Display end #Audio tracks - commandString << " -a " - commandString << hash["Audio1Track"].to_s - if hash["Audio2Track"] - commandString << "," << hash["Audio2Track"].to_s - end - if hash["Audio3Track"] - commandString << "," << hash["Audio3Track"].to_s - end - if hash["Audio4Track"] - commandString << "," << hash["Audio4Track"].to_s - end - - #Audio encoders - commandString << " -E " - case hash["Audio1Encoder"] - when /AC3/ - commandString << "ac3" - when /AAC/ - commandString << "faac" - when /Vorbis/ - commandString << "vorbis" - when /MP3/ - commandString << "lame" - end - case hash["Audio2Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio3Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio4Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end + audioBitrates = "" + audioEncoders = "" + audioMixdowns = "" + audioSamplerates = "" + audioTracks = "" + audioTrackDRCs = "" + audioCount = hash["AudioList"].size + + hash["AudioList"].each do |audioTrack| + audioCount = audioCount - 1 - #Audio bit rate - commandString << " -B " - commandString << hash["Audio1Bitrate"] - if hash["Audio2Bitrate"] - if hash["Audio2Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio2Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio3Bitrate"] - if hash["Audio3Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio3Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio4Bitrate"] - if hash["Audio4Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio4Bitrate"] - else - commandString << "," << "auto" - end - end - - #Audio sample rate - commandString << " -R " - commandString << hash["Audio1Samplerate"] - if hash["Audio2Samplerate"] - commandString << "," << hash["Audio2Samplerate"] - end - if hash["Audio3Samplerate"] - commandString << "," << hash["Audio3Samplerate"] - end - if hash["Audio4Samplerate"] - commandString << "," << hash["Audio4Samplerate"] - end - - #Audio Mixdown - commandString << " -6 " - case hash["Audio1Mixdown"] - when /Mono/ - commandString << "mono" - when /Stereo/ - commandString << "stereo" - when /Dolby Surround/ - commandString << "dpl1" - when /Dolby Pro Logic II/ - commandString << "dpl2" - when /discrete/ - commandString << "6ch" - when /Passthru/ - commandString << "auto" - end - - if hash["Audio2Mixdown"] - case hash["Audio2Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" + #Bitrates + audioBitrates << audioTrack["AudioBitrate"] + + #Encoders + case audioTrack["AudioEncoder"] + when /AC3 / + audioEncoders << "ac3" + when /AAC/ + audioEncoders << "faac" + when /Vorbis/ + audioEncoders << "vorbis" + when /MP3/ + audioEncoders << "lame" end - end - - if hash["Audio3Mixdown"] - case hash["Audio3Mixdown"] + + #Mixdowns + case audioTrack["AudioMixdown"] when /Mono/ - commandString << ",mono" + audioMixdowns << "mono" when /Stereo/ - commandString << ",stereo" + audioMixdowns << "stereo" when /Dolby Surround/ - commandString << ",dpl1" + audioMixdowns << "dpl1" when /Dolby Pro Logic II/ - commandString << ",dpl2" + audioMixdowns << "dpl2" when /discrete/ - commandString << ",6ch" + audioMixdowns << "6ch" when /Passthru/ - commandString << ",auto" + audioMixdowns << "auto" end - end - - if hash["Audio4Mixdown"] - case hash["Audio4Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" + + #Samplerates + audioSamplerates << audioTrack["AudioSamplerate"] + + #Tracks + audioTracks << audioTrack["AudioTrack"].to_s + + #DRC + audioTrackDRCs << audioTrack["AudioTrackDRCSlider"].to_s + + if audioCount > 0 + audioBitrates << "," + audioEncoders << "," + audioMixdowns << "," + audioSamplerates << "," + audioTracks << "," + audioTrackDRCs << "," end + end - + commandString << " -a " << audioTracks + commandString << " -E " << audioEncoders + commandString << " -B " << audioBitrates + commandString << " -6 " << audioMixdowns + commandString << " -R " << audioSamplerates + commandString << " -D " << audioTrackDRCs #Container commandString << " -f " case hash["FileFormat"] when /MP4/ commandString << "mp4" - when /AVI/ - commandString << "avi" - when /OGM/ - commandString << "ogm" when /MKV/ commandString << "mkv" end @@ -865,7 +667,7 @@ class Display end #Subtitles - if hash["Subtitles"] != "None" + if hash["Subtitles"] && hash["Subtitles"] != "None" if hash["Subtitles"] == "Autoselect" commandString << " --subtitle-scan" else @@ -878,36 +680,37 @@ class Display if hash["UsesPictureFilters"] == 1 case hash["PictureDeinterlace"] - when 1 - commandString << " --deinterlace=\"fast\"" when 2 - commandString << " --deinterlace=\slow\"" + commandString << " --deinterlace=\"fast\"" when 3 - commandString << " --deinterlace=\"slower\"" + commandString << " --deinterlace=\slow\"" when 4 + commandString << " --deinterlace=\"slower\"" + when 5 commandString << " --deinterlace=\"slowest\"" end case hash["PictureDenoise"] - when 1 - commandString << " --denoise=\"weak\"" when 2 - commandString << " --denoise=\"medium\"" + commandString << " --denoise=\"weak\"" when 3 + commandString << " --denoise=\"medium\"" + when 4 commandString << " --denoise=\"strong\"" end - if hash["PictureDetelecine"] == 1 then commandString << " --detelecine" end - if hash["PictureDeblock"] == 1 then commandString << " --deblock" end - if hash["VFR"].to_i == 1 then commandString << " --vfr" end - if hash["PictureDecomb"] == 1 then commandString << " --decomb" end + if hash["PictureDetelecine"] == 2 then commandString << " --detelecine" end + if hash["PictureDeblock"] != 0 then commandString << " --deblock=" << hash["PictureDeblock"].to_s end + if hash["PictureDecomb"] == 2 then commandString << " --decomb" end end #Anamorphic if hash["PicturePAR"] == 1 - commandString << " -p" + commandString << " --strict-anamorphic" elsif hash["PicturePAR"] == 2 - commandString << " -P" + commandString << " --loose-anamorphic" + elsif hash["PicturePAR"] == 3 + commandString << " --custom-anamorphic" end #Booleans @@ -935,20 +738,20 @@ class Display commandString = "if (!strcmp(preset_name, \"" << hash["PresetName"] << "\"))\n{\n " #Filename suffix + commandString << "if( !mux )\n " + commandString << "{\n " + case hash["FileFormat"] when /MP4/ - commandString << "mux = " << "HB_MUX_MP4;\n " - when /AVI/ - commandString << "mux = " << "HB_MUX_AVI;\n " - when /OGM/ - commandString << "mux = " << "HB_MUX_OGM;\n " + commandString << " mux = " << "HB_MUX_MP4;\n " when /MKV/ - commandString << "mux = " << "HB_MUX_MKV;\n " + commandString << " mux = " << "HB_MUX_MKV;\n " end + commandString << "}\n " #iPod MP4 atom if hash["Mp4iPodCompatible"].to_i == 1 - commandString << "job->ipod_atom = 1;\n " + commandString << "job->ipod_atom = 1;\n " end # 64-bit files @@ -962,8 +765,8 @@ class Display case hash["VideoEncoder"] when /x264/ commandString << "HB_VCODEC_X264;\n " - when /XviD/ - commandString << "HB_VCODEC_XVID;\n " + when /Theora/ + commandString << "HB_VCODEC_THEORA;\n " end end @@ -975,7 +778,6 @@ class Display commandString << "job->vbitrate = " << hash["VideoAvgBitrate"] << ";\n " when 2 commandString << "job->vquality = " << hash["VideoQualitySlider"].to_s << ";\n " - commandString << "job->crf = 1;\n " end #FPS @@ -992,185 +794,100 @@ class Display end #Audio tracks + audioBitrates = "" + audioEncoders = "" + audioMixdowns = "" + audioSamplerates = "" + audioTracks = "" + audioTrackDRCs = "" + audioCount = hash["AudioList"].size + + hash["AudioList"].each do |audioTrack| + audioCount = audioCount - 1 + + #Bitrates + audioBitrates << audioTrack["AudioBitrate"] + + #Encoders + case audioTrack["AudioEncoder"] + when /AC3 / + audioEncoders << "ac3" + when /AAC/ + audioEncoders << "faac" + when /Vorbis/ + audioEncoders << "vorbis" + when /MP3/ + audioEncoders << "lame" + end + + #Mixdowns + case audioTrack["AudioMixdown"] + when /Mono/ + audioMixdowns << "mono" + when /Stereo/ + audioMixdowns << "stereo" + when /Dolby Surround/ + audioMixdowns << "dpl1" + when /Dolby Pro Logic II/ + audioMixdowns << "dpl2" + when /discrete/ + audioMixdowns << "6ch" + when /Passthru/ + audioMixdowns << "auto" + end + + #Samplerates + audioSamplerates << audioTrack["AudioSamplerate"] + + #Tracks + audioTracks << audioTrack["AudioTrack"].to_s + + #DRC + audioTrackDRCs << audioTrack["AudioTrackDRCSlider"].to_s + + if audioCount > 0 + audioBitrates << "," + audioEncoders << "," + audioMixdowns << "," + audioSamplerates << "," + audioTracks << "," + audioTrackDRCs << "," + end + + end commandString << "if( !atracks )\n " commandString << "{\n " - commandString << " atracks = strdup(\"" - commandString << hash["Audio1Track"].to_s - if hash["Audio2Track"] - commandString << "," << hash["Audio2Track"].to_s - end - if hash["Audio3Track"] - commandString << "," << hash["Audio3Track"].to_s - end - if hash["Audio4Track"] - commandString << "," << hash["Audio4Track"].to_s - end + commandString << " atracks = strdup(\"" << audioTracks commandString << "\");\n " commandString << "}\n " - - # Audio bitrate + + commandString << "if( !acodecs )\n " + commandString << "{\n " + commandString << " acodecs = strdup(\"" << audioEncoders + commandString << "\");\n " + commandString << "}\n " + commandString << "if( !abitrates )\n " commandString << "{\n " - commandString << " abitrates = strdup(\"" - if hash["Audio1Encoder"] != "AC3 Passthru" - commandString << hash["Audio1Bitrate"] - else - commandString << "auto" - end - if hash["Audio2Bitrate"] - if hash["Audio2Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio2Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio3Bitrate"] - if hash["Audio3Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio3Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio4Bitrate"] - if hash["Audio4Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio4Bitrate"] - else - commandString << "," << "auto" - end - end + commandString << " abitrates = strdup(\"" << audioBitrates commandString << "\");\n " commandString << "}\n " - - #Audio samplerate - commandString << "if( !arates )\n " + + commandString << "if( !mixdowns )\n " commandString << "{\n " - commandString << " arates = strdup(\"" - commandString << hash["Audio1Samplerate"] - if hash["Audio2Samplerate"] - commandString << "," << hash["Audio2Samplerate"] - end - if hash["Audio3Samplerate"] - commandString << "," << hash["Audio3Samplerate"] - end - if hash["Audio4Samplerate"] - commandString << "," << hash["Audio4Samplerate"] - end + commandString << " mixdowns = strdup(\"" << audioMixdowns commandString << "\");\n " commandString << "}\n " - - #Audio encoder - commandString << "if( !acodecs )\n " + + commandString << "if( !arates )\n " commandString << "{\n " - commandString << " acodecs = strdup(\"" - case hash["Audio1Encoder"] - when /AC3/ - commandString << "ac3" - when /AAC/ - commandString << "faac" - when /Vorbis/ - commandString << "vorbis" - when /MP3/ - commandString << "lame" - end - case hash["Audio2Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio3Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio4Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end + commandString << " arates = strdup(\"" << audioSamplerates commandString << "\");\n " commandString << "}\n " - - #Audio mixdowns - commandString << "if( !mixdowns )\n " + + commandString << "if( !dynamic_range_compression )\n " commandString << "{\n " - commandString << " mixdowns = strdup(\"" - case hash["Audio1Mixdown"] - when /Mono/ - commandString << "mono" - when /Stereo/ - commandString << "stereo" - when /Dolby Surround/ - commandString << "dpl1" - when /Dolby Pro Logic II/ - commandString << "dpl2" - when /discrete/ - commandString << "6ch" - when /Passthru/ - commandString << "auto" - end - if hash["Audio2Mixdown"] - case hash["Audio2Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" - end - end - if hash["Audio3Mixdown"] - case hash["Audio3Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" - end - end - if hash["Audio4Mixdown"] - case hash["Audio4Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" - end - end + commandString << " dynamic_range_compression = strdup(\"" << audioTrackDRCs commandString << "\");\n " commandString << "}\n " @@ -1179,7 +896,7 @@ class Display commandString << "job->crop[0] = " << hash["PictureTopCrop"].to_s << ";\n " commandString << "job->crop[1] = " << hash["PictureBottomCrop"].to_s << ";\n " commandString << "job->crop[2] = " << hash["PictureLeftCrop"].to_s << ";\n " - commandString << "job->crop[4] - " << hash["PictureRightCrop"].to_s << ";\n " + commandString << "job->crop[4] = " << hash["PictureRightCrop"].to_s << ";\n " end #Dimensions @@ -1215,44 +932,54 @@ class Display if hash["UsesPictureFilters"] == 1 case hash["PictureDeinterlace"] - when 1 + when 2 commandString << "deinterlace = 1;\n " commandString << "deinterlace_opt = \"-1\";\n " - when 2 + when 3 commandString << "deinterlace = 1;\n " commandString << "deinterlace_opt = \"2\";\n " - when 3 + when 4 commandString << "deinterlace = 1;\n " commandString << "deinterlace_opt = \"0\";\n " - when 4 + when 5 commandString << "deinterlace = 1;\n " commandString << "deinterlace_opt = \"1:-1:1\";\n " end case hash["PictureDenoise"] - when 1 + when 2 commandString << "denoise = 1;\n " commandString << "denoise_opt = \"2:1:2:3\";\n " - when 2 + when 3 commandString << "denoise = 1;\n " commandString << "denoise_opt = \"3:2:2:3\";\n " - when 3 + when 4 commandString << "denoise = 1;\n " commandString << "denoise_opt = \"7:7:5:5\";\n " end - if hash["PictureDetelecine"] == 1 then commandString << "detelecine = 1;\n " end - if hash["PictureDeblock"] == 1 then commandString << "deblock = 1;\n " end - if hash["VFR"].to_i == 1 then commandString << "vfr = 1;\n " end - if hash["PictureDecomb"] == 1 then commandString << "decomb = 1;\n " end + if hash["PictureDetelecine"] == 2 then commandString << "detelecine = 1;\n " end + if hash["PictureDeblock"] != 0 + then + commandString << "deblock = 1;\n " + commandString << "deblock_opt = \"" << hash["PictureDeblock"].to_s << "\";\n " + end + if hash["PictureDecomb"] == 2 then commandString << "decomb = 1;\n " end end #Anamorphic - if hash["PicturePAR"] == 1 - commandString << "pixelratio = 1;\n " - elsif hash["PicturePAR"] == 2 - commandString << "pixelratio = 2;\n " + if hash["PicturePAR"] != 0 + commandString << "if( !anamorphic_mode )\n " + commandString << "{\n " + if hash["PicturePAR"] == 1 + commandString << " anamorphic_mode = 1;\n " + elsif hash["PicturePAR"] == 2 + commandString << " anamorphic_mode = 2;\n " + elsif hash["PicturePAR"] == 3 + commandString << " anamorphic_mode = 3;\n " + end + commandString << "}\n " end #Booleans @@ -1260,7 +987,7 @@ class Display if hash["VideoGrayScale"] == 1 then commandString << "job->grayscale = 1;\n " end if hash["VideoTwoPass"] == 1 then commandString << "twoPass = 1;\n " end if hash["VideoTurboTwoPass"] == 1 then commandString << "turbo_opts_enabled = 1;\n" end - + commandString << "\n" commandString << "}" # That's it, print to screen now @@ -1313,8 +1040,8 @@ class Display case hash["VideoEncoder"] when /x264/ commandString << "x264 " - when /XviD/ - commandString << "xvid " + when /Theora/ + commandString << "theora " end end @@ -1342,176 +1069,79 @@ class Display end #Audio tracks - commandString << " -a " - commandString << hash["Audio1Track"].to_s - if hash["Audio2Track"] - commandString << "," << hash["Audio2Track"].to_s - end - if hash["Audio3Track"] - commandString << "," << hash["Audio3Track"].to_s - end - if hash["Audio4Track"] - commandString << "," << hash["Audio4Track"].to_s - end - - #Audio encoders - commandString << " -E " - case hash["Audio1Encoder"] - when /AC3/ - commandString << "ac3" - when /AAC/ - commandString << "faac" - when /Vorbis/ - commandString << "vorbis" - when /MP3/ - commandString << "lame" - end - case hash["Audio2Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio3Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - case hash["Audio4Encoder"] - when /AC3 / - commandString << ",ac3" - when /AAC/ - commandString << ",faac" - when /Vorbis/ - commandString << ",vorbis" - when /MP3/ - commandString << ",lame" - end - - #Audio bit rate - commandString << " -B " - commandString << hash["Audio1Bitrate"] - if hash["Audio2Bitrate"] - if hash["Audio2Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio2Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio3Bitrate"] - if hash["Audio3Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio3Bitrate"] - else - commandString << "," << "auto" - end - end - if hash["Audio4Bitrate"] - if hash["Audio4Encoder"] != "AC3 Passthru" - commandString << "," << hash["Audio4Bitrate"] - else - commandString << "," << "auto" - end - end + audioBitrates = "" + audioEncoders = "" + audioMixdowns = "" + audioSamplerates = "" + audioTracks = "" + audioTrackDRCs = "" + audioCount = hash["AudioList"].size + + hash["AudioList"].each do |audioTrack| + audioCount = audioCount - 1 - #Audio sample rate - commandString << " -R " - commandString << hash["Audio1Samplerate"] - if hash["Audio2Samplerate"] - commandString << "," << hash["Audio2Samplerate"] - end - if hash["Audio3Samplerate"] - commandString << "," << hash["Audio3Samplerate"] - end - if hash["Audio4Samplerate"] - commandString << "," << hash["Audio4Samplerate"] - end - - #Audio Mixdown - commandString << " -6 " - case hash["Audio1Mixdown"] - when /Mono/ - commandString << "mono" - when /Stereo/ - commandString << "stereo" - when /Dolby Surround/ - commandString << "dpl1" - when /Dolby Pro Logic II/ - commandString << "dpl2" - when /discrete/ - commandString << "6ch" - when /Passthru/ - commandString << "auto" - end - - if hash["Audio2Mixdown"] - case hash["Audio2Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" + #Bitrates + audioBitrates << audioTrack["AudioBitrate"] + + #Encoders + case audioTrack["AudioEncoder"] + when /AC3 / + audioEncoders << "ac3" + when /AAC/ + audioEncoders << "faac" + when /Vorbis/ + audioEncoders << "vorbis" + when /MP3/ + audioEncoders << "lame" end - end - - if hash["Audio3Mixdown"] - case hash["Audio3Mixdown"] + + #Mixdowns + case audioTrack["AudioMixdown"] when /Mono/ - commandString << ",mono" + audioMixdowns << "mono" when /Stereo/ - commandString << ",stereo" + audioMixdowns << "stereo" when /Dolby Surround/ - commandString << ",dpl1" + audioMixdowns << "dpl1" when /Dolby Pro Logic II/ - commandString << ",dpl2" + audioMixdowns << "dpl2" when /discrete/ - commandString << ",6ch" + audioMixdowns << "6ch" when /Passthru/ - commandString << ",auto" + audioMixdowns << "auto" end - end - - if hash["Audio4Mixdown"] - case hash["Audio4Mixdown"] - when /Mono/ - commandString << ",mono" - when /Stereo/ - commandString << ",stereo" - when /Dolby Surround/ - commandString << ",dpl1" - when /Dolby Pro Logic II/ - commandString << ",dpl2" - when /discrete/ - commandString << ",6ch" - when /Passthru/ - commandString << ",auto" + + #Samplerates + audioSamplerates << audioTrack["AudioSamplerate"] + + #Tracks + audioTracks << audioTrack["AudioTrack"].to_s + + #DRC + audioTrackDRCs << audioTrack["AudioTrackDRCSlider"].to_s + + if audioCount > 0 + audioBitrates << "," + audioEncoders << "," + audioMixdowns << "," + audioSamplerates << "," + audioTracks << "," + audioTrackDRCs << "," end + end + commandString << " -a " << audioTracks + commandString << " -E " << audioEncoders + commandString << " -B " << audioBitrates + commandString << " -6 " << audioMixdowns + commandString << " -R " << audioSamplerates + commandString << " -D " << audioTrackDRCs #Container commandString << " -f " case hash["FileFormat"] when /MP4/ commandString << "mp4" - when /AVI/ - commandString << "avi" - when /OGM/ - commandString << "ogm" when /MKV/ commandString << "mkv" end @@ -1549,7 +1179,7 @@ class Display end #Subtitles - if hash["Subtitles"] != "None" + if hash["Subtitles"] && hash["Subtitles"] != "None" if hash["Subtitles"] == "Autoselect" commandString << " --subtitle-scan" else @@ -1562,36 +1192,37 @@ class Display if hash["UsesPictureFilters"] == 1 case hash["PictureDeinterlace"] - when 1 - commandString << " --deinterlace=\\\"fast\\\"" when 2 - commandString << " --deinterlace=\\\slow\\\"" + commandString << " --deinterlace=\\\"fast\\\"" when 3 - commandString << " --deinterlace=\\\"slower\\\"" + commandString << " --deinterlace=\\\slow\\\"" when 4 + commandString << " --deinterlace=\\\"slower\\\"" + when 5 commandString << " --deinterlace=\\\"slowest\\\"" end case hash["PictureDenoise"] - when 1 - commandString << " --denoise=\\\"weak\\\"" when 2 - commandString << " --denoise=\\\"medium\\\"" + commandString << " --denoise=\\\"weak\\\"" when 3 + commandString << " --denoise=\\\"medium\\\"" + when 4 commandString << " --denoise=\\\"strong\\\"" end - if hash["PictureDetelecine"] == 1 then commandString << " --detelecine" end - if hash["PictureDeblock"] == 1 then commandString << " --deblock" end - if hash["VFR"].to_i == 1 then commandString << " --vfr" end - if hash["PictureDecomb"] == 1 then commandString << " --decomb" end + if hash["PictureDetelecine"] == 2 then commandString << " --detelecine" end + if hash["PictureDeblock"] != 0 then commandString << " --deblock=" << hash["PictureDeblock"].to_s end + if hash["PictureDecomb"] == 2 then commandString << " --decomb" end end #Anamorphic if hash["PicturePAR"] == 1 - commandString << " -p" + commandString << " --strict-anamorphic" elsif hash["PicturePAR"] == 2 - commandString << " -P" + commandString << " --loose-anamorphic" + elsif hash["PicturePAR"] == 3 + commandString << " --custom-anamorphic" end #Booleans @@ -1628,4 +1259,4 @@ else # Direct the user to the help puts "\n\tUsage: manicure.rb [options]" puts "\tSee help with -h or --help" -end \ No newline at end of file +end