[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