[MPlayer-dev-eng] New patches coming

Dan Oscarsson Dan.Oscarsson at tieto.com
Fri May 14 10:30:13 CEST 2010


Since I got a LCD TV december 2008 and found that mplayer did not work
very well, I have worked on mplayer to make it better. An early version
of my enhancements I published last summer but some of you did not want
to change vdpau then.

The major problem with mplayer when using a LCD TV is that mplayer
cannot handle playing a 24 hz move on a display with 24 hz refresh rate,
without A-V getting out of sync or video frames being dropped.

I have now fixed that and several other smaller problems.

Now I, and a friend, have been using my enhancements for nearly a year,
adding new enhancements during the time to make them better. I hope you
now are interested in my enhancements.

I plan do do a little cleaning and removing unneeded debug code before
publishing. I have split my enhancements into six small independent
patches and seven bigger patches that must be done in order. Hopefully
that is more acceptable for you? I have also added a special option to
enable the major part of my new code, so you can still run mplayer the
old way.

The major parts are in mplayer.c, libmpcodecs/dec_audio.c and
libvo/vo_vdpau.c. Last year you did not want to change vdpau.c - I hope
you are willing to change vdpau now? My changes will not work without
changing vdpau.

The major parts include new more stable audio pts generation, new video
frame scheduling taking into account spacing between vsyncs and time of
vsyncs (Uoti have something like that in git implemented in vdpau. My
implementation is in mplayer and could work with other video drivers
then vdpau, though I have currently only modified vdpau to give needed
information), and matching playback speed to display refresh rate.

If someone just want to try the entire package of patches I have them
and a script to quickly apply them all.

   Dan


Summary of the most important parts of what my patches do

 - Avoid hanging waiting for pulseaudio to finish playing on exit

 - Adjust latency in pulseaudio to avoid unstable pts calculations
   giving unstable playback

 - Fix so LATM is recognised better and handled better with faad

 - Reduce time to change speed with lavcresample by half

 - Fix so pts reordering works even after a seek returns first
   frame with undefined pts

 - Fix so mp_msg messages do not overwrite status line

 - Get time in 64 bit quantities so it does not wrap

 - Much more stable audio pts values (for example mp3 pts generation
   varies around correct value in normal mplayer)

 - Vdpau enhancements, vsync interval detection, vsync time detection,
   drop frames if too far off, fixes to reduce flashing

 - A-V sync based on pts timing, frame scheduling taking into account
   time between vsyncs and time of vsyncs to display frames at best
   moment

 - Make it possible to sync playback speed to display refresh rate

 - Sync audio and video after a seek so it starts in sync

 - Sync audio and video after a pause so it starts in sync

 - changing speed keeps a-v in sync

 - start audio before video, if audio stream starts before video.
   start video before audio, if audio stream starts after video.





More information about the MPlayer-dev-eng mailing list