[MPlayer-G2-dev] new release: pre39
arpi at thot.banki.hu
Mon Aug 4 03:37:05 CEST 2003
this is a big cleanup release, cleanup of A-V sync code in test-play.c
i think now i'm close to be able to separate A-V sync to separate file.
i've also fixed several problems, and added some benchmarking, see bellow:
- test-play.c: A-V sync correction code moved to sleep-time calculation.
It simplified things a bit, and frame_time_remaining could be removed.
At the same time, it's "fixed" to use the wanted sleep time instead of
the actual sleep time, as we don't want to correct timer's errors by
delaying streams. (timer's error is some small random value, depending
on OS-dep timer implementation)
- Implemented Rich's idea for inverse soft-telecine in vd_libmpeg2.c
(later may can be moved to a filter)
- Implemented Albeu's timer hack in vo_fbdev.c using FBIO_WAITFORVSYNC ioctl
-> libvo2 API changed, pts is unsigned int (and is in microsecs), not float!
- bugfix: autosync now merges corrections (from sndcard) back to time_pos
- fix/cleanup: stream sync is now calculated from difference of sh_audio->delay
and a_pts-v_pts. (previously time_frame and delay were included too, badly)
- simple framedropping implemented (not finished yet), works for libmpeg2.
- etc/codecs.conf included (note: not compatible with G1!)
- TOOLS/cpuinfo.c added, for ./configure.g1 under win32.
- pause (space, p) implemented
- some A/V benchmarking added. A+V statusline changed, now it displays:
video fps --v v-- A-V sync: effective/streams(corrected by)
A: 165.311 V: 161.118 (29.970) A-V:+4.193/-0.0000(-0.0000) 102%(216%)
^---------^--- audio+video PTS CPU usage--->> avg^ max^
Note: The effective A-V sync is the delay what you can actualy see/hear.
When this number goes up, it means that your CPU/VGA is probably too slow...
If this isn't constant 0, but floating around zero, it means your timer
(be it soundcard or system timer, depending on -autosync) is inaccurate!
The 'streams A-V sync' (the second number after A-V:) is the actual
difference of the audio and video stream timers. It should be zero,
non-zero value means one of the streams (or both) run at wrong rate.
It may be problem of codec, demuxer or even the file may be broken.
This isn't influenced by slow cpu, inaccurate timers, broken sound drivers!
The 3rd number in ( ) is the old ct: value, ie. the total corrected
stream A-V delay (ie. value added to timer delay to compensate PTS delay).
A'rpi / Astral & ESP-team
Developer of MPlayer G2, the Movie Framework for all - http://www.MPlayerHQ.hu
More information about the MPlayer-G2-dev