diff options
author | wm4 <wm4@nowhere> | 2013-07-14 23:44:50 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-07-14 23:44:50 +0200 |
commit | 65d8709152c5e3942e1a4db958be7cae80ea05b0 (patch) | |
tree | d40bddf44bf69f53319ff9d664e24ea90082a5be /video/mp_image.h | |
parent | e18ffd6b998858ca0797cb0ce4aabd4a509655dd (diff) | |
download | mpv-65d8709152c5e3942e1a4db958be7cae80ea05b0.tar.bz2 mpv-65d8709152c5e3942e1a4db958be7cae80ea05b0.tar.xz |
demux_lavf: add terrible hack to make DVD playback just work
DVD playback had some trouble with PTS resets: libavformat's genpts
feature would try reading until EOF (worst case) to find a new usable
PTS in case a packet's PTS is not set correctly. Especially with slow
DVD access, this would make the player to appear frozen.
Reimplement it partially in demux_lavf.c, and use that code in the DVD
case. This is heavily "inspired" by the code in av_read_frame from
libavformat/utils.c. The difference is that we stop reading if no PTS
has been found after 50 packets (consider this a heuristic). Also, we
don't bother with the PTS wrapping and last-frame-before-EOF handling.
Even with normal PTS wraps, the player frontend will go to hell for the
duration of a frame anyway, and should recover quickly after that.
The terribleness of this commit is mostly that we duplicate libavformat
functionality, and that we suddenly need a packet queue.
Diffstat (limited to 'video/mp_image.h')
0 files changed, 0 insertions, 0 deletions