[FFmpeg-devel] [PATCH] lavfi/atempo: Avoid false triggering an assertion failure

Marton Balint cus at passwd.hu
Sun Sep 3 18:26:25 EEST 2017


On Sun, 3 Sep 2017, Pavel Koshevoy wrote:

> On 08/30/2017 03:01 PM, Pavel Koshevoy wrote:
>> On Wed, Aug 30, 2017 at 2:00 PM, Marton Balint <cus at passwd.hu> wrote:
>>> On Mon, 19 Dec 2016, Marton Balint wrote:
>>> 
>>>> On Sat, 17 Dec 2016, pkoshevoy at gmail.com wrote:
>>>> 
>>>>> From: Pavel Koshevoy <pkoshevoy at gmail.com>
>>>>> 
>>>>> Steps to reproduce:
>>>>> ./ffmpeg_g -f s16be -i /dev/null -af atempo=0.5 -y /tmp/atempo.wav
>>>>> ---
>>>>> libavfilter/af_atempo.c | 4 ++--
>>>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>>> 
>>>>> diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c
>>>>> index 59b08ec..a487882 100644
>>>>> --- a/libavfilter/af_atempo.c
>>>>> +++ b/libavfilter/af_atempo.c
>>>>> @@ -914,8 +914,8 @@ static int yae_flush(ATempoContext *atempo,
>>>>>
>>>>>      atempo->state = YAE_FLUSH_OUTPUT;
>>>>> 
>>>>> -    if (atempo->position[0] == frag->position[0] + frag->nsamples &&
>>>>> -        atempo->position[1] == frag->position[1] + frag->nsamples) {
>>>>> +    if (atempo->position[0] >= frag->position[0] + frag->nsamples &&
>>>>> +        atempo->position[1] >= frag->position[1] + frag->nsamples) {
>>>>>          // the current fragment is already flushed:
>>>>>          return 0;
>>>>>      }
>>>> 
>>>> Thanks, this indeed fixes the assertion I came accross.
>>> 
>>> Hmm, this patch seems to cause cut off data at the end, as reported in
>>> https://trac.ffmpeg.org/ticket/6540
>>> 
>>> Pavel, would you mind taking a look?
>>> 
>>> Thanks,
>>> Marton
>> 
>> Sure, but it will probably have to wait until the weekend.
>>
>>      Pavel.
>
>
>
> You can probably revert 4240e5b047379b29c33dd3f4438bc4e610527b83 -- I tried 
> it locally and I no longer see the false assertion trigger it was supposed to 
> fix.  Something must have changed elsewhere.

You can still reproduce the assertion with a sligthly different command 
line after reverting:

./ffmpeg -f lavfi -i sine=d=1 -af aselect=e=0,atempo=0.5 -y atempo.wav

Regards,
Marton


More information about the ffmpeg-devel mailing list