mirror of
https://github.com/mpv-player/mpv
synced 2024-12-26 17:12:36 +00:00
vsync
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4848 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
932beab3d1
commit
bccc26f973
@ -524,12 +524,12 @@ static void mach64_vid_display_video( void )
|
||||
// bit 1 yuv2rgb coeff related
|
||||
// bit 2 horizontal interpolation if 0
|
||||
// bit 3 vertical interpolation if 0
|
||||
// bit 4 chroma related
|
||||
// bit 4 chroma encoding (0-> 128=neutral / 1-> 0->neutral)
|
||||
// bit 5-6 gamma correction
|
||||
// bit 7 nothing visible if set
|
||||
// bit 8-27 no effect
|
||||
// bit 28-31 nothing interresting just crashed my system when i played with them :(
|
||||
|
||||
|
||||
mach64_wait_for_idle();
|
||||
vf = INREG(VIDEO_FORMAT);
|
||||
|
||||
@ -547,7 +547,7 @@ static void mach64_vid_display_video( void )
|
||||
// 0xA YV12
|
||||
// 0xB YUY2
|
||||
// 0xC UYVY
|
||||
// 0xD UYVY (not again ... dont ask me, i dunno the difference)
|
||||
// 0xD UYVY (no difference is visible if i switch between C/D for every even/odd frame)
|
||||
// 0xE dunno behaves strange
|
||||
// 0xF dunno behaves strange
|
||||
// Bit 28 all values are assumed to be 7 bit with chroma=64 for black (tested with YV12 & YUY2)
|
||||
@ -751,7 +751,13 @@ int vixPlaybackOff(void)
|
||||
|
||||
static void mach64_wait_vsync( void )
|
||||
{
|
||||
#warning MACH64 VSYNC WAS NOT IMPLEMENTED!!!
|
||||
int i;
|
||||
|
||||
for(i=0; i<2000000; i++)
|
||||
if( (INREG(CRTC_INT_CNTL)&CRTC_VBLANK)==0 ) break;
|
||||
for(i=0; i<2000000; i++)
|
||||
if( (INREG(CRTC_INT_CNTL)&CRTC_VBLANK) ) break;
|
||||
|
||||
}
|
||||
|
||||
int vixPlaybackFrameSelect(unsigned int frame)
|
||||
@ -806,18 +812,19 @@ buf2 += ((besr.vid_buf2_base_adrs)&~15) - mach64_overlay_offset;
|
||||
}*/
|
||||
for(y=0; y<480; y++)
|
||||
{
|
||||
// for(x=0; x<1280; x++) buf0[x + y*1280]=0;
|
||||
for(x=0; x<1280/4; x++)
|
||||
for(x=0; x<1280; x++) buf0[x + y*1280]=0;
|
||||
for(x=0; x<1280/2; x++) buf0[x*2 + y*1280]=128;
|
||||
for(x=0; x<1280/24; x++)
|
||||
{
|
||||
// 1-> gray0
|
||||
// buf0[x*2 + y*1280 +0] ^= buf0[x*2 + y*1280 +1];
|
||||
// buf0[x*2 + y*1280 +1] ^= buf0[x*2 + y*1280 +0];
|
||||
// buf0[x*2 + y*1280 +0] ^= buf0[x*2 + y*1280 +1];
|
||||
|
||||
buf0[x*4 + y*1280 +1] =x; //buf0[x*4 + y*1280 +0]>>1;
|
||||
buf0[x*4 + y*1280 +3] =128; //buf0[x*4 + y*1280 +2]>>1;
|
||||
buf0[x*4 + y*1280 +0] =128;
|
||||
buf0[x*4 + y*1280 +2] =128;
|
||||
buf0[x*24 + y*1280 +0] =128;
|
||||
buf0[x*24 + y*1280 +1] =x; //buf0[x*4 + y*1280 +0]>>1;
|
||||
buf0[x*24 + y*1280 +2] =128;
|
||||
buf0[x*24 + y*1280 +3] =x; //buf0[x*4 + y*1280 +2]>>1;
|
||||
|
||||
// buf0[x*8 + y*1280 +0]= 1;
|
||||
// buf0[x*2 + y*1280 +1]= 7;
|
||||
@ -830,8 +837,8 @@ for(y=0; y<480; y++)
|
||||
// for(x=0; x<1280; x++) buf0[x + y*1280]=128;
|
||||
for(x=0; x<640; x++)
|
||||
{
|
||||
buf0[x + y*640 ]>>=1;
|
||||
buf0[x + y*640 ]|=128;
|
||||
// buf0[x + y*640 ]=255;//>>=1;
|
||||
// buf0[x + y*640 ]|=128;
|
||||
}
|
||||
}
|
||||
for(y=0; y<480/2; y++)
|
||||
@ -839,23 +846,31 @@ for(y=0; y<480/2; y++)
|
||||
// for(x=0; x<1280; x++) buf0[x + y*1280]=128;
|
||||
for(x=0; x<640/2; x++)
|
||||
{
|
||||
buf1[x + y*320 ]>>=1;
|
||||
buf2[x + y*320 ]>>=1;
|
||||
buf1[x + y*320 ]+=128 ;//>>=1;
|
||||
buf2[x + y*320 ]+=128 ;//>>=1;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#if 0 // delay routine so the individual frames can be ssen better
|
||||
{
|
||||
volatile int i=0;
|
||||
for(i=0; i<10000000; i++);
|
||||
}
|
||||
#endif
|
||||
|
||||
mach64_wait_vsync();
|
||||
mach64_wait_for_idle();
|
||||
mach64_fifo_wait(7);
|
||||
|
||||
OUTREG(SCALER_BUF0_OFFSET, off[0]);
|
||||
OUTREG(SCALER_BUF0_OFFSET_U, off[1]);
|
||||
OUTREG(SCALER_BUF0_OFFSET_V, off[2]);
|
||||
OUTREG(SCALER_BUF1_OFFSET, off[3]);
|
||||
OUTREG(SCALER_BUF1_OFFSET_U, off[4]);
|
||||
OUTREG(SCALER_BUF1_OFFSET_V, off[5]);
|
||||
mach64_wait_vsync();
|
||||
|
||||
if(__verbose > VERBOSE_LEVEL) mach64_vid_dump_regs();
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user