]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/buffersink.c
avcodec/opusdec: Fix extra samples read index
[ffmpeg] / libavfilter / buffersink.c
index 3206bd9dfe406141901e8f6a215d0655009d7fc5..5db86abd8a1db1587992927f872e211b3d63b8b9 100644 (file)
@@ -302,13 +302,13 @@ static int vsink_query_formats(AVFilterContext *ctx)
     CHECK_LIST_SIZE(pixel_fmts)
     if (buf->pixel_fmts_size) {
         for (i = 0; i < NB_ITEMS(buf->pixel_fmts); i++)
-            if ((ret = ff_add_format(&formats, buf->pixel_fmts[i])) < 0) {
-                ff_formats_unref(&formats);
+            if ((ret = ff_add_format(&formats, buf->pixel_fmts[i])) < 0)
                 return ret;
-            }
-        ff_set_common_formats(ctx, formats);
+        if ((ret = ff_set_common_formats(ctx, formats)) < 0)
+            return ret;
     } else {
-        ff_default_query_formats(ctx);
+        if ((ret = ff_default_query_formats(ctx)) < 0)
+            return ret;
     }
 
     return 0;
@@ -346,25 +346,20 @@ static int asink_query_formats(AVFilterContext *ctx)
 
     if (buf->sample_fmts_size) {
         for (i = 0; i < NB_ITEMS(buf->sample_fmts); i++)
-            if ((ret = ff_add_format(&formats, buf->sample_fmts[i])) < 0) {
-                ff_formats_unref(&formats);
+            if ((ret = ff_add_format(&formats, buf->sample_fmts[i])) < 0)
                 return ret;
-            }
-        ff_set_common_formats(ctx, formats);
+        if ((ret = ff_set_common_formats(ctx, formats)) < 0)
+            return ret;
     }
 
     if (buf->channel_layouts_size || buf->channel_counts_size ||
         buf->all_channel_counts) {
         for (i = 0; i < NB_ITEMS(buf->channel_layouts); i++)
-            if ((ret = ff_add_channel_layout(&layouts, buf->channel_layouts[i])) < 0) {
-                ff_channel_layouts_unref(&layouts);
+            if ((ret = ff_add_channel_layout(&layouts, buf->channel_layouts[i])) < 0)
                 return ret;
-            }
         for (i = 0; i < NB_ITEMS(buf->channel_counts); i++)
-            if ((ret = ff_add_channel_layout(&layouts, FF_COUNT2LAYOUT(buf->channel_counts[i]))) < 0) {
-                ff_channel_layouts_unref(&layouts);
+            if ((ret = ff_add_channel_layout(&layouts, FF_COUNT2LAYOUT(buf->channel_counts[i]))) < 0)
                 return ret;
-            }
         if (buf->all_channel_counts) {
             if (layouts)
                 av_log(ctx, AV_LOG_WARNING,
@@ -372,17 +367,17 @@ static int asink_query_formats(AVFilterContext *ctx)
             else if (!(layouts = ff_all_channel_counts()))
                 return AVERROR(ENOMEM);
         }
-        ff_set_common_channel_layouts(ctx, layouts);
+        if ((ret = ff_set_common_channel_layouts(ctx, layouts)) < 0)
+            return ret;
     }
 
     if (buf->sample_rates_size) {
         formats = NULL;
         for (i = 0; i < NB_ITEMS(buf->sample_rates); i++)
-            if ((ret = ff_add_format(&formats, buf->sample_rates[i])) < 0) {
-                ff_formats_unref(&formats);
+            if ((ret = ff_add_format(&formats, buf->sample_rates[i])) < 0)
                 return ret;
-            }
-        ff_set_common_samplerates(ctx, formats);
+        if ((ret = ff_set_common_samplerates(ctx, formats)) < 0)
+            return ret;
     }
 
     return 0;