aboutsummaryrefslogtreecommitdiffstats
path: root/libswscale/utils.h
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2025-01-22 12:12:48 -0300
committerJames Almer <jamrial@gmail.com>2025-01-22 12:15:18 -0300
commite20ee9f9aec94f8cea1bf4fd8ed3fb096fb205e5 (patch)
tree3d6152230af2d66403adcb175d02b91347b0b81e /libswscale/utils.h
parentabdc20727c22433e9a3368359dccc61da835c66a (diff)
downloadffmpeg-e20ee9f9aec94f8cea1bf4fd8ed3fb096fb205e5.tar.gz
swscale/swscale: don't reject scaling when color parameters are not supported but conversion is not required
Values in csp, prim, trc, etc, are irrelevant if there's no conversion needed. Reviewed-by: Niklas Haas <ffmpeg@haasn.xyz> Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libswscale/utils.h')
-rw-r--r--libswscale/utils.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/libswscale/utils.h b/libswscale/utils.h
index d76fea1133..8e0cdf26ec 100644
--- a/libswscale/utils.h
+++ b/libswscale/utils.h
@@ -98,12 +98,10 @@ static inline int ff_color_equal(const SwsColor *c1, const SwsColor *c2)
ff_prim_equal(&c1->gamut, &c2->gamut);
}
-/* Tests only the static components of a colorspace, ignoring per-frame data */
-static inline int ff_fmt_equal(const SwsFormat *fmt1, const SwsFormat *fmt2)
+/* Tests only the static components of a colorspace, ignoring dimensions and per-frame data */
+static inline int ff_props_equal(const SwsFormat *fmt1, const SwsFormat *fmt2)
{
- return fmt1->width == fmt2->width &&
- fmt1->height == fmt2->height &&
- fmt1->interlaced == fmt2->interlaced &&
+ return fmt1->interlaced == fmt2->interlaced &&
fmt1->format == fmt2->format &&
fmt1->range == fmt2->range &&
fmt1->csp == fmt2->csp &&
@@ -111,6 +109,14 @@ static inline int ff_fmt_equal(const SwsFormat *fmt1, const SwsFormat *fmt2)
ff_color_equal(&fmt1->color, &fmt2->color);
}
+/* Tests only the static components of a colorspace, ignoring per-frame data */
+static inline int ff_fmt_equal(const SwsFormat *fmt1, const SwsFormat *fmt2)
+{
+ return fmt1->width == fmt2->width &&
+ fmt1->height == fmt2->height &&
+ ff_props_equal(fmt1, fmt2);
+}
+
static inline int ff_fmt_align(enum AVPixelFormat fmt)
{
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(fmt);