[vlc-commits] Add YUV 4:4:4 16-bit

Jean-Baptiste Kempf git at videolan.org
Tue Feb 18 11:57:36 CET 2014


vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Tue Feb 18 11:43:28 2014 +0100| [31e2279b68ccd5c21d4400aaa79bbe75d5046bca] | committer: Jean-Baptiste Kempf

Add YUV 4:4:4 16-bit

10 bits should be enough for everyone

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=31e2279b68ccd5c21d4400aaa79bbe75d5046bca
---

 include/vlc_fourcc.h |    3 +++
 src/misc/fourcc.c    |   20 +++++++++++++++++++-
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/include/vlc_fourcc.h b/include/vlc_fourcc.h
index 3a79ecd..81b8587 100644
--- a/include/vlc_fourcc.h
+++ b/include/vlc_fourcc.h
@@ -183,6 +183,9 @@
 /* Planar YUV 4:4:4 Y:U:V 10-bit stored on 16 bits */
 #define VLC_CODEC_I444_10L        VLC_FOURCC('I','4','A','L')
 #define VLC_CODEC_I444_10B        VLC_FOURCC('I','4','A','B')
+/* Planar YUV 4:4:4 Y:U:V 16-bit */
+#define VLC_CODEC_I444_16L        VLC_FOURCC('I','4','F','L')
+#define VLC_CODEC_I444_16B        VLC_FOURCC('I','4','F','B')
 /* Planar YUV 4:2:0 Y:U:V full scale */
 #define VLC_CODEC_J420            VLC_FOURCC('J','4','2','0')
 /* Planar YUV 4:2:2 Y:U:V full scale */
diff --git a/src/misc/fourcc.c b/src/misc/fourcc.c
index e4a91c8..397142f 100644
--- a/src/misc/fourcc.c
+++ b/src/misc/fourcc.c
@@ -870,6 +870,12 @@ static const staticentry_t p_list_video[] = {
     B(VLC_CODEC_I444_10B, "Planar 4:4:4 YUV 10-bit BE"),
         A("I4AB"),
 
+    B(VLC_CODEC_I444_16L, "Planar 4:4:4 YUV 16-bit LE"),
+        A("I4FL"),
+    B(VLC_CODEC_I444_16B, "Planar 4:4:4 YUV 16-bit BE"),
+        A("I4FB"),
+
+
     /* XYZ color space */
     B(VLC_CODEC_XYZ12, "Packed XYZ 12-bit BE"),
         A("XY12"),
@@ -1680,7 +1686,8 @@ const char *vlc_fourcc_GetDescription( int i_cat, vlc_fourcc_t i_fourcc )
     VLC_CODEC_NV24, VLC_CODEC_NV42
 
 #define VLC_CODEC_YUV_PLANAR_444_16 \
-    VLC_CODEC_I444_10L, VLC_CODEC_I444_10B, VLC_CODEC_I444_9L, VLC_CODEC_I444_9B
+    VLC_CODEC_I444_10L, VLC_CODEC_I444_10B, VLC_CODEC_I444_9L, VLC_CODEC_I444_9B, \
+    VLC_CODEC_I444_16L, VLC_CODEC_I444_16B
 
 #define VLC_CODEC_YUV_PACKED \
     VLC_CODEC_YUYV, VLC_CODEC_YVYU, \
@@ -1772,6 +1779,13 @@ static const vlc_fourcc_t p_I444_10L_fallback[] = {
 static const vlc_fourcc_t p_I444_10B_fallback[] = {
     VLC_CODEC_I444_10B, VLC_CODEC_I444_10L, VLC_CODEC_FALLBACK_444_16, 0
 };
+static const vlc_fourcc_t p_I444_16L_fallback[] = {
+    VLC_CODEC_I444_16L, VLC_CODEC_I444_16B, VLC_CODEC_FALLBACK_444_16, 0
+};
+static const vlc_fourcc_t p_I444_16B_fallback[] = {
+    VLC_CODEC_I444_16B, VLC_CODEC_I444_16L, VLC_CODEC_FALLBACK_444_16, 0
+};
+
 
 static const vlc_fourcc_t p_I440_fallback[] = {
     VLC_CODEC_I440,
@@ -1836,6 +1850,8 @@ static const vlc_fourcc_t *pp_YUV_fallback[] = {
     p_I444_9B_fallback,
     p_I444_10L_fallback,
     p_I444_10B_fallback,
+    p_I444_16L_fallback,
+    p_I444_16B_fallback,
     p_I440_fallback,
     p_YUYV_fallback,
     p_YVYU_fallback,
@@ -2029,6 +2045,8 @@ static const struct
         VLC_CODEC_I444_10B, 0 },               PLANAR_16(3, 1, 1, 10) },
     { { VLC_CODEC_I444_9L,
         VLC_CODEC_I444_9B, 0 },                PLANAR_16(3, 1, 1,  9) },
+    { { VLC_CODEC_I444_16L,
+        VLC_CODEC_I444_16B, 0 },               PLANAR_16(3, 1, 1, 16) },
 
     { { VLC_CODEC_YUV_PACKED, 0 },             PACKED_FMT(2, 16) },
     { { VLC_CODEC_RGB8, VLC_CODEC_GREY,



More information about the vlc-commits mailing list