mpv/player
wm4 88f10ec84f player: fix instant subtitle refresh on track switches
When switching a subtitle track, the subtitle wasn't necessarily
updated, especially when playback was paused.

Some awfully subtle and complex interactions here.

First off (and not so subtle), the subtitle decoder will read packets
only on explicit update_subtitles() calls, which, if video is active, is
called only when a new video frame is shown. (A simply video frame
redraw doesn't trigger this.) So call it explicitly. But only if
playback is "initialized", i.e. not when it does initial track selection
and decoder init, during which no packets should be read.

The second issue is that the demuxer thread simply will not read new
packets just because a track was switched, especially if playback is
paused. That's fine, but if a refresh seek is to be done, it really
should do this. So if there's either 1. a refresh seek requested, or 2.
a refresh seek ongoing, then read more packets.

Note that it's entirely possible that we overflow the packet queue with
this in unpredicated weird corner cases, but the queue limit will still
be enforced, so this shouldn't make the situation worse.
2016-09-24 19:57:19 +02:00
..
lua ytdl_hook: temporarily force disable dash segments formats 2016-09-22 20:34:42 +02:00
audio.c audio: fix segfault when yanking USB DAC 2016-09-20 14:46:36 +02:00
client.c client API: more or less deprecate mpv_set_option() 2016-09-21 17:35:00 +02:00
client.h client API: fix init/destruction race conditions 2016-09-21 17:34:55 +02:00
command.c command: some minor corrections to previous commit 2016-09-24 17:51:23 +02:00
command.h options: slightly better option update mechanism 2016-09-19 19:51:26 +02:00
configfiles.c player: remove some explicit options accesses when saving resume file 2016-09-22 20:57:06 +02:00
core.h command: add a load-script command 2016-09-22 20:57:06 +02:00
external_files.c ta: remove old and redundant macro 2016-05-17 10:53:14 +02:00
external_files.h
lavfi.c lavfi: shut up false positive compiler warnings 2016-04-26 19:38:51 +02:00
lavfi.h player: add complex filter graph support 2016-02-05 23:19:56 +01:00
loadfile.c player: some M_SETOPT_RUNTIME cleanups 2016-09-22 20:57:05 +02:00
lua.c lua: fix array detection 2016-09-24 17:52:36 +02:00
main.c player: fix intended pseudo-gui behavior 2016-09-23 22:35:54 +02:00
misc.c player: litter code with explicit wakeup calls 2016-09-16 14:39:45 +02:00
osd.c player: litter code with explicit wakeup calls 2016-09-16 14:39:45 +02:00
playloop.c x11: fix external fullscreen update 2016-09-23 12:09:48 +02:00
screenshot.c video: refactor how VO exports hwdec device handles 2016-05-09 20:03:22 +02:00
screenshot.h
scripting.c command: add a load-script command 2016-09-22 20:57:06 +02:00
sub.c player: fix instant subtitle refresh on track switches 2016-09-24 19:57:19 +02:00
video.c player: minor changes in init code 2016-09-19 19:57:31 +02:00