summaryrefslogtreecommitdiffstats
path: root/video/fmt-conversion.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-11-29 17:39:57 +0100
committerwm4 <wm4@nowhere>2013-11-29 17:39:57 +0100
commit597b8a355002306486c5d4a19890bb403b5d3ded (patch)
tree17de2fbbb77868cb184b6a0f2eca5fffd14d2e9b /video/fmt-conversion.c
parentf1072e7629c56e6fdd9aab40be15fe9800789b1a (diff)
downloadmpv-597b8a355002306486c5d4a19890bb403b5d3ded.tar.bz2
mpv-597b8a355002306486c5d4a19890bb403b5d3ded.tar.xz
Take care of some libavutil deprecations, drop support for FFmpeg 1.0
PIX_FMT_* -> AV_PIX_FMT_* (except some pixdesc constants) enum PixelFormat -> enum AVPixelFormat Losen some version checks in certain newer pixel formats. av_pix_fmt_descriptors -> av_pix_fmt_desc_get This removes support for FFmpeg 1.0.x, which is even older than Libav 9.x. Support for it probably was already broken, and its libswresample was rejected by our build system anyway because it's broken. Mostly untested; it does compile with Libav 9.9.
Diffstat (limited to 'video/fmt-conversion.c')
-rw-r--r--video/fmt-conversion.c258
1 files changed, 129 insertions, 129 deletions
diff --git a/video/fmt-conversion.c b/video/fmt-conversion.c
index 371e81c399..ab115b0010 100644
--- a/video/fmt-conversion.c
+++ b/video/fmt-conversion.c
@@ -24,92 +24,92 @@
static const struct {
int fmt;
- enum PixelFormat pix_fmt;
+ enum AVPixelFormat pix_fmt;
} conversion_map[] = {
- {IMGFMT_ARGB, PIX_FMT_ARGB},
- {IMGFMT_BGRA, PIX_FMT_BGRA},
- {IMGFMT_BGR24, PIX_FMT_BGR24},
- {IMGFMT_BGR16_BE, PIX_FMT_RGB565BE},
- {IMGFMT_BGR16_LE, PIX_FMT_RGB565LE},
- {IMGFMT_BGR15_BE, PIX_FMT_RGB555BE},
- {IMGFMT_BGR15_LE, PIX_FMT_RGB555LE},
- {IMGFMT_BGR12_BE, PIX_FMT_RGB444BE},
- {IMGFMT_BGR12_LE, PIX_FMT_RGB444LE},
- {IMGFMT_BGR8, PIX_FMT_RGB8},
- {IMGFMT_BGR4, PIX_FMT_RGB4},
- {IMGFMT_MONO, PIX_FMT_MONOBLACK},
- {IMGFMT_MONO_W, PIX_FMT_MONOWHITE},
- {IMGFMT_RGB4_BYTE, PIX_FMT_BGR4_BYTE},
- {IMGFMT_BGR4_BYTE, PIX_FMT_RGB4_BYTE},
- {IMGFMT_RGB48_LE, PIX_FMT_RGB48LE},
- {IMGFMT_RGB48_BE, PIX_FMT_RGB48BE},
- {IMGFMT_ABGR, PIX_FMT_ABGR},
- {IMGFMT_RGBA, PIX_FMT_RGBA},
- {IMGFMT_RGB24, PIX_FMT_RGB24},
- {IMGFMT_RGB16_BE, PIX_FMT_BGR565BE},
- {IMGFMT_RGB16_LE, PIX_FMT_BGR565LE},
- {IMGFMT_RGB15_BE, PIX_FMT_BGR555BE},
- {IMGFMT_RGB15_LE, PIX_FMT_BGR555LE},
- {IMGFMT_RGB12_BE, PIX_FMT_BGR444BE},
- {IMGFMT_RGB12_LE, PIX_FMT_BGR444LE},
- {IMGFMT_RGB8, PIX_FMT_BGR8},
- {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},
+ {IMGFMT_ARGB, AV_PIX_FMT_ARGB},
+ {IMGFMT_BGRA, AV_PIX_FMT_BGRA},
+ {IMGFMT_BGR24, AV_PIX_FMT_BGR24},
+ {IMGFMT_BGR16_BE, AV_PIX_FMT_RGB565BE},
+ {IMGFMT_BGR16_LE, AV_PIX_FMT_RGB565LE},
+ {IMGFMT_BGR15_BE, AV_PIX_FMT_RGB555BE},
+ {IMGFMT_BGR15_LE, AV_PIX_FMT_RGB555LE},
+ {IMGFMT_BGR12_BE, AV_PIX_FMT_RGB444BE},
+ {IMGFMT_BGR12_LE, AV_PIX_FMT_RGB444LE},
+ {IMGFMT_BGR8, AV_PIX_FMT_RGB8},
+ {IMGFMT_BGR4, AV_PIX_FMT_RGB4},
+ {IMGFMT_MONO, AV_PIX_FMT_MONOBLACK},
+ {IMGFMT_MONO_W, AV_PIX_FMT_MONOWHITE},
+ {IMGFMT_RGB4_BYTE, AV_PIX_FMT_BGR4_BYTE},
+ {IMGFMT_BGR4_BYTE, AV_PIX_FMT_RGB4_BYTE},
+ {IMGFMT_RGB48_LE, AV_PIX_FMT_RGB48LE},
+ {IMGFMT_RGB48_BE, AV_PIX_FMT_RGB48BE},
+ {IMGFMT_ABGR, AV_PIX_FMT_ABGR},
+ {IMGFMT_RGBA, AV_PIX_FMT_RGBA},
+ {IMGFMT_RGB24, AV_PIX_FMT_RGB24},
+ {IMGFMT_RGB16_BE, AV_PIX_FMT_BGR565BE},
+ {IMGFMT_RGB16_LE, AV_PIX_FMT_BGR565LE},
+ {IMGFMT_RGB15_BE, AV_PIX_FMT_BGR555BE},
+ {IMGFMT_RGB15_LE, AV_PIX_FMT_BGR555LE},
+ {IMGFMT_RGB12_BE, AV_PIX_FMT_BGR444BE},
+ {IMGFMT_RGB12_LE, AV_PIX_FMT_BGR444LE},
+ {IMGFMT_RGB8, AV_PIX_FMT_BGR8},
+ {IMGFMT_RGB4, AV_PIX_FMT_BGR4},
+ {IMGFMT_PAL8, AV_PIX_FMT_PAL8},
+ {IMGFMT_GBRP, AV_PIX_FMT_GBRP},
+ {IMGFMT_GBRP9_BE, AV_PIX_FMT_GBRP9BE},
+ {IMGFMT_GBRP9_LE, AV_PIX_FMT_GBRP9LE},
+ {IMGFMT_GBRP10_BE, AV_PIX_FMT_GBRP10BE},
+ {IMGFMT_GBRP10_LE, AV_PIX_FMT_GBRP10LE},
+ {IMGFMT_GBRP16_BE, AV_PIX_FMT_GBRP16BE},
+ {IMGFMT_GBRP16_LE, AV_PIX_FMT_GBRP16LE},
+ {IMGFMT_YUYV, AV_PIX_FMT_YUYV422},
+ {IMGFMT_UYVY, AV_PIX_FMT_UYVY422},
+ {IMGFMT_NV12, AV_PIX_FMT_NV12},
+ {IMGFMT_NV21, AV_PIX_FMT_NV21},
+ {IMGFMT_Y8, AV_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},
- {IMGFMT_420P, PIX_FMT_YUV420P},
- {IMGFMT_411P, PIX_FMT_YUV411P},
- {IMGFMT_422P, PIX_FMT_YUV422P},
- {IMGFMT_444P, PIX_FMT_YUV444P},
- {IMGFMT_440P, PIX_FMT_YUV440P},
-
- {IMGFMT_420P16_LE, PIX_FMT_YUV420P16LE},
- {IMGFMT_420P16_BE, PIX_FMT_YUV420P16BE},
- {IMGFMT_420P9_LE, PIX_FMT_YUV420P9LE},
- {IMGFMT_420P9_BE, PIX_FMT_YUV420P9BE},
- {IMGFMT_420P10_LE, PIX_FMT_YUV420P10LE},
- {IMGFMT_420P10_BE, PIX_FMT_YUV420P10BE},
- {IMGFMT_422P10_LE, PIX_FMT_YUV422P10LE},
- {IMGFMT_422P10_BE, PIX_FMT_YUV422P10BE},
- {IMGFMT_444P9_BE , PIX_FMT_YUV444P9BE},
- {IMGFMT_444P9_LE , PIX_FMT_YUV444P9LE},
- {IMGFMT_444P10_BE, PIX_FMT_YUV444P10BE},
- {IMGFMT_444P10_LE, PIX_FMT_YUV444P10LE},
- {IMGFMT_422P16_LE, PIX_FMT_YUV422P16LE},
- {IMGFMT_422P16_BE, PIX_FMT_YUV422P16BE},
- {IMGFMT_422P9_LE, PIX_FMT_YUV422P9LE},
- {IMGFMT_422P9_BE, PIX_FMT_YUV422P9BE},
- {IMGFMT_444P16_LE, PIX_FMT_YUV444P16LE},
- {IMGFMT_444P16_BE, PIX_FMT_YUV444P16BE},
+ // Newer versions use AV_PIX_FMT_GRAY8A
+ {IMGFMT_YA8, AV_PIX_FMT_Y400A},
+ {IMGFMT_Y16_LE, AV_PIX_FMT_GRAY16LE},
+ {IMGFMT_Y16_BE, AV_PIX_FMT_GRAY16BE},
+ {IMGFMT_410P, AV_PIX_FMT_YUV410P},
+ {IMGFMT_420P, AV_PIX_FMT_YUV420P},
+ {IMGFMT_411P, AV_PIX_FMT_YUV411P},
+ {IMGFMT_422P, AV_PIX_FMT_YUV422P},
+ {IMGFMT_444P, AV_PIX_FMT_YUV444P},
+ {IMGFMT_440P, AV_PIX_FMT_YUV440P},
+
+ {IMGFMT_420P16_LE, AV_PIX_FMT_YUV420P16LE},
+ {IMGFMT_420P16_BE, AV_PIX_FMT_YUV420P16BE},
+ {IMGFMT_420P9_LE, AV_PIX_FMT_YUV420P9LE},
+ {IMGFMT_420P9_BE, AV_PIX_FMT_YUV420P9BE},
+ {IMGFMT_420P10_LE, AV_PIX_FMT_YUV420P10LE},
+ {IMGFMT_420P10_BE, AV_PIX_FMT_YUV420P10BE},
+ {IMGFMT_422P10_LE, AV_PIX_FMT_YUV422P10LE},
+ {IMGFMT_422P10_BE, AV_PIX_FMT_YUV422P10BE},
+ {IMGFMT_444P9_BE , AV_PIX_FMT_YUV444P9BE},
+ {IMGFMT_444P9_LE , AV_PIX_FMT_YUV444P9LE},
+ {IMGFMT_444P10_BE, AV_PIX_FMT_YUV444P10BE},
+ {IMGFMT_444P10_LE, AV_PIX_FMT_YUV444P10LE},
+ {IMGFMT_422P16_LE, AV_PIX_FMT_YUV422P16LE},
+ {IMGFMT_422P16_BE, AV_PIX_FMT_YUV422P16BE},
+ {IMGFMT_422P9_LE, AV_PIX_FMT_YUV422P9LE},
+ {IMGFMT_422P9_BE, AV_PIX_FMT_YUV422P9BE},
+ {IMGFMT_444P16_LE, AV_PIX_FMT_YUV444P16LE},
+ {IMGFMT_444P16_BE, AV_PIX_FMT_YUV444P16BE},
// YUVJ are YUV formats that use the full Y range. Decoder color range
// information is used instead. Deprecated in ffmpeg.
- {IMGFMT_420P, PIX_FMT_YUVJ420P},
- {IMGFMT_422P, PIX_FMT_YUVJ422P},
- {IMGFMT_444P, PIX_FMT_YUVJ444P},
- {IMGFMT_440P, PIX_FMT_YUVJ440P},
+ {IMGFMT_420P, AV_PIX_FMT_YUVJ420P},
+ {IMGFMT_422P, AV_PIX_FMT_YUVJ422P},
+ {IMGFMT_444P, AV_PIX_FMT_YUVJ444P},
+ {IMGFMT_440P, AV_PIX_FMT_YUVJ440P},
- {IMGFMT_420AP, PIX_FMT_YUVA420P},
+ {IMGFMT_420AP, AV_PIX_FMT_YUVA420P},
#if LIBAVUTIL_VERSION_MICRO >= 100 && LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(52, 10, 0)
- {IMGFMT_422AP, PIX_FMT_YUVA422P},
- {IMGFMT_444AP, PIX_FMT_YUVA444P},
+ {IMGFMT_422AP, AV_PIX_FMT_YUVA422P},
+ {IMGFMT_444AP, AV_PIX_FMT_YUVA444P},
{IMGFMT_420AP9_BE, AV_PIX_FMT_YUVA420P9BE},
{IMGFMT_420AP9_LE, AV_PIX_FMT_YUVA420P9LE},
@@ -140,85 +140,85 @@ static const struct {
#endif
// ffmpeg only
-#if LIBAVUTIL_VERSION_MICRO >= 100 && LIBAVUTIL_VERSION_INT > AV_VERSION_INT(52, 0, 0)
- {IMGFMT_420P12_LE, PIX_FMT_YUV420P12LE},
- {IMGFMT_420P12_BE, PIX_FMT_YUV420P12BE},
- {IMGFMT_420P14_LE, PIX_FMT_YUV420P14LE},
- {IMGFMT_420P14_BE, PIX_FMT_YUV420P14BE},
- {IMGFMT_422P12_LE, PIX_FMT_YUV422P12LE},
- {IMGFMT_422P12_BE, PIX_FMT_YUV422P12BE},
- {IMGFMT_422P14_LE, PIX_FMT_YUV422P14LE},
- {IMGFMT_422P14_BE, PIX_FMT_YUV422P14BE},
- {IMGFMT_444P12_BE, PIX_FMT_YUV444P12BE},
- {IMGFMT_444P12_LE, PIX_FMT_YUV444P12LE},
- {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_RGBA64_BE, PIX_FMT_RGBA64BE},
- {IMGFMT_RGBA64_LE, PIX_FMT_RGBA64LE},
- {IMGFMT_BGRA64_BE, PIX_FMT_BGRA64BE},
- {IMGFMT_BGRA64_LE, PIX_FMT_BGRA64LE},
-
- {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},
+#if LIBAVUTIL_VERSION_MICRO >= 100
+ {IMGFMT_420P12_LE, AV_PIX_FMT_YUV420P12LE},
+ {IMGFMT_420P12_BE, AV_PIX_FMT_YUV420P12BE},
+ {IMGFMT_420P14_LE, AV_PIX_FMT_YUV420P14LE},
+ {IMGFMT_420P14_BE, AV_PIX_FMT_YUV420P14BE},
+ {IMGFMT_422P12_LE, AV_PIX_FMT_YUV422P12LE},
+ {IMGFMT_422P12_BE, AV_PIX_FMT_YUV422P12BE},
+ {IMGFMT_422P14_LE, AV_PIX_FMT_YUV422P14LE},
+ {IMGFMT_422P14_BE, AV_PIX_FMT_YUV422P14BE},
+ {IMGFMT_444P12_BE, AV_PIX_FMT_YUV444P12BE},
+ {IMGFMT_444P12_LE, AV_PIX_FMT_YUV444P12LE},
+ {IMGFMT_444P14_BE, AV_PIX_FMT_YUV444P14BE},
+ {IMGFMT_444P14_LE, AV_PIX_FMT_YUV444P14LE},
+
+ {IMGFMT_GBRP12_BE, AV_PIX_FMT_GBRP12BE},
+ {IMGFMT_GBRP12_LE, AV_PIX_FMT_GBRP12LE},
+ {IMGFMT_GBRP14_BE, AV_PIX_FMT_GBRP14BE},
+ {IMGFMT_GBRP14_LE, AV_PIX_FMT_GBRP14LE},
+
+ {IMGFMT_RGBA64_BE, AV_PIX_FMT_RGBA64BE},
+ {IMGFMT_RGBA64_LE, AV_PIX_FMT_RGBA64LE},
+ {IMGFMT_BGRA64_BE, AV_PIX_FMT_BGRA64BE},
+ {IMGFMT_BGRA64_LE, AV_PIX_FMT_BGRA64LE},
+
+ {IMGFMT_BGR0, AV_PIX_FMT_BGR0},
+ {IMGFMT_0RGB, AV_PIX_FMT_0RGB},
+ {IMGFMT_RGB0, AV_PIX_FMT_RGB0},
+ {IMGFMT_0BGR, AV_PIX_FMT_0BGR},
+ {IMGFMT_BGR0, AV_PIX_FMT_BGR0},
#else
- {IMGFMT_BGR0, PIX_FMT_BGRA},
- {IMGFMT_0RGB, PIX_FMT_ARGB},
- {IMGFMT_RGB0, PIX_FMT_RGBA},
- {IMGFMT_0BGR, PIX_FMT_ABGR},
- {IMGFMT_BGR0, PIX_FMT_BGRA},
+ {IMGFMT_BGR0, AV_PIX_FMT_BGRA},
+ {IMGFMT_0RGB, AV_PIX_FMT_ARGB},
+ {IMGFMT_RGB0, AV_PIX_FMT_RGBA},
+ {IMGFMT_0BGR, AV_PIX_FMT_ABGR},
+ {IMGFMT_BGR0, AV_PIX_FMT_BGRA},
#endif
#if HAVE_AVCODEC_NEW_VDPAU_API
{IMGFMT_VDPAU, AV_PIX_FMT_VDPAU},
#else
- {IMGFMT_VDPAU_MPEG1, PIX_FMT_VDPAU_MPEG1},
- {IMGFMT_VDPAU_MPEG2, PIX_FMT_VDPAU_MPEG2},
- {IMGFMT_VDPAU_H264, PIX_FMT_VDPAU_H264},
- {IMGFMT_VDPAU_WMV3, PIX_FMT_VDPAU_WMV3},
- {IMGFMT_VDPAU_VC1, PIX_FMT_VDPAU_VC1},
- {IMGFMT_VDPAU_MPEG4, PIX_FMT_VDPAU_MPEG4},
+ {IMGFMT_VDPAU_MPEG1, AV_PIX_FMT_VDPAU_MPEG1},
+ {IMGFMT_VDPAU_MPEG2, AV_PIX_FMT_VDPAU_MPEG2},
+ {IMGFMT_VDPAU_H264, AV_PIX_FMT_VDPAU_H264},
+ {IMGFMT_VDPAU_WMV3, AV_PIX_FMT_VDPAU_WMV3},
+ {IMGFMT_VDPAU_VC1, AV_PIX_FMT_VDPAU_VC1},
+ {IMGFMT_VDPAU_MPEG4, AV_PIX_FMT_VDPAU_MPEG4},
// map to an arbitrary but existing vdpau format
- {IMGFMT_VDPAU, PIX_FMT_VDPAU_H264},
+ {IMGFMT_VDPAU, AV_PIX_FMT_VDPAU_H264},
#endif
- {IMGFMT_VDA, PIX_FMT_VDA_VLD},
- {IMGFMT_VAAPI, PIX_FMT_VAAPI_VLD},
+ {IMGFMT_VDA, AV_PIX_FMT_VDA_VLD},
+ {IMGFMT_VAAPI, AV_PIX_FMT_VAAPI_VLD},
- {0, PIX_FMT_NONE}
+ {0, AV_PIX_FMT_NONE}
};
-enum PixelFormat imgfmt2pixfmt(int fmt)
+enum AVPixelFormat imgfmt2pixfmt(int fmt)
{
if (fmt == IMGFMT_NONE)
- return PIX_FMT_NONE;
+ return AV_PIX_FMT_NONE;
int i;
- enum PixelFormat pix_fmt;
+ enum AVPixelFormat pix_fmt;
for (i = 0; conversion_map[i].fmt; i++)
if (conversion_map[i].fmt == fmt)
break;
pix_fmt = conversion_map[i].pix_fmt;
- if (pix_fmt == PIX_FMT_NONE)
+ if (pix_fmt == AV_PIX_FMT_NONE)
mp_msg(MSGT_GLOBAL, MSGL_V, "Unsupported format %s\n", vo_format_name(fmt));
return pix_fmt;
}
-int pixfmt2imgfmt(enum PixelFormat pix_fmt)
+int pixfmt2imgfmt(enum AVPixelFormat pix_fmt)
{
- if (pix_fmt == PIX_FMT_NONE)
+ if (pix_fmt == AV_PIX_FMT_NONE)
return IMGFMT_NONE;
int i;
- for (i = 0; conversion_map[i].pix_fmt != PIX_FMT_NONE; i++)
+ for (i = 0; conversion_map[i].pix_fmt != AV_PIX_FMT_NONE; i++)
if (conversion_map[i].pix_fmt == pix_fmt)
break;
int fmt = conversion_map[i].fmt;