diff mbox series

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

Message ID 20230429073231.24932-1-anton@khirnov.net
State Accepted
Commit d85c6aba0cf27db2a6c4dfa3452cfb9c248d1b4a
Headers show
Series [FFmpeg-devel] fftools/ffmpeg: rework audio-decode timestamp handling | expand

Checks

Context Check Description
andriy/configure_x86 warning Failed to apply patch

Commit Message

Anton Khirnov April 29, 2023, 7:32 a.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.
---
The branch can also be downloaded as 'ffmpeg_audio_ts' in my tree.
---
 fftools/ffmpeg.c                    |  98 ++++-
 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, 423 insertions(+), 357 deletions(-)
diff mbox series

Patch

diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index 8829a163e0..8dcc70e879 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -881,6 +881,85 @@  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);
+
+        // LCM of 192000, 44100, allows to represent all common samplerates
+        tb_new = (AVRational){ 1, 28224000 };
+    } else
+        tb_new = (AVRational){ 1, prev / gcd * sr };
+
+    // 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;
+
+    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 +989,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 +1139,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