mpv/player
wm4 bd5a02d080 player: detect audio PTS jumps, make video PTS heuristic less aggressive
This is another attempt at making files with sparse video frames work
better.

The problem is that you generally can't know whether a jump in video
timestamps is just a (very) long video frame, or a timestamp reset. Due
to the existence of files with sparse video frames (new frame only every
few seconds or longer), every heuristic will be arbitrary (in general,
at least).

But we can use the fact that if video is continuous, audio should also
be continuous. Audio discontinuities can be easily detected, and if that
happens, reset some of the playback state.

The way the playback state is reset is rather radical (resets decoders
as well), but it's just better not to cause too much obscure stuff to
happen here. If the A/V sync code were to be rewritten, it should
probably strictly use PTS values (not this strange time_frame/delay
stuff), which would make it much easier to detect such situations and
to react to them.
2016-01-09 20:39:28 +01:00
..
lua ytdl: disable --all-subs if "sub-lang" is in raw-options 2015-10-24 17:30:22 +02:00
audio.c player: detect audio PTS jumps, make video PTS heuristic less aggressive 2016-01-09 20:39:28 +01:00
client.c client API: disallow masking MPV_EVENT_SHUTDOWN 2015-12-02 23:08:43 +01:00
client.h vo_opengl_cb: don't render OSD while VO is not created 2015-03-23 16:32:59 +01:00
command.c command: replace ROUND() with lrint() 2015-12-26 18:36:45 +01:00
command.h video: always re-probe auto deint filter on filter reconfig 2015-07-21 21:54:15 +02:00
configfiles.c player: make watch later/resume work when "playing" directories 2016-01-06 22:40:55 +01:00
core.h sub: change how subtitles are read 2015-12-29 01:35:52 +01:00
external_files.c player: fix previous commit 2015-12-25 13:40:06 +01:00
external_files.h player: rename and move find_subfiles.c 2015-09-20 18:05:06 +02:00
loadfile.c player: reset playback abort when reloading a file 2016-01-07 09:11:15 +01:00
lua.c osd: delay libass initialization as far as possible 2015-09-07 14:26:01 +02:00
main.c Update copyright year 2016-01-01 00:18:40 +01:00
misc.c demux: remove weird tripple-buffering for the sh_stream list 2015-12-23 21:52:16 +01:00
osd.c osd: do not let OSD messages overwrite --osd-msgN text 2015-11-29 17:56:08 +01:00
playloop.c sub: change how subtitles are read 2015-12-29 01:35:52 +01:00
screenshot.c video: switch from using display aspect to sample aspect 2015-12-19 20:45:36 +01:00
screenshot.h client API: add a screenshot_raw command 2015-04-20 23:11:03 +02:00
scripting.c path: make mp_path_join accept normal C strings 2015-05-09 15:26:47 +02:00
sub.c sub: change how subtitles are read 2015-12-29 01:35:52 +01:00
video.c player: detect audio PTS jumps, make video PTS heuristic less aggressive 2016-01-09 20:39:28 +01:00