changeset 3020:e5ebde3ebdd6

Minor fixes with the same results
author nick
date Tue, 20 Nov 2001 10:34:00 +0000
parents 64ce4a515a78
children 8c765d4a31b8
files drivers/radeon/radeon_vid.c libvo/vesa_lvo.c
diffstat 2 files changed, 13 insertions(+), 72 deletions(-) [+]
line wrap: on
line diff
--- a/drivers/radeon/radeon_vid.c	Tue Nov 20 10:00:58 2001 +0000
+++ b/drivers/radeon/radeon_vid.c	Tue Nov 20 10:34:00 2001 +0000
@@ -381,7 +381,7 @@
     
     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 @@
     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 @@
     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;
--- a/libvo/vesa_lvo.c	Tue Nov 20 10:00:58 2001 +0000
+++ b/libvo/vesa_lvo.c	Tue Nov 20 10:34:00 2001 +0000
@@ -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 @@
 	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 @@
         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;
 }