summaryrefslogtreecommitdiffstats
path: root/video/fmt-conversion.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2012-12-27 00:58:45 +0100
committerwm4 <wm4@nowhere>2013-01-13 20:04:13 +0100
commit61e59cd92c779a4684ebfa554feacc0a4e8d3c78 (patch)
treeda3120135f37c1b785883e0667b600aea2de4a03 /video/fmt-conversion.c
parent4950513ffecd86626f587c636a36214052485097 (diff)
downloadmpv-61e59cd92c779a4684ebfa554feacc0a4e8d3c78.tar.bz2
mpv-61e59cd92c779a4684ebfa554feacc0a4e8d3c78.tar.xz
imgfmt: add more ffmpeg pixel formats
Most of these probably don't have much actual use, but at least allow images of these formats to be handed to swscale, should any decoder output them.
Diffstat (limited to 'video/fmt-conversion.c')
-rw-r--r--video/fmt-conversion.c53
1 files changed, 51 insertions, 2 deletions
diff --git a/video/fmt-conversion.c b/video/fmt-conversion.c
index cf3aaa7452..c20097224e 100644
--- a/video/fmt-conversion.c
+++ b/video/fmt-conversion.c
@@ -55,11 +55,20 @@ static const struct {
{IMGFMT_RGB4, PIX_FMT_BGR4},
{IMGFMT_PAL8, PIX_FMT_PAL8},
{IMGFMT_GBRP, PIX_FMT_GBRP},
+ {IMGFMT_GBRP9_BE, PIX_FMT_GBRP9BE},
+ {IMGFMT_GBRP9_LE, PIX_FMT_GBRP9LE},
+ {IMGFMT_GBRP10_BE, PIX_FMT_GBRP10BE},
+ {IMGFMT_GBRP10_LE, PIX_FMT_GBRP10LE},
+ {IMGFMT_GBRP16_BE, PIX_FMT_GBRP16BE},
+ {IMGFMT_GBRP16_LE, PIX_FMT_GBRP16LE},
{IMGFMT_YUYV, PIX_FMT_YUYV422},
{IMGFMT_UYVY, PIX_FMT_UYVY422},
{IMGFMT_NV12, PIX_FMT_NV12},
{IMGFMT_NV21, PIX_FMT_NV21},
{IMGFMT_Y8, PIX_FMT_GRAY8},
+ // Support really ancient ffmpeg versions (before e91946ed23dfbb)
+ // Newer versions use PIX_FMT_GRAY8A
+ {IMGFMT_YA8, PIX_FMT_Y400A},
{IMGFMT_Y16_LE, PIX_FMT_GRAY16LE},
{IMGFMT_Y16_BE, PIX_FMT_GRAY16BE},
{IMGFMT_410P, PIX_FMT_YUV410P},
@@ -69,8 +78,6 @@ static const struct {
{IMGFMT_444P, PIX_FMT_YUV444P},
{IMGFMT_440P, PIX_FMT_YUV440P},
- {IMGFMT_420AP, PIX_FMT_YUVA420P},
-
{IMGFMT_420P16_LE, PIX_FMT_YUV420P16LE},
{IMGFMT_420P16_BE, PIX_FMT_YUV420P16BE},
{IMGFMT_420P9_LE, PIX_FMT_YUV420P9LE},
@@ -97,6 +104,34 @@ static const struct {
{IMGFMT_444P, PIX_FMT_YUVJ444P},
{IMGFMT_440P, PIX_FMT_YUVJ440P},
+ {IMGFMT_420AP, PIX_FMT_YUVA420P},
+
+#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(52, 10, 0)
+ {IMGFMT_422AP, PIX_FMT_YUVA422P},
+ {IMGFMT_444AP, PIX_FMT_YUVA444P},
+
+ {IMGFMT_420AP9_BE, AV_PIX_FMT_YUVA420P9BE},
+ {IMGFMT_420AP9_LE, AV_PIX_FMT_YUVA420P9LE},
+ {IMGFMT_420AP10_BE, AV_PIX_FMT_YUVA420P10BE},
+ {IMGFMT_420AP10_LE, AV_PIX_FMT_YUVA420P10LE},
+ {IMGFMT_420AP16_BE, AV_PIX_FMT_YUVA420P16BE},
+ {IMGFMT_420AP16_LE, AV_PIX_FMT_YUVA420P16LE},
+
+ {IMGFMT_422AP9_BE, AV_PIX_FMT_YUVA422P9BE},
+ {IMGFMT_422AP9_LE, AV_PIX_FMT_YUVA422P9LE},
+ {IMGFMT_422AP10_BE, AV_PIX_FMT_YUVA422P10BE},
+ {IMGFMT_422AP10_LE, AV_PIX_FMT_YUVA422P10LE},
+ {IMGFMT_422AP16_BE, AV_PIX_FMT_YUVA422P16BE},
+ {IMGFMT_422AP16_LE, AV_PIX_FMT_YUVA422P16LE},
+
+ {IMGFMT_444AP9_BE, AV_PIX_FMT_YUVA444P9BE},
+ {IMGFMT_444AP9_LE, AV_PIX_FMT_YUVA444P9LE},
+ {IMGFMT_444AP10_BE, AV_PIX_FMT_YUVA444P10BE},
+ {IMGFMT_444AP10_LE, AV_PIX_FMT_YUVA444P10LE},
+ {IMGFMT_444AP16_BE, AV_PIX_FMT_YUVA444P16BE},
+ {IMGFMT_444AP16_LE, AV_PIX_FMT_YUVA444P16LE},
+#endif
+
// ffmpeg only
#if LIBAVUTIL_VERSION_MICRO >= 100
{IMGFMT_420P12_LE, PIX_FMT_YUV420P12LE},
@@ -112,7 +147,21 @@ static const struct {
{IMGFMT_444P14_BE, PIX_FMT_YUV444P14BE},
{IMGFMT_444P14_LE, PIX_FMT_YUV444P14LE},
+ {IMGFMT_GBRP12_BE, PIX_FMT_GBRP12BE},
+ {IMGFMT_GBRP12_LE, PIX_FMT_GBRP12LE},
+ {IMGFMT_GBRP14_BE, PIX_FMT_GBRP14BE},
+ {IMGFMT_GBRP14_LE, PIX_FMT_GBRP14LE},
+
{IMGFMT_BGR0, PIX_FMT_BGR0},
+ {IMGFMT_0RGB, PIX_FMT_0RGB},
+ {IMGFMT_RGB0, PIX_FMT_RGB0},
+ {IMGFMT_0BGR, PIX_FMT_0BGR},
+ {IMGFMT_BGR0, PIX_FMT_BGR0},
+
+ {IMGFMT_RGBA64_BE, PIX_FMT_RGBA64BE},
+ {IMGFMT_RGBA64_LE, PIX_FMT_RGBA64LE},
+ {IMGFMT_BGRA64_BE, PIX_FMT_BGRA64BE},
+ {IMGFMT_BGRA64_LE, PIX_FMT_BGRA64LE},
#endif
{IMGFMT_VDPAU_MPEG1, PIX_FMT_VDPAU_MPEG1},