diff mbox

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

Message ID 20170904024431.19112-2-pkoshevoy@gmail.com
State New
Headers show

Commit Message

Pavel Koshevoy Sept. 4, 2017, 2:44 a.m. UTC
From: Pavel Koshevoy <pkoshevoy@gmail.com>

Steps to reproduce:
1. revert 4240e5b047379b29c33dd3f4438bc4e610527b83
2. ./ffmpeg -f lavfi -i sine=d=1 -af aselect=e=0,atempo=0.5 -y atempo.wav
---
 libavfilter/af_atempo.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Marton Balint Sept. 5, 2017, 7:01 p.m. UTC | #1
On Sun, 3 Sep 2017, pkoshevoy@gmail.com wrote:

> From: Pavel Koshevoy <pkoshevoy@gmail.com>
>
> Steps to reproduce:
> 1. revert 4240e5b047379b29c33dd3f4438bc4e610527b83
> 2. ./ffmpeg -f lavfi -i sine=d=1 -af aselect=e=0,atempo=0.5 -y atempo.wav
> ---
> libavfilter/af_atempo.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c
> index 9eee8a63a8..41c8c0382a 100644
> --- a/libavfilter/af_atempo.c
> +++ b/libavfilter/af_atempo.c
> @@ -914,6 +914,11 @@ static int yae_flush(ATempoContext *atempo,
>
>     atempo->state = YAE_FLUSH_OUTPUT;
> 
> +    if (!atempo->nfrag) {
> +      // there is nothing to flush:
> +      return 0;
> +    }
> +
>     if (atempo->position[0] == frag->position[0] + frag->nsamples &&
>         atempo->position[1] == frag->position[1] + frag->nsamples) {
>         // the current fragment is already flushed:

Thanks, this does the trick. Will apply in 1-2 days.

Regards,
Marton
Marton Balint Sept. 6, 2017, 10:09 p.m. UTC | #2
On Tue, 5 Sep 2017, Marton Balint wrote:

>
> On Sun, 3 Sep 2017, pkoshevoy@gmail.com wrote:
>
>> From: Pavel Koshevoy <pkoshevoy@gmail.com>
>>
>> Steps to reproduce:
>> 1. revert 4240e5b047379b29c33dd3f4438bc4e610527b83
>> 2. ./ffmpeg -f lavfi -i sine=d=1 -af aselect=e=0,atempo=0.5 -y atempo.wav
>> ---
>> libavfilter/af_atempo.c | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c
>> index 9eee8a63a8..41c8c0382a 100644
>> --- a/libavfilter/af_atempo.c
>> +++ b/libavfilter/af_atempo.c
>> @@ -914,6 +914,11 @@ static int yae_flush(ATempoContext *atempo,
>>
>>     atempo->state = YAE_FLUSH_OUTPUT;
>> 
>> +    if (!atempo->nfrag) {
>> +      // there is nothing to flush:
>> +      return 0;
>> +    }
>> +
>>     if (atempo->position[0] == frag->position[0] + frag->nsamples &&
>>         atempo->position[1] == frag->position[1] + frag->nsamples) {
>>         // the current fragment is already flushed:
>
> Thanks, this does the trick. Will apply in 1-2 days.

Applied the series, thanks.

Marton
diff mbox

Patch

diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c
index 9eee8a63a8..41c8c0382a 100644
--- a/libavfilter/af_atempo.c
+++ b/libavfilter/af_atempo.c
@@ -914,6 +914,11 @@  static int yae_flush(ATempoContext *atempo,
 
     atempo->state = YAE_FLUSH_OUTPUT;
 
+    if (!atempo->nfrag) {
+      // there is nothing to flush:
+      return 0;
+    }
+
     if (atempo->position[0] == frag->position[0] + frag->nsamples &&
         atempo->position[1] == frag->position[1] + frag->nsamples) {
         // the current fragment is already flushed: