[vlc-devel] [PATCH 1/3] fourcc: add VLC_CODEC_YUV2

Tristan Matthews tmatth at videolan.org
Sat Apr 2 07:37:19 CEST 2016


Refs #16720
---
 include/vlc_fourcc.h             |  2 ++
 modules/video_chroma/yuy2_i422.c |  1 +
 src/misc/es_format.c             |  1 +
 src/misc/fourcc.c                | 15 ++++++++++++++-
 src/misc/fourcc_list.h           |  2 ++
 5 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/include/vlc_fourcc.h b/include/vlc_fourcc.h
index 3d14a51..8995bd5 100644
--- a/include/vlc_fourcc.h
+++ b/include/vlc_fourcc.h
@@ -271,6 +271,8 @@
 #define VLC_CODEC_VYUY            VLC_FOURCC('V','Y','U','Y')
 /* Packed YUV 4:2:2, Y:U:Y:V */
 #define VLC_CODEC_YUYV            VLC_FOURCC('Y','U','Y','2')
+/* Packed YUV 4:2:2, Y:U:Y:V, chroma range [-127, 127]*/
+#define VLC_CODEC_YUV2            VLC_FOURCC('y','u','v','2')
 /* Packed YUV 4:2:2, Y:V:Y:U */
 #define VLC_CODEC_YVYU            VLC_FOURCC('Y','V','Y','U')
 /* Packed YUV 2:1:1, Y:U:Y:V */
diff --git a/modules/video_chroma/yuy2_i422.c b/modules/video_chroma/yuy2_i422.c
index d748be6..972aba0 100644
--- a/modules/video_chroma/yuy2_i422.c
+++ b/modules/video_chroma/yuy2_i422.c
@@ -83,6 +83,7 @@ static int Activate( vlc_object_t *p_this )
             switch( p_filter->fmt_in.video.i_chroma )
             {
                 case VLC_CODEC_YUYV:
+                case VLC_CODEC_YUV2:
                     p_filter->pf_video_filter = YUY2_I422_Filter;
                     break;
 
diff --git a/src/misc/es_format.c b/src/misc/es_format.c
index ece9ea6..e9b8be9 100644
--- a/src/misc/es_format.c
+++ b/src/misc/es_format.c
@@ -162,6 +162,7 @@ void video_format_Setup( video_format_t *p_fmt, vlc_fourcc_t i_chroma,
         break;
     case VLC_CODEC_I422:
     case VLC_CODEC_YUYV:
+    case VLC_CODEC_YUV2:
     case VLC_CODEC_YVYU:
     case VLC_CODEC_UYVY:
     case VLC_CODEC_VYUY:
diff --git a/src/misc/fourcc.c b/src/misc/fourcc.c
index 84cd034..3ef1898 100644
--- a/src/misc/fourcc.c
+++ b/src/misc/fourcc.c
@@ -242,7 +242,7 @@ const char *vlc_fourcc_GetDescription(int cat, vlc_fourcc_t fourcc)
     VLC_CODEC_I444_16L, VLC_CODEC_I444_16B
 
 #define VLC_CODEC_YUV_PACKED \
-    VLC_CODEC_YUYV, VLC_CODEC_YVYU, \
+    VLC_CODEC_YUYV, VLC_CODEC_YUV2, VLC_CODEC_YVYU, \
     VLC_CODEC_UYVY, VLC_CODEC_VYUY
 
 #define VLC_CODEC_FALLBACK_420 \
@@ -358,6 +358,15 @@ static const vlc_fourcc_t p_I440_fallback[] = {
 
 static const vlc_fourcc_t p_YUYV_fallback[] = {
     VLC_CODEC_YUYV,
+    VLC_CODEC_YUV2,
+    VLC_CODEC_YVYU,
+    VLC_CODEC_UYVY,
+    VLC_CODEC_VYUY,
+    VLC_CODEC_FALLBACK_PACKED, 0
+};
+static const vlc_fourcc_t p_YUV2_fallback[] = {
+    VLC_CODEC_YUV2,
+    VLC_CODEC_YUYV,
     VLC_CODEC_YVYU,
     VLC_CODEC_UYVY,
     VLC_CODEC_VYUY,
@@ -366,6 +375,7 @@ static const vlc_fourcc_t p_YUYV_fallback[] = {
 static const vlc_fourcc_t p_YVYU_fallback[] = {
     VLC_CODEC_YVYU,
     VLC_CODEC_YUYV,
+    VLC_CODEC_YUV2,
     VLC_CODEC_UYVY,
     VLC_CODEC_VYUY,
     VLC_CODEC_FALLBACK_PACKED, 0
@@ -374,6 +384,7 @@ static const vlc_fourcc_t p_UYVY_fallback[] = {
     VLC_CODEC_UYVY,
     VLC_CODEC_VYUY,
     VLC_CODEC_YUYV,
+    VLC_CODEC_YUV2,
     VLC_CODEC_YVYU,
     VLC_CODEC_FALLBACK_PACKED, 0
 };
@@ -381,6 +392,7 @@ static const vlc_fourcc_t p_VYUY_fallback[] = {
     VLC_CODEC_VYUY,
     VLC_CODEC_UYVY,
     VLC_CODEC_YUYV,
+    VLC_CODEC_YUV2,
     VLC_CODEC_YVYU,
     VLC_CODEC_FALLBACK_PACKED, 0
 };
@@ -409,6 +421,7 @@ static const vlc_fourcc_t *pp_YUV_fallback[] = {
     p_I444_16B_fallback,
     p_I440_fallback,
     p_YUYV_fallback,
+    p_YUV2_fallback,
     p_YVYU_fallback,
     p_UYVY_fallback,
     p_VYUY_fallback,
diff --git a/src/misc/fourcc_list.h b/src/misc/fourcc_list.h
index 3c2aa79..c1c1e8a 100644
--- a/src/misc/fourcc_list.h
+++ b/src/misc/fourcc_list.h
@@ -808,6 +808,8 @@ static const staticentry_t p_list_video[] = {
         A("YUYV"),
         A("YUNV"),
         A("V422"),
+    B(VLC_CODEC_YUV2, "Packed YUV 4:2:2, Y:U:Y:V, signed chroma"),
+        A("yuv2"),
     B(VLC_CODEC_YVYU, "Packed YUV 4:2:2, Y:V:Y:U"),
         A("YVYU"),
 
-- 
1.9.1



More information about the vlc-devel mailing list