changeset 2234:36fa77e785d4

swscale - 16bpp and -fs support
author arpi
date Wed, 17 Oct 2001 10:54:34 +0000
parents 5d8a0bc932c4
children 5eba9cbc5acf
files libvo/vo_x11.c
diffstat 1 files changed, 11 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/libvo/vo_x11.c	Wed Oct 17 03:40:03 2001 +0000
+++ b/libvo/vo_x11.c	Wed Oct 17 10:54:34 2001 +0000
@@ -172,12 +172,17 @@
  if ( depth != 15 && depth != 16 && depth != 24 && depth != 32 ) depth=24;
  XMatchVisualInfo( mDisplay,mScreen,depth,TrueColor,&vinfo );
 
- if( flags&0x04 && depth>=24 && format==IMGFMT_YV12 ) {
+ if( flags&0x04 && format==IMGFMT_YV12 ) {
      // software scale
-     scale_xinc=(width << 8) / d_width - 1;  // -1 needed for proper rounding
-     scale_yinc=(height << 16) / d_height;
-     image_width=d_width;
-     image_height=d_height;
+     if(fullscreen){
+         image_width=vo_screenwidth;
+         image_height=vo_screenheight;
+     } else {
+         image_width=d_width&(~3);
+         image_height=d_height;
+     }
+     scale_xinc=(width << 8) / image_width - 1;  // -1 needed for proper rounding
+     scale_yinc=(height << 16) / image_height;
      SwScale_Init();
  }
 
@@ -480,7 +485,7 @@
 
 if(scale_xinc){
  SwScale_YV12slice_brg24(src,stride,y,h,
-                         ImageData, image_width*((bpp+7)/8), image_width, ((bpp+7)/8),
+                         ImageData, image_width*((bpp+7)/8), image_width, bpp,
 			 scale_xinc, scale_yinc);
 } else {
  uint8_t *dst=ImageData + ( image_width * y + x ) * ( bpp/8 );