[MPlayer-dev-eng] PTS system broken..

Charles Henrich henrich at sigbus.com
Fri Mar 1 00:15:48 CET 2002


> ok, in your case, v_timer_corr=0.000001
> but why does it cause any skip or drop ?
> 
> // check frame duplicate/drop:
> 
> if(v_timer_corr>=(float)mux_v->h.dwScale/mux_v->h.dwRate){
>     v_timer_corr-=(float)mux_v->h.dwScale/mux_v->h.dwRate;
>     ++skip_flag; // skip
> } else
> while(v_timer_corr<=-(float)mux_v->h.dwScale/mux_v->h.dwRate){
>     v_timer_corr+=(float)mux_v->h.dwScale/mux_v->h.dwRate;
>     --skip_flag; // dup
> }
> 
> it won't skip or drop until it reaches one frame time + or -.

I dont have access to my PAL machine right now, but on a NTSC capture machine,
same problem occurs:

DUPLICATE: -0.033334 <= -0.033333 -0.000001

The PAL case would be:

DUPLICATE: -0.040001 <= -0.040000 -0.000001

where that is:

while(v_timer_corr<=-(float)mux_v->h.dwScale/mux_v->h.dwRate){

fprintf(stderr,"\n(DUPLICATE: %f <= %f", 
        v_timer_corr, -(float)mux_v->h.dwScale/mux_v->h.dwRate);

    v_timer_corr+=(float)mux_v->h.dwScale/mux_v->h.dwRate;

fprintf(stderr," %f)\n", v_timer_corr);

    --skip_flag; // dup
}


       Charles Henrich         Eon Entertainment         henrich at msu.edu

                       http://www.sigbus.com:81/~henrich



More information about the MPlayer-dev-eng mailing list