diff options
author | nick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-02-17 12:22:01 +0000 |
---|---|---|
committer | nick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-02-17 12:22:01 +0000 |
commit | 0a83c6ec7bfeef0f53c6e891fcb5788d9fe88ed6 (patch) | |
tree | d660ef679ecb4d86ae5d522f3a9069f238774d81 /libvo | |
parent | 68e6328d1436428d0a44082210a505c4476c0d36 (diff) | |
download | mpv-0a83c6ec7bfeef0f53c6e891fcb5788d9fe88ed6.tar.bz2 mpv-0a83c6ec7bfeef0f53c6e891fcb5788d9fe88ed6.tar.xz |
More correct direct rendering usage
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4742 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo')
-rw-r--r-- | libvo/vosub_vidix.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/libvo/vosub_vidix.c b/libvo/vosub_vidix.c index 4cf9ad9be9..531a081976 100644 --- a/libvo/vosub_vidix.c +++ b/libvo/vosub_vidix.c @@ -210,6 +210,7 @@ static uint32_t vidix_draw_slice_422(uint8_t *image[], int stride[], int w,int h src+=stride[0]; dest += bespitch; } +printf("\nw = %u apitch=%u stride[0] = %u bespitch=%u\n",w,apitch,stride[0],bespitch); return 0; } @@ -479,7 +480,7 @@ int vidix_init(unsigned src_width,unsigned src_height, unsigned vid_w,unsigned vid_h,const void *info) { size_t i,awidth; - int err; + int err,is_422_planes_eq; if(verbose > 1) printf("vosub_vidix: vidix_init() was called\n" "src_w=%u src_h=%u dest_x_y_w_h = %u %u %u %u\n" @@ -607,23 +608,26 @@ int vidix_init(unsigned src_width,unsigned src_height, memset(vidix_mem + vidix_play.offsets[i], 0x80, vidix_play.frame_size); /* tune some info here */ + is_422_planes_eq = vidix_play.src.pitch.y == vidix_play.dest.pitch.y && + src_width*2 == (src_width*2+(vidix_play.dest.pitch.y-1))&~ + (vidix_play.dest.pitch.y-1); if(src_format == IMGFMT_YV12 || src_format == IMGFMT_I420 || src_format == IMGFMT_IYUV) vo_server->draw_slice = vidix_draw_slice_420; else if(src_format == IMGFMT_RGB32 || src_format == IMGFMT_BGR32) vo_server->draw_slice = - vidix_play.src.pitch.y == vidix_play.dest.pitch.y ? + is_422_planes_eq ? vidix_draw_slice_32_fast: vidix_draw_slice_32; else if(src_format == IMGFMT_RGB24 || src_format == IMGFMT_BGR24) vo_server->draw_slice = - vidix_play.src.pitch.y == vidix_play.dest.pitch.y ? + is_422_planes_eq ? vidix_draw_slice_24_fast: vidix_draw_slice_24; else vo_server->draw_slice = - vidix_play.src.pitch.y == vidix_play.dest.pitch.y ? + is_422_planes_eq ? vidix_draw_slice_422_fast: vidix_draw_slice_422; return 0; |