1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-11 09:25:56 +00:00
mpv/player
wm4 197f18402e sub: fix possible deadlock with --no-sub-ass and similar
This is a deadlock caused by a lock order issue: sub/osd.c locks the OSD
first, then the subtitle decoder lock. player/sub.c does the reverse.

Fix this by discussing away the requirement for locking (see below),
which allows us to drop the broken sub lock. sub_get_text() still
acquires and releases the sub decoder lock, but it's not held at the
same time as the OSD lock anymore, so it should be fine.

Originally, the sub lock was acquired because sub_get_text() returns a
pointer to a mutable string. We simply declare that it's ok to call it
unlocked, as long as only 1 thread accesses it, which works out fine in
this case.
2014-09-06 00:16:15 +02:00
..
lua osc: Use osd-font for playlist buttons 2014-08-22 23:50:50 +02:00
timeline Move compat/ and bstr/ directory contents somewhere else 2014-08-29 12:31:52 +02:00
audio.c audio: correctly initialize output buffer 2014-09-05 17:51:45 +02:00
client.c client API: fix memory leak with rejected events 2014-08-31 19:51:41 +02:00
client.h player: update cache state only if requested 2014-08-28 17:49:09 +02:00
command.c video: rename VOCTRL_GET_WINDOW_SIZE 2014-09-05 01:52:16 +02:00
command.h
configfiles.c player: check for null in resume config search 2014-09-05 17:51:45 +02:00
core.h player: dynamically change cache wait times 2014-08-27 23:24:55 +02:00
discnav.c video: get rid of video_next_pts field 2014-08-22 14:22:06 +02:00
loadfile.c audio: fix random crashes on uninit 2014-09-05 04:33:24 +02:00
lua.c lua: expose mp_getcwd through mp.utils 2014-08-31 00:58:27 +02:00
main_fn.c
main.c options: compatibility hack for --slave-broken 2014-08-25 00:48:55 +02:00
misc.c player: use virtual time for --audio-file with ordered chapters 2014-08-15 23:32:37 +02:00
osd.c player: better cache status on status line 2014-08-27 23:12:47 +02:00
playloop.c player: add --osd-playing-msg option 2014-09-02 00:12:52 +02:00
screenshot.c Move compat/ and bstr/ directory contents somewhere else 2014-08-29 12:31:52 +02:00
screenshot.h
scripting.c Move compat/ and bstr/ directory contents somewhere else 2014-08-29 12:31:52 +02:00
sub.c sub: fix possible deadlock with --no-sub-ass and similar 2014-09-06 00:16:15 +02:00
video.c video: initial Matroska 3D support 2014-08-30 23:24:46 +02:00