[Libav-user] infinite loop in avcodec_encode_audio when encoding AAC

avcoder ffmpeg at gmail.com
Mon Aug 8 09:42:56 CEST 2011


The patch is my hack. I also face the same issue as yours, so I
patched FFmpeg to fix this bug

On Mon, Aug 8, 2011 at 3:09 PM, Josh Gargus <josh at schwa.ca> wrote:
> 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
>
> _______________________________________________
> 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


More information about the Libav-user mailing list