Update of /cvsroot/mplayer/main/libvo In directory mail:/var/tmp.root/cvs-serv9560 Modified Files: vo_svga.c Log Message: fix find_best fail if the black area is bigger than image, few more verbose messages, OSD not rendered if native mode Index: vo_svga.c =================================================================== RCS file: /cvsroot/mplayer/main/libvo/vo_svga.c,v retrieving revision 1.64 retrieving revision 1.65 diff -u -r1.64 -r1.65 --- vo_svga.c 20 Mar 2003 01:45:40 -0000 1.64 +++ vo_svga.c 22 Mar 2003 23:54:26 -0000 1.65 @@ -15,10 +15,10 @@ - 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 @@ 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 @@ 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 @@ } } }//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 @@ //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) {
participants (1)
-
Ivan Kalvachev CVS