summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/sws_utils.c8
-rw-r--r--libmpcodecs/sws_utils.h9
2 files changed, 15 insertions, 2 deletions
diff --git a/libmpcodecs/sws_utils.c b/libmpcodecs/sws_utils.c
index 65b079dd84..d7500efe2e 100644
--- a/libmpcodecs/sws_utils.c
+++ b/libmpcodecs/sws_utils.c
@@ -131,6 +131,14 @@ struct SwsContext *sws_getContextFromCmdLine_hq(int srcW, int srcH,
SWS_ACCURATE_RND | SWS_BITEXACT);
}
+bool mp_sws_supported_format(int imgfmt)
+{
+ enum PixelFormat av_format = imgfmt2pixfmt(imgfmt);
+
+ return av_format != PIX_FMT_NONE && sws_isSupportedInput(av_format)
+ && sws_isSupportedOutput(av_format);
+}
+
void mp_image_swscale(struct mp_image *dst,
const struct mp_image *src,
struct mp_csp_details *csp,
diff --git a/libmpcodecs/sws_utils.h b/libmpcodecs/sws_utils.h
index b2c55eb407..70b7d0b7fb 100644
--- a/libmpcodecs/sws_utils.h
+++ b/libmpcodecs/sws_utils.h
@@ -1,6 +1,7 @@
#ifndef MPLAYER_SWS_UTILS_H
#define MPLAYER_SWS_UTILS_H
+#include <stdbool.h>
#include <libswscale/swscale.h>
struct mp_image;
@@ -22,8 +23,12 @@ struct SwsContext *sws_getContextFromCmdLine_hq(int srcW, int srcH,
int dstFormat);
int mp_sws_set_colorspace(struct SwsContext *sws, struct mp_csp_details *csp);
-void mp_image_swscale(struct mp_image *dst, const struct mp_image *src,
- struct mp_csp_details *csp, int my_sws_flags);
+bool mp_sws_supported_format(int imgfmt);
+
+void mp_image_swscale(struct mp_image *dst,
+ const struct mp_image *src,
+ struct mp_csp_details *csp,
+ int my_sws_flags);
#endif /* MP_SWS_UTILS_H */