Commit 6702c304 authored by Derk-Jan Hartman's avatar Derk-Jan Hartman

core chroma: Add support for YUV440 and YUVJ440. These are a rotated version...

core chroma: Add support for YUV440 and YUVJ440. These are a rotated version of YUV422 and used with rotated JPEGs mostly.
parent f59bc50a
......@@ -602,6 +602,10 @@ void vout_InitFormat( video_frame_format_t *p_format, vlc_fourcc_t i_chroma,
case FOURCC_J422:
p_format->i_bits_per_pixel = 16;
break;
case FOURCC_I440:
case FOURCC_J440:
p_format->i_bits_per_pixel = 16;
break;
case FOURCC_I411:
case FOURCC_YV12:
case FOURCC_I420:
......@@ -727,12 +731,12 @@ int __vout_InitPicture( vlc_object_t *p_this, picture_t *p_pic,
p_pic->p[ Y_PLANE ].i_visible_lines = i_height;
p_pic->p[ Y_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ Y_PLANE ].i_visible_pitch = i_width;
p_pic->p[ U_PLANE ].i_lines = i_height_aligned / 2;
p_pic->p[ U_PLANE ].i_visible_lines = i_height / 2;
p_pic->p[ U_PLANE ].i_lines = i_height_aligned;
p_pic->p[ U_PLANE ].i_visible_lines = i_height;
p_pic->p[ U_PLANE ].i_pitch = i_width_aligned / 2;
p_pic->p[ U_PLANE ].i_visible_pitch = i_width / 2;
p_pic->p[ V_PLANE ].i_lines = i_height_aligned / 2;
p_pic->p[ V_PLANE ].i_visible_lines = i_height / 2;
p_pic->p[ V_PLANE ].i_lines = i_height_aligned;
p_pic->p[ V_PLANE ].i_visible_lines = i_height;
p_pic->p[ V_PLANE ].i_pitch = i_width_aligned / 2;
p_pic->p[ V_PLANE ].i_visible_pitch = i_width / 2;
p_pic->i_planes = 3;
......@@ -744,17 +748,34 @@ int __vout_InitPicture( vlc_object_t *p_this, picture_t *p_pic,
p_pic->p[ Y_PLANE ].i_visible_lines = i_height;
p_pic->p[ Y_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ Y_PLANE ].i_visible_pitch = i_width;
p_pic->p[ U_PLANE ].i_lines = i_height_aligned;
p_pic->p[ U_PLANE ].i_visible_lines = i_height;
p_pic->p[ U_PLANE ].i_lines = i_height_aligned / 2;
p_pic->p[ U_PLANE ].i_visible_lines = i_height / 2;
p_pic->p[ U_PLANE ].i_pitch = i_width_aligned / 2;
p_pic->p[ U_PLANE ].i_visible_pitch = i_width / 2;
p_pic->p[ V_PLANE ].i_lines = i_height_aligned;
p_pic->p[ V_PLANE ].i_visible_lines = i_height;
p_pic->p[ V_PLANE ].i_lines = i_height_aligned / 2;
p_pic->p[ V_PLANE ].i_visible_lines = i_height / 2;
p_pic->p[ V_PLANE ].i_pitch = i_width_aligned / 2;
p_pic->p[ V_PLANE ].i_visible_pitch = i_width / 2;
p_pic->i_planes = 3;
break;
case FOURCC_I440:
case FOURCC_J440:
p_pic->p[ Y_PLANE ].i_lines = i_height_aligned;
p_pic->p[ Y_PLANE ].i_visible_lines = i_height;
p_pic->p[ Y_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ Y_PLANE ].i_visible_pitch = i_width;
p_pic->p[ U_PLANE ].i_lines = i_height_aligned / 2;
p_pic->p[ U_PLANE ].i_visible_lines = i_height / 2;
p_pic->p[ U_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ U_PLANE ].i_visible_pitch = i_width;
p_pic->p[ V_PLANE ].i_lines = i_height_aligned / 2;
p_pic->p[ V_PLANE ].i_visible_lines = i_height / 2;
p_pic->p[ V_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ V_PLANE ].i_visible_pitch = i_width;
p_pic->i_planes = 3;
break;
case FOURCC_I444:
case FOURCC_J444:
p_pic->p[ Y_PLANE ].i_lines = i_height_aligned;
......
......@@ -90,6 +90,10 @@
#define FOURCC_I422 VLC_FOURCC('I','4','2','2')
#define FOURCC_J422 VLC_FOURCC('J','4','2','2')
/* Planar 4:4:0, Y:U:V */
#define FOURCC_I440 VLC_FOURCC('I','4','4','0')
#define FOURCC_J440 VLC_FOURCC('J','4','4','0')
/* Planar 4:4:4, Y:U:V */
#define FOURCC_I444 VLC_FOURCC('I','4','4','4')
#define FOURCC_J444 VLC_FOURCC('J','4','4','4')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment