[FFmpeg-devel] [PATCH 19/21] avfilter: Remove redundant ff_formats/channel_layouts_unref()

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Sun Aug 9 18:57:46 EEST 2020


ff_add_format() and ff_add_channel_layout() already unref the list upon
error.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
---
These ff_formats/channel_layouts_unref() also didn't do anything before
this patchset, as none of these lists has any owner.

 libavfilter/af_aformat.c       | 9 ++++-----
 libavfilter/vf_shuffleplanes.c | 1 -
 libavfilter/vf_weave.c         | 1 -
 3 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/libavfilter/af_aformat.c b/libavfilter/af_aformat.c
index 1a702778c3..0ea470014c 100644
--- a/libavfilter/af_aformat.c
+++ b/libavfilter/af_aformat.c
@@ -60,7 +60,7 @@ static const AVOption aformat_options[] = {
 
 AVFILTER_DEFINE_CLASS(aformat);
 
-#define PARSE_FORMATS(str, type, list, add_to_list, unref_fn, get_fmt, none, desc)    \
+#define PARSE_FORMATS(str, type, list, add_to_list, get_fmt, none, desc)    \
 do {                                                                        \
     char *next, *cur = str, sep;                                            \
     int ret;                                                                \
@@ -83,7 +83,6 @@ do {                                                                        \
             return AVERROR(EINVAL);                                         \
         }                                                                   \
         if ((ret = add_to_list(&list, fmt)) < 0) {                          \
-            unref_fn(&list);                                                \
             return ret;                                                     \
         }                                                                   \
                                                                             \
@@ -102,11 +101,11 @@ static av_cold int init(AVFilterContext *ctx)
     AFormatContext *s = ctx->priv;
 
     PARSE_FORMATS(s->formats_str, enum AVSampleFormat, s->formats,
-                  ff_add_format, ff_formats_unref, av_get_sample_fmt, AV_SAMPLE_FMT_NONE, "sample format");
-    PARSE_FORMATS(s->sample_rates_str, int, s->sample_rates, ff_add_format, ff_formats_unref,
+                  ff_add_format, av_get_sample_fmt, AV_SAMPLE_FMT_NONE, "sample format");
+    PARSE_FORMATS(s->sample_rates_str, int, s->sample_rates, ff_add_format,
                   get_sample_rate, 0, "sample rate");
     PARSE_FORMATS(s->channel_layouts_str, uint64_t, s->channel_layouts,
-                  ff_add_channel_layout, ff_channel_layouts_unref, av_get_channel_layout, 0,
+                  ff_add_channel_layout, av_get_channel_layout, 0,
                   "channel layout");
 
     return 0;
diff --git a/libavfilter/vf_shuffleplanes.c b/libavfilter/vf_shuffleplanes.c
index 6c718893ce..c5a376d50b 100644
--- a/libavfilter/vf_shuffleplanes.c
+++ b/libavfilter/vf_shuffleplanes.c
@@ -64,7 +64,6 @@ static int query_formats(AVFilterContext *ctx)
             if (i != 4)
                 continue;
             if ((ret = ff_add_format(&formats, fmt)) < 0) {
-                ff_formats_unref(&formats);
                 return ret;
             }
         }
diff --git a/libavfilter/vf_weave.c b/libavfilter/vf_weave.c
index 8951b09095..8d4eb3d5a4 100644
--- a/libavfilter/vf_weave.c
+++ b/libavfilter/vf_weave.c
@@ -60,7 +60,6 @@ static int query_formats(AVFilterContext *ctx)
         if (!(desc->flags & AV_PIX_FMT_FLAG_PAL) &&
             !(desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) {
             if ((ret = ff_add_format(&formats, fmt)) < 0) {
-                ff_formats_unref(&formats);
                 return ret;
             }
         }
-- 
2.20.1



More information about the ffmpeg-devel mailing list