]> granicus.if.org Git - handbrake/commitdiff
If we're using pass-through, copy the input bitrate/sample rate to the output.
authorsaintdev <no-reply@handbrake.fr>
Tue, 17 Jun 2008 20:38:08 +0000 (20:38 +0000)
committersaintdev <no-reply@handbrake.fr>
Tue, 17 Jun 2008 20:38:08 +0000 (20:38 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1520 b64f7644-9d1e-0410-96f1-a4d463321fa5

libhb/common.c

index bd183e9f9f6215a14caa720757c50072ae2797a1..457ef894f093609a76b59c7fc47368781ccf4250 100644 (file)
@@ -730,10 +730,22 @@ int hb_audio_add(const hb_job_t * job, const hb_audio_config_t * audiocfg)
      */
     audio->config.out.track = hb_list_count(job->list_audio) + 1;
     audio->config.out.codec = audiocfg->out.codec;
-    audio->config.out.samplerate = audiocfg->out.samplerate;
-    audio->config.out.bitrate = audiocfg->out.bitrate;
-    audio->config.out.mixdown = audiocfg->out.mixdown;
-    audio->config.out.dynamic_range_compression = audiocfg->out.dynamic_range_compression;
+    if( audiocfg->out.codec == audio->config.in.codec )
+    {
+        /* Pass-through, copy from input. */
+        audio->config.out.samplerate = audio->config.in.samplerate;
+        audio->config.out.bitrate = audio->config.in.bitrate;
+        audio->config.out.dynamic_range_compression = 0;
+        audio->config.out.mixdown = 0;
+    }
+    else
+    {
+        /* Non pass-through, use what is given. */
+        audio->config.out.samplerate = audiocfg->out.samplerate;
+        audio->config.out.bitrate = audiocfg->out.bitrate;
+        audio->config.out.dynamic_range_compression = audiocfg->out.dynamic_range_compression;
+        audio->config.out.mixdown = audiocfg->out.mixdown;
+    }
 
     hb_list_add(job->list_audio, audio);
     return 1;