[MPlayer-dev-eng] [PATCH] Better double frame rate output and frame limit option.
Andy Furniss
andyqos at ukfsn.org
Tue Jan 8 12:27:37 CET 2013
Vicente Sendra wrote:
>> An additional note, hybrid mode without fpslimit option will
>> make the cpu work almost at 100% as vanilla mplayer does
>> when framerate is very close to refresh rate.
>
>
> I did it (it's just a small change in check_framedrop function) and tested with good results.
This works for my (limited) h264 HD ts testing with just -framedrop and
blocking vo saving me from disruptive drops.
Testing an old mpeg2 transport stream I am seeing an initial pause with
lavf/correct-pts - this happens with previous version of mplayer.c patch
as well - I know there are mpeg2 correct pts issues mentioned elsewhere,
but I haven't had time to re-read/test more yet.
My testing is on a setup without compositing - which may be atypical.
>
> changed this:
> -----------------------------------------------------
> // interpolated frames, only drop by fps limit
> if(drop_vout > 0)
> drop_frame = frame_dropping;
> -----------------------------------------------------
> by this:
> -----------------------------------------------------
> // interpolated frames, drop preferentially by fps limit
> if(drop_vout > 0){
> drop_frame = frame_dropping;
> }else{
> if(d < - 0.050) // start dropping interpolated frames before we drop normal frames
> drop_frame = frame_dropping;
> }
> -----------------------------------------------------
>
>
> These are the results of testing a 29.970fps video with yadif=1 on a 60hz display with buffered vo and vsync:
On my box (4 x 3.4Ghz) ever getting anything that uses gpu and/or
mmx/sse never seems to register as using full Cpu with top - and as a
result cpufreq ondemand doesn't work well for these cases. I always have
to set my cpus to perf if I want good behavior to save them constantly
switching down to 800MHz.
What I am trying to say is that extra framedrops to save cpu doesn't
appeal to me, as it seems that most of my frame drops are just down to
blocking vo and not drift/running out of cpu.
I haven't seen/tested Dan's patches - maybe the way they do things works
differently with blocking vo?
On the plus side for full screen I found that I can get gl to vsync and
not block by using vblank_mode=0 and a radeon xorg.conf option
SwapBuffersWait.
More information about the MPlayer-dev-eng
mailing list