From: Frantisek D. <va...@us...> - 2005-12-12 15:21:58
|
Update of /cvsroot/xine/xine-lib/src/video_out In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7164/src/video_out Modified Files: video_out_directx.c Log Message: *BUGFIX* - fixed the align problem in DirectX vo plugin - used fast memcpy Index: video_out_directx.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/video_out/video_out_directx.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- video_out_directx.c 21 Nov 2005 14:18:56 -0000 1.27 +++ video_out_directx.c 12 Dec 2005 15:21:50 -0000 1.28 @@ -854,8 +854,7 @@ { win32_frame_t * win32_frame = ( win32_frame_t * ) vo_frame; - if( win32_frame->buffer ) - free( win32_frame->buffer ); + free(win32_frame->buffer); win32_free_framedata(vo_frame); @@ -996,13 +995,13 @@ #if NEW_YUV win32_driver->yuv2rgb->configure( win32_driver->yuv2rgb, win32_driver->width, win32_driver->height, - win32_driver->width, win32_driver->width/2, + win32_frame->vo_frame.pitches[0], win32_frame->vo_frame.pitches[1], win32_driver->width, win32_driver->height, - win32_driver->width * win32_driver->bytespp ); + win32_driver->width * win32_driver->bytespp); #else yuv2rgb_setup( win32_driver->yuv2rgb, win32_driver->width, win32_driver->height, - win32_driver->width, win32_driver->width/2, + win32_frame->vo_frame.pitches[0], win32_frame->vo_frame.pitches[1], win32_driver->width, win32_driver->height, win32_driver->width * win32_driver->bytespp ); @@ -1022,14 +1021,14 @@ #if NEW_YUV win32_driver->yuv2rgb->configure( win32_driver->yuv2rgb, win32_driver->width, win32_driver->height, - win32_driver->width, win32_driver->width/2, + win32_frame->vo_frame.pitches[0], win32_frame->vo_frame.pitches[0] / 2, win32_driver->width, win32_driver->height, win32_driver->width * win32_driver->bytespp ); #else yuv2rgb_setup( win32_driver->yuv2rgb, win32_driver->width, win32_driver->height, - win32_driver->width, win32_driver->width/2, + win32_frame->vo_frame.pitches[0], win32_frame->vo_frame.pitches[0] / 2, win32_driver->width, win32_driver->height, win32_driver->width * win32_driver->bytespp ); @@ -1066,22 +1065,22 @@ offset = 0; size = frame->pitches[0] * frame->height; - memcpy( img+offset, frame->base[0], size); + xine_fast_memcpy( img+offset, frame->base[0], size); offset += size; size = frame->pitches[2]* frame->height / 2; - memcpy( img+offset, frame->base[2], size); + xine_fast_memcpy( img+offset, frame->base[2], size); offset += size; size = frame->pitches[1] * frame->height / 2; - memcpy( img+offset, frame->base[1], size); + xine_fast_memcpy( img+offset, frame->base[1], size); } break; case XINE_IMGFMT_YUY2: - memcpy( win32_driver->contents, win32_frame->vo_frame.base[0], win32_frame->vo_frame.pitches[0] * win32_frame->vo_frame.height * 2); + xine_fast_memcpy( win32_driver->contents, win32_frame->vo_frame.base[0], win32_frame->vo_frame.pitches[0] * win32_frame->vo_frame.height * 2); break; default: - memcpy( win32_driver->contents, win32_frame->vo_frame.base[0], win32_frame->vo_frame.pitches[0] * win32_frame->vo_frame.height * 2); + xine_fast_memcpy( win32_driver->contents, win32_frame->vo_frame.base[0], win32_frame->vo_frame.pitches[0] * win32_frame->vo_frame.height * 2); break; } } |