From f56b633045948f792397102ef15c227c75b6ab62 Mon Sep 17 00:00:00 2001 From: ben Date: Thu, 7 Aug 2008 12:28:28 +0000 Subject: Add NV12 colorspace support to VIDIX driver. patch by Magnus Damm git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27430 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/vosub_vidix.c | 32 ++++++++++++++++++++++++++++++++ vidix/fourcc.h | 1 + 2 files changed, 33 insertions(+) diff --git a/libvo/vosub_vidix.c b/libvo/vosub_vidix.c index e2b7d10634..bb53dfb89a 100644 --- a/libvo/vosub_vidix.c +++ b/libvo/vosub_vidix.c @@ -212,6 +212,34 @@ static uint32_t vidix_draw_slice_packed(uint8_t *image[], int stride[], int w,in return 0; } +static uint32_t vidix_draw_slice_nv12(uint8_t *image[], int stride[], int w,int h,int x,int y) +{ + uint8_t *src; + uint8_t *dest; + int i; + + /* Plane Y */ + dest = vidix_mem + vidix_play.offsets[next_frame] + vidix_play.offset.y; + dest += dstrides.y*y + x; + src = image[0]; + for(i=0;idraw_slice = vidix_draw_slice_420; else if (src_format == IMGFMT_YVU9 || src_format == IMGFMT_IF09) vo_server->draw_slice = vidix_draw_slice_410; + else if (src_format == IMGFMT_NV12) + vo_server->draw_slice = vidix_draw_slice_nv12; else vo_server->draw_slice = vidix_draw_slice_packed; } return 0; diff --git a/vidix/fourcc.h b/vidix/fourcc.h index 3b4c7919b5..e2ce256cca 100644 --- a/vidix/fourcc.h +++ b/vidix/fourcc.h @@ -51,6 +51,7 @@ #define IMGFMT_YV12 vid_fourcc('Y','V','1','2') /* 12 YVU 4:2:0 */ #define IMGFMT_I420 vid_fourcc('I','4','2','0') /* 12 YUV 4:2:0 */ #define IMGFMT_IYUV vid_fourcc('I','Y','U','V') /* 12 YUV 4:2:0 */ +#define IMGFMT_NV12 vid_fourcc('N','V','1','2') #define IMGFMT_CLPL vid_fourcc('C','L','P','L') /* 12 */ #define IMGFMT_Y800 vid_fourcc('Y','8','0','0') /* 8 Y Grayscale */ #define IMGFMT_Y8 vid_fourcc('Y','8',' ',' ') /* 8 Y Grayscale */ -- cgit v1.2.3