vlc_fourcc: remove full range chromas

This is not where the range information should be stored.
This commit is contained in:
Steve Lhomme 2023-10-05 09:46:23 +02:00
parent 81011900e5
commit 9684ec3a6e
20 changed files with 16 additions and 83 deletions

View File

@ -259,14 +259,6 @@
#define VLC_CODEC_I444_16L VLC_FOURCC('I','4','F','L')
#define VLC_CODEC_I444_16B VLC_FOURCC('I','4','F','B')
/* Planar YUV 4:2:0 Y:U:V full scale */
#define VLC_CODEC_J420 VLC_FOURCC('J','4','2','0')
/* Planar YUV 4:2:2 Y:U:V full scale */
#define VLC_CODEC_J422 VLC_FOURCC('J','4','2','2')
/* Planar YUV 4:4:0 Y:U:V full scale */
#define VLC_CODEC_J440 VLC_FOURCC('J','4','4','0')
/* Planar YUV 4:4:4 Y:U:V full scale */
#define VLC_CODEC_J444 VLC_FOURCC('J','4','4','4')
/* Palettized YUV with palette element Y:U:V:A */
#define VLC_CODEC_YUVP VLC_FOURCC('Y','U','V','P')

View File

@ -931,7 +931,6 @@ int picture_UpdatePlanes(picture_t *picture, uint8_t *data, unsigned pitch)
/* Fill chroma planes for planar YUV */
else
if (picture->format.i_chroma == VLC_CODEC_I420 ||
picture->format.i_chroma == VLC_CODEC_J420 ||
picture->format.i_chroma == VLC_CODEC_YV12) {
for (int n = 1; n < picture->i_planes; n++) {

View File

@ -168,7 +168,6 @@ static int Create( filter_t *p_filter )
switch( infcc )
{
case VLC_CODEC_I420:
case VLC_CODEC_J420:
if( outfcc != VLC_CODEC_NV12 )
return -1;
p_filter->ops = &I420_NV12_ops;
@ -183,7 +182,6 @@ static int Create( filter_t *p_filter )
switch( outfcc )
{
case VLC_CODEC_I420:
case VLC_CODEC_J420:
p_filter->ops = &NV12_I420_ops;
break;
case VLC_CODEC_YV12:

View File

@ -75,11 +75,9 @@ static int Activate( filter_t *p_filter )
switch( p_filter->fmt_in.video.i_chroma )
{
case VLC_CODEC_I422:
case VLC_CODEC_J422:
switch( p_filter->fmt_out.video.i_chroma )
{
case VLC_CODEC_I420:
case VLC_CODEC_J420:
p_filter->ops = &I422_I420_ops;
break;

View File

@ -90,7 +90,6 @@ static int Create(filter_t *p_filter)
switch (p_filter->fmt_in.video.i_chroma)
{
case VLC_CODEC_I420:
case VLC_CODEC_J420:
case VLC_CODEC_YV12:
break;
@ -163,7 +162,6 @@ static void Filter(filter_t *p_filter, picture_t *p_pic, picture_t *p_outpic)
switch (p_pic->format.i_chroma)
{
case VLC_CODEC_I420:
case VLC_CODEC_J420:
case VLC_CODEC_YV12:
combine_side_by_side_yuv420(p_pic, p_outpic,
p_sys->left, p_sys->right);

View File

@ -230,7 +230,6 @@ static int Create( filter_t *p_filter )
switch( p_filter->fmt_in.video.i_chroma )
{
case VLC_CODEC_I420:
case VLC_CODEC_J420:
p_sys->drawingPixelFunction = drawPixelI420;
COLORS_YUV
break;

View File

@ -649,7 +649,6 @@ static const struct {
YUV(VLC_CODEC_YV12, CPictureYV12, convertNone),
YUV(VLC_CODEC_NV12, CPictureNV12, convertNone),
YUV(VLC_CODEC_NV21, CPictureNV21, convertNone),
YUV(VLC_CODEC_J420, CPictureI420_8, convertNone),
YUV(VLC_CODEC_I420, CPictureI420_8, convertNone),
#ifdef WORDS_BIGENDIAN
YUV(VLC_CODEC_I420_9B, CPictureI420_16, convert8To9Bits),
@ -659,7 +658,6 @@ static const struct {
YUV(VLC_CODEC_I420_10L, CPictureI420_16, convert8To10Bits),
#endif
YUV(VLC_CODEC_J422, CPictureI422_8, convertNone),
YUV(VLC_CODEC_I422, CPictureI422_8, convertNone),
#ifdef WORDS_BIGENDIAN
YUV(VLC_CODEC_I422_9B, CPictureI422_16, convert8To9Bits),
@ -671,7 +669,6 @@ static const struct {
YUV(VLC_CODEC_I422_16L, CPictureI422_16, convert8To16Bits),
#endif
YUV(VLC_CODEC_J444, CPictureI444_8, convertNone),
YUV(VLC_CODEC_I444, CPictureI444_8, convertNone),
#ifdef WORDS_BIGENDIAN
YUV(VLC_CODEC_I444_9B, CPictureI444_16, convert8To9Bits),

View File

@ -613,8 +613,7 @@ notsupp:
2 * chroma->p[2].h.num == chroma->p[2].h.den &&
i_c420 == PC_UPCONVERT )
{
fmt.i_chroma = p_filter->fmt_in.video.i_chroma == VLC_CODEC_J420 ?
VLC_CODEC_J422 : VLC_CODEC_I422;
fmt.i_chroma = VLC_CODEC_I422;
}
}
free( psz_mode );

View File

@ -130,11 +130,9 @@ static int Create( filter_t *p_filter )
switch( p_filter->fmt_in.video.i_chroma )
{
case VLC_CODEC_I420:
case VLC_CODEC_J420:
case VLC_CODEC_YV12:
case VLC_CODEC_I422:
case VLC_CODEC_J422:
break;
default:
@ -237,8 +235,7 @@ static void FilterErase( filter_t *p_filter, picture_t *p_inpic,
int i_width = i_mask_visible_pitch;
const bool b_line_factor = ( i_plane /* U_PLANE or V_PLANE */ &&
!( p_inpic->format.i_chroma == VLC_CODEC_I422
|| p_inpic->format.i_chroma == VLC_CODEC_J422 ) );
p_inpic->format.i_chroma != VLC_CODEC_I422 );
if( i_plane ) /* U_PLANE or V_PLANE */
{

View File

@ -98,11 +98,9 @@ static int Create( filter_t *p_filter )
case VLC_CODEC_I420:
case VLC_CODEC_I420_10L:
case VLC_CODEC_I420_10B:
case VLC_CODEC_J420:
case VLC_CODEC_YV12:
case VLC_CODEC_I422:
case VLC_CODEC_J422:
CASE_PACKED_YUV_422
break;
@ -170,10 +168,8 @@ static void Filter( filter_t *p_filter, picture_t *p_pic, picture_t *p_outpic )
case VLC_CODEC_I420:
case VLC_CODEC_I420_10L:
case VLC_CODEC_I420_10B:
case VLC_CODEC_J420:
case VLC_CODEC_YV12:
case VLC_CODEC_I422:
case VLC_CODEC_J422:
get_custom_from_yuv( p_pic, p_outpic, Y_PLANE, U_PLANE, V_PLANE, p_sys->projection_matrix );
break;

View File

@ -23,17 +23,14 @@
/* FIXME: do all of these really have square pixels? */
#define CASE_PLANAR_YUV_SQUARE \
case VLC_CODEC_I420: \
case VLC_CODEC_J420: \
case VLC_CODEC_YV12: \
case VLC_CODEC_I411: \
case VLC_CODEC_I410: \
case VLC_CODEC_I444: \
case VLC_CODEC_J444: \
case VLC_CODEC_YUVA:
#define CASE_PLANAR_YUV_NONSQUARE \
case VLC_CODEC_I422: \
case VLC_CODEC_J422:
case VLC_CODEC_I422:
#define CASE_PLANAR_YUV10 \
case VLC_CODEC_I420_10L: \

View File

@ -123,11 +123,9 @@ static void gaussianblur_InitDistribution( filter_sys_t *p_sys )
static int Create( filter_t *p_filter )
{
if( p_filter->fmt_in.video.i_chroma != VLC_CODEC_I420
&& p_filter->fmt_in.video.i_chroma != VLC_CODEC_J420
&& p_filter->fmt_in.video.i_chroma != VLC_CODEC_YV12
&& p_filter->fmt_in.video.i_chroma != VLC_CODEC_I422
&& p_filter->fmt_in.video.i_chroma != VLC_CODEC_J422
)
{
/* We only want planar YUV 4:2:0 or 4:2:2 */

View File

@ -182,14 +182,12 @@ static void PreparePlanar( filter_t *p_filter, picture_t *p_inpic )
switch( p_inpic->format.i_chroma )
{
case VLC_CODEC_I420:
case VLC_CODEC_J420:
case VLC_CODEC_YV12:
i_chroma_dx = 2;
i_chroma_dy = 2;
break;
case VLC_CODEC_I422:
case VLC_CODEC_J422:
i_chroma_dx = 2;
i_chroma_dy = 1;
break;

View File

@ -134,7 +134,6 @@ static int OpenPostproc( filter_t *p_filter )
switch( p_filter->fmt_in.video.i_chroma )
{
case VLC_CODEC_I444:
case VLC_CODEC_J444:
/* case VLC_CODEC_YUVA:
FIXME: Should work but alpha plane needs to be copied manually and
I'm kind of feeling too lazy to write the code to do that ATM
@ -142,14 +141,12 @@ static int OpenPostproc( filter_t *p_filter )
i_flags |= PP_FORMAT_444;
break;
case VLC_CODEC_I422:
case VLC_CODEC_J422:
i_flags |= PP_FORMAT_422;
break;
case VLC_CODEC_I411:
i_flags |= PP_FORMAT_411;
break;
case VLC_CODEC_I420:
case VLC_CODEC_J420:
case VLC_CODEC_YV12:
i_flags |= PP_FORMAT_420;
break;

View File

@ -131,11 +131,9 @@ static const struct { vlc_fourcc_t fcc; struct fmt_desc desc; } formats[] = {
{ VLC_CODEC_I410, {PLANAR(3, 8, _410)} },
{ VLC_CODEC_I411, {PLANAR(3, 8, _411)} },
{ VLC_CODEC_I440, {PLANAR(3, 8, _440)} },
{ VLC_CODEC_J440, {PLANAR(3, 8, _440)} },
{ VLC_CODEC_GREY, {PLANAR(1, 8, _444)} },
{ VLC_CODEC_I420, {PLANAR(3, 8, _420)} },
{ VLC_CODEC_J420, {PLANAR(3, 8, _420)} },
#ifdef WORDS_BIGENDIAN
{ VLC_CODEC_I420_9B, {PLANAR(3, 16, _420), .color_bits = 9} },
{ VLC_CODEC_I420_10B, {PLANAR(3, 16, _420), .color_bits = 10} },
@ -149,7 +147,6 @@ static const struct { vlc_fourcc_t fcc; struct fmt_desc desc; } formats[] = {
#endif
{ VLC_CODEC_I422, {PLANAR(3, 8, _422)} },
{ VLC_CODEC_J422, {PLANAR(3, 8, _422)} },
#ifdef WORDS_BIGENDIAN
{ VLC_CODEC_I422_9B, {PLANAR(3, 16, _422), .color_bits = 9} },
{ VLC_CODEC_I422_10B, {PLANAR(3, 16, _422), .color_bits = 10} },
@ -161,7 +158,6 @@ static const struct { vlc_fourcc_t fcc; struct fmt_desc desc; } formats[] = {
#endif
{ VLC_CODEC_I444, {PLANAR(3, 8, _444)} },
{ VLC_CODEC_J444, {PLANAR(3, 8, _444)} },
#ifdef WORDS_BIGENDIAN
{ VLC_CODEC_I444_9B, {PLANAR(3, 16, _444), .color_bits = 9} },
{ VLC_CODEC_I444_10B, {PLANAR(3, 16, _444), .color_bits = 10} },

View File

@ -1328,7 +1328,6 @@ static const d3d9_format_t d3d_formats[] = {
/* YV12 is always used for planar 420, the planes are then swapped in Lock() */
{ "YV12", MAKEFOURCC('Y','V','1','2'), VLC_CODEC_YV12 },
{ "YV12", MAKEFOURCC('Y','V','1','2'), VLC_CODEC_I420 },
{ "YV12", MAKEFOURCC('Y','V','1','2'), VLC_CODEC_J420 },
{ "NV12", MAKEFOURCC('N','V','1','2'), VLC_CODEC_NV12 },
{ "DXA9", MAKEFOURCC('N','V','1','2'), VLC_CODEC_D3D9_OPAQUE },
{ "DXA9_422", MAKEFOURCC('Y','U','Y','2'), VLC_CODEC_D3D9_OPAQUE },

View File

@ -117,7 +117,6 @@ static int Open(vout_display_t *vd,
switch (chroma) {
case VLC_CODEC_YV12:
case VLC_CODEC_I420:
case VLC_CODEC_J420:
break;
default:
msg_Err(vd, "YUV4MPEG2 mode needs chroma YV12 not %4.4s as requested",

View File

@ -319,11 +319,8 @@ static const panoramix_chroma_t p_chroma_array[] = {
{ VLC_CODEC_I411, { 1, 4, 4, }, { 1, 4, 4, }, { 0, 128, 128 }, true },
{ VLC_CODEC_YV12, { 1, 2, 2, }, { 1, 2, 2, }, { 0, 128, 128 }, true },
{ VLC_CODEC_I420, { 1, 2, 2, }, { 1, 2, 2, }, { 0, 128, 128 }, true },
{ VLC_CODEC_J420, { 1, 2, 2, }, { 1, 2, 2, }, { 0, 128, 128 }, true },
{ VLC_CODEC_I422, { 1, 2, 2, }, { 1, 1, 1, }, { 0, 128, 128 }, true },
{ VLC_CODEC_J422, { 1, 2, 2, }, { 1, 1, 1, }, { 0, 128, 128 }, true },
{ VLC_CODEC_I440, { 1, 1, 1, }, { 1, 2, 2, }, { 0, 128, 128 }, true },
{ VLC_CODEC_J440, { 1, 1, 1, }, { 1, 2, 2, }, { 0, 128, 128 }, true },
{ VLC_CODEC_I444, { 1, 1, 1, }, { 1, 1, 1, }, { 0, 128, 128 }, true },
/* TODO packed chroma (yuv/rgb) ? */

View File

@ -207,7 +207,7 @@ const char *vlc_fourcc_GetDescription(int cat, vlc_fourcc_t fourcc)
VLC_CODEC_I410, VLC_CODEC_YV9
#define VLC_CODEC_YUV_PLANAR_420 \
VLC_CODEC_I420, VLC_CODEC_YV12, VLC_CODEC_J420
VLC_CODEC_I420, VLC_CODEC_YV12
#define VLC_CODEC_YUV_SEMIPLANAR_420 \
VLC_CODEC_NV12, VLC_CODEC_NV21
@ -219,7 +219,7 @@ const char *vlc_fourcc_GetDescription(int cat, vlc_fourcc_t fourcc)
VLC_CODEC_P010, VLC_CODEC_P016
#define VLC_CODEC_YUV_PLANAR_422 \
VLC_CODEC_I422, VLC_CODEC_J422
VLC_CODEC_I422
#define VLC_CODEC_YUV_SEMIPLANAR_422 \
VLC_CODEC_NV16, VLC_CODEC_NV61
@ -228,10 +228,10 @@ const char *vlc_fourcc_GetDescription(int cat, vlc_fourcc_t fourcc)
VLC_CODEC_I422_12L, VLC_CODEC_I422_12B, VLC_CODEC_I422_10L, VLC_CODEC_I422_10B, VLC_CODEC_I422_9L, VLC_CODEC_I422_9B
#define VLC_CODEC_YUV_PLANAR_440 \
VLC_CODEC_I440, VLC_CODEC_J440
VLC_CODEC_I440
#define VLC_CODEC_YUV_PLANAR_444 \
VLC_CODEC_I444, VLC_CODEC_J444
VLC_CODEC_I444
#define VLC_CODEC_YUV_PLANAR_444_ALPHA \
VLC_CODEC_YUVA, VLC_CODEC_YUVA_444_10L, VLC_CODEC_YUVA_444_10B, VLC_CODEC_YUVA_444_12L, VLC_CODEC_YUVA_444_12B
@ -255,20 +255,17 @@ const char *vlc_fourcc_GetDescription(int cat, vlc_fourcc_t fourcc)
VLC_CODEC_I411, VLC_CODEC_YUV_PLANAR_410, VLC_CODEC_Y211
static const vlc_fourcc_t p_I420_fallback[] = {
VLC_CODEC_I420, VLC_CODEC_YV12, VLC_CODEC_J420, VLC_CODEC_FALLBACK_420, 0
};
static const vlc_fourcc_t p_J420_fallback[] = {
VLC_CODEC_J420, VLC_CODEC_I420, VLC_CODEC_YV12, VLC_CODEC_FALLBACK_420, 0
VLC_CODEC_I420, VLC_CODEC_YV12, VLC_CODEC_FALLBACK_420, 0
};
static const vlc_fourcc_t p_YV12_fallback[] = {
VLC_CODEC_YV12, VLC_CODEC_I420, VLC_CODEC_J420, VLC_CODEC_FALLBACK_420, 0
VLC_CODEC_YV12, VLC_CODEC_I420, VLC_CODEC_FALLBACK_420, 0
};
static const vlc_fourcc_t p_NV12_fallback[] = {
VLC_CODEC_NV12, VLC_CODEC_I420, VLC_CODEC_J420, VLC_CODEC_FALLBACK_420, 0
VLC_CODEC_NV12, VLC_CODEC_I420, VLC_CODEC_FALLBACK_420, 0
};
#define VLC_CODEC_FALLBACK_420_16 \
VLC_CODEC_I420, VLC_CODEC_YV12, VLC_CODEC_J420, VLC_CODEC_FALLBACK_420
VLC_CODEC_I420, VLC_CODEC_YV12, VLC_CODEC_FALLBACK_420
static const vlc_fourcc_t p_I420_9L_fallback[] = {
VLC_CODEC_I420_9L, VLC_CODEC_I420_9B, VLC_CODEC_FALLBACK_420_16, 0
@ -305,14 +302,11 @@ static const vlc_fourcc_t p_P010_fallback[] = {
VLC_CODEC_I411, VLC_CODEC_YUV_PLANAR_410, VLC_CODEC_Y211
static const vlc_fourcc_t p_I422_fallback[] = {
VLC_CODEC_I422, VLC_CODEC_J422, VLC_CODEC_FALLBACK_422, 0
};
static const vlc_fourcc_t p_J422_fallback[] = {
VLC_CODEC_J422, VLC_CODEC_I422, VLC_CODEC_FALLBACK_422, 0
VLC_CODEC_I422, VLC_CODEC_FALLBACK_422, 0
};
#define VLC_CODEC_FALLBACK_422_16 \
VLC_CODEC_I422, VLC_CODEC_J422, VLC_CODEC_FALLBACK_422
VLC_CODEC_I422, VLC_CODEC_FALLBACK_422
static const vlc_fourcc_t p_I422_9L_fallback[] = {
VLC_CODEC_I422_9L, VLC_CODEC_I422_9B, VLC_CODEC_FALLBACK_422_16, 0
@ -339,14 +333,11 @@ static const vlc_fourcc_t p_I422_12B_fallback[] = {
VLC_CODEC_I411, VLC_CODEC_YUV_PLANAR_410, VLC_CODEC_Y211
static const vlc_fourcc_t p_I444_fallback[] = {
VLC_CODEC_I444, VLC_CODEC_J444, VLC_CODEC_FALLBACK_444, 0
};
static const vlc_fourcc_t p_J444_fallback[] = {
VLC_CODEC_J444, VLC_CODEC_I444, VLC_CODEC_FALLBACK_444, 0
VLC_CODEC_I444, VLC_CODEC_FALLBACK_444, 0
};
#define VLC_CODEC_FALLBACK_444_16 \
VLC_CODEC_I444, VLC_CODEC_J444, VLC_CODEC_FALLBACK_444
VLC_CODEC_I444, VLC_CODEC_FALLBACK_444
static const vlc_fourcc_t p_I444_9L_fallback[] = {
VLC_CODEC_I444_9L, VLC_CODEC_I444_9B, VLC_CODEC_FALLBACK_444_16, 0
@ -489,7 +480,6 @@ static const vlc_fourcc_t *const pp_YUV_fallback[] = {
p_I420_12B_fallback,
p_I420_16L_fallback,
p_I420_16B_fallback,
p_J420_fallback,
p_I422_fallback,
p_I422_9L_fallback,
p_I422_9B_fallback,
@ -497,9 +487,7 @@ static const vlc_fourcc_t *const pp_YUV_fallback[] = {
p_I422_10B_fallback,
p_I422_12L_fallback,
p_I422_12B_fallback,
p_J422_fallback,
p_I444_fallback,
p_J444_fallback,
p_I444_9L_fallback,
p_I444_9B_fallback,
p_I444_10L_fallback,
@ -673,7 +661,7 @@ const vlc_fourcc_t *vlc_fourcc_GetFallback( vlc_fourcc_t i_fourcc )
bool vlc_fourcc_AreUVPlanesSwapped( vlc_fourcc_t a, vlc_fourcc_t b )
{
static const vlc_fourcc_t pp_swapped[][4] = {
{ VLC_CODEC_YV12, VLC_CODEC_I420, VLC_CODEC_J420, 0 },
{ VLC_CODEC_YV12, VLC_CODEC_I420, 0 },
{ VLC_CODEC_YV9, VLC_CODEC_I410, 0 },
{ 0 }
};

View File

@ -779,15 +779,6 @@ static const staticentry_t p_list_video[] = {
B(VLC_CODEC_I444, "Planar 4:4:4 YUV"),
A("I444"),
B(VLC_CODEC_J420, "Planar 4:2:0 YUV full scale"),
A("J420"),
B(VLC_CODEC_J422, "Planar 4:2:2 YUV full scale"),
A("J422"),
B(VLC_CODEC_J440, "Planar 4:4:0 YUV full scale"),
A("J440"),
B(VLC_CODEC_J444, "Planar 4:4:4 YUV full scale"),
A("J444"),
B(VLC_CODEC_YUVP, "Palettized YUV with palette element Y:U:V:A"),
A("YUVP"),