[FFmpeg-devel,mov] Fix trampling of ctts during seeks when sidx support is enabled.

Submitted by Michael Niedermayer on Aug. 9, 2017, 1:48 a.m.

Details

Message ID 20170809014805.GL29506@nb4
State New
Headers show

Commit Message

Michael Niedermayer Aug. 9, 2017, 1:48 a.m.
On Mon, Aug 07, 2017 at 12:31:01PM -0700, Dale Curtis wrote:
> On Fri, Aug 4, 2017 at 4:40 PM, Rodger Combs <rodger.combs@gmail.com> wrote:
> 
> > +            sc->ctts_data = av_fast_realloc(sc->ctts_data,
> > &sc->ctts_allocated_size, request_size);
> > ^ this line is incorrect; setting realloc's first arg to its return value
> > leaks the existing allocation in the OOM case. Since you're doing your own
> > calculation for the desired new size here, you may want to use av_reallocp
> > (which frees the original allocation on failure).
> >
> 
> Thanks, fixed; kept av_fast_realloc() for size setting simplicity, but
> reused function-scope ctts_data as temporary.
> 
> 
> >
> > When reading a trun that requires this sort of realloc, is it common for
> > there to be any existing entries in the range we're writing? Would it be
> > safe to remove+replace them? Could we do a single realloc + single memmove,
> > and then fill the newly-opened space, rather than repeating the memmove for
> > each entry?
> >
> 
> Yes it's common for their to be existing entries. To be clear this occurs
> with standard files that are of sufficient length that a seek can occur
> before all trun boxes are read. We could speculatively move all entries
> based on the first insert and total entries count, but their are several
> conditionals in av_add_index_entry() which may cause a bail out and such
> failure would be unrecoverable (maybe painfully?) if we moved everything
> ahead of time.
> 
> - dale

>  libavformat/isom.h       |    1 
>  libavformat/mov.c        |   79 +++++++++++++++++----------
>  tests/fate/seek.mak      |    3 +
>  tests/ref/seek/extra-mp4 |  134 +++++++++++++++++++++++++++++++++++++++++++++++
>  4 files changed, 189 insertions(+), 28 deletions(-)
> a2c3a9c29cc60b76508cc7fd9168bdffd60c6ead  ctts_fix_v7.patch
> From 4938dac2d9f3b40c62822d9129046edbde44468d Mon Sep 17 00:00:00 2001
> From: Dale Curtis <dalecurtis@chromium.org>
> Date: Mon, 17 Jul 2017 17:38:09 -0700
> Subject: [PATCH] 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>
> ---
>  libavformat/isom.h       |   1 +
>  libavformat/mov.c        |  79 ++++++++++++++++++----------
>  tests/fate/seek.mak      |   3 ++
>  tests/ref/seek/extra-mp4 | 134 +++++++++++++++++++++++++++++++++++++++++++++++
>  4 files changed, 189 insertions(+), 28 deletions(-)
>  create mode 100644 tests/ref/seek/extra-mp4

the fate test seems to fail:

did i do something silly ?

TEST    seek-extra-mp4
Test seek-extra-mp4 failed. Look at tests/data/fate/seek-extra-mp4.err for details.
make: *** [fate-seek-extra-mp4] Error 1

[...]

Patch hide | download patch | download mbox

--- ./tests/ref/seek/extra-mp4  2017-08-09 03:46:04.041659416 +0200
+++ tests/data/fate/seek-extra-mp4      2017-08-09 03:46:18.565659589 +0200
@@ -1,134 +1,134 @@ 
-ret: 0         st: 0 flags:1 dts:-0.033333 pts: 0.000000 pos:   4174 size:   147
-ret: 0         st: 0 flags:0 dts: 0.000000 pts: 0.033333 pos:   4321 size:    24
-ret: 0         st: 0 flags:0 dts: 0.033333 pts: 0.066667 pos:   4345 size:  6779
-ret: 0         st: 0 flags:0 dts: 0.066667 pts: 0.100000 pos:  11124 size: 11041
+ret: 0         st: 0 flags:1 dts:-0.033333 pts: 0.000000 pos:     48 size:   147
+ret: 0         st: 0 flags:0 dts: 0.000000 pts: 0.033333 pos:    195 size:    24
+ret: 0         st: 0 flags:0 dts: 0.033333 pts: 0.066667 pos:    219 size:  6779
+ret: 0         st: 0 flags:0 dts: 0.066667 pts: 0.100000 pos:   6998 size: 11041
 ret: 0         st:-1 flags:0  ts:-1.000000
-ret: 0         st: 0 flags:1 dts:-0.033333 pts: 0.000000 pos:   4174 size:   147
-ret: 0         st: 0 flags:0 dts: 0.000000 pts: 0.033333 pos:   4321 size:    24
-ret: 0         st: 0 flags:0 dts: 0.033333 pts: 0.066667 pos:   4345 size:  6779
-ret: 0         st: 0 flags:0 dts: 0.066667 pts: 0.100000 pos:  11124 size: 11041
+ret: 0         st: 0 flags:1 dts:-0.033333 pts: 0.000000 pos:     48 size:   147
+ret: 0         st: 0 flags:0 dts: 0.000000 pts: 0.033333 pos:    195 size:    24
+ret: 0         st: 0 flags:0 dts: 0.033333 pts: 0.066667 pos:    219 size:  6779
+ret: 0         st: 0 flags:0 dts: 0.066667 pts: 0.100000 pos:   6998 size: 11041
 ret: 0         st:-1 flags:1  ts: 101.894167
-ret: 0         st: 0 flags:1 dts: 101.300000 pts: 101.333333 pos:10974394 size: 67201
-ret: 0         st: 0 flags:0 dts: 101.333333 pts: 101.433333 pos:11041595 size:  3524
-ret: 0         st: 0 flags:0 dts: 101.366667 pts: 101.366667 pos:11045119 size:   562
-ret: 0         st: 0 flags:0 dts: 101.400000 pts: 101.400000 pos:11045681 size:   599
+ret: 0         st: 0 flags:1 dts: 101.300000 pts: 101.333333 pos:10931868 size: 67201
+ret: 0         st: 0 flags:0 dts: 101.333333 pts: 101.433333 pos:10999069 size:  3524
+ret: 0         st: 0 flags:0 dts: 101.366667 pts: 101.366667 pos:11002593 size:   562
+ret: 0         st: 0 flags:0 dts: 101.400000 pts: 101.400000 pos:11003155 size:   599
 ret: 0         st: 0 flags:0  ts: 24.788333
-ret: 0         st: 0 flags:1 dts: 25.300000 pts: 25.333333 pos:2607665 size: 40237
-ret: 0         st: 0 flags:0 dts: 25.333333 pts: 25.433333 pos:2647902 size:  2959
-ret: 0         st: 0 flags:0 dts: 25.366667 pts: 25.366667 pos:2650861 size:   197
-ret: 0         st: 0 flags:0 dts: 25.400000 pts: 25.400000 pos:2651058 size:   230
+ret: 0         st: 0 flags:1 dts: 25.300000 pts: 25.333333 pos:2593939 size: 40237
+ret: 0         st: 0 flags:0 dts: 25.333333 pts: 25.433333 pos:2634176 size:  2959
+ret: 0         st: 0 flags:0 dts: 25.366667 pts: 25.366667 pos:2637135 size:   197
+ret: 0         st: 0 flags:0 dts: 25.400000 pts: 25.400000 pos:2637332 size:   230
 ret: 0         st: 0 flags:1  ts: 127.682500
-ret: 0         st: 0 flags:1 dts: 126.633333 pts: 126.666667 pos:13349318 size: 68705
-ret: 0         st: 0 flags:0 dts: 126.666667 pts: 126.766667 pos:13418023 size:  2914
-ret: 0         st: 0 flags:0 dts: 126.700000 pts: 126.700000 pos:13420937 size:   781
-ret: 0         st: 0 flags:0 dts: 126.733333 pts: 126.733333 pos:13421718 size:   817
+ret: 0         st: 0 flags:1 dts: 126.633333 pts: 126.666667 pos:13297192 size: 68705
+ret: 0         st: 0 flags:0 dts: 126.666667 pts: 126.766667 pos:13365897 size:  2914
+ret: 0         st: 0 flags:0 dts: 126.700000 pts: 126.700000 pos:13368811 size:   781
+ret: 0         st: 0 flags:0 dts: 126.733333 pts: 126.733333 pos:13369592 size:   817
 ret: 0         st:-1 flags:0  ts: 50.576668
-ret: 0         st: 0 flags:1 dts: 50.633333 pts: 50.666667 pos:5856029 size: 67867
-ret: 0         st: 0 flags:0 dts: 50.666667 pts: 50.766667 pos:5923896 size:  1307
-ret: 0         st: 0 flags:0 dts: 50.700000 pts: 50.700000 pos:5925203 size:   150
-ret: 0         st: 0 flags:0 dts: 50.733333 pts: 50.733333 pos:5925353 size:   176
+ret: 0         st: 0 flags:1 dts: 50.633333 pts: 50.666667 pos:5832703 size: 67867
+ret: 0         st: 0 flags:0 dts: 50.666667 pts: 50.766667 pos:5900570 size:  1307
+ret: 0         st: 0 flags:0 dts: 50.700000 pts: 50.700000 pos:5901877 size:   150
+ret: 0         st: 0 flags:0 dts: 50.733333 pts: 50.733333 pos:5902027 size:   176
 ret: 0         st:-1 flags:1  ts: 153.470835
-ret: 0         st: 0 flags:1 dts: 153.466667 pts: 153.500000 pos:15853683 size: 96133
-ret: 0         st: 0 flags:0 dts: 153.500000 pts: 153.533333 pos:15949816 size:   785
-ret: 0         st: 0 flags:0 dts: 153.533333 pts: 153.633333 pos:15950601 size:  3135
-ret: 0         st: 0 flags:0 dts: 153.566667 pts: 153.566667 pos:15953736 size:   859
+ret: 0         st: 0 flags:1 dts: 153.466667 pts: 153.500000 pos:15791957 size: 96133
+ret: 0         st: 0 flags:0 dts: 153.500000 pts: 153.533333 pos:15888090 size:   785
+ret: 0         st: 0 flags:0 dts: 153.533333 pts: 153.633333 pos:15888875 size:  3135
+ret: 0         st: 0 flags:0 dts: 153.566667 pts: 153.566667 pos:15892010 size:   859
 ret: 0         st: 0 flags:0  ts: 76.365000
-ret: 0         st: 0 flags:1 dts: 77.833333 pts: 77.866667 pos:8653728 size: 41146
-ret: 0         st: 0 flags:0 dts: 77.866667 pts: 77.966667 pos:8694874 size:  4197
-ret: 0         st: 0 flags:0 dts: 77.900000 pts: 77.900000 pos:8699071 size:   653
-ret: 0         st: 0 flags:0 dts: 77.933333 pts: 77.933333 pos:8699724 size:   751
+ret: 0         st: 0 flags:1 dts: 77.833333 pts: 77.866667 pos:8620802 size: 41146
+ret: 0         st: 0 flags:0 dts: 77.866667 pts: 77.966667 pos:8661948 size:  4197
+ret: 0         st: 0 flags:0 dts: 77.900000 pts: 77.900000 pos:8666145 size:   653
+ret: 0         st: 0 flags:0 dts: 77.933333 pts: 77.933333 pos:8666798 size:   751
 ret: 0         st: 0 flags:1  ts:-0.740833
-ret: 0         st: 0 flags:1 dts:-0.033333 pts: 0.000000 pos:   4174 size:   147
-ret: 0         st: 0 flags:0 dts: 0.000000 pts: 0.033333 pos:   4321 size:    24
-ret: 0         st: 0 flags:0 dts: 0.033333 pts: 0.066667 pos:   4345 size:  6779
-ret: 0         st: 0 flags:0 dts: 0.066667 pts: 0.100000 pos:  11124 size: 11041
+ret: 0         st: 0 flags:1 dts:-0.033333 pts: 0.000000 pos:     48 size:   147
+ret: 0         st: 0 flags:0 dts: 0.000000 pts: 0.033333 pos:    195 size:    24
+ret: 0         st: 0 flags:0 dts: 0.033333 pts: 0.066667 pos:    219 size:  6779
+ret: 0         st: 0 flags:0 dts: 0.066667 pts: 0.100000 pos:   6998 size: 11041
 ret: 0         st:-1 flags:0  ts: 102.153336
-ret: 0         st: 0 flags:0 dts: 83.833333 pts: 83.900000 pos:9584397 size:  8129
-ret: 0         st: 0 flags:0 dts: 83.866667 pts: 83.866667 pos:9592526 size:  2247
-ret: 0         st: 0 flags:0 dts: 83.900000 pts: 83.966667 pos:9594773 size:  8990
-ret: 0         st: 0 flags:0 dts: 83.933333 pts: 83.933333 pos:9603763 size:  2386
+ret: 0         st: 0 flags:1 dts: 104.100000 pts: 104.133333 pos:11064650 size:112893
+ret: 0         st: 0 flags:0 dts: 104.133333 pts: 104.166667 pos:11177543 size:   585
+ret: 0         st: 0 flags:0 dts: 104.166667 pts: 104.200000 pos:11178128 size:   797
+ret: 0         st: 0 flags:0 dts: 104.200000 pts: 104.233333 pos:11178925 size:   810
 ret: 0         st:-1 flags:1  ts: 25.047503
-ret: 0         st: 0 flags:1 dts: 20.233333 pts: 20.266667 pos:2224826 size: 51787
-ret: 0         st: 0 flags:0 dts: 20.266667 pts: 20.300000 pos:2276613 size:   488
-ret: 0         st: 0 flags:0 dts: 20.300000 pts: 20.400000 pos:2277101 size:   670
-ret: 0         st: 0 flags:0 dts: 20.333333 pts: 20.333333 pos:2277771 size:    84
+ret: 0         st: 0 flags:1 dts: 20.233333 pts: 20.266667 pos:2213020 size: 51787
+ret: 0         st: 0 flags:0 dts: 20.266667 pts: 20.300000 pos:2264807 size:   488
+ret: 0         st: 0 flags:0 dts: 20.300000 pts: 20.400000 pos:2265295 size:   670
+ret: 0         st: 0 flags:0 dts: 20.333333 pts: 20.333333 pos:2265965 size:    84
 ret: 0         st: 0 flags:0  ts: 127.941667
-ret: 0         st: 0 flags:1 dts: 95.766667 pts: 95.800000 pos:10533174 size: 54642
-ret: 0         st: 0 flags:0 dts: 95.800000 pts: 95.833333 pos:10587816 size:   278
-ret: 0         st: 0 flags:0 dts: 95.833333 pts: 95.866667 pos:10588094 size:   101
-ret: 0         st: 0 flags:0 dts: 95.866667 pts: 95.900000 pos:10588195 size:    87
+ret: 0         st: 0 flags:1 dts: 131.233333 pts: 131.266667 pos:13662918 size: 62193
+ret: 0         st: 0 flags:0 dts: 131.266667 pts: 131.366667 pos:13725111 size:  2349
+ret: 0         st: 0 flags:0 dts: 131.300000 pts: 131.300000 pos:13727460 size:   571
+ret: 0         st: 0 flags:0 dts: 131.333333 pts: 131.333333 pos:13728031 size:  1190
 ret: 0         st: 0 flags:1  ts: 50.835833
-ret: 0         st: 0 flags:1 dts: 50.633333 pts: 50.666667 pos:5856029 size: 67867
-ret: 0         st: 0 flags:0 dts: 50.666667 pts: 50.766667 pos:5923896 size:  1307
-ret: 0         st: 0 flags:0 dts: 50.700000 pts: 50.700000 pos:5925203 size:   150
-ret: 0         st: 0 flags:0 dts: 50.733333 pts: 50.733333 pos:5925353 size:   176
+ret: 0         st: 0 flags:1 dts: 50.633333 pts: 50.666667 pos:5832703 size: 67867
+ret: 0         st: 0 flags:0 dts: 50.666667 pts: 50.766667 pos:5900570 size:  1307
+ret: 0         st: 0 flags:0 dts: 50.700000 pts: 50.700000 pos:5901877 size:   150
+ret: 0         st: 0 flags:0 dts: 50.733333 pts: 50.733333 pos:5902027 size:   176
 ret: 0         st:-1 flags:0  ts: 153.730004
-ret: 0         st: 0 flags:1 dts: 157.033333 pts: 157.066667 pos:16211536 size: 82702
-ret: 0         st: 0 flags:0 dts: 157.066667 pts: 157.166667 pos:16294238 size:  2273
-ret: 0         st: 0 flags:0 dts: 157.100000 pts: 157.100000 pos:16296511 size:   350
-ret: 0         st: 0 flags:0 dts: 157.133333 pts: 157.133333 pos:16296861 size:   337
+ret: 0         st: 0 flags:1 dts: 157.033333 pts: 157.066667 pos:16147890 size: 82702
+ret: 0         st: 0 flags:0 dts: 157.066667 pts: 157.166667 pos:16230592 size:  2273
+ret: 0         st: 0 flags:0 dts: 157.100000 pts: 157.100000 pos:16232865 size:   350
+ret: 0         st: 0 flags:0 dts: 157.133333 pts: 157.133333 pos:16233215 size:   337
 ret: 0         st:-1 flags:1  ts: 76.624171
-ret: 0         st: 0 flags:1 dts: 75.966667 pts: 76.000000 pos:8514981 size: 94359
-ret: 0         st: 0 flags:0 dts: 76.000000 pts: 76.100000 pos:8609340 size:   483
-ret: 0         st: 0 flags:0 dts: 76.033333 pts: 76.033333 pos:8609823 size:    37
-ret: 0         st: 0 flags:0 dts: 76.066667 pts: 76.066667 pos:8609860 size:    56
+ret: 0         st: 0 flags:1 dts: 75.966667 pts: 76.000000 pos:8482055 size: 94359
+ret: 0         st: 0 flags:0 dts: 76.000000 pts: 76.100000 pos:8576414 size:   483
+ret: 0         st: 0 flags:0 dts: 76.033333 pts: 76.033333 pos:8576897 size:    37
+ret: 0         st: 0 flags:0 dts: 76.066667 pts: 76.066667 pos:8576934 size:    56
 ret: 0         st: 0 flags:0  ts:-0.481667
-ret: 0         st: 0 flags:1 dts:-0.033333 pts: 0.000000 pos:   4174 size:   147
-ret: 0         st: 0 flags:0 dts: 0.000000 pts: 0.033333 pos:   4321 size:    24
-ret: 0         st: 0 flags:0 dts: 0.033333 pts: 0.066667 pos:   4345 size:  6779
-ret: 0         st: 0 flags:0 dts: 0.066667 pts: 0.100000 pos:  11124 size: 11041
+ret: 0         st: 0 flags:1 dts:-0.033333 pts: 0.000000 pos:     48 size:   147
+ret: 0         st: 0 flags:0 dts: 0.000000 pts: 0.033333 pos:    195 size:    24
+ret: 0         st: 0 flags:0 dts: 0.033333 pts: 0.066667 pos:    219 size:  6779
+ret: 0         st: 0 flags:0 dts: 0.066667 pts: 0.100000 pos:   6998 size: 11041
 ret: 0         st: 0 flags:1  ts: 102.412500
-ret: 0         st: 0 flags:1 dts: 101.300000 pts: 101.333333 pos:10974394 size: 67201
-ret: 0         st: 0 flags:0 dts: 101.333333 pts: 101.433333 pos:11041595 size:  3524
-ret: 0         st: 0 flags:0 dts: 101.366667 pts: 101.366667 pos:11045119 size:   562
-ret: 0         st: 0 flags:0 dts: 101.400000 pts: 101.400000 pos:11045681 size:   599
+ret: 0         st: 0 flags:1 dts: 101.300000 pts: 101.333333 pos:10931868 size: 67201
+ret: 0         st: 0 flags:0 dts: 101.333333 pts: 101.433333 pos:10999069 size:  3524
+ret: 0         st: 0 flags:0 dts: 101.366667 pts: 101.366667 pos:11002593 size:   562
+ret: 0         st: 0 flags:0 dts: 101.400000 pts: 101.400000 pos:11003155 size:   599
 ret: 0         st:-1 flags:0  ts: 25.306672
-ret: 0         st: 0 flags:1 dts: 27.400000 pts: 27.433333 pos:2674080 size:127347
-ret: 0         st: 0 flags:0 dts: 27.433333 pts: 27.466667 pos:2801427 size:    68
-ret: 0         st: 0 flags:0 dts: 27.466667 pts: 27.500000 pos:2801495 size:  1754
-ret: 0         st: 0 flags:0 dts: 27.500000 pts: 27.533333 pos:2803249 size:  4071
+ret: 0         st: 0 flags:1 dts: 27.400000 pts: 27.433333 pos:2660354 size:127347
+ret: 0         st: 0 flags:0 dts: 27.433333 pts: 27.466667 pos:2787701 size:    68
+ret: 0         st: 0 flags:0 dts: 27.466667 pts: 27.500000 pos:2787769 size:  1754
+ret: 0         st: 0 flags:0 dts: 27.500000 pts: 27.533333 pos:2789523 size:  4071
 ret: 0         st:-1 flags:1  ts: 128.200839
-ret: 0         st: 0 flags:1 dts: 127.833333 pts: 127.866667 pos:13502895 size: 67346
-ret: 0         st: 0 flags:0 dts: 127.866667 pts: 127.966667 pos:13570241 size:  2936
-ret: 0         st: 0 flags:0 dts: 127.900000 pts: 127.900000 pos:13573177 size:   451
-ret: 0         st: 0 flags:0 dts: 127.933333 pts: 127.933333 pos:13573628 size:   537
+ret: 0         st: 0 flags:1 dts: 127.833333 pts: 127.866667 pos:13450769 size: 67346
+ret: 0         st: 0 flags:0 dts: 127.866667 pts: 127.966667 pos:13518115 size:  2936
+ret: 0         st: 0 flags:0 dts: 127.900000 pts: 127.900000 pos:13521051 size:   451
+ret: 0         st: 0 flags:0 dts: 127.933333 pts: 127.933333 pos:13521502 size:   537
 ret: 0         st: 0 flags:0  ts: 51.095011
-ret: 0         st: 0 flags:1 dts: 52.066667 pts: 52.100000 pos:6025093 size:115773
-ret: 0         st: 0 flags:0 dts: 52.100000 pts: 52.200000 pos:6140866 size:  1620
-ret: 0         st: 0 flags:0 dts: 52.133333 pts: 52.133333 pos:6142486 size:    92
-ret: 0         st: 0 flags:0 dts: 52.166667 pts: 52.166667 pos:6142578 size:   533
+ret: 0         st: 0 flags:1 dts: 52.066667 pts: 52.100000 pos:6001767 size:115773
+ret: 0         st: 0 flags:0 dts: 52.100000 pts: 52.200000 pos:6117540 size:  1620
+ret: 0         st: 0 flags:0 dts: 52.133333 pts: 52.133333 pos:6119160 size:    92
+ret: 0         st: 0 flags:0 dts: 52.166667 pts: 52.166667 pos:6119252 size:   533
 ret: 0         st: 0 flags:1  ts: 153.989178
-ret: 0         st: 0 flags:1 dts: 153.466667 pts: 153.500000 pos:15853683 size: 96133
-ret: 0         st: 0 flags:0 dts: 153.500000 pts: 153.533333 pos:15949816 size:   785
-ret: 0         st: 0 flags:0 dts: 153.533333 pts: 153.633333 pos:15950601 size:  3135
-ret: 0         st: 0 flags:0 dts: 153.566667 pts: 153.566667 pos:15953736 size:   859
+ret: 0         st: 0 flags:1 dts: 153.466667 pts: 153.500000 pos:15791957 size: 96133
+ret: 0         st: 0 flags:0 dts: 153.500000 pts: 153.533333 pos:15888090 size:   785
+ret: 0         st: 0 flags:0 dts: 153.533333 pts: 153.633333 pos:15888875 size:  3135
+ret: 0         st: 0 flags:0 dts: 153.566667 pts: 153.566667 pos:15892010 size:   859
 ret: 0         st:-1 flags:0  ts: 76.883340
-ret: 0         st: 0 flags:1 dts: 77.833333 pts: 77.866667 pos:8653728 size: 41146
-ret: 0         st: 0 flags:0 dts: 77.866667 pts: 77.966667 pos:8694874 size:  4197
-ret: 0         st: 0 flags:0 dts: 77.900000 pts: 77.900000 pos:8699071 size:   653
-ret: 0         st: 0 flags:0 dts: 77.933333 pts: 77.933333 pos:8699724 size:   751
+ret: 0         st: 0 flags:1 dts: 77.833333 pts: 77.866667 pos:8620802 size: 41146
+ret: 0         st: 0 flags:0 dts: 77.866667 pts: 77.966667 pos:8661948 size:  4197
+ret: 0         st: 0 flags:0 dts: 77.900000 pts: 77.900000 pos:8666145 size:   653
+ret: 0         st: 0 flags:0 dts: 77.933333 pts: 77.933333 pos:8666798 size:   751
 ret: 0         st:-1 flags:1  ts:-0.222493
-ret: 0         st: 0 flags:1 dts:-0.033333 pts: 0.000000 pos:   4174 size:   147
-ret: 0         st: 0 flags:0 dts: 0.000000 pts: 0.033333 pos:   4321 size:    24
-ret: 0         st: 0 flags:0 dts: 0.033333 pts: 0.066667 pos:   4345 size:  6779
-ret: 0         st: 0 flags:0 dts: 0.066667 pts: 0.100000 pos:  11124 size: 11041
+ret: 0         st: 0 flags:1 dts:-0.033333 pts: 0.000000 pos:     48 size:   147
+ret: 0         st: 0 flags:0 dts: 0.000000 pts: 0.033333 pos:    195 size:    24
+ret: 0         st: 0 flags:0 dts: 0.033333 pts: 0.066667 pos:    219 size:  6779
+ret: 0         st: 0 flags:0 dts: 0.066667 pts: 0.100000 pos:   6998 size: 11041
 ret: 0         st: 0 flags:0  ts: 102.671678
-ret: 0         st: 0 flags:1 dts: 104.100000 pts: 104.133333 pos:11107176 size:112893
-ret: 0         st: 0 flags:0 dts: 104.133333 pts: 104.166667 pos:11220069 size:   585
-ret: 0         st: 0 flags:0 dts: 104.166667 pts: 104.200000 pos:11220654 size:   797
-ret: 0         st: 0 flags:0 dts: 104.200000 pts: 104.233333 pos:11221451 size:   810
+ret: 0         st: 0 flags:1 dts: 104.100000 pts: 104.133333 pos:11064650 size:112893
+ret: 0         st: 0 flags:0 dts: 104.133333 pts: 104.166667 pos:11177543 size:   585
+ret: 0         st: 0 flags:0 dts: 104.166667 pts: 104.200000 pos:11178128 size:   797
+ret: 0         st: 0 flags:0 dts: 104.200000 pts: 104.233333 pos:11178925 size:   810
 ret: 0         st: 0 flags:1  ts: 25.565844
-ret: 0         st: 0 flags:1 dts: 25.300000 pts: 25.333333 pos:2607665 size: 40237
-ret: 0         st: 0 flags:0 dts: 25.333333 pts: 25.433333 pos:2647902 size:  2959
-ret: 0         st: 0 flags:0 dts: 25.366667 pts: 25.366667 pos:2650861 size:   197
-ret: 0         st: 0 flags:0 dts: 25.400000 pts: 25.400000 pos:2651058 size:   230
+ret: 0         st: 0 flags:1 dts: 25.300000 pts: 25.333333 pos:2593939 size: 40237
+ret: 0         st: 0 flags:0 dts: 25.333333 pts: 25.433333 pos:2634176 size:  2959
+ret: 0         st: 0 flags:0 dts: 25.366667 pts: 25.366667 pos:2637135 size:   197
+ret: 0         st: 0 flags:0 dts: 25.400000 pts: 25.400000 pos:2637332 size:   230
 ret: 0         st:-1 flags:0  ts: 128.460008
-ret: 0         st: 0 flags:1 dts: 131.233333 pts: 131.266667 pos:13715044 size: 62193
-ret: 0         st: 0 flags:0 dts: 131.266667 pts: 131.366667 pos:13777237 size:  2349
-ret: 0         st: 0 flags:0 dts: 131.300000 pts: 131.300000 pos:13779586 size:   571
-ret: 0         st: 0 flags:0 dts: 131.333333 pts: 131.333333 pos:13780157 size:  1190
+ret: 0         st: 0 flags:1 dts: 131.233333 pts: 131.266667 pos:13662918 size: 62193
+ret: 0         st: 0 flags:0 dts: 131.266667 pts: 131.366667 pos:13725111 size:  2349
+ret: 0         st: 0 flags:0 dts: 131.300000 pts: 131.300000 pos:13727460 size:   571
+ret: 0         st: 0 flags:0 dts: 131.333333 pts: 131.333333 pos:13728031 size:  1190
 ret: 0         st:-1 flags:1  ts: 51.354175
-ret: 0         st: 0 flags:1 dts: 50.633333 pts: 50.666667 pos:5856029 size: 67867
-ret: 0         st: 0 flags:0 dts: 50.666667 pts: 50.766667 pos:5923896 size:  1307
-ret: 0         st: 0 flags:0 dts: 50.700000 pts: 50.700000 pos:5925203 size:   150
-ret: 0         st: 0 flags:0 dts: 50.733333 pts: 50.733333 pos:5925353 size:   176
+ret: 0         st: 0 flags:1 dts: 50.633333 pts: 50.666667 pos:5832703 size: 67867
+ret: 0         st: 0 flags:0 dts: 50.666667 pts: 50.766667 pos:5900570 size:  1307
+ret: 0         st: 0 flags:0 dts: 50.700000 pts: 50.700000 pos:5901877 size:   150
+ret: 0         st: 0 flags:0 dts: 50.733333 pts: 50.733333 pos:5902027 size:   176