Have you had any response from the relevant libav developers about positively 
identifying and fixing the root cause of the problem?  Maybe this patch is the 
right solution as-is, or maybe an underlying problem should be fixed, but 
either way the evidence points toward a real problem in a specific part of the 
code.

Cheers,
Josh


On Aug 8, 2011, at 12:42 AM, avcoder wrote:

> 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 <[email protected]> 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 <[email protected]> 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
>>>> [email protected]
>>>> 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
>>> [email protected]
>>> http://ffmpeg.org/mailman/listinfo/libav-user
>> 
>> _______________________________________________
>> Libav-user mailing list
>> [email protected]
>> 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
> [email protected]
> http://ffmpeg.org/mailman/listinfo/libav-user

_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to