[vlc-devel] [PATCH 1/3] fourcc: add VLC_CODEC_YUV2
Rémi Denis-Courmont
remi at remlab.net
Sat Apr 2 10:23:46 CEST 2016
On Saturday 02 April 2016 01:37:19 Tristan Matthews wrote:
> 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;
Why? I don´t think there is any output or encoder that supports this format.
> 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"),
--
Rémi Denis-Courmont
http://www.remlab.net/
More information about the vlc-devel
mailing list