mirror of
https://github.com/mpv-player/mpv
synced 2025-02-16 20:27:23 +00:00
Minor fixes with the same results
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3021 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
ae06a182d4
commit
fdb7bbe016
@ -381,7 +381,7 @@ RTRACE("radeon_vid: usr_config: version = %x format=%x card=%x ram=%u src(%ux%u)
|
||||
|
||||
besr.fourcc = config->format;
|
||||
|
||||
besr.v_inc = (config->src_height << 20) / XXX_DRW_H; /*9c0e0 -> 9c528*/
|
||||
besr.v_inc = (config->src_height << 20) / XXX_DRW_H;
|
||||
h_inc = (config->src_width << 12) / XXX_DRW_W;
|
||||
step_by = 1;
|
||||
|
||||
@ -395,7 +395,7 @@ RTRACE("radeon_vid: usr_config: version = %x format=%x card=%x ram=%u src(%ux%u)
|
||||
if(is_420)
|
||||
{
|
||||
uint32_t dstPitch,d1line,d2line,d3line;
|
||||
dstPitch = (XXX_WIDTH + 31) & ~31; /* of luma */
|
||||
dstPitch = (XXX_WIDTH + 15) & ~15; /* of luma */
|
||||
d1line = top * dstPitch;
|
||||
d2line = (XXX_HEIGHT * dstPitch) + ((top >> 1) * (dstPitch >> 1));
|
||||
d3line = d2line + ((XXX_HEIGHT >> 1) * (dstPitch >> 1));
|
||||
@ -439,7 +439,7 @@ RTRACE("radeon_vid: usr_config: version = %x format=%x card=%x ram=%u src(%ux%u)
|
||||
left = (left >> 16) & 7;
|
||||
besr.h_inc = h_inc | ((h_inc >> 1) << 16);
|
||||
besr.step_by = step_by | (step_by << 8);
|
||||
besr.y_x_start = (config->x_org+8) | (config->y_org << 16); /*5c008->5d009*/
|
||||
besr.y_x_start = (config->x_org+8) | (config->y_org << 16);
|
||||
besr.y_x_end = (config->x_org + config->dest_width+8) | ((config->y_org + config->dest_height) << 16);
|
||||
besr.p1_blank_lines_at_top = 0x00000fff | ((config->src_height - 1) << 16);
|
||||
besr.p23_blank_lines_at_top = is_420 ? 0x000007ff | ((((config->src_height+1)>>1) - 1) << 16) : 0;
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include "../mmx_defs.h"
|
||||
#include "../postproc/rgb2rgb.h"
|
||||
|
||||
#define WIDTH_ALIGN 32 /* should be 16 for radeons */
|
||||
#define WIDTH_ALIGN 16 /* should be 16 for radeons */
|
||||
#define NUM_FRAMES 2
|
||||
static uint8_t *frames[NUM_FRAMES];
|
||||
|
||||
@ -144,56 +144,11 @@ void vlvo_term( void )
|
||||
if(lvo_handler != -1) close(lvo_handler);
|
||||
}
|
||||
|
||||
static void
|
||||
CopyData420(
|
||||
unsigned char *src1,
|
||||
unsigned char *src2,
|
||||
unsigned char *src3,
|
||||
unsigned char *dst1,
|
||||
unsigned char *dst2,
|
||||
unsigned char *dst3,
|
||||
int srcPitch,
|
||||
int srcPitch2,
|
||||
int dstPitch,
|
||||
int h,
|
||||
int w
|
||||
){
|
||||
int count;
|
||||
|
||||
count = h;
|
||||
while(count--) {
|
||||
memcpy(dst1, src1, w);
|
||||
src1 += srcPitch;
|
||||
dst1 += dstPitch;
|
||||
}
|
||||
|
||||
w >>= 1;
|
||||
h >>= 1;
|
||||
dstPitch >>= 1;
|
||||
|
||||
count = h;
|
||||
while(count--) {
|
||||
memcpy(dst2, src2, w);
|
||||
src2 += srcPitch2;
|
||||
dst2 += dstPitch;
|
||||
}
|
||||
|
||||
count = h;
|
||||
while(count--) {
|
||||
memcpy(dst3, src3, w);
|
||||
src3 += srcPitch2;
|
||||
dst3 += dstPitch;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
uint32_t vlvo_draw_slice(uint8_t *image[], int stride[], int w,int h,int x,int y)
|
||||
uint32_t vlvo_draw_slice_mga(uint8_t *image[], int stride[], int w,int h,int x,int y)
|
||||
{
|
||||
#if 0
|
||||
/* original vo_mga stuff */
|
||||
uint8_t *src;
|
||||
uint8_t *dest;
|
||||
uint32_t bespitch,bespitch2,srcpitch;
|
||||
uint32_t bespitch,bespitch2;
|
||||
int i;
|
||||
|
||||
bespitch = (mga_vid_config.src_width + (WIDTH_ALIGN-1)) & ~(WIDTH_ALIGN-1);
|
||||
@ -226,41 +181,27 @@ uint32_t vlvo_draw_slice(uint8_t *image[], int stride[], int w,int h,int x,int y
|
||||
src+=stride[2];
|
||||
dest += bespitch2;
|
||||
}
|
||||
#else
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t vlvo_draw_slice(uint8_t *image[], int stride[], int w,int h,int x,int y)
|
||||
{
|
||||
uint8_t *dst;
|
||||
uint8_t bytpp;
|
||||
if(verbose > 1) printf("vesa_lvo: vlvo_draw_slice() was called\n");
|
||||
bytpp = (image_bpp+7)/8;
|
||||
dst = lvo_mem + (image_width * y + x)*bytpp;
|
||||
#ifdef HAVE_RADEON
|
||||
if(src_format == IMGFMT_YV12)
|
||||
{
|
||||
yv12toyuy2(image[0],image[1],image[2],dst
|
||||
,w,h,stride[0],stride[1],w*2);
|
||||
}
|
||||
else
|
||||
#else
|
||||
if(src_format == IMGFMT_YV12)
|
||||
{
|
||||
uint32_t dstPitch,d1line,d2line,d3line,d1offset,d2offset,d3offset;
|
||||
dstPitch = (mga_vid_config.src_width + 15) & ~15; /* of luma */
|
||||
d1line = y * dstPitch;
|
||||
d2line = (mga_vid_config.src_height * dstPitch) + ((y >> 1) * (dstPitch >> 1));
|
||||
d3line = d2line + ((mga_vid_config.src_height >> 1) * (dstPitch >> 1));
|
||||
|
||||
y &= ~1;
|
||||
|
||||
d1offset = (y * dstPitch) + x;
|
||||
d2offset = d2line + (x >> 1);
|
||||
d3offset = d3line + (x >> 1);
|
||||
CopyData420(image[0],image[1],image[2],
|
||||
dst+d1offset,dst+d2offset,dst+d3offset,
|
||||
stride[0],stride[1],dstPitch,h,w);
|
||||
}
|
||||
vlvo_draw_slice_mga(image,stride,w,h,x,y);
|
||||
else
|
||||
#endif
|
||||
memcpy(dst,image[0],mga_vid_config.frame_size);
|
||||
#endif
|
||||
if(verbose > 1) printf("vesa_lvo: vlvo_draw_slice() was called\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user