FFmpeg/tests/fate
Dale Curtis 37e8edc9f5 avformat/mov: Fix trampling of ctts during seeks when sidx support is enabled.
When sidx box support is enabled, the code will skip reading all
trun boxes (each containing ctts entries for samples inthat box).

If seeks are attempted before all ctts values are known, the old
code would dump ctts entries into the wrong location. These are
then used to compute pts values which leads to out of order and
incorrectly timestamped packets.

This patch fixes ctts processing by always using the index returned
by av_add_index_entry() as the ctts_data index. When the index gains
new entries old values are reshuffled as appropriate.

This approach makes sense since the mov demuxer is already relying
on the mapping of AVIndex entries to samples for correct demuxing.

As a result of this all ctts entries are now 1-count. A followup
change will be submitted to remove support for > 1 count entries
which will simplify seeking.

Notes for future improvement:
Probably there are other boxes (stts, stsc, etc) that are impacted
by this issue... this patch only attempts to fix ctts since it
completely breaks packet timestamping.

This patch continues using an array for the ctts data, which is not
the most ideal given the rearrangement that needs to happen (via
memmove as new entries are read in). Ideally AVIndex and the ctts
data would be set-type structures so addition is always worst case
O(lg(n)) instead of the O(n^2) that exists now; this slowdown is
noticeable during seeks.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-08-24 11:02:22 +02:00
..
aac.mak avcodec/aac_adtstoasc: propagate new extradata using packet side data 2017-05-24 20:28:00 -03:00
ac3.mak fate: add tests for ac3_fixed 5.1 downmix 2017-03-28 23:08:17 -03:00
acodec.mak dcaenc: Implementation of Huffman codes for DCA encoder 2017-01-15 18:17:12 +00:00
adpcm.mak
alac.mak
als.mak
amrnb.mak
amrwb.mak
api.mak fate: fix fate-api dependencies 2016-11-12 20:09:00 -03:00
apng.mak fate: fix apng tests dependencies 2016-07-16 15:29:43 -03:00
atrac.mak avcodec/atrac1: fix decoder: QMF delay compensation should be 39 samples 2015-11-21 11:38:45 +01:00
audio.mak avcodec/imc: cast float to int prior to comparing with int variable 2017-07-01 21:42:12 +02:00
avformat.mak avcodec/aac_adtstoasc: propagate new extradata using packet side data 2017-05-24 20:28:00 -03:00
bmp.mak
canopus.mak Merge commit 'c3ed259e4f' 2016-06-29 11:05:49 +02:00
cdxl.mak
checkasm.mak checkasm: add a g722dsp test 2017-07-13 17:00:19 -03:00
concatdec.mak fate: fix concat demuxer tests on msys/cygwin by using relative paths 2015-11-16 11:05:19 +01:00
cover-art.mak
dca.mak fate: fix dcadec test dependencies 2016-05-06 18:52:27 -03:00
demux.mak fate: add fate-adts-id3v1-demux 2017-06-05 20:22:29 -03:00
dfa.mak
dnxhd.mak fate: add DNxHR 12-bit example. 2016-08-21 02:58:13 +02:00
dpcm.mak
ea.mak
exif.mak
ffmpeg.mak fate: Add fate-copy-trac3074 2017-06-30 03:03:08 +02:00
ffprobe.mak fate: use PROGSSUF 2015-10-16 14:02:12 +02:00
fft.mak fate: add test for avfft 2016-07-19 23:25:01 +02:00
fifo-muxer.mak tests/fate/fifo-muxer: update fifo-muxer dependencies 2017-05-08 08:42:00 +02:00
filter-audio.mak fate: use do_md5sum instead of the md5 protocol for most md5 fate tests 2017-06-18 23:19:48 +02:00
filter-video.mak fate: add overlay filter tests with alpha 2017-08-16 22:00:35 +02:00
flac.mak avcodec/flacenc: Regression test for ticket #4628 2015-06-17 22:47:17 +02:00
flvenc.mak avformat/flvenc: add add_keyframe_index option 2016-11-10 10:30:48 +08:00
gapless.mak fate: add audiomatch 2016-03-22 09:42:05 +01:00
gif.mak fate/gif: add Test for Ticket3052 2016-02-29 01:41:11 +01:00
h264.mak Merge commit '043b0b9fb1' 2017-03-24 11:40:35 +01:00
hevc.mak fate: add bitexact sws_flags to hevc-extradata-reload 2017-04-01 13:39:49 -03:00
image.mak fate/exr : add test for Y, b44A negative half, and datawindow != displaywindow 2017-05-10 14:00:20 +02:00
indeo.mak fate: Add separate target for all indeo3 tests 2016-03-01 21:54:10 +01:00
libavcodec.mak lavc/tests: add htmlsubtitles 2017-08-01 15:50:00 +02:00
libavdevice.mak tests: Move all test programs to a subdirectory 2016-05-13 14:55:56 +02:00
libavformat.mak Merge commit 'a6a750c7ef' 2016-06-22 13:44:34 +02:00
libavresample.mak Merge commit '01621202aa' 2016-05-09 16:25:28 +01:00
libavutil.mak pixdesc: Add a test for av_find_best_pix_fmt_of_2() 2017-07-18 22:56:30 +01:00
libswresample.mak swresample/options: enable linear_interp and exact_rational by default 2017-03-17 00:08:03 +07:00
libswscale.mak fate: add fate-sws-pixdesc-query 2017-03-20 08:02:30 +01:00
lossless-audio.mak fate: wma: add lossless 24bits tests 2016-05-02 21:50:10 +02:00
lossless-video.mak Merge commit 'c3ed259e4f' 2016-06-29 11:05:49 +02:00
matroska.mak fate: use do_md5sum instead of the md5 protocol for most md5 fate tests 2017-06-18 23:19:48 +02:00
microsoft.mak Merge commit '1982d0cc56' 2016-06-21 14:14:21 +02:00
monkeysaudio.mak
mov.mak lavf/movenc: support GPMF track (gpmd) remuxing 2017-07-24 14:43:40 +02:00
mp3.mak tests/fate/mp3: increase mp3-float-extra_overread FUZZ for ppc64be-RHEL7.0-gcc-4.8.2-ibmcrl to 23 from 20 2015-08-07 02:54:59 +02:00
mpc.mak
mpeg4.mak fate: Add test that also decodes packed_bframes.avi 2016-03-23 20:28:28 +01:00
mxf.mak fate: Add MXF D10/DNXHD/DV25 probe tests 2016-10-26 02:08:52 +02:00
opus.mak
pcm.mak Merge commit '043b0b9fb1' 2017-03-24 11:40:35 +01:00
probe.mak fate: use PROGSSUF 2015-10-16 14:02:12 +02:00
prores.mak fate/prores: use aac fixed for audio to fix fate failures on arm 2016-06-03 04:35:59 +02:00
qt.mak fate: add bitexact decode flag to fate-svq3-watermark 2016-10-03 01:39:33 -03:00
qtrle.mak
real.mak Merge commit '043b0b9fb1' 2017-03-24 11:40:35 +01:00
screen.mak Merge commit 'dc3fe45fca' 2017-03-23 11:40:09 +01:00
seek.mak avformat/mov: Fix trampling of ctts during seeks when sidx support is enabled. 2017-08-24 11:02:22 +02:00
source-check.sh tests/fate/source-check: Use git grep in place of grep 2017-03-30 03:12:05 +02:00
source.mak fate: Add basic license header check 2015-09-29 18:52:35 +02:00
speedhq.mak speedhq: add FATE tests 2017-08-03 16:36:02 -03:00
subtitles.mak fate: add sub-srt-badsyntax test 2017-07-15 04:16:44 +02:00
utvideo.mak Merge commit '2862b63783' 2016-02-03 16:49:19 +00:00
vcodec.mak Implement optimal huffman encoding for (M)JPEG. 2017-02-08 13:59:53 +00:00
video.mak fate: add test for the Dirac low delay profile 2017-06-05 06:10:40 +01:00
voice.mak Merge commit '07377fb557' 2016-06-26 14:58:58 +02:00
vorbis.mak fate: Add test for vorbis encoder 2016-05-05 21:08:23 +02:00
vpx.mak webm_dash_manifest: Add option to specify bandwidth 2017-04-17 10:46:51 -07:00
vqf.mak fate: add -fflags +bitexact to the relevant targets 2015-08-30 23:31:10 +02:00
wavpack.mak fate: use do_md5sum instead of the md5 protocol for most md5 fate tests 2017-06-18 23:19:48 +02:00
wma.mak tests/fate/wma: use the existing reference files for wmapro tests 2015-06-28 11:58:57 +02:00
xvid.mak