vlc | branch: master | Paul B Mahol <[email protected]> | Thu Jan 19 16:07:20 2017 +0100| [babd896d8fc151eb7a3a584a79d65038f33c6741] | committer: Jean-Baptiste Kempf
Define YUV 4:2:0 16bits pixel format Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=babd896d8fc151eb7a3a584a79d65038f33c6741 --- include/vlc_fourcc.h | 4 ++++ modules/codec/avcodec/chroma.c | 2 ++ modules/video_chroma/chain.c | 1 + src/misc/fourcc.c | 12 +++++++++++- src/misc/fourcc_list.h | 4 ++++ 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/include/vlc_fourcc.h b/include/vlc_fourcc.h index 09c22cb..e44dd95 100644 --- a/include/vlc_fourcc.h +++ b/include/vlc_fourcc.h @@ -210,6 +210,10 @@ #define VLC_CODEC_I420_12L VLC_FOURCC('I','0','C','L') #define VLC_CODEC_I420_12B VLC_FOURCC('I','0','C','B') +/* Planar YUV 4:2:0 Y:U:V 16-bit stored on 16 bits */ +#define VLC_CODEC_I420_16L VLC_FOURCC('I','0','F','L') +#define VLC_CODEC_I420_16B VLC_FOURCC('I','0','F','B') + /* Planar YUV 4:2:2 Y:U:V 8-bit */ #define VLC_CODEC_I422 VLC_FOURCC('I','4','2','2') /* Planar YUV 4:2:2 Y:U:V 9-bit stored on 16 bits */ diff --git a/modules/codec/avcodec/chroma.c b/modules/codec/avcodec/chroma.c index e700eb1..5f98e87 100644 --- a/modules/codec/avcodec/chroma.c +++ b/modules/codec/avcodec/chroma.c @@ -90,6 +90,8 @@ static const struct {VLC_CODEC_I420_12L, AV_PIX_FMT_YUV420P12LE, 0, 0, 0 }, {VLC_CODEC_I420_12B, AV_PIX_FMT_YUV420P12BE, 0, 0, 0 }, #endif + {VLC_CODEC_I420_16L, AV_PIX_FMT_YUV420P16LE, 0, 0, 0 }, + {VLC_CODEC_I420_16B, AV_PIX_FMT_YUV420P16BE, 0, 0, 0 }, #ifdef AV_PIX_FMT_P010 {VLC_CODEC_P010, AV_PIX_FMT_P010, 0, 0, 0 }, #endif diff --git a/modules/video_chroma/chain.c b/modules/video_chroma/chain.c index 0bde2a9..6347d0a 100644 --- a/modules/video_chroma/chain.c +++ b/modules/video_chroma/chain.c @@ -65,6 +65,7 @@ static const vlc_fourcc_t pi_allowed_chromas[] = { VLC_CODEC_I420, VLC_CODEC_I422, VLC_CODEC_I420_10L, + VLC_CODEC_I420_16L, VLC_CODEC_RGB32, VLC_CODEC_RGB24, 0 diff --git a/src/misc/fourcc.c b/src/misc/fourcc.c index 9e42045..20269b6 100644 --- a/src/misc/fourcc.c +++ b/src/misc/fourcc.c @@ -216,7 +216,7 @@ const char *vlc_fourcc_GetDescription(int cat, vlc_fourcc_t fourcc) VLC_CODEC_NV12, VLC_CODEC_NV21 #define VLC_CODEC_YUV_PLANAR_420_16 \ - VLC_CODEC_I420_12L, VLC_CODEC_I420_12B, VLC_CODEC_I420_10L, VLC_CODEC_I420_10B, VLC_CODEC_I420_9L, VLC_CODEC_I420_9B + VLC_CODEC_I420_16L, VLC_CODEC_I420_16B, VLC_CODEC_I420_12L, VLC_CODEC_I420_12B, VLC_CODEC_I420_10L, VLC_CODEC_I420_10B, VLC_CODEC_I420_9L, VLC_CODEC_I420_9B #define VLC_CODEC_YUV_PLANAR_422 \ VLC_CODEC_I422, VLC_CODEC_J422 @@ -283,6 +283,12 @@ static const vlc_fourcc_t p_I420_12L_fallback[] = { static const vlc_fourcc_t p_I420_12B_fallback[] = { VLC_CODEC_I420_12B, VLC_CODEC_I420_12L, VLC_CODEC_FALLBACK_420_16, 0 }; +static const vlc_fourcc_t p_I420_16L_fallback[] = { + VLC_CODEC_I420_16L, VLC_CODEC_I420_16B, VLC_CODEC_FALLBACK_420_16, 0 +}; +static const vlc_fourcc_t p_I420_16B_fallback[] = { + VLC_CODEC_I420_16B, VLC_CODEC_I420_16L, VLC_CODEC_FALLBACK_420_16, 0 +}; #define VLC_CODEC_FALLBACK_422 \ @@ -412,6 +418,8 @@ static const vlc_fourcc_t *pp_YUV_fallback[] = { p_I420_10B_fallback, p_I420_12L_fallback, p_I420_12B_fallback, + p_I420_16L_fallback, + p_I420_16B_fallback, p_J420_fallback, p_I422_fallback, p_I422_9L_fallback, @@ -619,6 +627,8 @@ static const struct { { VLC_CODEC_GBR_PLANAR_10L, VLC_CODEC_GBR_PLANAR_10B }, PLANAR_16(3, 1, 1, 10) }, + { { VLC_CODEC_I420_16L, + VLC_CODEC_I420_16B }, PLANAR_16(3, 2, 2, 16) }, { { VLC_CODEC_I420_12L, VLC_CODEC_I420_12B }, PLANAR_16(3, 2, 2, 12) }, { { VLC_CODEC_I420_10L, diff --git a/src/misc/fourcc_list.h b/src/misc/fourcc_list.h index d2fc683..27c212f 100644 --- a/src/misc/fourcc_list.h +++ b/src/misc/fourcc_list.h @@ -876,6 +876,10 @@ static const staticentry_t p_list_video[] = { B(VLC_CODEC_I444_12B, "Planar 4:4:4 YUV 12-bit BE"), A("I4CB"), + B(VLC_CODEC_I420_16L, "Planar 4:2:0 YUV 16-bit LE"), + A("I0FL"), + B(VLC_CODEC_I420_16B, "Planar 4:2:0 YUV 16-bit BE"), + A("I0FB"), 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"), _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
