diff options
author | jbrjake <[email protected]> | 2008-06-15 15:13:00 +0000 |
---|---|---|
committer | jbrjake <[email protected]> | 2008-06-15 15:13:00 +0000 |
commit | 3e116e48824b011d7ecd54e59cd25f92fb3213ca (patch) | |
tree | caab2b16c8590239936cd3c3e551ebcbb09a5a05 | |
parent | 02825397639573f1b80f2afaa860a09a6addc595 (diff) |
Updates the Mac->CLI preset conversion script to handle the new keys for separate audio settings, and rearranges a little code in the CLI so the audio track settings are easier to generate.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1513 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rwxr-xr-x | scripts/manicure.rb | 724 | ||||
-rw-r--r-- | test/test.c | 107 |
2 files changed, 712 insertions, 119 deletions
diff --git a/scripts/manicure.rb b/scripts/manicure.rb index 55a4e646c..0f9d6b50f 100755 --- a/scripts/manicure.rb +++ b/scripts/manicure.rb @@ -146,7 +146,7 @@ class Presets j = 0 presetBreaks =[] presetStew.each do |presetLine| - if presetLine =~ /AudioBitRate/ # This is the first line of a new preset. + if presetLine =~ /Audio1Bitrate/ # This is the first line of a new preset. presetBreaks[j] = i-1 # So mark down how long the last one was. j += 1 end @@ -283,9 +283,14 @@ class Display end #Video encoder - if hash["VideoEncoder"] != "FFmpeg" + if hash["VideoEncoder"] != "MPEG-4 (FFmpeg)" commandString << " -e " - commandString << hash["VideoEncoder"].to_s.downcase + case hash["VideoEncoder"] + when /x264/ + commandString << "x264" + when /XviD/ + commandString << "xvid" + end end #VideoRateControl @@ -308,20 +313,167 @@ class Display commandString << " -r " << hash["VideoFramerate"] end end - - #Audio encoder (only specifiy bitrate and samplerate when not doing AC-3 pass-thru) + + #Audio tracks + commandString << " -a " + commandString << hash["Audio1Track"] + if hash["Audio2Track"] + commandString << "," << hash["Audio2Track"] + end + if hash["Audio3Track"] + commandString << "," << hash["Audio3Track"] + end + if hash["Audio4Track"] + commandString << "," << hash["Audio4Track"] + end + + #Audio encoders commandString << " -E " - case hash["FileCodecs"] - when /AAC + AC3 Audio/ - commandString << "aac+ac3" - when /AC-3 / + case hash["Audio1Encoder"] + when /AC3 / commandString << "ac3" - when /AAC Audio/ - commandString << "faac" << " -B " << hash["AudioBitRate"] << " -R " << hash["AudioSampleRate"] + 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" << " -B " << hash["AudioBitRate"] << " -R " << hash["AudioSampleRate"] + commandString << ",vorbis" when /MP3/ - commandString << "lame" << " -B " << hash["AudioBitRate"] << " -R " << hash["AudioSampleRate"] + 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 + + #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" + 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 #Container @@ -429,9 +581,14 @@ class Display commandString << '+ ' << hash["PresetName"] << ":" #Video encoder - if hash["VideoEncoder"] != "FFmpeg" + if hash["VideoEncoder"] != "MPEG-4 (FFmpeg)" commandString << " -e " - commandString << hash["VideoEncoder"].to_s.downcase + case hash["VideoEncoder"] + when /x264/ + commandString << "x264" + when /XviD/ + commandString << "xvid" + end end #VideoRateControl @@ -455,21 +612,169 @@ class Display end end - #Audio encoder (only include bitrate and samplerate when not doing AC3 passthru) + #Audio tracks + commandString << " -a " + commandString << hash["Audio1Track"] + if hash["Audio2Track"] + commandString << "," << hash["Audio2Track"] + end + if hash["Audio3Track"] + commandString << "," << hash["Audio3Track"] + end + if hash["Audio4Track"] + commandString << "," << hash["Audio4Track"] + end + + #Audio encoders commandString << " -E " - case hash["FileCodecs"] - when /AC3 Audio/ - commandString << "aac+ac3" - when /AC-3/ + case hash["Audio1Encoder"] + when /AC3/ commandString << "ac3" - when /AAC Audio/ - commandString << "faac" << " -B " << hash["AudioBitRate"] << " -R " << hash["AudioSampleRate"] + 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" << " -B " << hash["AudioBitRate"] << " -R " << hash["AudioSampleRate"] + commandString << ",vorbis" when /MP3/ - commandString << "lame" << " -B " << hash["AudioBitRate"] << " -R " << hash["AudioSampleRate"] + 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 + + #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" + 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 + + #Container commandString << " -f " case hash["FileFormat"] @@ -597,11 +902,12 @@ class Display end #Video encoder - if hash["VideoEncoder"] != "FFmpeg" + if hash["VideoEncoder"] != "MPEG-4 (FFmpeg)" commandString << "vcodec = " - if hash["VideoEncoder"] == "x264" + case hash["VideoEncoder"] + when /x264/ commandString << "HB_VCODEC_X264;\n " - elsif hash["VideoEncoder"].to_s.downcase == "xvid" + when /XviD/ commandString << "HB_VCODEC_XVID;\n " end end @@ -625,46 +931,176 @@ class Display commandString << "job->vrate_base = " << "900900;\n " # Gotta add the rest of the framerates for completion's sake. end + commandString << "job->cfr = 1;\n " end - # Only include samplerate and bitrate when not performing AC3 passthru - if (hash["FileCodecs"].include? "AC-3") == false - #Audio bitrate - commandString << "job->abitrate = " << hash["AudioBitRate"] << ";\n " + #Audio tracks + commandString << "atracks = \"" + commandString << hash["Audio1Track"] + if hash["Audio2Track"] + commandString << "," << hash["Audio2Track"] + end + if hash["Audio3Track"] + commandString << "," << hash["Audio3Track"] + end + if hash["Audio4Track"] + commandString << "," << hash["Audio4Track"] + end + commandString << "\";\n " - #Audio samplerate - commandString << "job->arate = " - case hash["AudioSampleRate"] - when /48/ - commandString << "48000" - when /44.1/ - commandString << "44100" - when /32/ - commandString << "32000" - when /24/ - commandString << "24000" - when /22.05/ - commandString << "22050" + # Audio bitrate + commandString << "abitrates = \"" + 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 - commandString << ";\n " 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 << "\";\n " + + #Audio samplerate + commandString << "arates = \"" + 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 << "\";\n " #Audio encoder - commandString << "acodec = " - case hash["FileCodecs"] - when /AC3 Audio/ - commandString << "HB_ACODEC_FAAC;\n " - commandString << "audio_mixdown = HB_AMIXDOWN_DOLBYPLII_AC3;\n " - commandString << "arate = 48000;\n " - when /AAC Audio/ - commandString << "HB_ACODEC_FAAC;\n " - when /AC-3/ - commandString << "HB_ACODEC_AC3;\n " + commandString << "acodecs = \"" + 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 << "HB_ACODEC_VORBIS;\n " + commandString << ",vorbis" when /MP3/ - commandString << "HB_ACODEC_LAME;\n " + commandString << ",lame" end + case hash["Audio4Encoder"] + when /AC3 / + commandString << ",ac3" + when /AAC/ + commandString << ",faac" + when /Vorbis/ + commandString << ",vorbis" + when /MP3/ + commandString << ",lame" + end + commandString << "\";\n " + + #Audio mixdowns + commandString << "mixdowns = \"" + 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 << "\";\n " #Cropping if !hash["PictureAutoCrop"].to_i @@ -751,9 +1187,14 @@ class Display commandString << " printf(\"\\n+ " << hash["PresetName"] << ": " #Video encoder - if hash["VideoEncoder"] != "FFmpeg" + if hash["VideoEncoder"] != "MPEG-4 (FFmpeg)" commandString << " -e " - commandString << hash["VideoEncoder"].to_s.downcase + case hash["VideoEncoder"] + when /x264/ + commandString << "x264 " + when /XviD/ + commandString << "xvid " + end end #VideoRateControl @@ -777,28 +1218,167 @@ class Display end end - # Only include samplerate and bitrate when not performing AC-3 passthru - if (hash["FileCodecs"].include? "AC-3") == false - #Audio bitrate - commandString << " -B " << hash["AudioBitRate"] - #Audio samplerate - commandString << " -R " << hash["AudioSampleRate"] + #Audio tracks + commandString << " -a " + commandString << hash["Audio1Track"] + if hash["Audio2Track"] + commandString << "," << hash["Audio2Track"] + end + if hash["Audio3Track"] + commandString << "," << hash["Audio3Track"] + end + if hash["Audio4Track"] + commandString << "," << hash["Audio4Track"] end - #Audio encoder + #Audio encoders commandString << " -E " - case hash["FileCodecs"] - when /AC3 Audio/ - commandString << "aac+ac3" - when /AAC Audio/ - commandString << "faac" - when /AC-3/ + 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 + + #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" + 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 #Container commandString << " -f " diff --git a/test/test.c b/test/test.c index 81b6486a6..01fa16c73 100644 --- a/test/test.c +++ b/test/test.c @@ -51,6 +51,7 @@ static hb_audio_config_t * audio = NULL; static int num_audio_tracks = 0; static char * mixdowns = NULL; static char * dynamic_range_compression = NULL; +static char * atracks = NULL; static char * arates = NULL; static char * abitrates = NULL; static char * acodecs = NULL; @@ -271,6 +272,7 @@ int main( int argc, char ** argv ) } if( mixdowns ) free( mixdowns ); if( dynamic_range_compression ) free( dynamic_range_compression ); + if( atracks ) free( atracks ); if( arates ) free( arates ); if( abitrates ) free( abitrates ); if( acodecs ) free( acodecs ); @@ -890,6 +892,58 @@ static int HandleEvents( hb_handle_t * h ) job->vrate_base = vrate; } + /* Grab audio tracks */ + if( atracks ) + { + char * token = strtok(atracks, ","); + if (token == NULL) + token = optarg; + int track_start, track_end; + while( token != NULL ) + { + audio = calloc(1, sizeof(*audio)); + hb_audio_config_init(audio); + if (strlen(token) >= 3) + { + if (sscanf(token, "%d-%d", &track_start, &track_end) == 2) + { + int i; + for (i = track_start - 1; i < track_end; i++) + { + if (i != track_start - 1) + { + audio = calloc(1, sizeof(*audio)); + hb_audio_config_init(audio); + } + audio->in.track = i; + audio->out.track = num_audio_tracks++; + hb_list_add(audios, audio); + } + } + else if( !strcasecmp(token, "none" ) ) + { + audio->in.track = audio->out.track = -1; + audio->out.codec = 0; + hb_list_add(audios, audio); + break; + } + else + { + fprintf(stderr, "ERROR: Unable to parse audio input \"%s\", skipping.", + token); + free(audio); + } + } + else + { + audio->in.track = atoi(token) - 1; + audio->out.track = num_audio_tracks++; + hb_list_add(audios, audio); + } + token = strtok(NULL, ","); + } + } + /* Parse audio tracks */ if( hb_list_count(audios) == 0 ) { @@ -1742,56 +1796,15 @@ static int ParseOptions( int argc, char ** argv ) chapter_markers = 1; break; case 'a': - { - char * token = strtok(optarg, ","); - if (token == NULL) - token = optarg; - int track_start, track_end; - while( token != NULL ) + if( optarg != NULL ) { - audio = calloc(1, sizeof(*audio)); - hb_audio_config_init(audio); - if (strlen(token) >= 3) - { - if (sscanf(token, "%d-%d", &track_start, &track_end) == 2) - { - int i; - for (i = track_start - 1; i < track_end; i++) - { - if (i != track_start - 1) - { - audio = calloc(1, sizeof(*audio)); - hb_audio_config_init(audio); - } - audio->in.track = i; - audio->out.track = num_audio_tracks++; - hb_list_add(audios, audio); - } - } - else if( !strcasecmp(token, "none" ) ) - { - audio->in.track = audio->out.track = -1; - audio->out.codec = 0; - hb_list_add(audios, audio); - break; - } - else - { - fprintf(stderr, "ERROR: Unable to parse audio input \"%s\", skipping.", - token); - free(audio); - } - } - else - { - audio->in.track = atoi(token) - 1; - audio->out.track = num_audio_tracks++; - hb_list_add(audios, audio); - } - token = strtok(NULL, ","); + atracks = strdup( optarg ); } + else + { + atracks = "1" ; + } break; - } case '6': if( optarg != NULL ) { |