mpv/demux
wm4 5bdf9d01ca demux_mkv: defer reading of seek index until first seek
Playing Youtube videos often requires an additional seek to the end of
the file. This flushes the stream cache. The reason for the seek is
reading the cues (seek index). This poses the question why Google is
muxing its files in such a way, since nothing in Matroska mandates that
cues are located at the end of the file, but we want to handle this
situation better anyway.

The seek index is not needed for normal playback, only for seeking.
This commit changes header parsing such that the index is not read on
initialization in order to avoid the additional stream-level seek.
Instead, read the index on the first demuxer-level seek, when the seek
index is actually needed.

If the cues are at the beginning of the file, they are read immediately
as part of the normal header reading process. This commit changes
behavior only if cues are outside of the header (i.e. not in the area
between EBML header and clusters), and linked by a SeekHead. Other
level 1 elements linked by the SeekHead might still cause seeks to the
end of the file, although that seems to be rare.
2013-05-23 01:02:24 +02:00
..
asf.h
asfguid.h
asfheader.c core: redo how codecs are mapped, remove codecs.conf 2013-02-10 17:25:56 +01:00
asfheader.h
aviheader.c core: redo how codecs are mapped, remove codecs.conf 2013-02-10 17:25:56 +01:00
aviheader.h stream, demux: replace off_t with int64_t 2012-11-20 18:00:15 +01:00
aviprint.c
aviprint.h
codec_tags.c demux: fix big endian PCM in mkv with demux_mkv 2013-05-11 20:19:08 +02:00
codec_tags.h core: redo how codecs are mapped, remove codecs.conf 2013-02-10 17:25:56 +01:00
demux.c demux_lavf: workaround minor ffmpeg memory leak 2013-05-21 22:07:13 +02:00
demux.h demux: remove retrieval of chapter end time 2013-05-06 23:11:11 +02:00
demux_asf.c core: use playback time to determine playback percent position 2013-02-26 02:01:48 +01:00
demux_avi.c demux: remove some unused sh_video_t fields 2013-04-20 23:28:27 +02:00
demux_cue.c
demux_edl.c
demux_lavf.c demux_lavf: workaround minor ffmpeg memory leak 2013-05-21 22:07:13 +02:00
demux_mf.c demux_mf: fix crashes when '*' matches directories 2013-03-19 01:54:45 +01:00
demux_mkv.c demux_mkv: defer reading of seek index until first seek 2013-05-23 01:02:24 +02:00
demux_mng.c core: use playback time to determine playback percent position 2013-02-26 02:01:48 +01:00
demux_mpg.c sub, demux: identify subtitle types with the codec name 2013-04-20 23:28:27 +02:00
demux_packet.h demux: workaround for -demuxer mpegts -correct-pts 2013-05-21 22:07:13 +02:00
demux_rawaudio.c core: use channel map on demuxer level too 2013-05-12 21:24:55 +02:00
demux_rawvideo.c demux_rawvideo: allow setting video codec 2013-02-24 16:46:35 +01:00
demux_ts.c Fix some cppcheck / scan-build warnings 2013-05-06 23:11:11 +02:00
demux_ts.h
ebml.c demux_mkv: use a bounded buffer for block data 2013-04-20 23:28:22 +02:00
ebml.h demux_mkv: use a bounded buffer for block data 2013-04-20 23:28:22 +02:00
extension.c
matroska.h demux_mkv: support dirac in mkv 2013-05-21 22:07:12 +02:00
mf.c demux_mf: fix crashes when '*' matches directories 2013-03-19 01:54:45 +01:00
mf.h demux_mf: allow displaying single image files, various cleanups 2012-11-16 21:21:16 +01:00
mp3_hdr.c
mp3_hdr.h
mpeg_hdr.c
mpeg_hdr.h
ms_hdr.h
parse_es.c
parse_es.h
stheader.h Merge branch 'audio_changes' 2013-05-12 21:47:55 +02:00
video.c demux: remove some unused sh_video_t fields 2013-04-20 23:28:27 +02:00