1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-30 07:18:17 +00:00
mpv/demux
wm4 1183ad4e58 demux_edl: fix assertion failure on exit in obscure ytdl cases
If a DASH-hack EDL has an init fragment is set, it opens the init
fragment as such to get the track layout (including codec etc.) and
avoids opening actual fragments until actual playback. It does not get
added to the source array, so it leaks on exit, which triggers an
obscure (but very justified) assertion in thread_tools.c:106. Fix the
leak by adding the additional demuxer instance to the sources arrays,
which gets it freed.

This is a regression from when I rewrote some of the timeline handling.
I decided that in order to make memory management slightly simpler,
freeing a timeline should only free elements in the sources array. That
is OK; I just didn't re-test with pseudo-DASH that has init fragments,
and just hit a video that uses that by accidents. These videos are
rather scarce (apparently) so it happened only now.

The real solution would probably be adding demuxer reference counting.
This EDL memory management is just too messy, and throwing refcounting
at such problems is an effective and popular fix. Then you'd get
debugging nightmares with incorrect refcounts too, though.
2019-01-20 15:46:09 +01:00
..
codec_tags.c demux_mkv: simplify avi compat. codec_tags.c GUID lookup 2018-09-14 14:17:32 +02:00
codec_tags.h Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
cue.c cue: strip quotes and leading whitespace from tags 2018-01-30 14:01:15 +01:00
cue.h Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
demux_cue.c demux_edl, cue, mkv: slightly nicer file format indication 2019-01-11 15:12:30 +01:00
demux_edl.c demux_edl: fix assertion failure on exit in obscure ytdl cases 2019-01-20 15:46:09 +01:00
demux_lavf.c demux: slightly cleanup network speed reporting 2019-01-05 09:11:18 +01:00
demux_libarchive.c demux: change hack for closing subtitle files early 2018-09-07 23:02:36 +02:00
demux_mf.c demux: return packets directly from demuxer instead of using sh_stream 2018-09-07 15:20:32 +02:00
demux_mkv_timeline.c demux_edl, cue, mkv: slightly nicer file format indication 2019-01-11 15:12:30 +01:00
demux_mkv.c demux_mkv: fix seeking in broken mjpeg files 2019-01-18 01:04:49 +01:00
demux_null.c demux_null: mark as seekable 2018-01-06 14:42:22 -08:00
demux_playlist.c demux: change hack for closing subtitle files early 2018-09-07 23:02:36 +02:00
demux_raw.c demux: return packets directly from demuxer instead of using sh_stream 2018-09-07 15:20:32 +02:00
demux_timeline.c demux_timeline: add heuristic to fix shifted seeks with separate audio 2019-01-11 15:12:30 +01:00
demux.c demux: fix typo in a comment 2019-01-05 09:11:18 +01:00
demux.h demux_timeline: report network speed of slave connections 2019-01-05 09:11:18 +01:00
ebml.c demux_mkv: adjust log verbosity levels 2018-04-29 02:21:32 +03:00
ebml.h demux_mkv: rewrite packet reading to avoid 1 memcpy() 2017-11-05 18:13:34 +01:00
matroska.h ebml, matroska.h: change license to LGPL 2017-04-21 13:34:10 +02:00
packet.c demux: support for some kinds of timed metadata 2018-04-18 01:17:42 +03:00
packet.h demux: return packets directly from demuxer instead of using sh_stream 2018-09-07 15:20:32 +02:00
stheader.h demux, player: fix playback of sparse video streams (w/ still images) 2018-05-24 10:26:41 -07:00
timeline.c demux_edl, cue, mkv: slightly nicer file format indication 2019-01-11 15:12:30 +01:00
timeline.h demux_edl, cue, mkv: slightly nicer file format indication 2019-01-11 15:12:30 +01:00