[Libav-user] infinite loop in avcodec_encode_audio when encoding AAC
Josh Gargus
josh at schwa.ca
Mon Aug 8 09:09:40 CEST 2011
Unfortunately I'm on Windows, and setting up a build environment for both libav and it's prerequisite libraries is a bit of a hassle.
Do you consider this patch to be The Right Thing? A hacky workaround? The reason I ask is that if I can just wait a few days or weeks for it to show up in a nightly build, then I'll wait. But, if there's no chance of having the patch accepted as-is, then I'll have to think about other options.
Cheers,
Josh
On Aug 7, 2011, at 3:41 AM, avcoder wrote:
> It's the bug of aacenc encoder in FFmpeg, try the following patch
>
> --- aacenc.c Thu Jan 15 17:14:12 1970
> +++ aacenc.c Thu Jan 15 17:14:12 1970
> @@ -573,6 +573,8 @@
> }
> start_ch += chans;
> }
> +
> + s->last_frame_bits = 0;
> do {
> int frame_bits;
> init_put_bits(&s->pb, frame, buf_size*8);
> @@ -639,6 +641,10 @@
> s->psy.bitres.bits = frame_bits / avctx->channels;
> break;
> }
> + //it seems that lambda is broken
> + if (s->last_frame_bits == frame_bits)
> + break;
> + s->last_frame_bits = frame_bits;
>
> s->lambda *= avctx->bit_rate * 1024.0f / avctx->sample_rate /
> frame_bits;
>
> --- aacenc.h Thu Jan 15 17:14:12 1970
> +++ aacenc.h Thu Jan 15 17:14:12 1970
> @@ -72,6 +72,7 @@
> float lambda;
> DECLARE_ALIGNED(16, int, qcoefs)[96]; ///< quantized coefficients
> DECLARE_ALIGNED(32, float, scoefs)[1024]; ///< scaled coefficients
> + int last_frame_bits;
> } AACEncContext;
>
> #endif /* AVCODEC_AACENC_H */
>
>
> On Sat, Aug 6, 2011 at 1:26 PM, Josh Gargus <josh at schwa.ca> wrote:
>> I'm running into a problem that seems essentially the same as:
>> http://stackoverflow.com/questions/2410459/encode-audio-to-aac-with-libavcodec
>> … except that I'm already encoding at a far lower bitrate than the threshold
>> that started to cause him problems (I encode at 64000bits/sec, and he was OK
>> below 386000bits/sec).
>> Has anyone else seen anything else like this? I'll be happy to provide more
>> details if anyone is interested.
>> Thanks,
>> Josh
>> _______________________________________________
>> Libav-user mailing list
>> Libav-user at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/libav-user
>>
>>
>
>
>
> --
> -----------------------------------------------------------------------------------------
> My key fingerprint: d1:03:f5:32:26:ff:d7:3c:e4:42:e3:51:ec:92:78:b2
> _______________________________________________
> Libav-user mailing list
> Libav-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/libav-user
More information about the Libav-user
mailing list