summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-09-27 03:02:17 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-10-02 16:29:11 +0200
commite1ddaf229d801bf9c1b09e46841cbba300b945b6 (patch)
treef065fa655ab9e5ca07188860add93060a7d57456
parent3a82bb8128773b82f50194cad6b3f3405084f59c (diff)
avfilter/formats: Don't unnecessarily reget pixfmt descriptor
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r--libavfilter/formats.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libavfilter/formats.c b/libavfilter/formats.c
index 1d2a51c0af..29e318aa3b 100644
--- a/libavfilter/formats.c
+++ b/libavfilter/formats.c
@@ -113,9 +113,9 @@ static int merge_formats_internal(AVFilterFormats *a, AVFilterFormats *b,
To avoid that, pretend that there are no common formats to force the
insertion of a conversion filter. */
if (type == AVMEDIA_TYPE_VIDEO)
- for (i = 0; i < a->nb_formats; i++)
+ for (i = 0; i < a->nb_formats; i++) {
+ const AVPixFmtDescriptor *const adesc = av_pix_fmt_desc_get(a->formats[i]);
for (j = 0; j < b->nb_formats; j++) {
- const AVPixFmtDescriptor *adesc = av_pix_fmt_desc_get(a->formats[i]);
const AVPixFmtDescriptor *bdesc = av_pix_fmt_desc_get(b->formats[j]);
alpha2 |= adesc->flags & bdesc->flags & AV_PIX_FMT_FLAG_ALPHA;
chroma2|= adesc->nb_components > 1 && bdesc->nb_components > 1;
@@ -124,6 +124,7 @@ static int merge_formats_internal(AVFilterFormats *a, AVFilterFormats *b,
chroma1|= adesc->nb_components > 1;
}
}
+ }
// If chroma or alpha can be lost through merging then do not merge
if (alpha2 > alpha1 || chroma2 > chroma1)