diff options
Diffstat (limited to 'libvo/vo_xv.c')
-rw-r--r-- | libvo/vo_xv.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/libvo/vo_xv.c b/libvo/vo_xv.c index 9f7fd04ae1..60a0cd2889 100644 --- a/libvo/vo_xv.c +++ b/libvo/vo_xv.c @@ -566,8 +566,16 @@ static uint32_t draw_frame(uint8_t *src[]) // YV12 planar memcpy(xvimage[current_buf]->data,src[0],image_width*image_height); - memcpy(xvimage[current_buf]->data+image_width*image_height,src[2],image_width*image_height/4); - memcpy(xvimage[current_buf]->data+image_width*image_height*5/4,src[1],image_width*image_height/4); + if (xv_format == IMGFMT_YV12) + { + memcpy(xvimage[current_buf]->data+image_width*image_height,src[2],image_width*image_height/4); + memcpy(xvimage[current_buf]->data+image_width*image_height*5/4,src[1],image_width*image_height/4); + } + else + { + memcpy(xvimage[current_buf]->data+image_width*image_height,src[1],image_width*image_height/4); + memcpy(xvimage[current_buf]->data+image_width*image_height*5/4,src[2],image_width*image_height/4); + } break; } |