summaryrefslogtreecommitdiffstats
path: root/libmpcodecs/img_format.c
diff options
context:
space:
mode:
authorUoti Urpala <uau@mplayer2.org>2011-06-26 01:22:53 +0300
committerUoti Urpala <uau@mplayer2.org>2011-06-26 06:27:50 +0300
commitaba8a1838aa882dace748a7402caf3087dc1f25f (patch)
treeacec9c61029e0aec6fdfb76763cc83db9968daee /libmpcodecs/img_format.c
parent949626ee4608792ae7a4b2fe0a97cb593a9c3132 (diff)
downloadmpv-aba8a1838aa882dace748a7402caf3087dc1f25f.tar.bz2
mpv-aba8a1838aa882dace748a7402caf3087dc1f25f.tar.xz
video/colorspaces: add new 9/10-bit formats from libavcodec
Add new internal 9/10-bit IMGFMT values and mappings to the corresponding libav* PIX_FMT_* values. Partially based on a patch from Arne Bochem <arneb.mp@ccan.de>.
Diffstat (limited to 'libmpcodecs/img_format.c')
-rw-r--r--libmpcodecs/img_format.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/libmpcodecs/img_format.c b/libmpcodecs/img_format.c
index df47ce043b..09711e5270 100644
--- a/libmpcodecs/img_format.c
+++ b/libmpcodecs/img_format.c
@@ -59,10 +59,20 @@ const char *vo_format_name(int format)
case IMGFMT_Y8: return "Planar Y8";
case IMGFMT_420P16_LE: return "Planar 420P 16-bit little-endian";
case IMGFMT_420P16_BE: return "Planar 420P 16-bit big-endian";
+ case IMGFMT_420P10_LE: return "Planar 420P 10-bit little-endian";
+ case IMGFMT_420P10_BE: return "Planar 420P 10-bit big-endian";
+ case IMGFMT_420P9_LE: return "Planar 420P 9-bit little-endian";
+ case IMGFMT_420P9_BE: return "Planar 420P 9-bit big-endian";
case IMGFMT_422P16_LE: return "Planar 422P 16-bit little-endian";
case IMGFMT_422P16_BE: return "Planar 422P 16-bit big-endian";
+ case IMGFMT_422P10_LE: return "Planar 422P 10-bit little-endian";
+ case IMGFMT_422P10_BE: return "Planar 422P 10-bit big-endian";
case IMGFMT_444P16_LE: return "Planar 444P 16-bit little-endian";
case IMGFMT_444P16_BE: return "Planar 444P 16-bit big-endian";
+ case IMGFMT_444P10_LE: return "Planar 444P 10-bit little-endian";
+ case IMGFMT_444P10_BE: return "Planar 444P 10-bit big-endian";
+ case IMGFMT_444P9_LE: return "Planar 444P 9-bit little-endian";
+ case IMGFMT_444P9_BE: return "Planar 444P 9-bit big-endian";
case IMGFMT_420A: return "Planar 420P with alpha";
case IMGFMT_444P: return "Planar 444P";
case IMGFMT_422P: return "Planar 422P";
@@ -116,6 +126,10 @@ int mp_get_chroma_shift(int format, int *x_shift, int *y_shift)
switch (format) {
case IMGFMT_420P16_LE:
case IMGFMT_420P16_BE:
+ case IMGFMT_420P10_LE:
+ case IMGFMT_420P10_BE:
+ case IMGFMT_420P9_LE:
+ case IMGFMT_420P9_BE:
bpp_factor = 2;
case IMGFMT_420A:
case IMGFMT_I420:
@@ -131,6 +145,10 @@ int mp_get_chroma_shift(int format, int *x_shift, int *y_shift)
break;
case IMGFMT_444P16_LE:
case IMGFMT_444P16_BE:
+ case IMGFMT_444P10_LE:
+ case IMGFMT_444P10_BE:
+ case IMGFMT_444P9_LE:
+ case IMGFMT_444P9_BE:
bpp_factor = 2;
case IMGFMT_444P:
xs = 0;
@@ -138,6 +156,8 @@ int mp_get_chroma_shift(int format, int *x_shift, int *y_shift)
break;
case IMGFMT_422P16_LE:
case IMGFMT_422P16_BE:
+ case IMGFMT_422P10_LE:
+ case IMGFMT_422P10_BE:
bpp_factor = 2;
case IMGFMT_422P:
xs = 1;