summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
authoriive <iive@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-03-22 23:54:26 +0000
committeriive <iive@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-03-22 23:54:26 +0000
commit91b423ab9f29e7169814e36c97be56fc8c5d48d7 (patch)
tree34249bba1127e94b2ed858b89f0ff80e3a4fb35a /libvo
parentfe2df10d4399d73b4be22d6ed6db3d9d5a18b1f1 (diff)
downloadmpv-91b423ab9f29e7169814e36c97be56fc8c5d48d7.tar.bz2
mpv-91b423ab9f29e7169814e36c97be56fc8c5d48d7.tar.xz
fix find_best fail if the black area is bigger than image, few more verbose messages, OSD not rendered if native mode
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9659 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo')
-rw-r--r--libvo/vo_svga.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/libvo/vo_svga.c b/libvo/vo_svga.c
index 2c1d0fc57a..a970d21ec2 100644
--- a/libvo/vo_svga.c
+++ b/libvo/vo_svga.c
@@ -15,10 +15,10 @@ Wrangings:
- retrace sync works only in doublebuffer mode.
- the retrace sync may slow down decoding a lot - mplayer is blocked while
waiting for retrace
- - denoice3d fails to find common colorspace, vf_scale doesn't help - I work on it.
+ - denoise3d fails to find common colorspace, vf_scale doesn't help - It is
+ mplayer bug.
TODO:
- - OSD without flicker (w/h & w/o double buffer)
- let choose_best_mode take aspect into account
- set palette from mpi->palette or mpi->plane[1]
- let OSD draw in black bars - need some OSD changes
@@ -361,7 +361,7 @@ int find_best_svga_mode(int req_w,int req_h, int req_bpp){
vga_modeinfo *vminfo;
//int best aspect mode // best linear mode // best normal mode (no modeX)
- prev_badness = req_w * req_h;
+ prev_badness = 0;//take care of special case below
bestmode = 0; //0 is the TEXT mode
lastmode = vga_lastmodenumber();
for(i=1;i<lastmode;i++){
@@ -375,7 +375,7 @@ int find_best_svga_mode(int req_w,int req_h, int req_bpp){
if(squarepix)
if( vminfo->width*3 != vminfo->height*4 ) continue;
- if( prev_badness >= badness ){//modeX etc...
+ if( bestmode==0 || prev_badness >= badness ){//modeX etc...
prev_badness=badness;
bestmode=i;
if(verbose>3)
@@ -497,6 +497,13 @@ static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
}
}
}//fi force native
+ if(mode_capabilities&CAP_LINEAR){
+ printf("vo_svga: video mode is linear and memcpy could be used for image transfer\n");
+ }
+ if(mode_capabilities&CAP_ACCEL_PUTIMAGE){
+ printf("vo_svga: video mode have hardware acceleration and put_image could be used\n");
+ printf("vo_svga: If it works for you i would like to know \nvo_svga: (send log with `mplayer test.avi -v -v -v -v &> svga.log`). Thx\n");
+ }
//here is the place to handle strides for accel_ modes;
mode_stride=modeinfo->linewidth;
@@ -661,8 +668,9 @@ static void draw_alpha(int x0, int y0, int w, int h, unsigned char *src,
//only modes with bytesperpixel>0 can draw OSD
if(modeinfo->bytesperpixel==0) return;
-// if(!(mode_capabilities&CAP_LINEAR)) return;//force_native will remove OSD
-
+ if(!(mode_capabilities&CAP_LINEAR)) return;//force_native will remove OSD
+ if(verbose>3)
+ printf("vo_svga: OSD draw in page %d",cpage);
base=PageStore[cpage].vbase + y0*mode_stride + x0*modeinfo->bytesperpixel;
bytelen = modeinfo->width * modeinfo->bytesperpixel;
switch (mode_bpp) {