ffmpeg/libavformat
Dale Curtis 8336eb6f85 matroska: Add incremental parsing of clusters.
Reduces the amount of upfront data required for cluster parsing
thus decreasing latency on seek and startup.

The change in the seek-lavf_mkv FATE test is due to incremental
parsing no longer reading as much data as the old parser and
thus not having that additional data to generate index entries
based on keyframes.  Index entries are added correctly as the
file is parsed.

All FATE tests pass and Chrome has been using this patch for ~6
months without issue.

Currently incremental parsing is not supported for files with
SSA tracks since they require merging packets between clusters.
In this case the code falls back to non-incremental parsing.

Signed-off-by: Aaron Colwell <acolwell@chromium.org>
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-04-22 17:23:50 -07:00
..
4xm.c
a64.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
aacdec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
ac3dec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
adts.h
adtsenc.c
adxdec.c
aea.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
aiff.h
aiffdec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
aiffenc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
allformats.c CDXL demuxer and decoder 2012-02-14 22:32:53 +01:00
amr.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
anm.c
apc.c
ape.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
apetag.c apetag: do not leak memory if avio_read() fails 2012-02-23 16:16:37 -08:00
apetag.h
asf.c
asf.h
asfcrypt.c Replace memset(0) by zero initializations. 2012-03-28 09:38:33 +02:00
asfcrypt.h
asfdec.c asfdec: Add an option for not searching for the packet markers 2012-04-07 01:01:03 +03:00
asfenc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
assdec.c
assenc.c
au.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
audiointerleave.c
audiointerleave.h
avc.c avc: Add a function for converting mp4 style extradata to annex b 2012-03-24 22:53:18 +02:00
avc.h avc: Add a function for converting mp4 style extradata to annex b 2012-03-24 22:53:18 +02:00
avformat.h make av_interleaved_write_frame() flush packets when pkt is NULL 2012-03-27 11:12:55 +03:00
avi.h
avidec.c lavf: deprecate av_read_packet(). 2012-03-20 20:12:16 +01:00
avienc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
avio_internal.h
avio.c
avio.h avio: make AVIOContext.av_class pointer to const 2012-04-18 23:54:20 +01:00
aviobuf.c
avisynth.c
avlanguage.c
avlanguage.h
avs.c avs: don't set codec timebase 2012-03-02 11:11:38 +01:00
bethsoftvid.c bethsoftvid: synchronize video timestamps with audio sample rate 2012-02-16 10:47:11 -05:00
bfi.c
bink.c
bmv.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
c93.c libavformat: Add an ff_ prefix to some lavf internal symbols 2012-02-15 22:06:17 +02:00
caf.c
caf.h
cafdec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
cavsvideodec.c
cdg.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
cdxl.c cdxl demux: do not create packets with uninitialized data at EOF. 2012-03-05 16:27:31 -05:00
concat.c
crcenc.c
crypto.c
cutils.c libavformat: Add an ff_ prefix to some lavf internal symbols 2012-02-15 22:06:17 +02:00
daud.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
dfa.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
diracdec.c
dnxhddec.c
dsicin.c
dtsdec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
dv.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
dv.h libavformat: Add an ff_ prefix to some lavf internal symbols 2012-02-15 22:06:17 +02:00
dvenc.c libavformat: Add an ff_ prefix to some lavf internal symbols 2012-02-15 22:06:17 +02:00
dxa.c dxa: set audio stream time base using the sample rate 2012-02-29 15:45:50 -05:00
eacdata.c
electronicarts.c ea: fix audio pts 2012-03-03 17:03:27 -05:00
ffm.h
ffmdec.c mpegvideo_enc: add chroma/luma_elim_threshold private options. 2012-02-29 07:23:31 +01:00
ffmenc.c mpegvideo_enc: add chroma/luma_elim_threshold private options. 2012-02-29 07:23:31 +01:00
ffmeta.h
ffmetadec.c
ffmetaenc.c
file.c
filmstripdec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
filmstripenc.c
flacdec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
flacenc_header.c
flacenc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
flacenc.h
flic.c
flv.h
flvdec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
flvenc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
framecrcenc.c
framehash.c
gif.c gif: K&R formatting cosmetics 2012-02-21 15:47:06 +01:00
gopher.c
gsmdec.c
gxf.c
gxf.h
gxfenc.c lavf: make av_interleave_packet_per_dts() private. 2012-03-20 20:12:16 +01:00
h261dec.c
h263dec.c
h264dec.c
hls.c hls: Reset the AVIOContext when seeking 2012-02-20 11:10:02 +02:00
hlsproto.c hlsproto: Rename the functions and context 2012-02-14 20:05:32 +02:00
http.c http: Clear the auth state on redirects 2012-03-13 11:19:29 +02:00
http.h
httpauth.c httpauth: Parse the stale field in digest auth 2012-03-13 10:36:17 +02:00
httpauth.h httpauth: Parse the stale field in digest auth 2012-03-13 10:36:17 +02:00
id3v1.c
id3v1.h
id3v2.c id3v2: fix skipping extended header in id3v2.4 2012-04-01 09:02:24 +02:00
id3v2.h id3v2enc: add a function for writing attached pictures. 2012-02-29 14:31:17 +01:00
id3v2enc.c id3v2enc: add a function for writing attached pictures. 2012-02-29 14:31:17 +01:00
idcin.c
idroqdec.c
idroqenc.c
iff.c iff: make .long_name more descriptive 2012-03-12 17:02:02 +02:00
img2.c avcodec: add XBM encoder 2012-03-17 15:45:04 -04:00
img2dec.c img2: split muxer and demuxer into separate files 2012-02-22 22:04:03 +01:00
img2enc.c avcodec: add XBM encoder 2012-03-17 15:45:04 -04:00
ingenientdec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
internal.h lavf: make av_interleave_packet_per_dts() private. 2012-03-20 20:12:16 +01:00
ipmovie.c
isom.c mov: Add more HDV and XDCAM FourCCs. 2012-02-22 11:23:43 -08:00
isom.h mov: Fix detecting there is no sync sample. 2012-04-13 23:08:34 +03:00
iss.c
iv8.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
ivfdec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
ivfenc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
jvdec.c jv demux: set video stream duration 2012-03-14 15:34:50 +01:00
latmenc.c
libavformat.v
libnut.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
librtmp.c
lmlm4.c
lxfdec.c
m4vdec.c
Makefile build: prettyprinting cosmetics 2012-03-26 13:00:10 +02:00
matroska.c
matroska.h lavf: move CodecMime from matroska.h to internal.h 2012-02-29 13:57:59 +01:00
matroskadec.c matroska: Add incremental parsing of clusters. 2012-04-22 17:23:50 -07:00
matroskaenc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
md5enc.c
md5proto.c
metadata-example.c
metadata.c
metadata.h
mm.c
mmf.c libavformat: Add an ff_ prefix to some lavf internal symbols 2012-02-15 22:06:17 +02:00
mms.c
mms.h
mmsh.c
mmst.c
mov_chan.c mov: Add missing terminator to mov_ch_layout_map_1ch. 2012-03-22 13:56:44 -07:00
mov_chan.h doxygen: Remove documentation for non-existing parameters; misc small fixes. 2012-02-28 20:48:43 +01:00
mov.c mov: Treat keyframe indexes as 1-origin if starting at non-zero. 2012-04-21 14:04:33 -04:00
movenc.c movenc: Support high sample rates in isomedia formats by setting the sample rate field in stsd to 0. 2012-04-20 13:45:35 -07:00
movenc.h movenc: Add a min_frag_duration option 2012-03-20 11:18:05 +02:00
movenchint.c rtp: Factorize the check for distinguishing RTCP packets from RTP 2012-02-16 17:45:33 +01:00
mp3dec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
mp3enc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
mpc8.c
mpc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
mpeg.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
mpeg.h
mpegenc.c libavformat: Set the default for the max_delay option to -1 2012-03-20 10:53:47 +02:00
mpegts.c mpegts: Try seeking back even for nonseekable protocols 2012-04-23 00:02:49 +03:00
mpegts.h doxygen: Remove documentation for non-existing parameters; misc small fixes. 2012-02-28 20:48:43 +01:00
mpegtsenc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
mpegvideodec.c
mpjpeg.c
msnwc_tcp.c
mtv.c
mvi.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
mxf.c
mxf.h
mxfdec.c
mxfenc.c
mxg.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
ncdec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
network.c
network.h
nsvdec.c
nullenc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
nut.c
nut.h
nutdec.c nutdec: add malloc check and fix const to non-const conversion warnings 2012-04-18 23:54:20 +01:00
nutenc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
nuv.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
oggdec.c Fix uninitialized reads on malformed ogg files. 2012-03-08 11:52:15 -08:00
oggdec.h
oggenc.c oggenc: fix condition when not to flush due to keyframe granule. 2012-03-30 16:32:16 -04:00
oggparsecelt.c
oggparsedirac.c
oggparseflac.c oggdec: calculate correct timestamps in Ogg/FLAC 2012-03-27 16:11:06 -04:00
oggparseogm.c oggparseogm: fix order of arguments of avpriv_set_pts_info(). 2012-03-22 19:51:43 +01:00
oggparseskeleton.c
oggparsespeex.c
oggparsetheora.c ogg: don't set codec timebase 2012-03-02 11:11:38 +01:00
oggparsevorbis.c oggdec: output correct timestamps for Vorbis 2012-03-20 14:39:57 -04:00
oma.c
oma.h
omadec.c oma: Fix out of array read. 2012-03-18 15:01:58 -07:00
omaenc.c id3v2enc: split ff_id3v2_write(). 2012-02-29 14:26:14 +01:00
options_table.h libavformat: Set the default for the max_delay option to -1 2012-03-20 10:53:47 +02:00
options.c Move AVFormatContext/AVCodecContext option tables to separate files. 2012-03-20 07:09:18 +01:00
os_support.c
os_support.h
output-example.c output-example: K&R formatting cosmetics, comment spelling fixes 2012-03-30 13:43:29 +02:00
pcm.c libavformat: Add an ff_ prefix to some lavf internal symbols 2012-02-15 22:06:17 +02:00
pcm.h libavformat: Add an ff_ prefix to some lavf internal symbols 2012-02-15 22:06:17 +02:00
pcmdec.c libavformat: Add an ff_ prefix to some lavf internal symbols 2012-02-15 22:06:17 +02:00
pcmenc.c
pmpdec.c
psxstr.c psx-str: fix audio pts 2012-03-03 17:03:27 -05:00
pva.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
qcp.c
qtpalette.h
r3d.c Fix a bunch of common typos. 2012-03-09 22:02:49 +01:00
rawdec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
rawdec.h
rawenc.c avpacket, bfi, bgmc, rawenc: K&R prettyprinting cosmetics 2012-04-12 09:00:49 +02:00
rawenc.h
rawvideodec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
rdt.c rdt: remove workaround for infinite loop with aac 2012-03-05 13:08:16 -05:00
rdt.h
riff.c riff: use bps instead of bits_per_coded_sample in the WAVEFORMATEXTENSIBLE header 2012-04-17 00:09:19 -04:00
riff.h
rl2.c doxygen: Remove documentation for non-existing parameters; misc small fixes. 2012-02-28 20:48:43 +01:00
rm.c RealAudio Lossless decoder 2012-03-19 18:46:34 +01:00
rm.h
rmdec.c avcodec: add a cook parser to get subpacket duration 2012-04-20 12:11:20 -04:00
rmenc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
rpl.c
rso.c
rso.h
rsodec.c libavformat: Add an ff_ prefix to some lavf internal symbols 2012-02-15 22:06:17 +02:00
rsoenc.c
rtmp.h
rtmppkt.c
rtmppkt.h
rtmpproto.c rtmp: Support 'rtmp_playpath', an option which overrides the stream identifier 2012-04-16 23:11:58 +03:00
rtp.c rtpenc: Allow packetizing H263 according to the old RFC 2190 2012-02-23 15:27:52 +02:00
rtp.h rtp: Factorize the check for distinguishing RTCP packets from RTP 2012-02-16 17:45:33 +01:00
rtpdec_amr.c rtsp: Don't expose the MS-RTSP RTX data stream to the caller 2012-04-08 12:04:22 +03:00
rtpdec_asf.c rtsp: Don't expose the MS-RTSP RTX data stream to the caller 2012-04-08 12:04:22 +03:00
rtpdec_formats.h rtpdec: Identify incorrectly signalled H263 2012-02-18 17:31:55 +02:00
rtpdec_g726.c
rtpdec_h263_rfc2190.c rtpdec: Identify incorrectly signalled H263 2012-02-18 17:31:55 +02:00
rtpdec_h263.c rtpdec: Identify incorrectly signalled H263 2012-02-18 17:31:55 +02:00
rtpdec_h264.c rtsp: Don't expose the MS-RTSP RTX data stream to the caller 2012-04-08 12:04:22 +03:00
rtpdec_latm.c rtsp: Don't expose the MS-RTSP RTX data stream to the caller 2012-04-08 12:04:22 +03:00
rtpdec_mpeg4.c rtsp: Don't expose the MS-RTSP RTX data stream to the caller 2012-04-08 12:04:22 +03:00
rtpdec_qcelp.c
rtpdec_qdm2.c
rtpdec_qt.c
rtpdec_svq3.c
rtpdec_vp8.c
rtpdec_xiph.c cosmetics: Fix indentation 2012-04-08 12:04:29 +03:00
rtpdec.c rtsp: Don't expose the MS-RTSP RTX data stream to the caller 2012-04-08 12:04:22 +03:00
rtpdec.h
rtpenc_aac.c
rtpenc_amr.c
rtpenc_chain.c
rtpenc_chain.h
rtpenc_h263_rfc2190.c rtpenc: Use MB info side data for splitting H263 packets for RFC 2190 2012-03-01 16:08:32 +02:00
rtpenc_h263.c rtpenc: Allow packetizing H263 according to the old RFC 2190 2012-02-23 15:27:52 +02:00
rtpenc_h264.c
rtpenc_latm.c
rtpenc_mpv.c
rtpenc_vp8.c
rtpenc_xiph.c
rtpenc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
rtpenc.h rtpenc: Use AVFormatContext.packet_size instead of a private option 2012-03-19 18:37:38 +02:00
rtpproto.c rtp: Factorize the check for distinguishing RTCP packets from RTP 2012-02-16 17:45:33 +01:00
rtsp.c rtsp: Don't use uninitialized data if there are no streams 2012-04-08 15:51:32 +03:00
rtsp.h
rtspcodes.h
rtspdec.c rtsp: Don't use av_malloc(0) if there are no streams 2012-04-08 15:51:33 +03:00
rtspenc.c cosmetics: Align some AVInput/OutputFormat declarations 2012-03-19 14:27:43 +02:00
sapdec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
sapenc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
sauce.c
sauce.h
sdp.c Replace memset(0) by zero initializations. 2012-03-28 09:38:33 +02:00
seek-test.c Replace memset(0) by zero initializations. 2012-03-28 09:38:33 +02:00
seek.c lavf: deobfuscate read_frame_internal(). 2012-03-05 18:47:05 +01:00
seek.h lavf: deobfuscate read_frame_internal(). 2012-03-05 18:47:05 +01:00
segafilm.c segafilm: use the sample rate as the time base for audio streams 2012-03-03 17:03:27 -05:00
segment.c segment: implement wrap around 2012-02-28 15:01:20 +01:00
sierravmd.c
siff.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
smacker.c smacker: error out if palette copy-with-offset overruns palette size. 2012-03-07 09:35:03 -08:00
smjpeg.c
smjpeg.h
smjpegdec.c
smjpegenc.c
sol.c libavformat: Add an ff_ prefix to some lavf internal symbols 2012-02-15 22:06:17 +02:00
sox.h
soxdec.c libavformat: Add an ff_ prefix to some lavf internal symbols 2012-02-15 22:06:17 +02:00
soxenc.c
spdif.c
spdif.h
spdifdec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
spdifenc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
srtdec.c
swf.h
swfdec.c swfdec: do not set codec timebase. 2012-02-29 13:52:55 +01:00
swfenc.c swfenc: use av_get_audio_frame_duration() instead of AVCodecContext.frame_size 2012-03-05 13:08:16 -05:00
tcp.c Replace memset(0) by zero initializations. 2012-03-28 09:38:33 +02:00
thp.c thp: set audio packet durations 2012-03-03 16:58:45 -05:00
tiertexseq.c tiertexseq: set correct block_align for audio 2012-03-03 17:03:27 -05:00
tls.c
tmv.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
tta.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
tty.c
txd.c
udp.c Replace memset(0) by zero initializations. 2012-03-28 09:38:33 +02:00
url.h url: Document the expected behaviour of url_read 2012-03-19 16:25:51 +02:00
utils.c avf: has_duration does not check the global one 2012-04-13 12:03:16 -07:00
vc1test.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
vc1testenc.c
version.h lavf: make av_interleave_packet_per_dts() private. 2012-03-20 20:12:16 +01:00
voc.c
voc.h libavformat: Add an ff_ prefix to some lavf internal symbols 2012-02-15 22:06:17 +02:00
vocdec.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
vocenc.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
vorbiscomment.c
vorbiscomment.h
vqf.c vqf: set packet duration 2012-03-03 17:03:26 -05:00
wav.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
wc3movie.c
westwood_aud.c
westwood_vqa.c westwood_vqa: fix SND0 chunk handling 2012-03-27 11:58:15 -04:00
wtv.c
wv.c
xa.c xa: set correct bit rate 2012-03-20 14:12:54 -04:00
xmv.c
xwma.c xwma: Validate channels and bits_per_coded_sample. 2012-03-22 13:57:12 -07:00
yop.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00
yuv4mpeg.c cosmetics: Align muxer/demuxer declarations 2012-04-06 19:19:59 +03:00