[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