diff mbox series

[FFmpeg-devel,16/21] fftools/ffmpeg: rework audio-decode timestamp handling

Message ID 20230427142601.2613-16-anton@khirnov.net
State New
Headers show
Series [FFmpeg-devel,01/21] fftools/ffmpeg: deprecate -adrift_threshold | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 fail Make fate failed

Commit Message

Anton Khirnov April 27, 2023, 2:25 p.m. UTC
Stop using InputStream.dts for generating missing timestamps for decoded
frames, because it contains pre-decoding timestamps and there may be
arbitrary amount of delay between input packets and output frames (e.g.
dependent on the thread count when frame threading is used). It is also
in AV_TIME_BASE (i.e. microseconds), which may introduce unnecessary
rounding issues.

New code maintains a timebase that is the inverse of the LCM of all the
samplerates seen so far, and thus can accurately represent every audio
sample. This timebase is used to generate missing timestamps after
decoding.

Changes the result of the following FATE tests
* pcm_dvd-16-5.1-96000
* lavf-smjpeg
* adpcm-ima-smjpeg
In all of these the timestamps now better correspond to actual frame
durations.
---
 fftools/ffmpeg.c                    |  90 +++-
 fftools/ffmpeg.h                    |   8 +-
 fftools/ffmpeg_demux.c              |   6 +-
 tests/ref/fate/adpcm-ima-smjpeg     | 658 ++++++++++++++--------------
 tests/ref/fate/pcm_dvd-16-5.1-96000 |   8 +-
 tests/ref/lavf/smjpeg               |   2 +-
 6 files changed, 415 insertions(+), 357 deletions(-)

Comments

Michael Niedermayer April 28, 2023, 11:42 a.m. UTC | #1
On Thu, Apr 27, 2023 at 04:25:56PM +0200, Anton Khirnov wrote:
> Stop using InputStream.dts for generating missing timestamps for decoded
> frames, because it contains pre-decoding timestamps and there may be
> arbitrary amount of delay between input packets and output frames (e.g.
> dependent on the thread count when frame threading is used). It is also
> in AV_TIME_BASE (i.e. microseconds), which may introduce unnecessary
> rounding issues.
> 

> New code maintains a timebase that is the inverse of the LCM of all the
> samplerates seen so far, and thus can accurately represent every audio

if the LCM fits in int32

This can hit some pathologic cases though
consider a 192khz stream that starts with a damaged packet thats read as 11.197 khz
lcm of 192000 and 11197 > 2^31 so the whole stream will then be stuck with 11.197khz
that seems like a bad choice
the code should favor standard sample rates as well as the higher sample rate if
the lcm is not representable

also if lets say there are 48khz and 48.001khz where again lcm doesnt work 
then a multiple of 48khz may be a better choice than either itself

also what happens if the audio timestamps are known more precissely than
the audio sample rate ?

thx

[...]
Anton Khirnov April 28, 2023, 1:11 p.m. UTC | #2
Quoting Michael Niedermayer (2023-04-28 13:42:17)
> On Thu, Apr 27, 2023 at 04:25:56PM +0200, Anton Khirnov wrote:
> > Stop using InputStream.dts for generating missing timestamps for decoded
> > frames, because it contains pre-decoding timestamps and there may be
> > arbitrary amount of delay between input packets and output frames (e.g.
> > dependent on the thread count when frame threading is used). It is also
> > in AV_TIME_BASE (i.e. microseconds), which may introduce unnecessary
> > rounding issues.
> > 
> 
> > New code maintains a timebase that is the inverse of the LCM of all the
> > samplerates seen so far, and thus can accurately represent every audio
> 
> if the LCM fits in int32
> 
> This can hit some pathologic cases though
> consider a 192khz stream that starts with a damaged packet thats read as 11.197 khz
> lcm of 192000 and 11197 > 2^31 so the whole stream will then be stuck with 11.197khz
> that seems like a bad choice
> the code should favor standard sample rates as well as the higher sample rate if
> the lcm is not representable
> 
> also if lets say there are 48khz and 48.001khz where again lcm doesnt work 
> then a multiple of 48khz may be a better choice than either itself

Thank you, there are good points. I'm wondering if just picking the LCM
of all common samplerates (28224000 = lcm(192000, 44100)) wouldn't be
sufficient for all these pathological cases. Or do you have a better
general algorithm in mind? Maybe fall back on AV_TIME_BASE instead?

> also what happens if the audio timestamps are known more precissely than
> the audio sample rate ?

I'm not sure that is very relevant in real-world uses cases, but I've
added this snippet which should address this:

// keep the frame timebase if it is strictly better than
// the samplerate-defined one
if (frame->time_base.num == 1 && frame->time_base.den > tb_new.den &&
    !(frame->time_base.den % tb_new.den))
    tb_new = frame->time_base;
Michael Niedermayer April 28, 2023, 7:24 p.m. UTC | #3
On Fri, Apr 28, 2023 at 03:11:16PM +0200, Anton Khirnov wrote:
> Quoting Michael Niedermayer (2023-04-28 13:42:17)
> > On Thu, Apr 27, 2023 at 04:25:56PM +0200, Anton Khirnov wrote:
> > > Stop using InputStream.dts for generating missing timestamps for decoded
> > > frames, because it contains pre-decoding timestamps and there may be
> > > arbitrary amount of delay between input packets and output frames (e.g.
> > > dependent on the thread count when frame threading is used). It is also
> > > in AV_TIME_BASE (i.e. microseconds), which may introduce unnecessary
> > > rounding issues.
> > > 
> > 
> > > New code maintains a timebase that is the inverse of the LCM of all the
> > > samplerates seen so far, and thus can accurately represent every audio
> > 
> > if the LCM fits in int32
> > 
> > This can hit some pathologic cases though
> > consider a 192khz stream that starts with a damaged packet thats read as 11.197 khz
> > lcm of 192000 and 11197 > 2^31 so the whole stream will then be stuck with 11.197khz
> > that seems like a bad choice
> > the code should favor standard sample rates as well as the higher sample rate if
> > the lcm is not representable
> > 
> > also if lets say there are 48khz and 48.001khz where again lcm doesnt work 
> > then a multiple of 48khz may be a better choice than either itself
> 
> Thank you, there are good points. I'm wondering if just picking the LCM
> of all common samplerates (28224000 = lcm(192000, 44100)) wouldn't be
> sufficient for all these pathological cases. Or do you have a better
> general algorithm in mind? Maybe fall back on AV_TIME_BASE instead?

28224000 is an option, so is AV_TIME_BASE. Neither contain 90khz though 
which is the mpeg-ps/ts "timebase". But i have the feeling if we keep adding
things then we will hit 32bit soon. 
28224000 is better for exactly representing timestamps, AV_TIME_BASE may be
easier for debuging.

thx

[...]
diff mbox series

Patch

diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index 8829a163e0..d074d3e03b 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -881,6 +881,77 @@  static int send_frame_to_filters(InputStream *ist, AVFrame *decoded_frame)
     return ret;
 }
 
+static AVRational audio_samplerate_update(InputStream *ist, const AVFrame *frame)
+{
+    const int prev = ist->last_frame_tb.den;
+    const int sr   = frame->sample_rate;
+
+    AVRational tb_new;
+    int64_t gcd;
+
+    if (frame->sample_rate == ist->last_frame_sample_rate)
+        goto finish;
+
+    gcd  = av_gcd(prev, sr);
+
+    if (prev / gcd >= INT_MAX / sr) {
+        av_log(ist, AV_LOG_WARNING,
+               "Audio timestamps cannot be represented exactly after "
+               "sample rate change: %d -> %d\n", prev, sr);
+        goto finish;
+    }
+    tb_new = (AVRational){ 1, prev / gcd * sr };
+
+    if (ist->last_frame_pts != AV_NOPTS_VALUE)
+        ist->last_frame_pts = av_rescale_q(ist->last_frame_pts,
+                                           ist->last_frame_tb, tb_new);
+    ist->last_frame_duration_est = av_rescale_q(ist->last_frame_duration_est,
+                                                ist->last_frame_tb, tb_new);
+
+    ist->last_frame_tb          = tb_new;
+    ist->last_frame_sample_rate = frame->sample_rate;
+
+finish:
+    return ist->last_frame_tb;
+}
+
+static void audio_ts_process(InputStream *ist, AVFrame *frame)
+{
+    AVRational tb_filter = (AVRational){1, frame->sample_rate};
+    AVRational tb;
+    int64_t pts_pred;
+
+    // on samplerate change, choose a new internal timebase for timestamp
+    // generation that can represent timestamps from all the samplerates
+    // seen so far
+    tb = audio_samplerate_update(ist, frame);
+    pts_pred = ist->last_frame_pts == AV_NOPTS_VALUE ? 0 :
+               ist->last_frame_pts + ist->last_frame_duration_est;
+
+    if (frame->pts == AV_NOPTS_VALUE) {
+        frame->pts = pts_pred;
+        frame->time_base = tb;
+    } else if (ist->last_frame_pts != AV_NOPTS_VALUE &&
+               frame->pts > av_rescale_q_rnd(pts_pred, tb, frame->time_base,
+                                             AV_ROUND_UP)) {
+        // there was a gap in timestamps, reset conversion state
+        ist->filter_in_rescale_delta_last = AV_NOPTS_VALUE;
+    }
+
+    frame->pts = av_rescale_delta(frame->time_base, frame->pts,
+                                  tb, frame->nb_samples,
+                                  &ist->filter_in_rescale_delta_last, tb);
+
+    ist->last_frame_pts          = frame->pts;
+    ist->last_frame_duration_est = av_rescale_q(frame->nb_samples,
+                                                tb_filter, tb);
+
+    // finally convert to filtering timebase
+    frame->pts       = av_rescale_q(frame->pts, tb, tb_filter);
+    frame->duration  = frame->nb_samples;
+    frame->time_base = tb_filter;
+}
+
 static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output,
                         int *decode_failed)
 {
@@ -910,23 +981,7 @@  static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output,
     ist->next_dts += ((int64_t)AV_TIME_BASE * decoded_frame->nb_samples) /
                      decoded_frame->sample_rate;
 
-    if (decoded_frame->pts == AV_NOPTS_VALUE) {
-        decoded_frame->pts = ist->dts;
-        decoded_frame->time_base = AV_TIME_BASE_Q;
-    }
-    if (pkt && pkt->duration && ist->prev_pkt_pts != AV_NOPTS_VALUE &&
-        pkt->pts != AV_NOPTS_VALUE && pkt->pts - ist->prev_pkt_pts > pkt->duration)
-        ist->filter_in_rescale_delta_last = AV_NOPTS_VALUE;
-    if (pkt)
-        ist->prev_pkt_pts = pkt->pts;
-    if (decoded_frame->pts != AV_NOPTS_VALUE) {
-        AVRational tb_filter = (AVRational){1, decoded_frame->sample_rate};
-        decoded_frame->pts = av_rescale_delta(decoded_frame->time_base, decoded_frame->pts,
-                                              tb_filter, decoded_frame->nb_samples,
-                                              &ist->filter_in_rescale_delta_last,
-                                              tb_filter);
-        decoded_frame->time_base = tb_filter;
-    }
+    audio_ts_process(ist, decoded_frame);
 
     ist->nb_samples = decoded_frame->nb_samples;
     err = send_frame_to_filters(ist, decoded_frame);
@@ -1076,6 +1131,7 @@  static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output, int64_
     // update timestamp history
     ist->last_frame_duration_est = video_duration_estimate(ist, decoded_frame);
     ist->last_frame_pts          = decoded_frame->pts;
+    ist->last_frame_tb           = decoded_frame->time_base;
 
     if (debug_ts) {
         av_log(ist, AV_LOG_INFO,
diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h
index c07a1b86b6..c4abf89b58 100644
--- a/fftools/ffmpeg.h
+++ b/fftools/ffmpeg.h
@@ -359,7 +359,6 @@  typedef struct InputStream {
 
     AVRational framerate_guessed;
 
-    int64_t       prev_pkt_pts;
     int64_t       start;     /* time when read started */
     /* predicted dts of the next packet read for this stream or (when there are
      * several frames in a packet) of the next frame in current packet (in AV_TIME_BASE units) */
@@ -371,10 +370,13 @@  typedef struct InputStream {
     int64_t       next_pts;
     int64_t       pts;       ///< current pts of the decoded frame  (in AV_TIME_BASE units)
 
-    // pts/estimated duration of the last decoded video frame
-    // in decoder timebase
+    // pts/estimated duration of the last decoded frame
+    // * in decoder timebase for video,
+    // * in last_frame_tb (may change during decoding) for audio
     int64_t last_frame_pts;
     int64_t last_frame_duration_est;
+    AVRational    last_frame_tb;
+    int           last_frame_sample_rate;
 
     int           wrap_correction_done;
 
diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c
index 5afb3ff2c8..f8d95d1de6 100644
--- a/fftools/ffmpeg_demux.c
+++ b/fftools/ffmpeg_demux.c
@@ -864,7 +864,9 @@  static void add_input_streams(const OptionsContext *o, Demuxer *d)
         }
 
         ist->filter_in_rescale_delta_last = AV_NOPTS_VALUE;
-        ist->prev_pkt_pts = AV_NOPTS_VALUE;
+
+        ist->last_frame_pts = AV_NOPTS_VALUE;
+        ist->last_frame_tb  = (AVRational){ 1, 1 };
 
         ist->dec_ctx = avcodec_alloc_context3(ist->dec);
         if (!ist->dec_ctx)
@@ -905,8 +907,6 @@  static void add_input_streams(const OptionsContext *o, Demuxer *d)
 
             ist->framerate_guessed = av_guess_frame_rate(ic, st, NULL);
 
-            ist->last_frame_pts = AV_NOPTS_VALUE;
-
             break;
         case AVMEDIA_TYPE_AUDIO: {
             int guess_layout_max = INT_MAX;
diff --git a/tests/ref/fate/adpcm-ima-smjpeg b/tests/ref/fate/adpcm-ima-smjpeg
index 723fa2336e..b9cf1f38db 100644
--- a/tests/ref/fate/adpcm-ima-smjpeg
+++ b/tests/ref/fate/adpcm-ima-smjpeg
@@ -8,348 +8,348 @@ 
 0,       1024,       1024,      512,     1024, 0xed2d3f6b
 0,       1533,       1533,      512,     1024, 0x51f6ccb3
 0,       2040,       2040,      512,     1024, 0x58bd75aa
-0,       2558,       2558,      512,     1024, 0xd857a310
-0,       3070,       3070,      512,     1024, 0xc483a5b8
-0,       3582,       3582,      512,     1024, 0x923ecf67
-0,       4091,       4091,      512,     1024, 0xf87dcd53
+0,       2552,       2552,      512,     1024, 0xd857a310
+0,       3064,       3064,      512,     1024, 0xc483a5b8
+0,       3576,       3576,      512,     1024, 0x923ecf67
+0,       4088,       4088,      512,     1024, 0xf87dcd53
 0,       4598,       4598,      512,     1024, 0xdc32c002
-0,       5116,       5116,      512,     1024, 0xb760def1
-0,       5628,       5628,      512,     1024, 0x6838d2b2
-0,       6140,       6140,      512,     1024, 0xe45aca1e
-0,       6649,       6649,      512,     1024, 0xde1fb955
-0,       7166,       7166,      512,     1024, 0x9e23b949
-0,       7678,       7678,      512,     1024, 0x840cc000
-0,       8190,       8190,      512,     1024, 0x0a29cbfa
-0,       8699,       8699,      512,     1024, 0x9871d4c4
+0,       5110,       5110,      512,     1024, 0xb760def1
+0,       5622,       5622,      512,     1024, 0x6838d2b2
+0,       6134,       6134,      512,     1024, 0xe45aca1e
+0,       6646,       6646,      512,     1024, 0xde1fb955
+0,       7158,       7158,      512,     1024, 0x9e23b949
+0,       7670,       7670,      512,     1024, 0x840cc000
+0,       8182,       8182,      512,     1024, 0x0a29cbfa
+0,       8694,       8694,      512,     1024, 0x9871d4c4
 0,       9206,       9206,      512,     1024, 0xb35dc9f2
-0,       9724,       9724,      512,     1024, 0xf37fda0a
-0,      10236,      10236,      512,     1024, 0xa640f990
-0,      10748,      10748,      512,     1024, 0x516fe6f5
-0,      11257,      11257,      512,     1024, 0xc78bc6a6
-0,      11775,      11775,      512,     1024, 0x700fd6ee
-0,      12287,      12287,      512,     1024, 0x5383d5ad
-0,      12799,      12799,      512,     1024, 0xbe01d091
-0,      13308,      13308,      512,     1024, 0x72dfcfc7
-0,      13815,      13815,      512,     1024, 0xd8fecea9
-0,      14333,      14333,      512,     1024, 0xa464d79b
-0,      14845,      14845,      512,     1024, 0xf394e2cb
-0,      15357,      15357,      512,     1024, 0xa301ec49
-0,      15865,      15865,      512,     1024, 0x5e09d60f
-0,      16383,      16383,      512,     1024, 0xd13edd6f
-0,      16895,      16895,      512,     1024, 0x7423ef39
-0,      17407,      17407,      512,     1024, 0x96e2f083
-0,      17916,      17916,      512,     1024, 0x5ed7dbee
-0,      18423,      18423,      512,     1024, 0x3874f714
-0,      18941,      18941,      512,     1024, 0xa5e6edab
-0,      19453,      19453,      512,     1024, 0x0a04ee3a
-0,      19965,      19965,      512,     1024, 0xadfee6b9
-0,      20474,      20474,      512,     1024, 0xd0bbe6d2
-0,      20992,      20992,      512,     1024, 0x223eebb7
-0,      21504,      21504,      512,     1024, 0x0473e479
-0,      22016,      22016,      512,     1024, 0xdf15e51e
-0,      22525,      22525,      512,     1024, 0xa954e483
-0,      23032,      23032,      512,     1024, 0x6df3ed03
-0,      23549,      23549,      512,     1024, 0x0860e544
-0,      24061,      24061,      512,     1024, 0xc241e8dc
-0,      24573,      24573,      512,     1024, 0xd0e1d6a4
-0,      25082,      25082,      512,     1024, 0xcb2ff988
+0,       9718,       9718,      512,     1024, 0xf37fda0a
+0,      10230,      10230,      512,     1024, 0xa640f990
+0,      10742,      10742,      512,     1024, 0x516fe6f5
+0,      11254,      11254,      512,     1024, 0xc78bc6a6
+0,      11766,      11766,      512,     1024, 0x700fd6ee
+0,      12278,      12278,      512,     1024, 0x5383d5ad
+0,      12790,      12790,      512,     1024, 0xbe01d091
+0,      13302,      13302,      512,     1024, 0x72dfcfc7
+0,      13814,      13814,      512,     1024, 0xd8fecea9
+0,      14326,      14326,      512,     1024, 0xa464d79b
+0,      14838,      14838,      512,     1024, 0xf394e2cb
+0,      15350,      15350,      512,     1024, 0xa301ec49
+0,      15862,      15862,      512,     1024, 0x5e09d60f
+0,      16374,      16374,      512,     1024, 0xd13edd6f
+0,      16886,      16886,      512,     1024, 0x7423ef39
+0,      17398,      17398,      512,     1024, 0x96e2f083
+0,      17910,      17910,      512,     1024, 0x5ed7dbee
+0,      18422,      18422,      512,     1024, 0x3874f714
+0,      18934,      18934,      512,     1024, 0xa5e6edab
+0,      19446,      19446,      512,     1024, 0x0a04ee3a
+0,      19958,      19958,      512,     1024, 0xadfee6b9
+0,      20470,      20470,      512,     1024, 0xd0bbe6d2
+0,      20982,      20982,      512,     1024, 0x223eebb7
+0,      21494,      21494,      512,     1024, 0x0473e479
+0,      22006,      22006,      512,     1024, 0xdf15e51e
+0,      22518,      22518,      512,     1024, 0xa954e483
+0,      23030,      23030,      512,     1024, 0x6df3ed03
+0,      23542,      23542,      512,     1024, 0x0860e544
+0,      24054,      24054,      512,     1024, 0xc241e8dc
+0,      24566,      24566,      512,     1024, 0xd0e1d6a4
+0,      25078,      25078,      512,     1024, 0xcb2ff988
 0,      25590,      25590,      512,     1024, 0x51fae08e
-0,      26107,      26107,      512,     1024, 0xae39f2fc
-0,      26619,      26619,      512,     1024, 0xfd74f07c
-0,      27131,      27131,      512,     1024, 0x1936edc1
-0,      27640,      27640,      512,     1024, 0x95f8deae
-0,      28158,      28158,      512,     1024, 0x93bdf605
-0,      28670,      28670,      512,     1024, 0x7a07dd32
-0,      29182,      29182,      512,     1024, 0x6889fdc1
-0,      29691,      29691,      512,     1024, 0x989bf024
+0,      26102,      26102,      512,     1024, 0xae39f2fc
+0,      26614,      26614,      512,     1024, 0xfd74f07c
+0,      27126,      27126,      512,     1024, 0x1936edc1
+0,      27638,      27638,      512,     1024, 0x95f8deae
+0,      28150,      28150,      512,     1024, 0x93bdf605
+0,      28662,      28662,      512,     1024, 0x7a07dd32
+0,      29174,      29174,      512,     1024, 0x6889fdc1
+0,      29686,      29686,      512,     1024, 0x989bf024
 0,      30198,      30198,      512,     1024, 0xc764ce80
-0,      30716,      30716,      512,     1024, 0x0e62d721
-0,      31228,      31228,      512,     1024, 0x59c2fbe3
-0,      31740,      31740,      512,     1024, 0xf14ee29d
-0,      32249,      32249,      512,     1024, 0x02a0f21b
-0,      32766,      32766,      512,     1024, 0xadb3d361
-0,      33278,      33278,      512,     1024, 0xdcb3d1fc
-0,      33790,      33790,      512,     1024, 0x2924f9dc
-0,      34299,      34299,      512,     1024, 0x7507ebec
+0,      30710,      30710,      512,     1024, 0x0e62d721
+0,      31222,      31222,      512,     1024, 0x59c2fbe3
+0,      31734,      31734,      512,     1024, 0xf14ee29d
+0,      32246,      32246,      512,     1024, 0x02a0f21b
+0,      32758,      32758,      512,     1024, 0xadb3d361
+0,      33270,      33270,      512,     1024, 0xdcb3d1fc
+0,      33782,      33782,      512,     1024, 0x2924f9dc
+0,      34294,      34294,      512,     1024, 0x7507ebec
 0,      34806,      34806,      512,     1024, 0xe009f343
-0,      35324,      35324,      512,     1024, 0x21e9e7ac
-0,      35836,      35836,      512,     1024, 0x845bda9e
-0,      36348,      36348,      512,     1024, 0xb1b3e632
-0,      36857,      36857,      512,     1024, 0x61ccf593
-0,      37375,      37375,      512,     1024, 0x8cdbf603
-0,      37887,      37887,      512,     1024, 0xf8f7e673
-0,      38399,      38399,      512,     1024, 0x55efdd24
-0,      38908,      38908,      512,     1024, 0x4059e8ff
-0,      39415,      39415,      512,     1024, 0xb3afe5be
-0,      39933,      39933,      512,     1024, 0x7236e965
-0,      40445,      40445,      512,     1024, 0xe683db69
-0,      40957,      40957,      512,     1024, 0x29e3d93c
-0,      41466,      41466,      512,     1024, 0x74f2f27f
-0,      41983,      41983,      512,     1024, 0x32cde3ba
-0,      42495,      42495,      512,     1024, 0xe907f171
-0,      43007,      43007,      512,     1024, 0x206ae2a5
-0,      43516,      43516,      512,     1024, 0x6379efa1
-0,      44023,      44023,      512,     1024, 0x0f0fee85
-0,      44541,      44541,      512,     1024, 0x3195e314
-0,      45053,      45053,      512,     1024, 0x4646ead3
-0,      45565,      45565,      512,     1024, 0x5635dcf5
-0,      46074,      46074,      512,     1024, 0xd76fc780
-0,      46592,      46592,      512,     1024, 0x847ff8a5
-0,      47104,      47104,      512,     1024, 0xaca8eda3
-0,      47616,      47616,      512,     1024, 0x9a2de1ea
-0,      48125,      48125,      512,     1024, 0xc92ff23a
-0,      48632,      48632,      512,     1024, 0x0e0ef038
-0,      49149,      49149,      512,     1024, 0xc32cf495
-0,      49661,      49661,      512,     1024, 0x6ab1ec79
-0,      50173,      50173,      512,     1024, 0xe43cd8d6
-0,      50682,      50682,      512,     1024, 0x4ba2deab
+0,      35318,      35318,      512,     1024, 0x21e9e7ac
+0,      35830,      35830,      512,     1024, 0x845bda9e
+0,      36342,      36342,      512,     1024, 0xb1b3e632
+0,      36854,      36854,      512,     1024, 0x61ccf593
+0,      37366,      37366,      512,     1024, 0x8cdbf603
+0,      37878,      37878,      512,     1024, 0xf8f7e673
+0,      38390,      38390,      512,     1024, 0x55efdd24
+0,      38902,      38902,      512,     1024, 0x4059e8ff
+0,      39414,      39414,      512,     1024, 0xb3afe5be
+0,      39926,      39926,      512,     1024, 0x7236e965
+0,      40438,      40438,      512,     1024, 0xe683db69
+0,      40950,      40950,      512,     1024, 0x29e3d93c
+0,      41462,      41462,      512,     1024, 0x74f2f27f
+0,      41974,      41974,      512,     1024, 0x32cde3ba
+0,      42486,      42486,      512,     1024, 0xe907f171
+0,      42998,      42998,      512,     1024, 0x206ae2a5
+0,      43510,      43510,      512,     1024, 0x6379efa1
+0,      44022,      44022,      512,     1024, 0x0f0fee85
+0,      44534,      44534,      512,     1024, 0x3195e314
+0,      45046,      45046,      512,     1024, 0x4646ead3
+0,      45558,      45558,      512,     1024, 0x5635dcf5
+0,      46070,      46070,      512,     1024, 0xd76fc780
+0,      46582,      46582,      512,     1024, 0x847ff8a5
+0,      47094,      47094,      512,     1024, 0xaca8eda3
+0,      47606,      47606,      512,     1024, 0x9a2de1ea
+0,      48118,      48118,      512,     1024, 0xc92ff23a
+0,      48630,      48630,      512,     1024, 0x0e0ef038
+0,      49142,      49142,      512,     1024, 0xc32cf495
+0,      49654,      49654,      512,     1024, 0x6ab1ec79
+0,      50166,      50166,      512,     1024, 0xe43cd8d6
+0,      50678,      50678,      512,     1024, 0x4ba2deab
 0,      51190,      51190,      512,     1024, 0x6d16ea0e
-0,      51707,      51707,      512,     1024, 0xe5b0ee70
-0,      52219,      52219,      512,     1024, 0xcf6cf074
-0,      52731,      52731,      512,     1024, 0x2206e61d
-0,      53240,      53240,      512,     1024, 0xfbb9e7e7
-0,      53758,      53758,      512,     1024, 0x2bc1e115
-0,      54270,      54270,      512,     1024, 0x4ca6e5c5
-0,      54782,      54782,      512,     1024, 0x061cead0
-0,      55291,      55291,      512,     1024, 0x3dc9f950
+0,      51702,      51702,      512,     1024, 0xe5b0ee70
+0,      52214,      52214,      512,     1024, 0xcf6cf074
+0,      52726,      52726,      512,     1024, 0x2206e61d
+0,      53238,      53238,      512,     1024, 0xfbb9e7e7
+0,      53750,      53750,      512,     1024, 0x2bc1e115
+0,      54262,      54262,      512,     1024, 0x4ca6e5c5
+0,      54774,      54774,      512,     1024, 0x061cead0
+0,      55286,      55286,      512,     1024, 0x3dc9f950
 0,      55798,      55798,      512,     1024, 0x9399f10d
-0,      56316,      56316,      512,     1024, 0xa2bff5ae
-0,      56828,      56828,      512,     1024, 0xd21de569
-0,      57340,      57340,      512,     1024, 0x1c45e3be
-0,      57849,      57849,      512,     1024, 0xff5dff1c
-0,      58366,      58366,      512,     1024, 0x992df5d3
-0,      58878,      58878,      512,     1024, 0xafedea2f
-0,      59390,      59390,      512,     1024, 0x6e73d6a8
-0,      59899,      59899,      512,     1024, 0x72dff283
+0,      56310,      56310,      512,     1024, 0xa2bff5ae
+0,      56822,      56822,      512,     1024, 0xd21de569
+0,      57334,      57334,      512,     1024, 0x1c45e3be
+0,      57846,      57846,      512,     1024, 0xff5dff1c
+0,      58358,      58358,      512,     1024, 0x992df5d3
+0,      58870,      58870,      512,     1024, 0xafedea2f
+0,      59382,      59382,      512,     1024, 0x6e73d6a8
+0,      59894,      59894,      512,     1024, 0x72dff283
 0,      60406,      60406,      512,     1024, 0x50b5f1a6
-0,      60924,      60924,      512,     1024, 0xffe1decb
-0,      61436,      61436,      512,     1024, 0x8993ecff
-0,      61948,      61948,      512,     1024, 0x954bd63a
-0,      62457,      62457,      512,     1024, 0x4707f577
-0,      62975,      62975,      512,     1024, 0x7a88f81f
-0,      63487,      63487,      512,     1024, 0xc771f537
-0,      63999,      63999,      512,     1024, 0x7aade6af
-0,      64508,      64508,      512,     1024, 0x8af5ede5
-0,      65015,      65015,      512,     1024, 0x7500f3f1
-0,      65533,      65533,      512,     1024, 0xea36f707
-0,      66045,      66045,      512,     1024, 0x1a26e39a
-0,      66557,      66557,      512,     1024, 0xa04cf00d
-0,      67066,      67066,      512,     1024, 0xc362f182
-0,      67583,      67583,      512,     1024, 0x79c8f82c
-0,      68095,      68095,      512,     1024, 0x6480eee1
-0,      68607,      68607,      512,     1024, 0x7152eaa0
-0,      69116,      69116,      512,     1024, 0x5dfee6a9
-0,      69623,      69623,      512,     1024, 0x0afae660
-0,      70141,      70141,      512,     1024, 0xdc98e9fc
-0,      70653,      70653,      512,     1024, 0x10b7da06
-0,      71165,      71165,      512,     1024, 0x0571e585
-0,      71674,      71674,      512,     1024, 0x18ddf45e
-0,      72192,      72192,      512,     1024, 0x2cbef242
-0,      72704,      72704,      512,     1024, 0xf5380845
-0,      73216,      73216,      512,     1024, 0x34fff45e
-0,      73725,      73725,      512,     1024, 0x6f97e490
-0,      74232,      74232,      512,     1024, 0x77d6f0db
-0,      74750,      74750,      512,     1024, 0xa25ce2db
-0,      75262,      75262,      512,     1024, 0x8260e4e9
-0,      75774,      75774,      512,     1024, 0xc3b2f7d2
-0,      76282,      76282,      512,     1024, 0x82a7edae
+0,      60918,      60918,      512,     1024, 0xffe1decb
+0,      61430,      61430,      512,     1024, 0x8993ecff
+0,      61942,      61942,      512,     1024, 0x954bd63a
+0,      62454,      62454,      512,     1024, 0x4707f577
+0,      62966,      62966,      512,     1024, 0x7a88f81f
+0,      63478,      63478,      512,     1024, 0xc771f537
+0,      63990,      63990,      512,     1024, 0x7aade6af
+0,      64502,      64502,      512,     1024, 0x8af5ede5
+0,      65014,      65014,      512,     1024, 0x7500f3f1
+0,      65526,      65526,      512,     1024, 0xea36f707
+0,      66038,      66038,      512,     1024, 0x1a26e39a
+0,      66550,      66550,      512,     1024, 0xa04cf00d
+0,      67062,      67062,      512,     1024, 0xc362f182
+0,      67574,      67574,      512,     1024, 0x79c8f82c
+0,      68086,      68086,      512,     1024, 0x6480eee1
+0,      68598,      68598,      512,     1024, 0x7152eaa0
+0,      69110,      69110,      512,     1024, 0x5dfee6a9
+0,      69622,      69622,      512,     1024, 0x0afae660
+0,      70134,      70134,      512,     1024, 0xdc98e9fc
+0,      70646,      70646,      512,     1024, 0x10b7da06
+0,      71158,      71158,      512,     1024, 0x0571e585
+0,      71670,      71670,      512,     1024, 0x18ddf45e
+0,      72182,      72182,      512,     1024, 0x2cbef242
+0,      72694,      72694,      512,     1024, 0xf5380845
+0,      73206,      73206,      512,     1024, 0x34fff45e
+0,      73718,      73718,      512,     1024, 0x6f97e490
+0,      74230,      74230,      512,     1024, 0x77d6f0db
+0,      74742,      74742,      512,     1024, 0xa25ce2db
+0,      75254,      75254,      512,     1024, 0x8260e4e9
+0,      75766,      75766,      512,     1024, 0xc3b2f7d2
+0,      76278,      76278,      512,     1024, 0x82a7edae
 0,      76790,      76790,      512,     1024, 0x7d08dd54
-0,      77307,      77307,      512,     1024, 0x9059eda6
-0,      77819,      77819,      512,     1024, 0xbebaec88
-0,      78331,      78331,      512,     1024, 0xd9afd586
-0,      78840,      78840,      512,     1024, 0x0ca3e622
-0,      79358,      79358,      512,     1024, 0x4123e9e6
-0,      79870,      79870,      512,     1024, 0x2ff9f95c
-0,      80382,      80382,      512,     1024, 0x8522e261
-0,      80891,      80891,      512,     1024, 0xe4f8f499
+0,      77302,      77302,      512,     1024, 0x9059eda6
+0,      77814,      77814,      512,     1024, 0xbebaec88
+0,      78326,      78326,      512,     1024, 0xd9afd586
+0,      78838,      78838,      512,     1024, 0x0ca3e622
+0,      79350,      79350,      512,     1024, 0x4123e9e6
+0,      79862,      79862,      512,     1024, 0x2ff9f95c
+0,      80374,      80374,      512,     1024, 0x8522e261
+0,      80886,      80886,      512,     1024, 0xe4f8f499
 0,      81398,      81398,      512,     1024, 0x34f3f2bd
-0,      81916,      81916,      512,     1024, 0x82efe863
-0,      82428,      82428,      512,     1024, 0x9966fcea
-0,      82940,      82940,      512,     1024, 0xe94de3fd
-0,      83449,      83449,      512,     1024, 0x1ce0e27b
-0,      83966,      83966,      512,     1024, 0xd718dcde
-0,      84478,      84478,      512,     1024, 0xd503e724
-0,      84990,      84990,      512,     1024, 0x427ee3b2
-0,      85499,      85499,      512,     1024, 0x4512dcc4
-0,      86007,      86007,      512,     1024, 0xcf31e77c
-0,      86524,      86524,      512,     1024, 0xeb41ea81
-0,      87036,      87036,      512,     1024, 0xfa43e67c
-0,      87548,      87548,      512,     1024, 0x8162f3c9
-0,      88057,      88057,      512,     1024, 0x1b55f6b0
-0,      88575,      88575,      512,     1024, 0x3ebeec44
-0,      89087,      89087,      512,     1024, 0x740fe0c4
-0,      89599,      89599,      512,     1024, 0x8fb4e8b2
-0,      90108,      90108,      512,     1024, 0xe49de6a2
-0,      90615,      90615,      512,     1024, 0xd64febdf
-0,      91133,      91133,      512,     1024, 0x0e74ee08
-0,      91645,      91645,      512,     1024, 0x6c0ddf07
-0,      92157,      92157,      512,     1024, 0x7fb8e3c9
-0,      92666,      92666,      512,     1024, 0x52bfe96c
-0,      93183,      93183,      512,     1024, 0xfc22ee64
-0,      93695,      93695,      512,     1024, 0xe20ae718
-0,      94207,      94207,      512,     1024, 0xa94be395
-0,      94716,      94716,      512,     1024, 0xded306d0
-0,      95223,      95223,      512,     1024, 0x31f7c831
-0,      95741,      95741,      512,     1024, 0x0ffde0a8
-0,      96253,      96253,      512,     1024, 0xc692e3e0
-0,      96765,      96765,      512,     1024, 0x1d8ff7c7
-0,      97274,      97274,      512,     1024, 0x038ee172
-0,      97792,      97792,      512,     1024, 0x9a1eef59
-0,      98304,      98304,      512,     1024, 0x158fe750
-0,      98816,      98816,      512,     1024, 0xac15e42c
-0,      99325,      99325,      512,     1024, 0x6323ed44
-0,      99832,      99832,      512,     1024, 0xd10ce4bb
-0,     100350,     100350,      512,     1024, 0xc1cce296
-0,     100862,     100862,      512,     1024, 0x0782f094
-0,     101374,     101374,      512,     1024, 0xd109de36
-0,     101883,     101883,      512,     1024, 0x175600fb
+0,      81910,      81910,      512,     1024, 0x82efe863
+0,      82422,      82422,      512,     1024, 0x9966fcea
+0,      82934,      82934,      512,     1024, 0xe94de3fd
+0,      83446,      83446,      512,     1024, 0x1ce0e27b
+0,      83958,      83958,      512,     1024, 0xd718dcde
+0,      84470,      84470,      512,     1024, 0xd503e724
+0,      84982,      84982,      512,     1024, 0x427ee3b2
+0,      85494,      85494,      512,     1024, 0x4512dcc4
+0,      86006,      86006,      512,     1024, 0xcf31e77c
+0,      86518,      86518,      512,     1024, 0xeb41ea81
+0,      87030,      87030,      512,     1024, 0xfa43e67c
+0,      87542,      87542,      512,     1024, 0x8162f3c9
+0,      88054,      88054,      512,     1024, 0x1b55f6b0
+0,      88566,      88566,      512,     1024, 0x3ebeec44
+0,      89078,      89078,      512,     1024, 0x740fe0c4
+0,      89590,      89590,      512,     1024, 0x8fb4e8b2
+0,      90102,      90102,      512,     1024, 0xe49de6a2
+0,      90614,      90614,      512,     1024, 0xd64febdf
+0,      91126,      91126,      512,     1024, 0x0e74ee08
+0,      91638,      91638,      512,     1024, 0x6c0ddf07
+0,      92150,      92150,      512,     1024, 0x7fb8e3c9
+0,      92662,      92662,      512,     1024, 0x52bfe96c
+0,      93174,      93174,      512,     1024, 0xfc22ee64
+0,      93686,      93686,      512,     1024, 0xe20ae718
+0,      94198,      94198,      512,     1024, 0xa94be395
+0,      94710,      94710,      512,     1024, 0xded306d0
+0,      95222,      95222,      512,     1024, 0x31f7c831
+0,      95734,      95734,      512,     1024, 0x0ffde0a8
+0,      96246,      96246,      512,     1024, 0xc692e3e0
+0,      96758,      96758,      512,     1024, 0x1d8ff7c7
+0,      97270,      97270,      512,     1024, 0x038ee172
+0,      97782,      97782,      512,     1024, 0x9a1eef59
+0,      98294,      98294,      512,     1024, 0x158fe750
+0,      98806,      98806,      512,     1024, 0xac15e42c
+0,      99318,      99318,      512,     1024, 0x6323ed44
+0,      99830,      99830,      512,     1024, 0xd10ce4bb
+0,     100342,     100342,      512,     1024, 0xc1cce296
+0,     100854,     100854,      512,     1024, 0x0782f094
+0,     101366,     101366,      512,     1024, 0xd109de36
+0,     101878,     101878,      512,     1024, 0x175600fb
 0,     102390,     102390,      512,     1024, 0x95d5e8d9
-0,     102907,     102907,      512,     1024, 0xebb6eee1
-0,     103419,     103419,      512,     1024, 0x187cfadc
-0,     103931,     103931,      512,     1024, 0xce35fa5c
-0,     104440,     104440,      512,     1024, 0x8327eea2
-0,     104958,     104958,      512,     1024, 0x5543f219
-0,     105470,     105470,      512,     1024, 0xaacbe0dc
-0,     105982,     105982,      512,     1024, 0xa538e9fb
-0,     106491,     106491,      512,     1024, 0x4dcbe655
+0,     102902,     102902,      512,     1024, 0xebb6eee1
+0,     103414,     103414,      512,     1024, 0x187cfadc
+0,     103926,     103926,      512,     1024, 0xce35fa5c
+0,     104438,     104438,      512,     1024, 0x8327eea2
+0,     104950,     104950,      512,     1024, 0x5543f219
+0,     105462,     105462,      512,     1024, 0xaacbe0dc
+0,     105974,     105974,      512,     1024, 0xa538e9fb
+0,     106486,     106486,      512,     1024, 0x4dcbe655
 0,     106998,     106998,      512,     1024, 0x86b6d93b
-0,     107516,     107516,      512,     1024, 0x1a06f878
-0,     108028,     108028,      512,     1024, 0xd926e8ef
-0,     108540,     108540,      512,     1024, 0xc624db2f
-0,     109049,     109049,      512,     1024, 0x2153e20d
-0,     109566,     109566,      512,     1024, 0x01dce868
-0,     110078,     110078,      512,     1024, 0xfa5fd3cd
-0,     110590,     110590,      512,     1024, 0x2adef2d5
-0,     111099,     111099,      512,     1024, 0x4f48f8e2
-0,     111607,     111607,      512,     1024, 0x613feeee
-0,     112124,     112124,      512,     1024, 0x3780de8a
-0,     112636,     112636,      512,     1024, 0x2093eb65
-0,     113148,     113148,      512,     1024, 0x54baebbb
-0,     113657,     113657,      512,     1024, 0x8686dd7c
-0,     114175,     114175,      512,     1024, 0x7f8ae80c
-0,     114687,     114687,      512,     1024, 0x7aede972
-0,     115199,     115199,      512,     1024, 0x971bebc0
-0,     115708,     115708,      512,     1024, 0x2dd5fd4b
-0,     116215,     116215,      512,     1024, 0xb1b3e4a3
-0,     116733,     116733,      512,     1024, 0x192defc6
-0,     117245,     117245,      512,     1024, 0x5e46ec44
-0,     117757,     117757,      512,     1024, 0xe6d8e05a
-0,     118266,     118266,      512,     1024, 0x7e2fe2b0
-0,     118783,     118783,      512,     1024, 0x9e3bdf80
-0,     119295,     119295,      512,     1024, 0xa98cd85e
-0,     119807,     119807,      512,     1024, 0x6061e0c4
-0,     120316,     120316,      512,     1024, 0x6112f3fc
-0,     120823,     120823,      512,     1024, 0x99bdfb01
-0,     121341,     121341,      512,     1024, 0x3f5df3ca
-0,     121853,     121853,      512,     1024, 0xf5ebeb05
-0,     122365,     122365,      512,     1024, 0x8498e565
-0,     122874,     122874,      512,     1024, 0x0497f0b7
-0,     123392,     123392,      512,     1024, 0x626ae800
-0,     123904,     123904,      512,     1024, 0xfb71eec4
-0,     124416,     124416,      512,     1024, 0xa86ee739
-0,     124925,     124925,      512,     1024, 0x25c0e050
-0,     125432,     125432,      512,     1024, 0x6027e91e
-0,     125950,     125950,      512,     1024, 0x6772df6e
-0,     126462,     126462,      512,     1024, 0xfefff844
-0,     126974,     126974,      512,     1024, 0x547be862
-0,     127483,     127483,      512,     1024, 0xca84e795
+0,     107510,     107510,      512,     1024, 0x1a06f878
+0,     108022,     108022,      512,     1024, 0xd926e8ef
+0,     108534,     108534,      512,     1024, 0xc624db2f
+0,     109046,     109046,      512,     1024, 0x2153e20d
+0,     109558,     109558,      512,     1024, 0x01dce868
+0,     110070,     110070,      512,     1024, 0xfa5fd3cd
+0,     110582,     110582,      512,     1024, 0x2adef2d5
+0,     111094,     111094,      512,     1024, 0x4f48f8e2
+0,     111606,     111606,      512,     1024, 0x613feeee
+0,     112118,     112118,      512,     1024, 0x3780de8a
+0,     112630,     112630,      512,     1024, 0x2093eb65
+0,     113142,     113142,      512,     1024, 0x54baebbb
+0,     113654,     113654,      512,     1024, 0x8686dd7c
+0,     114166,     114166,      512,     1024, 0x7f8ae80c
+0,     114678,     114678,      512,     1024, 0x7aede972
+0,     115190,     115190,      512,     1024, 0x971bebc0
+0,     115702,     115702,      512,     1024, 0x2dd5fd4b
+0,     116214,     116214,      512,     1024, 0xb1b3e4a3
+0,     116726,     116726,      512,     1024, 0x192defc6
+0,     117238,     117238,      512,     1024, 0x5e46ec44
+0,     117750,     117750,      512,     1024, 0xe6d8e05a
+0,     118262,     118262,      512,     1024, 0x7e2fe2b0
+0,     118774,     118774,      512,     1024, 0x9e3bdf80
+0,     119286,     119286,      512,     1024, 0xa98cd85e
+0,     119798,     119798,      512,     1024, 0x6061e0c4
+0,     120310,     120310,      512,     1024, 0x6112f3fc
+0,     120822,     120822,      512,     1024, 0x99bdfb01
+0,     121334,     121334,      512,     1024, 0x3f5df3ca
+0,     121846,     121846,      512,     1024, 0xf5ebeb05
+0,     122358,     122358,      512,     1024, 0x8498e565
+0,     122870,     122870,      512,     1024, 0x0497f0b7
+0,     123382,     123382,      512,     1024, 0x626ae800
+0,     123894,     123894,      512,     1024, 0xfb71eec4
+0,     124406,     124406,      512,     1024, 0xa86ee739
+0,     124918,     124918,      512,     1024, 0x25c0e050
+0,     125430,     125430,      512,     1024, 0x6027e91e
+0,     125942,     125942,      512,     1024, 0x6772df6e
+0,     126454,     126454,      512,     1024, 0xfefff844
+0,     126966,     126966,      512,     1024, 0x547be862
+0,     127478,     127478,      512,     1024, 0xca84e795
 0,     127990,     127990,      512,     1024, 0xd124db3e
-0,     128507,     128507,      512,     1024, 0xcaf3deb5
-0,     129019,     129019,      512,     1024, 0x487ce92d
-0,     129531,     129531,      512,     1024, 0x117feb95
-0,     130040,     130040,      512,     1024, 0x7b63de3d
-0,     130558,     130558,      512,     1024, 0xa529d8e1
-0,     131070,     131070,      512,     1024, 0x56f6da26
-0,     131582,     131582,      512,     1024, 0xffb8d5af
-0,     132091,     132091,      512,     1024, 0xeecbdc04
+0,     128502,     128502,      512,     1024, 0xcaf3deb5
+0,     129014,     129014,      512,     1024, 0x487ce92d
+0,     129526,     129526,      512,     1024, 0x117feb95
+0,     130038,     130038,      512,     1024, 0x7b63de3d
+0,     130550,     130550,      512,     1024, 0xa529d8e1
+0,     131062,     131062,      512,     1024, 0x56f6da26
+0,     131574,     131574,      512,     1024, 0xffb8d5af
+0,     132086,     132086,      512,     1024, 0xeecbdc04
 0,     132598,     132598,      512,     1024, 0xfc59d2d2
-0,     133116,     133116,      512,     1024, 0xaf7acef7
-0,     133628,     133628,      512,     1024, 0x3f9bf258
-0,     134140,     134140,      512,     1024, 0xcf54e9d6
-0,     134649,     134649,      512,     1024, 0x680cd0aa
-0,     135167,     135167,      512,     1024, 0x3c1bdc1f
-0,     135679,     135679,      512,     1024, 0x8c8ffe22
-0,     136191,     136191,      512,     1024, 0xf415d362
-0,     136699,     136699,      512,     1024, 0x8c8cdaa9
-0,     137207,     137207,      512,     1024, 0x9531e9f1
-0,     137724,     137724,      512,     1024, 0x223ce536
-0,     138236,     138236,      512,     1024, 0xdfbce5f9
-0,     138748,     138748,      512,     1024, 0x20b6ed7d
-0,     139257,     139257,      512,     1024, 0x1a17e109
-0,     139775,     139775,      512,     1024, 0xc672eaea
-0,     140287,     140287,      512,     1024, 0x12a7dc5e
-0,     140799,     140799,      512,     1024, 0x4497f342
-0,     141308,     141308,      512,     1024, 0xdfb5db4b
-0,     141815,     141815,      512,     1024, 0xde48ef6c
-0,     142333,     142333,      512,     1024, 0x1d98e316
-0,     142845,     142845,      512,     1024, 0xbd2ad72f
-0,     143357,     143357,      512,     1024, 0xf1aad776
-0,     143866,     143866,      512,     1024, 0x4db3e3c0
-0,     144383,     144383,      512,     1024, 0x832de0a0
-0,     144895,     144895,      512,     1024, 0xc5f0ef25
-0,     145407,     145407,      512,     1024, 0x419bda6e
-0,     145916,     145916,      512,     1024, 0x5de7f77e
-0,     146424,     146424,      512,     1024, 0x0063ec9a
-0,     146941,     146941,      512,     1024, 0x10c3d470
-0,     147453,     147453,      512,     1024, 0xba66d226
-0,     147965,     147965,      512,     1024, 0xea47ded3
-0,     148474,     148474,      512,     1024, 0x6202d67b
-0,     148992,     148992,      512,     1024, 0x3f80e7cf
-0,     149504,     149504,      512,     1024, 0x4e64eaae
-0,     150016,     150016,      512,     1024, 0x2108e83d
-0,     150525,     150525,      512,     1024, 0x38c3dec1
-0,     151032,     151032,      512,     1024, 0x46d3f77a
-0,     151550,     151550,      512,     1024, 0x4838e787
-0,     152062,     152062,      512,     1024, 0xc71df16d
-0,     152574,     152574,      512,     1024, 0xdbe4ebbd
-0,     153083,     153083,      512,     1024, 0xa156d07b
+0,     133110,     133110,      512,     1024, 0xaf7acef7
+0,     133622,     133622,      512,     1024, 0x3f9bf258
+0,     134134,     134134,      512,     1024, 0xcf54e9d6
+0,     134646,     134646,      512,     1024, 0x680cd0aa
+0,     135158,     135158,      512,     1024, 0x3c1bdc1f
+0,     135670,     135670,      512,     1024, 0x8c8ffe22
+0,     136182,     136182,      512,     1024, 0xf415d362
+0,     136694,     136694,      512,     1024, 0x8c8cdaa9
+0,     137206,     137206,      512,     1024, 0x9531e9f1
+0,     137718,     137718,      512,     1024, 0x223ce536
+0,     138230,     138230,      512,     1024, 0xdfbce5f9
+0,     138742,     138742,      512,     1024, 0x20b6ed7d
+0,     139254,     139254,      512,     1024, 0x1a17e109
+0,     139766,     139766,      512,     1024, 0xc672eaea
+0,     140278,     140278,      512,     1024, 0x12a7dc5e
+0,     140790,     140790,      512,     1024, 0x4497f342
+0,     141302,     141302,      512,     1024, 0xdfb5db4b
+0,     141814,     141814,      512,     1024, 0xde48ef6c
+0,     142326,     142326,      512,     1024, 0x1d98e316
+0,     142838,     142838,      512,     1024, 0xbd2ad72f
+0,     143350,     143350,      512,     1024, 0xf1aad776
+0,     143862,     143862,      512,     1024, 0x4db3e3c0
+0,     144374,     144374,      512,     1024, 0x832de0a0
+0,     144886,     144886,      512,     1024, 0xc5f0ef25
+0,     145398,     145398,      512,     1024, 0x419bda6e
+0,     145910,     145910,      512,     1024, 0x5de7f77e
+0,     146422,     146422,      512,     1024, 0x0063ec9a
+0,     146934,     146934,      512,     1024, 0x10c3d470
+0,     147446,     147446,      512,     1024, 0xba66d226
+0,     147958,     147958,      512,     1024, 0xea47ded3
+0,     148470,     148470,      512,     1024, 0x6202d67b
+0,     148982,     148982,      512,     1024, 0x3f80e7cf
+0,     149494,     149494,      512,     1024, 0x4e64eaae
+0,     150006,     150006,      512,     1024, 0x2108e83d
+0,     150518,     150518,      512,     1024, 0x38c3dec1
+0,     151030,     151030,      512,     1024, 0x46d3f77a
+0,     151542,     151542,      512,     1024, 0x4838e787
+0,     152054,     152054,      512,     1024, 0xc71df16d
+0,     152566,     152566,      512,     1024, 0xdbe4ebbd
+0,     153078,     153078,      512,     1024, 0xa156d07b
 0,     153590,     153590,      512,     1024, 0x34eddc80
-0,     154107,     154107,      512,     1024, 0xe840e87c
-0,     154619,     154619,      512,     1024, 0x6accf8f5
-0,     155131,     155131,      512,     1024, 0xa1dbebb9
-0,     155640,     155640,      512,     1024, 0x6d07d98c
-0,     156158,     156158,      512,     1024, 0x94c7e805
-0,     156670,     156670,      512,     1024, 0x5199e586
-0,     157182,     157182,      512,     1024, 0xe797e1aa
-0,     157691,     157691,      512,     1024, 0xff19eda7
+0,     154102,     154102,      512,     1024, 0xe840e87c
+0,     154614,     154614,      512,     1024, 0x6accf8f5
+0,     155126,     155126,      512,     1024, 0xa1dbebb9
+0,     155638,     155638,      512,     1024, 0x6d07d98c
+0,     156150,     156150,      512,     1024, 0x94c7e805
+0,     156662,     156662,      512,     1024, 0x5199e586
+0,     157174,     157174,      512,     1024, 0xe797e1aa
+0,     157686,     157686,      512,     1024, 0xff19eda7
 0,     158198,     158198,      512,     1024, 0x9cb9d040
-0,     158716,     158716,      512,     1024, 0xaeedd325
-0,     159228,     159228,      512,     1024, 0xf5ade306
-0,     159740,     159740,      512,     1024, 0x54a5e129
-0,     160249,     160249,      512,     1024, 0x6665ddeb
-0,     160767,     160767,      512,     1024, 0x9d18e033
-0,     161279,     161279,      512,     1024, 0x7f23df74
-0,     161791,     161791,      512,     1024, 0x7c34f158
-0,     162300,     162300,      512,     1024, 0x47f6dae2
-0,     162807,     162807,      512,     1024, 0x5ffdd903
-0,     163324,     163324,      512,     1024, 0x8233d108
-0,     163836,     163836,      512,     1024, 0x45c6e20d
-0,     164348,     164348,      512,     1024, 0xae11fa6e
-0,     164857,     164857,      512,     1024, 0xa30defd2
-0,     165375,     165375,      512,     1024, 0xfc1ecccf
-0,     165887,     165887,      512,     1024, 0x920edc94
-0,     166399,     166399,      512,     1024, 0xd7f3dc58
-0,     166908,     166908,      512,     1024, 0x4972d37d
-0,     167415,     167415,      512,     1024, 0xfefef358
-0,     167933,     167933,      512,     1024, 0x3648e473
-0,     168445,     168445,      512,     1024, 0x58dee6c3
-0,     168957,     168957,      512,     1024, 0x9cc6df27
-0,     169466,     169466,      512,     1024, 0x6adfe99c
-0,     169983,     169983,      512,     1024, 0x6a56e11f
-0,     170495,     170495,      512,     1024, 0x4860edf1
-0,     171007,     171007,      512,     1024, 0x9132f10a
-0,     171516,     171516,      512,     1024, 0x3e09d209
-0,     172024,     172024,      512,     1024, 0x4b6bf4d8
-0,     172541,     172541,      512,     1024, 0x0cd5e838
-0,     173053,     173053,      512,     1024, 0x080be078
-0,     173565,     173565,      512,     1024, 0xfdb0e31c
-0,     174074,     174074,      512,     1024, 0xced5e7bd
-0,     174592,     174592,      512,     1024, 0x65b3e435
-0,     175104,     175104,      512,     1024, 0x5b5bfe2e
-0,     175616,     175616,      512,     1024, 0xa8bde3cb
-0,     176125,     176125,      512,     1024, 0xfd0fdefa
-0,     176632,     176632,      512,     1024, 0xbec4ef95
-0,     177150,     177150,      512,     1024, 0x683ad8dd
-0,     177662,     177662,      512,     1024, 0x8eefeb77
-0,     178174,     178174,      512,     1024, 0x84fc5878
-0,     178683,     178683,      512,     1024, 0x9a0ded60
+0,     158710,     158710,      512,     1024, 0xaeedd325
+0,     159222,     159222,      512,     1024, 0xf5ade306
+0,     159734,     159734,      512,     1024, 0x54a5e129
+0,     160246,     160246,      512,     1024, 0x6665ddeb
+0,     160758,     160758,      512,     1024, 0x9d18e033
+0,     161270,     161270,      512,     1024, 0x7f23df74
+0,     161782,     161782,      512,     1024, 0x7c34f158
+0,     162294,     162294,      512,     1024, 0x47f6dae2
+0,     162806,     162806,      512,     1024, 0x5ffdd903
+0,     163318,     163318,      512,     1024, 0x8233d108
+0,     163830,     163830,      512,     1024, 0x45c6e20d
+0,     164342,     164342,      512,     1024, 0xae11fa6e
+0,     164854,     164854,      512,     1024, 0xa30defd2
+0,     165366,     165366,      512,     1024, 0xfc1ecccf
+0,     165878,     165878,      512,     1024, 0x920edc94
+0,     166390,     166390,      512,     1024, 0xd7f3dc58
+0,     166902,     166902,      512,     1024, 0x4972d37d
+0,     167414,     167414,      512,     1024, 0xfefef358
+0,     167926,     167926,      512,     1024, 0x3648e473
+0,     168438,     168438,      512,     1024, 0x58dee6c3
+0,     168950,     168950,      512,     1024, 0x9cc6df27
+0,     169462,     169462,      512,     1024, 0x6adfe99c
+0,     169974,     169974,      512,     1024, 0x6a56e11f
+0,     170486,     170486,      512,     1024, 0x4860edf1
+0,     170998,     170998,      512,     1024, 0x9132f10a
+0,     171510,     171510,      512,     1024, 0x3e09d209
+0,     172022,     172022,      512,     1024, 0x4b6bf4d8
+0,     172534,     172534,      512,     1024, 0x0cd5e838
+0,     173046,     173046,      512,     1024, 0x080be078
+0,     173558,     173558,      512,     1024, 0xfdb0e31c
+0,     174070,     174070,      512,     1024, 0xced5e7bd
+0,     174582,     174582,      512,     1024, 0x65b3e435
+0,     175094,     175094,      512,     1024, 0x5b5bfe2e
+0,     175606,     175606,      512,     1024, 0xa8bde3cb
+0,     176118,     176118,      512,     1024, 0xfd0fdefa
+0,     176630,     176630,      512,     1024, 0xbec4ef95
+0,     177142,     177142,      512,     1024, 0x683ad8dd
+0,     177654,     177654,      512,     1024, 0x8eefeb77
+0,     178166,     178166,      512,     1024, 0x84fc5878
+0,     178678,     178678,      512,     1024, 0x9a0ded60
diff --git a/tests/ref/fate/pcm_dvd-16-5.1-96000 b/tests/ref/fate/pcm_dvd-16-5.1-96000
index 64447a9aa5..68dce2d3a6 100644
--- a/tests/ref/fate/pcm_dvd-16-5.1-96000
+++ b/tests/ref/fate/pcm_dvd-16-5.1-96000
@@ -13,7 +13,7 @@  d8e182dfa46524c28d1f78a4cc1f2719 *tests/data/fate/pcm_dvd-16-5.1-96000.vob
 0,        835,        835,      167,     2004, 0x00000000
 0,       1002,       1002,      167,     2004, 0x00000000
 0,       1169,       1169,      167,     2004, 0x00000000
-0,       1337,       1337,      167,     2004, 0x00000000
+0,       1336,       1336,      167,     2004, 0x00000000
 0,       1503,       1503,      167,     2004, 0x00000000
 0,       1670,       1670,      167,     2004, 0x00000000
 0,       1837,       1837,      167,     2004, 0x00000000
@@ -29,7 +29,7 @@  d8e182dfa46524c28d1f78a4cc1f2719 *tests/data/fate/pcm_dvd-16-5.1-96000.vob
 0,       3507,       3507,      167,     2004, 0x00000000
 0,       3674,       3674,      167,     2004, 0x00000000
 0,       3841,       3841,      167,     2004, 0x00000000
-0,       4009,       4009,      167,     2004, 0x00000000
+0,       4008,       4008,      167,     2004, 0x00000000
 0,       4175,       4175,      167,     2004, 0x00000000
 0,       4342,       4342,      167,     2004, 0x00000000
 0,       4509,       4509,      167,     2004, 0x00000000
@@ -45,7 +45,7 @@  d8e182dfa46524c28d1f78a4cc1f2719 *tests/data/fate/pcm_dvd-16-5.1-96000.vob
 0,       6179,       6179,      167,     2004, 0x00000000
 0,       6346,       6346,      167,     2004, 0x00000000
 0,       6513,       6513,      167,     2004, 0x00000000
-0,       6681,       6681,      166,     1992, 0x00000000
-0,       6847,       6847,      167,     2004, 0x00000000
+0,       6680,       6680,      166,     1992, 0x00000000
+0,       6846,       6846,      167,     2004, 0x00000000
 0,       7014,       7014,      167,     2004, 0x00000000
 0,       7181,       7181,      101,     1212, 0x00000000
diff --git a/tests/ref/lavf/smjpeg b/tests/ref/lavf/smjpeg
index 94172a6b1e..537c0847cb 100644
--- a/tests/ref/lavf/smjpeg
+++ b/tests/ref/lavf/smjpeg
@@ -1,3 +1,3 @@ 
 3fe90213ac4f5275eb85ad0a4e4bdb44 *tests/data/lavf/lavf.smjpeg
 728642 tests/data/lavf/lavf.smjpeg
-tests/data/lavf/lavf.smjpeg CRC=0x75066147
+tests/data/lavf/lavf.smjpeg CRC=0x54bf6147