]> granicus.if.org Git - handbrake/commitdiff
libhb: fix fdk-aac mono encoding
authorjstebbins <jstebbins.hb@gmail.com>
Sat, 16 Mar 2013 16:59:35 +0000 (16:59 +0000)
committerjstebbins <jstebbins.hb@gmail.com>
Sat, 16 Mar 2013 16:59:35 +0000 (16:59 +0000)
A minimum output buffer size of 8KB is needed by libav

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5329 b64f7644-9d1e-0410-96f1-a4d463321fa5

libhb/encavcodecaudio.c

index 2c4471babfac204cf1bb70f4e397e84d030979a5..3633fed9e1f5cb26fa0d43c1e9f35cf9262bf4f8 100644 (file)
@@ -189,8 +189,10 @@ static int encavcodecaInit(hb_work_object_t *w, hb_job_t *job)
     pv->samples_per_frame = context->frame_size;
     pv->input_samples     = context->frame_size * context->channels;
     pv->input_buf         = malloc(pv->input_samples * sizeof(float));
-    pv->max_output_bytes  = (pv->input_samples *
-                             av_get_bytes_per_sample(context->sample_fmt));
+    // Some encoders in libav (e.g. fdk-aac) fail if the output buffer
+    // size is not some minumum value.  8K seems to be enough :(
+    pv->max_output_bytes  = MAX(8192, (pv->input_samples *
+                             av_get_bytes_per_sample(context->sample_fmt)));
 
     // sample_fmt conversion
     if (context->sample_fmt != AV_SAMPLE_FMT_FLT)