Commit e9abcc11 authored by gbazin's avatar gbazin

* modules/video_output/x11/xcommon.c, modules/video_output/directx/directx.c:...

* modules/video_output/x11/xcommon.c, modules/video_output/directx/directx.c: when we invert the YV12 picture buffer chroma planes, we need to report a I420 chroma.
parent 8b045cac
...@@ -376,7 +376,7 @@ static int Init( vout_thread_t *p_vout ) ...@@ -376,7 +376,7 @@ static int Init( vout_thread_t *p_vout )
if( !I_OUTPUTPICTURES ) if( !I_OUTPUTPICTURES )
{ {
/* hmmm, it didn't work! Let's try commonly supported chromas */ /* hmmm, it didn't work! Let's try commonly supported chromas */
if( p_vout->output.i_chroma != VLC_FOURCC('Y','V','1','2') ) if( p_vout->output.i_chroma != VLC_FOURCC('I','4','2','0') )
{ {
p_vout->output.i_chroma = VLC_FOURCC('Y','V','1','2'); p_vout->output.i_chroma = VLC_FOURCC('Y','V','1','2');
NewPictureVec( p_vout, p_vout->p_picture, MAX_DIRECTBUFFERS ); NewPictureVec( p_vout, p_vout->p_picture, MAX_DIRECTBUFFERS );
...@@ -1624,6 +1624,10 @@ static int UpdatePictureStruct( vout_thread_t *p_vout, picture_t *p_pic, ...@@ -1624,6 +1624,10 @@ static int UpdatePictureStruct( vout_thread_t *p_vout, picture_t *p_pic,
case VLC_FOURCC('Y','V','1','2'): case VLC_FOURCC('Y','V','1','2'):
/* U and V inverted compared to I420
* Fixme: this should be handled by the vout core */
p_vout->output.i_chroma = VLC_FOURCC('I','4','2','0');
p_pic->Y_PIXELS = p_pic->p_sys->ddsd.lpSurface; p_pic->Y_PIXELS = p_pic->p_sys->ddsd.lpSurface;
p_pic->p[Y_PLANE].i_lines = p_vout->output.i_height; p_pic->p[Y_PLANE].i_lines = p_vout->output.i_height;
p_pic->p[Y_PLANE].i_visible_lines = p_vout->output.i_height; p_pic->p[Y_PLANE].i_visible_lines = p_vout->output.i_height;
......
...@@ -1236,6 +1236,7 @@ static int NewPicture( vout_thread_t *p_vout, picture_t *p_pic ) ...@@ -1236,6 +1236,7 @@ static int NewPicture( vout_thread_t *p_vout, picture_t *p_pic )
{ {
/* U and V inverted compared to I420 /* U and V inverted compared to I420
* Fixme: this should be handled by the vout core */ * Fixme: this should be handled by the vout core */
p_vout->output.i_chroma = VLC_FOURCC('I','4','2','0');
p_pic->U_PIXELS = p_pic->p_sys->p_image->data p_pic->U_PIXELS = p_pic->p_sys->p_image->data
+ p_pic->p_sys->p_image->offsets[2]; + p_pic->p_sys->p_image->offsets[2];
p_pic->V_PIXELS = p_pic->p_sys->p_image->data p_pic->V_PIXELS = p_pic->p_sys->p_image->data
......
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