diff mbox

[FFmpeg-devel,4/4] lavf/mov: Add support for edit list parsing.

Message ID CAGD_KHckrQxV4RO7YU=gVeiB-+TEfEKnH8rVO=Ky3ULapc1HWA@mail.gmail.com
State Superseded
Headers show

Commit Message

Sasi Inguva Aug. 11, 2016, 2:35 a.m. UTC
Done. Thanks

On Wed, Aug 10, 2016 at 4:54 PM, Carl Eugen Hoyos <ceffmpeg@gmail.com>
wrote:

> Hi!
>
> 2016-08-10 19:14 GMT+02:00 Sasi Inguva <isasi-at-google.com@ffmpeg.org>:
> > Oops. I forgot to git add the new test ref files. Please find attached,
> the
> > modified patch. Will also send it through git send-email.
>
> Please also fix the "%lld" occurrences: There is %"PRId64"
>
> Carl Eugen
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>

Comments

Clément Bœsch Aug. 14, 2016, 1:24 p.m. UTC | #1
On Wed, Aug 10, 2016 at 07:35:00PM -0700, Sasi Inguva wrote:
[...]
> +/**
> + * Get ith edit list entry (media time, duration).
> + */
> +static int get_edit_list_entry(MOVStreamContext *msc,

msc should be marked as const

> +                               unsigned int edit_list_index,
> +                               int64_t *edit_list_media_time,
> +                               int64_t *edit_list_duration,
> +                               int64_t global_timescale)
> +{
> +    if (edit_list_index == msc->elst_count) {
> +        return 0;
> +    }
> +    *edit_list_media_time = msc->elst_data[edit_list_index].time;
> +    *edit_list_duration = msc->elst_data[edit_list_index].duration;

> +    /* duration is in global timescale units;convert to msc timescale */
> +    *edit_list_duration *= msc->time_scale;
> +    *edit_list_duration /= global_timescale;

it looks like this may overflow; you should use one of the av_rescale*
function

> +    return 1;
> +}
> +
> +/**
> + * Find the closest previous keyframe to the timestamp, in e_old index
> + * entries.
> + * Returns the index of the entry in st->index_entries if successful,
> + * else returns -1.
> + */
> +static int64_t find_prev_closest_keyframe_index(AVStream *st,
> +                                                AVIndexEntry *e_old,
> +                                                int nb_old,
> +                                                int64_t timestamp,
> +                                                int flag)
> +{
> +    AVIndexEntry *e_keep = st->index_entries;
> +    int nb_keep = st->nb_index_entries;
> +    int64_t found = -1;
> +
> +    st->index_entries = e_old;
> +    st->nb_index_entries = nb_old;
> +    found = av_index_search_timestamp(st, timestamp, flag | AVSEEK_FLAG_BACKWARD);
> +

> +    /* restore AVStream  state*/

nit: misplaced space

> +    st->index_entries = e_keep;
> +    st->nb_index_entries = nb_keep;
> +    return found;
> +}
> +
> +/**
> + * Add index entry with the given values, to the end of st->index_entries.
> + * Returns the new size st->index_entries if successful, else returns -1.
> + */
> +static int64_t add_index_entry(AVStream *st, int64_t pos, int64_t timestamp,
> +                               int size, int distance, int flags)
> +{
> +    AVIndexEntry *entries, *ie;
> +    int64_t index = -1;
> +    const size_t min_size_needed = (st->nb_index_entries + 1) * sizeof(AVIndexEntry);
> +    const size_t requested_size =
> +        min_size_needed > st->index_entries_allocated_size ?
> +        FFMAX(min_size_needed, 2 * st->index_entries_allocated_size) :
> +        min_size_needed;
> +
> +    if((unsigned)st->nb_index_entries + 1 >= UINT_MAX / sizeof(AVIndexEntry))
> +        return -1;
> +
> +    entries = av_fast_realloc(st->index_entries,
> +                              &st->index_entries_allocated_size,
> +                              requested_size);
> +    if(!entries)
> +        return -1;
> +
> +    st->index_entries= entries;
> +
> +    index= st->nb_index_entries++;
> +    ie= &entries[index];

> +    assert(!index || ie[-1].timestamp <= timestamp);

we use av_assert*

> +
> +    ie->pos = pos;
> +    ie->timestamp = timestamp;
> +    ie->min_distance= distance;
> +    ie->size= size;
> +    ie->flags = flags;
> +    return index;
> +}

This function somehow looks like a copy of an old version of
ff_add_index_entry() (I'm hinted by the coding style); it would be nice to
keep differences as small as possible, and maybe hint about similarity and
the reason why it differs

[...]
> diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak
> new file mode 100644
> index 0000000..5b3a187
> --- /dev/null
> +++ b/tests/fate/mov.mak
> @@ -0,0 +1,28 @@

> +FATE_MOV = fate-mov-3elist \
> +	   fate-mov-3elist-1ctts \
> +	   fate-mov-1elist-1ctts \
> +	   fate-mov-1elist-noctts \
> +	   fate-mov-elist-starts-ctts-2ndsample \
> +	   fate-mov-1elist-ends-last-bframe \
> +	   fate-mov-2elist-elist1-ends-bframe
> +

You have tabs here that should be replaced with spaces

> +FATE_SAMPLES_AVCONV += $(FATE_MOV)
> +
> +fate-mov: $(FATE_MOV)
> +
> +# Make sure we handle edit lists correctly in normal cases.
> +fate-mov-1elist-noctts: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-1elist-noctts.mov
> +fate-mov-1elist-1ctts: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-1elist-1ctts.mov
> +fate-mov-3elist: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-3elist.mov
> +fate-mov-3elist-1ctts: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-3elist-1ctts.mov
> +
> +# Makes sure that the CTTS is also modified when we fix avindex in mov.c while parsing edit lists.
> +fate-mov-elist-starts-ctts-2ndsample: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-elist-starts-ctts-2ndsample.mov
> +
> +# Makes sure that we handle edit lists ending on a B-frame correctly.
> +# The last frame in decoding order which is B-frame should be output, but the last but-one P-frame shouldn't be
> +# output.
> +fate-mov-1elist-ends-last-bframe: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-1elist-ends-last-bframe.mov
> +
> +# Makes sure that we handle timestamps of packets in case of multiple edit lists with one of them ending on a B-frame correctly.
> +fate-mov-2elist-elist1-ends-bframe: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-2elist-elist1-ends-bframe.mov

is there any behaviour changes when doing stream copy btw?

> \ No newline at end of file

i think git is trying to tell you something here

[...]

i still have to test a few more samples (which i do not have access right
now). i'll report about those soon, but so far it seems to be working for
the samples that were causing me issues in the past.
Sasi Inguva Aug. 16, 2016, 2:04 a.m. UTC | #2
Changes done. Also commented in the code about the differences between the add_index_entry function and teh ff_add_index_entry function.

About stream copy, yes there will be a big behavior difference when doing "-c copy" for files with edit lists.
Currently, ignoring edit lists we will copy all packets from input to output. So for videos with edit lists the current way of stream copy is already semantically wrong. In summary these will be the changes with this patch
i) For videos with no edit lists - no change.
ii) For videos with one edit list in their streams
          - Only portion of the video from the closest keyframe before the edit list begins, to the closest keyframe after the edit list ends will be copied.
          - All audio from the start of the audio stream to the end of the edit will be copied.

iii) For videos with multiple edit lists in their streams
          - For video, the timestamps can be non-monotonocially increasing. Keyframe packets might be repeated. etc.
          - For audio too, timestamps can be non-monotonically increasing. For each edit list we will output packets from the start of the audio stream, so audio will be repeated.

Though points (ii) and (iii) might look dangerous, we should keep in mind that it is very hard, and maybe impossible to implement proper stream copy of only those portions of streams which are inside edit lists. We need a way to mark some frames as decode-and-discard, and maybe writing edit lists in case of MOV container is a way but if we are doing  -c copy to some other container, it won't be possible mostly. If (ii) and (iii) sound unacceptable I can gate the mov_fix_index function behind a no-stream-copy condition, if there is a way to do so.
Clément Bœsch Aug. 17, 2016, 1:24 p.m. UTC | #3
On Mon, Aug 15, 2016 at 07:04:56PM -0700, Sasi Inguva wrote:
> Changes done. Also commented in the code about the differences between the add_index_entry function and teh ff_add_index_entry function.
> 
> About stream copy, yes there will be a big behavior difference when doing "-c copy" for files with edit lists.
> Currently, ignoring edit lists we will copy all packets from input to output. So for videos with edit lists the current way of stream copy is already semantically wrong. In summary these will be the changes with this patch
> i) For videos with no edit lists - no change.
> ii) For videos with one edit list in their streams
>           - Only portion of the video from the closest keyframe before the edit list begins, to the closest keyframe after the edit list ends will be copied.
>           - All audio from the start of the audio stream to the end of the edit will be copied.
> 
> iii) For videos with multiple edit lists in their streams
>           - For video, the timestamps can be non-monotonocially increasing. Keyframe packets might be repeated. etc.
>           - For audio too, timestamps can be non-monotonically increasing. For each edit list we will output packets from the start of the audio stream, so audio will be repeated.
> 
> Though points (ii) and (iii) might look dangerous, we should keep in mind that it is very hard, and maybe impossible to implement proper stream copy of only those portions of streams which are inside edit lists. We need a way to mark some frames as decode-and-discard, and maybe writing edit lists in case of MOV container is a way but if we are doing  -c copy to some other container, it won't be possible mostly. If (ii) and (iii) sound unacceptable I can gate the mov_fix_index function behind a no-stream-copy condition, if there is a way to do so.
>  

OK.

So. I've made some test with a bunch of personal samples from different
different sources and it fixes the playback for all of them. I don't have
much more comment as it seems to work well. I'm not the maintainer of the
MOV demuxer though, so don't take this as a OK.

Someone should probably do a deeper review (hint: look at mov_fix_index()
in particular)

Thanks
Sasi Inguva Aug. 17, 2016, 3:59 p.m. UTC | #4
Thanks

On Aug 17, 2016 6:25 AM, "Clément Bœsch" <u@pkh.me> wrote:

> On Mon, Aug 15, 2016 at 07:04:56PM -0700, Sasi Inguva wrote:
> > Changes done. Also commented in the code about the differences between
> the add_index_entry function and teh ff_add_index_entry function.
> >
> > About stream copy, yes there will be a big behavior difference when
> doing "-c copy" for files with edit lists.
> > Currently, ignoring edit lists we will copy all packets from input to
> output. So for videos with edit lists the current way of stream copy is
> already semantically wrong. In summary these will be the changes with this
> patch
> > i) For videos with no edit lists - no change.
> > ii) For videos with one edit list in their streams
> >           - Only portion of the video from the closest keyframe before
> the edit list begins, to the closest keyframe after the edit list ends will
> be copied.
> >           - All audio from the start of the audio stream to the end of
> the edit will be copied.
> >
> > iii) For videos with multiple edit lists in their streams
> >           - For video, the timestamps can be non-monotonocially
> increasing. Keyframe packets might be repeated. etc.
> >           - For audio too, timestamps can be non-monotonically
> increasing. For each edit list we will output packets from the start of the
> audio stream, so audio will be repeated.
> >
> > Though points (ii) and (iii) might look dangerous, we should keep in
> mind that it is very hard, and maybe impossible to implement proper stream
> copy of only those portions of streams which are inside edit lists. We need
> a way to mark some frames as decode-and-discard, and maybe writing edit
> lists in case of MOV container is a way but if we are doing  -c copy to
> some other container, it won't be possible mostly. If (ii) and (iii) sound
> unacceptable I can gate the mov_fix_index function behind a no-stream-copy
> condition, if there is a way to do so.
> >
>
> OK.
>
> So. I've made some test with a bunch of personal samples from different
> different sources and it fixes the playback for all of them. I don't have
> much more comment as it seems to work well. I'm not the maintainer of the
> MOV demuxer though, so don't take this as a OK.
>
> Someone should probably do a deeper review (hint: look at mov_fix_index()
> in particular)
>
> Thanks
>
> --
> Clément B.
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
>
Sasi Inguva Aug. 19, 2016, 4:49 p.m. UTC | #5
I don't know who the owner of MOV demuxer is. If somebody could do a deeper
review of this patch and approve it that would be great.

Thanks,
Sasi

On Wed, Aug 17, 2016 at 8:59 AM, Sasi Inguva <isasi@google.com> wrote:

> Thanks
>
> On Aug 17, 2016 6:25 AM, "Clément Bœsch" <u@pkh.me> wrote:
>
>> On Mon, Aug 15, 2016 at 07:04:56PM -0700, Sasi Inguva wrote:
>> > Changes done. Also commented in the code about the differences between
>> the add_index_entry function and teh ff_add_index_entry function.
>> >
>> > About stream copy, yes there will be a big behavior difference when
>> doing "-c copy" for files with edit lists.
>> > Currently, ignoring edit lists we will copy all packets from input to
>> output. So for videos with edit lists the current way of stream copy is
>> already semantically wrong. In summary these will be the changes with this
>> patch
>> > i) For videos with no edit lists - no change.
>> > ii) For videos with one edit list in their streams
>> >           - Only portion of the video from the closest keyframe before
>> the edit list begins, to the closest keyframe after the edit list ends will
>> be copied.
>> >           - All audio from the start of the audio stream to the end of
>> the edit will be copied.
>> >
>> > iii) For videos with multiple edit lists in their streams
>> >           - For video, the timestamps can be non-monotonocially
>> increasing. Keyframe packets might be repeated. etc.
>> >           - For audio too, timestamps can be non-monotonically
>> increasing. For each edit list we will output packets from the start of the
>> audio stream, so audio will be repeated.
>> >
>> > Though points (ii) and (iii) might look dangerous, we should keep in
>> mind that it is very hard, and maybe impossible to implement proper stream
>> copy of only those portions of streams which are inside edit lists. We need
>> a way to mark some frames as decode-and-discard, and maybe writing edit
>> lists in case of MOV container is a way but if we are doing  -c copy to
>> some other container, it won't be possible mostly. If (ii) and (iii) sound
>> unacceptable I can gate the mov_fix_index function behind a no-stream-copy
>> condition, if there is a way to do so.
>> >
>>
>> OK.
>>
>> So. I've made some test with a bunch of personal samples from different
>> different sources and it fixes the playback for all of them. I don't have
>> much more comment as it seems to work well. I'm not the maintainer of the
>> MOV demuxer though, so don't take this as a OK.
>>
>> Someone should probably do a deeper review (hint: look at mov_fix_index()
>> in particular)
>>
>> Thanks
>>
>> --
>> Clément B.
>>
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>>
Sasi Inguva Aug. 24, 2016, 2:44 p.m. UTC | #6
ping!

On Fri, Aug 19, 2016 at 9:49 AM, Sasi Inguva <isasi@google.com> wrote:

> I don't know who the owner of MOV demuxer is. If somebody could do a
> deeper review of this patch and approve it that would be great.
>
> Thanks,
> Sasi
>
> On Wed, Aug 17, 2016 at 8:59 AM, Sasi Inguva <isasi@google.com> wrote:
>
>> Thanks
>>
>> On Aug 17, 2016 6:25 AM, "Clément Bœsch" <u@pkh.me> wrote:
>>
>>> On Mon, Aug 15, 2016 at 07:04:56PM -0700, Sasi Inguva wrote:
>>> > Changes done. Also commented in the code about the differences between
>>> the add_index_entry function and teh ff_add_index_entry function.
>>> >
>>> > About stream copy, yes there will be a big behavior difference when
>>> doing "-c copy" for files with edit lists.
>>> > Currently, ignoring edit lists we will copy all packets from input to
>>> output. So for videos with edit lists the current way of stream copy is
>>> already semantically wrong. In summary these will be the changes with this
>>> patch
>>> > i) For videos with no edit lists - no change.
>>> > ii) For videos with one edit list in their streams
>>> >           - Only portion of the video from the closest keyframe before
>>> the edit list begins, to the closest keyframe after the edit list ends will
>>> be copied.
>>> >           - All audio from the start of the audio stream to the end of
>>> the edit will be copied.
>>> >
>>> > iii) For videos with multiple edit lists in their streams
>>> >           - For video, the timestamps can be non-monotonocially
>>> increasing. Keyframe packets might be repeated. etc.
>>> >           - For audio too, timestamps can be non-monotonically
>>> increasing. For each edit list we will output packets from the start of the
>>> audio stream, so audio will be repeated.
>>> >
>>> > Though points (ii) and (iii) might look dangerous, we should keep in
>>> mind that it is very hard, and maybe impossible to implement proper stream
>>> copy of only those portions of streams which are inside edit lists. We need
>>> a way to mark some frames as decode-and-discard, and maybe writing edit
>>> lists in case of MOV container is a way but if we are doing  -c copy to
>>> some other container, it won't be possible mostly. If (ii) and (iii) sound
>>> unacceptable I can gate the mov_fix_index function behind a no-stream-copy
>>> condition, if there is a way to do so.
>>> >
>>>
>>> OK.
>>>
>>> So. I've made some test with a bunch of personal samples from different
>>> different sources and it fixes the playback for all of them. I don't have
>>> much more comment as it seems to work well. I'm not the maintainer of the
>>> MOV demuxer though, so don't take this as a OK.
>>>
>>> Someone should probably do a deeper review (hint: look at mov_fix_index()
>>> in particular)
>>>
>>> Thanks
>>>
>>> --
>>> Clément B.
>>>
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel@ffmpeg.org
>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>
>>>
>
Carl Eugen Hoyos Aug. 24, 2016, 6:01 p.m. UTC | #7
2016-08-24 16:44 GMT+02:00 Sasi Inguva <isasi-at-google.com@ffmpeg.org>:
> ping!

I will apply this if nobody objects.

Carl Eugen
diff mbox

Patch

From a9c7f72e146e28ff9cf5659ae4c623f1ced20394 Mon Sep 17 00:00:00 2001
From: Sasi Inguva <isasi@google.com>
Date: Tue, 9 Aug 2016 18:24:06 -0700
Subject: [PATCH 4/4] lavf/mov: Add support for edit list parsing.

Signed-off-by: Sasi Inguva <isasi@google.com>
---
 libavformat/mov.c                              |  323 +++++++-
 tests/Makefile                                 |    1 +
 tests/fate/mov.mak                             |   28 +
 tests/ref/fate/filter-fps-cfr                  |    1 -
 tests/ref/fate/gaplessenc-itunes-to-ipod-aac   |   12 +-
 tests/ref/fate/gaplessenc-pcm-to-mov-aac       |   12 +-
 tests/ref/fate/gsm-toast                       | 1000 ++++++++++++------------
 tests/ref/fate/h264-invalid-ref-mod            |   20 +-
 tests/ref/fate/mov-1elist-1ctts                |   57 ++
 tests/ref/fate/mov-1elist-ends-last-bframe     |   56 ++
 tests/ref/fate/mov-1elist-noctts               |   57 ++
 tests/ref/fate/mov-2elist-elist1-ends-bframe   |   51 ++
 tests/ref/fate/mov-3elist                      |   57 ++
 tests/ref/fate/mov-3elist-1ctts                |   57 ++
 tests/ref/fate/mov-elist-starts-ctts-2ndsample |   57 ++
 tests/ref/fate/pcm_s16be-stereo                |    2 +-
 tests/ref/fate/quickdraw                       |   12 +-
 tests/ref/fate/tscc2-mov                       |   20 +-
 tests/ref/lavf-fate/mov_qtrle_mace6            |    2 +-
 19 files changed, 1276 insertions(+), 549 deletions(-)
 create mode 100644 tests/fate/mov.mak
 create mode 100644 tests/ref/fate/mov-1elist-1ctts
 create mode 100644 tests/ref/fate/mov-1elist-ends-last-bframe
 create mode 100644 tests/ref/fate/mov-1elist-noctts
 create mode 100644 tests/ref/fate/mov-2elist-elist1-ends-bframe
 create mode 100644 tests/ref/fate/mov-3elist
 create mode 100644 tests/ref/fate/mov-3elist-1ctts
 create mode 100644 tests/ref/fate/mov-elist-starts-ctts-2ndsample

diff --git a/libavformat/mov.c b/libavformat/mov.c
index f4c35d7..bf398e7 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -2769,6 +2769,312 @@  static int mov_read_sbgp(MOVContext *c, AVIOContext *pb, MOVAtom atom)
     return pb->eof_reached ? AVERROR_EOF : 0;
 }
 
+/**
+ * Get ith edit list entry (media time, duration).
+ */
+static int get_edit_list_entry(MOVStreamContext *msc,
+                               unsigned int edit_list_index,
+                               int64_t *edit_list_media_time,
+                               int64_t *edit_list_duration,
+                               int64_t global_timescale)
+{
+    if (edit_list_index == msc->elst_count) {
+        return 0;
+    }
+    *edit_list_media_time = msc->elst_data[edit_list_index].time;
+    *edit_list_duration = msc->elst_data[edit_list_index].duration;
+    /* duration is in global timescale units;convert to msc timescale */
+    *edit_list_duration *= msc->time_scale;
+    *edit_list_duration /= global_timescale;
+    return 1;
+}
+
+/**
+ * Find the closest previous keyframe to the timestamp, in e_old index
+ * entries.
+ * Returns the index of the entry in st->index_entries if successful,
+ * else returns -1.
+ */
+static int64_t find_prev_closest_keyframe_index(AVStream *st,
+                                                AVIndexEntry *e_old,
+                                                int nb_old,
+                                                int64_t timestamp,
+                                                int flag)
+{
+    AVIndexEntry *e_keep = st->index_entries;
+    int nb_keep = st->nb_index_entries;
+    int64_t found = -1;
+
+    st->index_entries = e_old;
+    st->nb_index_entries = nb_old;
+    found = av_index_search_timestamp(st, timestamp, flag | AVSEEK_FLAG_BACKWARD);
+
+    /* restore AVStream  state*/
+    st->index_entries = e_keep;
+    st->nb_index_entries = nb_keep;
+    return found;
+}
+
+/**
+ * Add index entry with the given values, to the end of st->index_entries.
+ * Returns the new size st->index_entries if successful, else returns -1.
+ */
+static int64_t add_index_entry(AVStream *st, int64_t pos, int64_t timestamp,
+                               int size, int distance, int flags)
+{
+    AVIndexEntry *entries, *ie;
+    int64_t index = -1;
+    const size_t min_size_needed = (st->nb_index_entries + 1) * sizeof(AVIndexEntry);
+    const size_t requested_size =
+        min_size_needed > st->index_entries_allocated_size ?
+        FFMAX(min_size_needed, 2 * st->index_entries_allocated_size) :
+        min_size_needed;
+
+    if((unsigned)st->nb_index_entries + 1 >= UINT_MAX / sizeof(AVIndexEntry))
+        return -1;
+
+    entries = av_fast_realloc(st->index_entries,
+                              &st->index_entries_allocated_size,
+                              requested_size);
+    if(!entries)
+        return -1;
+
+    st->index_entries= entries;
+
+    index= st->nb_index_entries++;
+    ie= &entries[index];
+    assert(!index || ie[-1].timestamp <= timestamp);
+
+    ie->pos = pos;
+    ie->timestamp = timestamp;
+    ie->min_distance= distance;
+    ie->size= size;
+    ie->flags = flags;
+    return index;
+}
+
+/**
+ * Append a new ctts entry to ctts_data.
+ * Returns the new ctts_count if successful, else returns -1.
+ */
+static int64_t add_ctts_entry(MOVStts** ctts_data, unsigned int* ctts_count, unsigned int* allocated_size,
+                              int count, int duration)
+{
+    MOVStts *ctts_buf_new;
+    const size_t min_size_needed = (*ctts_count + 1) * sizeof(MOVStts);
+    const size_t requested_size =
+        min_size_needed > *allocated_size ?
+        FFMAX(min_size_needed, 2 * (*allocated_size)) :
+        min_size_needed;
+
+    if((unsigned)(*ctts_count) + 1 >= UINT_MAX / sizeof(MOVStts))
+        return -1;
+
+    ctts_buf_new = av_fast_realloc(*ctts_data, allocated_size, requested_size);
+
+    if(!ctts_buf_new)
+        return -1;
+
+    *ctts_data = ctts_buf_new;
+
+    ctts_buf_new[*ctts_count].count = count;
+    ctts_buf_new[*ctts_count].duration = duration;
+
+    *ctts_count = (*ctts_count) + 1;
+    return *ctts_count;
+}
+
+/**
+ * Fix st->index_entries, so that it contains only the entries (and the entries
+ * which are needed to decode them) that fall in the edit list time ranges.
+ * Also fixes the timestamps of the index entries to match the timeline
+ * specified the edit lists.
+ */
+static void mov_fix_index(MOVContext *mov, AVStream *st)
+{
+    MOVStreamContext *msc = st->priv_data;
+    AVIndexEntry *e_old = st->index_entries;
+    int nb_old = st->nb_index_entries;
+    const AVIndexEntry *e_old_end = e_old + nb_old;
+    const AVIndexEntry *current = NULL;
+    MOVStts *ctts_data_old = msc->ctts_data;
+    int64_t ctts_index_old = 0;
+    int64_t ctts_sample_old = 0;
+    int64_t ctts_count_old = msc->ctts_count;
+    int64_t edit_list_media_time = 0;
+    int64_t edit_list_duration = 0;
+    int64_t frame_duration = 0;
+    int64_t edit_list_dts_counter = 0;
+    int64_t edit_list_dts_entry_end = 0;
+    int64_t edit_list_start_ctts_sample = 0;
+    int64_t curr_cts;
+    int64_t edit_list_index = 0;
+    int64_t index;
+    int64_t index_ctts_count;
+    int flags;
+    unsigned int ctts_allocated_size = 0;
+    int64_t start_dts = 0;
+    int64_t edit_list_media_time_dts = 0;
+    int64_t edit_list_start_encountered = 0;
+
+
+    if (!msc->elst_data || msc->elst_count <= 0) {
+        return;
+    }
+    // Clean AVStream from traces of old index
+    st->index_entries = NULL;
+    st->index_entries_allocated_size = 0;
+    st->nb_index_entries = 0;
+
+    // Clean ctts fields of MOVStreamContext
+    msc->ctts_data = NULL;
+    msc->ctts_count = 0;
+    msc->ctts_index = 0;
+    msc->ctts_sample = 0;
+
+    // If the dts_shift is positive (in case of negative ctts values in mov),
+    // then negate the DTS by dts_shift
+    if (msc->dts_shift > 0)
+        edit_list_dts_entry_end -= msc->dts_shift;
+
+    // Offset the DTS by ctts[0] to make the PTS of the first frame 0
+    if (ctts_data_old && ctts_count_old > 0) {
+        edit_list_dts_entry_end -= ctts_data_old[0].duration;
+        av_log(mov->fc, AV_LOG_DEBUG, "Offset DTS by ctts[%d].duration: %d\n", 0, ctts_data_old[0].duration);
+    }
+
+    start_dts = edit_list_dts_entry_end;
+
+    while (get_edit_list_entry(msc, edit_list_index, &edit_list_media_time,
+                               &edit_list_duration, mov->time_scale)) {
+        av_log(mov->fc, AV_LOG_DEBUG, "Processing st: %d, edit list %"PRId64" - media time: %"PRId64", duration: %"PRId64"\n",
+               st->index, edit_list_index, edit_list_media_time, edit_list_duration);
+        edit_list_index++;
+        edit_list_dts_counter = edit_list_dts_entry_end;
+        edit_list_dts_entry_end += edit_list_duration;
+        if (edit_list_media_time == -1) {
+            continue;
+        }
+        //find closest previous key frame
+        edit_list_media_time_dts = edit_list_media_time;
+        if (msc->dts_shift > 0) {
+            edit_list_media_time_dts -= msc->dts_shift;
+        }
+
+        // While reordering frame index according to edit list we must handle properly
+        // the scenario when edit list entry starts from none key frame.
+        // We find closest previous key frame and preserve it and consequent frames in index.
+        // All frames which are outside edit list entry time boundaries will be dropped after decoding.
+        if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
+            // Audio decoders like AAC need need a decoder delay samples previous to the current sample,
+            // to correctly decode this frame. Hence for audio right now, passing through all the samples
+            // to the decoder. We could be more intelligent in setting the index based on the decoder delay
+            // but for most cases which are simple one-edit list files, with edit-list start time as the
+            // encoder delay, it is not necessary.
+            index = 0;
+        } else {
+            index = find_prev_closest_keyframe_index(st, e_old, nb_old, edit_list_media_time_dts, 0);
+        }
+        if (index == -1) {
+            av_log(mov->fc, AV_LOG_ERROR, "Missing key frame while reordering index according to edit list\n");
+            continue;
+        }
+        current = e_old + index;
+
+        ctts_index_old = 0;
+        ctts_sample_old = 0;
+
+        // set ctts_index properly for the found key frame
+        for (index_ctts_count = 0; index_ctts_count < index; index_ctts_count++) {
+            if (ctts_data_old && ctts_index_old < ctts_count_old) {
+                ctts_sample_old++;
+                if (ctts_data_old[ctts_index_old].count == ctts_sample_old) {
+                    ctts_index_old++;
+                    ctts_sample_old = 0;
+                }
+            }
+        }
+
+        edit_list_start_ctts_sample = ctts_sample_old;
+
+        // Iterate over index and arrange it according to edit list
+        edit_list_start_encountered = 0;
+        for (; current < e_old_end; current++, index++) {
+            // check  if frame outside edit list mark it for discard
+            frame_duration = (current + 1 <  e_old_end) ?
+                             ((current + 1)->timestamp - current->timestamp) : edit_list_duration;
+
+            flags = current->flags;
+
+            // frames (pts) before or after edit list
+            curr_cts = current->timestamp + msc->dts_shift;
+
+            if (ctts_data_old && ctts_index_old < ctts_count_old) {
+                av_log(mov->fc, AV_LOG_DEBUG, "shifted frame pts, curr_cts: %"PRId64" @ %"PRId64", ctts: %d, ctts_count: %"PRId64"\n",
+                       curr_cts, ctts_index_old, ctts_data_old[ctts_index_old].duration, ctts_count_old);
+                curr_cts += ctts_data_old[ctts_index_old].duration;
+                ctts_sample_old++;
+                if (ctts_sample_old == ctts_data_old[ctts_index_old].count) {
+                    if (add_ctts_entry(&msc->ctts_data, &msc->ctts_count,
+                                       &ctts_allocated_size,
+                                       ctts_data_old[ctts_index_old].count - edit_list_start_ctts_sample,
+                                       ctts_data_old[ctts_index_old].duration) == -1) {
+                        av_log(mov->fc, AV_LOG_ERROR, "Cannot add CTTS entry %"PRId64" - {%"PRId64", %d}\n",
+                               ctts_index_old,
+                               ctts_data_old[ctts_index_old].count - edit_list_start_ctts_sample,
+                               ctts_data_old[ctts_index_old].duration);
+                        break;
+                    }
+                    ctts_index_old++;
+                    ctts_sample_old = 0;
+                    edit_list_start_ctts_sample = 0;
+                }
+            }
+            if (curr_cts < edit_list_media_time || curr_cts >= (edit_list_duration + edit_list_media_time)) {
+                flags |= AVINDEX_DISCARD_FRAME;
+                av_log(mov->fc, AV_LOG_DEBUG, "drop a frame at curr_cts: %"PRId64" @ %"PRId64"\n", curr_cts, index);
+            } else if (edit_list_start_encountered == 0) {
+                edit_list_start_encountered = 1;
+            }
+
+            if (add_index_entry(st, current->pos, edit_list_dts_counter, current->size,
+                                current->min_distance, flags) == -1) {
+                av_log(mov->fc, AV_LOG_ERROR, "Cannot add index entry\n");
+                break;
+            }
+
+            // Only start incrementing DTS in frame_duration amounts, when we encounter a frame in edit list.
+            if (edit_list_start_encountered > 0) {
+                edit_list_dts_counter = edit_list_dts_counter + frame_duration;
+            }
+
+            // Break when found first key frame after edit entry completion
+            if (((curr_cts + frame_duration) >= (edit_list_duration + edit_list_media_time)) &&
+                ((flags & AVINDEX_KEYFRAME) || ((st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO)))) {
+
+                if (ctts_data_old && ctts_sample_old != 0) {
+                    if (add_ctts_entry(&msc->ctts_data, &msc->ctts_count,
+                                       &ctts_allocated_size,
+                                       ctts_sample_old - edit_list_start_ctts_sample,
+                                       ctts_data_old[ctts_index_old].duration) == -1) {
+                        av_log(mov->fc, AV_LOG_ERROR, "Cannot add CTTS entry %"PRId64" - {%"PRId64", %d}\n",
+                               ctts_index_old, ctts_sample_old - edit_list_start_ctts_sample,
+                               ctts_data_old[ctts_index_old].duration);
+                        break;
+                    }
+                }
+                break;
+            }
+        }
+    }
+    // Update av stream length
+    st->duration = edit_list_dts_entry_end - start_dts;
+
+    // Free the old index and the old CTTS structures
+    av_free(e_old);
+    av_free(ctts_data_old);
+}
+
 static void mov_build_index(MOVContext *mov, AVStream *st)
 {
     MOVStreamContext *sc = st->priv_data;
@@ -2782,7 +3088,7 @@  static void mov_build_index(MOVContext *mov, AVStream *st)
     uint64_t stream_size = 0;
 
     if (sc->elst_count) {
-        int i, edit_start_index = 0, unsupported = 0;
+        int i, edit_start_index = 0;
         int64_t empty_duration = 0; // empty duration of the first edit list entry
         int64_t start_time = 0; // start time of the media
 
@@ -2795,19 +3101,14 @@  static void mov_build_index(MOVContext *mov, AVStream *st)
                 edit_start_index = 1;
             } else if (i == edit_start_index && e->time >= 0) {
                 start_time = e->time;
-            } else
-                unsupported = 1;
+            }
         }
-        if (unsupported)
-            av_log(mov->fc, AV_LOG_WARNING, "multiple edit list entries, "
-                   "a/v desync might occur, patch welcome\n");
 
         /* adjust first dts according to edit list */
         if ((empty_duration || start_time) && mov->time_scale > 0) {
             if (empty_duration)
                 empty_duration = av_rescale(empty_duration, sc->time_scale, mov->time_scale);
             sc->time_offset = start_time - empty_duration;
-            current_dts = -sc->time_offset;
             if (sc->ctts_count>0 && sc->stts_count>0 &&
                 sc->ctts_data[0].duration / FFMAX(sc->stts_data[0].duration, 1) > 16) {
                 /* more than 16 frames delay, dts are likely wrong
@@ -2817,7 +3118,7 @@  static void mov_build_index(MOVContext *mov, AVStream *st)
             }
         }
 
-        if (!unsupported && st->codecpar->codec_id == AV_CODEC_ID_AAC && start_time > 0)
+        if (st->codecpar->codec_id == AV_CODEC_ID_AAC && start_time > 0)
             sc->start_pad = start_time;
     }
 
@@ -3051,6 +3352,9 @@  static void mov_build_index(MOVContext *mov, AVStream *st)
             }
         }
     }
+
+    // Fix index according to edit lists.
+    mov_fix_index(mov, st);
 }
 
 static int test_same_origin(const char *src, const char *ref) {
@@ -5349,6 +5653,9 @@  static int mov_read_packet(AVFormatContext *s, AVPacket *pkt)
 
     pkt->stream_index = sc->ffindex;
     pkt->dts = sample->timestamp;
+    if (sample->flags & AVINDEX_DISCARD_FRAME) {
+        pkt->flags |= AV_PKT_FLAG_DISCARD;
+    }
     if (sc->ctts_data && sc->ctts_index < sc->ctts_count) {
         pkt->pts = pkt->dts + sc->dts_shift + sc->ctts_data[sc->ctts_index].duration;
         /* update ctts context */
diff --git a/tests/Makefile b/tests/Makefile
index 895944d..e191470 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -148,6 +148,7 @@  include $(SRC_PATH)/tests/fate/lossless-video.mak
 include $(SRC_PATH)/tests/fate/matroska.mak
 include $(SRC_PATH)/tests/fate/microsoft.mak
 include $(SRC_PATH)/tests/fate/monkeysaudio.mak
+include $(SRC_PATH)/tests/fate/mov.mak
 include $(SRC_PATH)/tests/fate/mp3.mak
 include $(SRC_PATH)/tests/fate/mpc.mak
 include $(SRC_PATH)/tests/fate/mpeg4.mak
diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak
new file mode 100644
index 0000000..5b3a187
--- /dev/null
+++ b/tests/fate/mov.mak
@@ -0,0 +1,28 @@ 
+FATE_MOV = fate-mov-3elist \
+	   fate-mov-3elist-1ctts \
+	   fate-mov-1elist-1ctts \
+	   fate-mov-1elist-noctts \
+	   fate-mov-elist-starts-ctts-2ndsample \
+	   fate-mov-1elist-ends-last-bframe \
+	   fate-mov-2elist-elist1-ends-bframe
+
+FATE_SAMPLES_AVCONV += $(FATE_MOV)
+
+fate-mov: $(FATE_MOV)
+
+# Make sure we handle edit lists correctly in normal cases.
+fate-mov-1elist-noctts: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-1elist-noctts.mov
+fate-mov-1elist-1ctts: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-1elist-1ctts.mov
+fate-mov-3elist: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-3elist.mov
+fate-mov-3elist-1ctts: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-3elist-1ctts.mov
+
+# Makes sure that the CTTS is also modified when we fix avindex in mov.c while parsing edit lists.
+fate-mov-elist-starts-ctts-2ndsample: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-elist-starts-ctts-2ndsample.mov
+
+# Makes sure that we handle edit lists ending on a B-frame correctly.
+# The last frame in decoding order which is B-frame should be output, but the last but-one P-frame shouldn't be
+# output.
+fate-mov-1elist-ends-last-bframe: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-1elist-ends-last-bframe.mov
+
+# Makes sure that we handle timestamps of packets in case of multiple edit lists with one of them ending on a B-frame correctly.
+fate-mov-2elist-elist1-ends-bframe: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/mov-2elist-elist1-ends-bframe.mov
\ No newline at end of file
diff --git a/tests/ref/fate/filter-fps-cfr b/tests/ref/fate/filter-fps-cfr
index fa71b59..242fb04 100644
--- a/tests/ref/fate/filter-fps-cfr
+++ b/tests/ref/fate/filter-fps-cfr
@@ -91,4 +91,3 @@ 
 0,         85,         85,        1,    30576, 0xd4150aad
 0,         86,         86,        1,    30576, 0xd4150aad
 0,         87,         87,        1,    30576, 0xd4150aad
-0,         88,         88,        1,    30576, 0xd4150aad
diff --git a/tests/ref/fate/gaplessenc-itunes-to-ipod-aac b/tests/ref/fate/gaplessenc-itunes-to-ipod-aac
index aacb058..145bd09 100644
--- a/tests/ref/fate/gaplessenc-itunes-to-ipod-aac
+++ b/tests/ref/fate/gaplessenc-itunes-to-ipod-aac
@@ -1,13 +1,13 @@ 
 [STREAM]
 index=0
-start_pts=0
-duration_ts=104384
+start_pts=1024
+duration_ts=103326
 [/STREAM]
 [FORMAT]
-start_time=0.000000
+start_time=0.023220
 duration=2.367000
 [/FORMAT]
-packet|pts=-1024|dts=-1024|duration=1024
+packet|pts=0|dts=0|duration=N/A
 packet|pts=0|dts=0|duration=1024
 packet|pts=1024|dts=1024|duration=1024
 packet|pts=2048|dts=2048|duration=1024
@@ -22,7 +22,7 @@  packet|pts=98304|dts=98304|duration=1024
 packet|pts=99328|dts=99328|duration=1024
 packet|pts=100352|dts=100352|duration=1024
 packet|pts=101376|dts=101376|duration=1024
-packet|pts=102400|dts=102400|duration=1984
+packet|pts=102400|dts=102400|duration=926
 stream|nb_read_packets=102
 frame|pkt_pts=0|pkt_dts=0|best_effort_timestamp=0|pkt_duration=1024|nb_samples=1024
 frame|pkt_pts=1024|pkt_dts=1024|best_effort_timestamp=1024|pkt_duration=1024|nb_samples=1024
@@ -39,5 +39,5 @@  frame|pkt_pts=98304|pkt_dts=98304|best_effort_timestamp=98304|pkt_duration=1024|
 frame|pkt_pts=99328|pkt_dts=99328|best_effort_timestamp=99328|pkt_duration=1024|nb_samples=1024
 frame|pkt_pts=100352|pkt_dts=100352|best_effort_timestamp=100352|pkt_duration=1024|nb_samples=1024
 frame|pkt_pts=101376|pkt_dts=101376|best_effort_timestamp=101376|pkt_duration=1024|nb_samples=1024
-frame|pkt_pts=102400|pkt_dts=102400|best_effort_timestamp=102400|pkt_duration=1984|nb_samples=1024
+frame|pkt_pts=102400|pkt_dts=102400|best_effort_timestamp=102400|pkt_duration=926|nb_samples=1024
 stream|nb_read_frames=101
diff --git a/tests/ref/fate/gaplessenc-pcm-to-mov-aac b/tests/ref/fate/gaplessenc-pcm-to-mov-aac
index 05dff6e..e99c786 100644
--- a/tests/ref/fate/gaplessenc-pcm-to-mov-aac
+++ b/tests/ref/fate/gaplessenc-pcm-to-mov-aac
@@ -1,13 +1,13 @@ 
 [STREAM]
 index=0
-start_pts=0
-duration_ts=530224
+start_pts=1024
+duration_ts=529200
 [/STREAM]
 [FORMAT]
-start_time=0.000000
+start_time=0.023220
 duration=12.024000
 [/FORMAT]
-packet|pts=-1024|dts=-1024|duration=1024
+packet|pts=0|dts=0|duration=N/A
 packet|pts=0|dts=0|duration=1024
 packet|pts=1024|dts=1024|duration=1024
 packet|pts=2048|dts=2048|duration=1024
@@ -22,7 +22,7 @@  packet|pts=524288|dts=524288|duration=1024
 packet|pts=525312|dts=525312|duration=1024
 packet|pts=526336|dts=526336|duration=1024
 packet|pts=527360|dts=527360|duration=1024
-packet|pts=528384|dts=528384|duration=1840
+packet|pts=528384|dts=528384|duration=816
 stream|nb_read_packets=518
 frame|pkt_pts=0|pkt_dts=0|best_effort_timestamp=0|pkt_duration=1024|nb_samples=1024
 frame|pkt_pts=1024|pkt_dts=1024|best_effort_timestamp=1024|pkt_duration=1024|nb_samples=1024
@@ -39,5 +39,5 @@  frame|pkt_pts=524288|pkt_dts=524288|best_effort_timestamp=524288|pkt_duration=10
 frame|pkt_pts=525312|pkt_dts=525312|best_effort_timestamp=525312|pkt_duration=1024|nb_samples=1024
 frame|pkt_pts=526336|pkt_dts=526336|best_effort_timestamp=526336|pkt_duration=1024|nb_samples=1024
 frame|pkt_pts=527360|pkt_dts=527360|best_effort_timestamp=527360|pkt_duration=1024|nb_samples=1024
-frame|pkt_pts=528384|pkt_dts=528384|best_effort_timestamp=528384|pkt_duration=1840|nb_samples=1024
+frame|pkt_pts=528384|pkt_dts=528384|best_effort_timestamp=528384|pkt_duration=816|nb_samples=1024
 stream|nb_read_frames=517
diff --git a/tests/ref/fate/gsm-toast b/tests/ref/fate/gsm-toast
index ebbfbbf..33bd18e 100644
--- a/tests/ref/fate/gsm-toast
+++ b/tests/ref/fate/gsm-toast
@@ -3,503 +3,503 @@ 
 #codec_id 0: pcm_s16le
 #sample_rate 0: 8000
 #channel_layout 0: 4
-0,          0,          0,      160,      320, 0x4c32ab06
-0,        160,        160,      160,      320, 0x2052a4e7
-0,        320,        320,      160,      320, 0xe9aeafca
-0,        480,        480,      160,      320, 0xde83b450
-0,        640,        640,      160,      320, 0x06a6a80e
-0,        800,        800,      160,      320, 0xf6aeb1e2
-0,        960,        960,      160,      320, 0x2623b40c
-0,       1120,       1120,      160,      320, 0x8ec69f25
-0,       1280,       1280,      160,      320, 0xddaaac88
-0,       1440,       1440,      160,      320, 0x9e60b713
-0,       1600,       1600,      160,      320, 0xb738ab30
-0,       1760,       1760,      160,      320, 0xdb4bbb92
-0,       1920,       1920,      160,      320, 0x0370ae8b
-0,       2080,       2080,      160,      320, 0xb611a3fb
-0,       2240,       2240,      160,      320, 0x07ee8e3b
-0,       2400,       2400,      160,      320, 0xdb1ec628
-0,       2560,       2560,      160,      320, 0xd5f1bda2
-0,       2720,       2720,      160,      320, 0xcabb9a9c
-0,       2880,       2880,      160,      320, 0x16c8ad61
-0,       3040,       3040,      160,      320, 0xf76fc25e
-0,       3200,       3200,      160,      320, 0x7118a10d
-0,       3360,       3360,      160,      320, 0x29f9a0db
-0,       3520,       3520,      160,      320, 0x41f2a4ef
-0,       3680,       3680,      160,      320, 0x36dfb231
-0,       3840,       3840,      160,      320, 0xc5399eda
-0,       4000,       4000,      160,      320, 0x17d4b9e0
-0,       4160,       4160,      160,      320, 0x2b5797ac
-0,       4320,       4320,      160,      320, 0x0128c5e7
-0,       4480,       4480,      160,      320, 0xf4f38037
-0,       4640,       4640,      160,      320, 0x77d6b5f2
-0,       4800,       4800,      160,      320, 0xd94a93e0
-0,       4960,       4960,      160,      320, 0x968daae3
-0,       5120,       5120,      160,      320, 0xda5ba0ec
-0,       5280,       5280,      160,      320, 0x316da1ec
-0,       5440,       5440,      160,      320, 0x3a35b2d2
-0,       5600,       5600,      160,      320, 0xca0b988f
-0,       5760,       5760,      160,      320, 0x1295b0b1
-0,       5920,       5920,      160,      320, 0xe121ae72
-0,       6080,       6080,      160,      320, 0x7da7ad43
-0,       6240,       6240,      160,      320, 0x96a49cfe
-0,       6400,       6400,      160,      320, 0x70c2b1de
-0,       6560,       6560,      160,      320, 0x668d88c0
-0,       6720,       6720,      160,      320, 0x5460b5a8
-0,       6880,       6880,      160,      320, 0x6ac78eab
-0,       7040,       7040,      160,      320, 0x0d8dab87
-0,       7200,       7200,      160,      320, 0xe2be94af
-0,       7360,       7360,      160,      320, 0x3487acdc
-0,       7520,       7520,      160,      320, 0x5048955a
-0,       7680,       7680,      160,      320, 0x2ef4ae0d
-0,       7840,       7840,      160,      320, 0xc765b773
-0,       8000,       8000,      160,      320, 0xad96a486
-0,       8160,       8160,      160,      320, 0xb9fdbf1f
-0,       8320,       8320,      160,      320, 0xf26c9ecf
-0,       8480,       8480,      160,      320, 0xbcadb535
-0,       8640,       8640,      160,      320, 0xa8c897bc
-0,       8800,       8800,      160,      320, 0xaa58b520
-0,       8960,       8960,      160,      320, 0xcb48a716
-0,       9120,       9120,      160,      320, 0x4d5da564
-0,       9280,       9280,      160,      320, 0x9809ae28
-0,       9440,       9440,      160,      320, 0x5baeb1e4
-0,       9600,       9600,      160,      320, 0x6a719b63
-0,       9760,       9760,      160,      320, 0xc27d92f0
-0,       9920,       9920,      160,      320, 0x0e9b9fe9
-0,      10080,      10080,      160,      320, 0xbf9d9bf7
-0,      10240,      10240,      160,      320, 0xf35aa64d
-0,      10400,      10400,      160,      320, 0x26449ce8
-0,      10560,      10560,      160,      320, 0x58f4a997
-0,      10720,      10720,      160,      320, 0x155da289
-0,      10880,      10880,      160,      320, 0x63b19a5c
-0,      11040,      11040,      160,      320, 0xe01aad38
-0,      11200,      11200,      160,      320, 0x4e0f9c43
-0,      11360,      11360,      160,      320, 0x9447a284
-0,      11520,      11520,      160,      320, 0xdb36a433
-0,      11680,      11680,      160,      320, 0x799a9b2c
-0,      11840,      11840,      160,      320, 0x1526a162
-0,      12000,      12000,      160,      320, 0x0a4ea140
-0,      12160,      12160,      160,      320, 0xb08f9ed7
-0,      12320,      12320,      160,      320, 0x221bab76
-0,      12480,      12480,      160,      320, 0x4befacf0
-0,      12640,      12640,      160,      320, 0xac489509
-0,      12800,      12800,      160,      320, 0x57a1a5b4
-0,      12960,      12960,      160,      320, 0x81e8ab97
-0,      13120,      13120,      160,      320, 0xc6ada4d6
-0,      13280,      13280,      160,      320, 0x12489975
-0,      13440,      13440,      160,      320, 0x1da59ba9
-0,      13600,      13600,      160,      320, 0xf225ac62
-0,      13760,      13760,      160,      320, 0x8c8e9eab
-0,      13920,      13920,      160,      320, 0x10599dec
-0,      14080,      14080,      160,      320, 0x06c39fa5
-0,      14240,      14240,      160,      320, 0xb0efa3c4
-0,      14400,      14400,      160,      320, 0x72caadab
-0,      14560,      14560,      160,      320, 0xe4619ff0
-0,      14720,      14720,      160,      320, 0x49bca017
-0,      14880,      14880,      160,      320, 0x413f9fbe
-0,      15040,      15040,      160,      320, 0x6eaed0ee
-0,      15200,      15200,      160,      320, 0x27e4b1eb
-0,      15360,      15360,      160,      320, 0x8c42a30f
-0,      15520,      15520,      160,      320, 0x0afaa0f4
-0,      15680,      15680,      160,      320, 0x0f74b76b
-0,      15840,      15840,      160,      320, 0xa9a2b9d5
-0,      16000,      16000,      160,      320, 0xde2a8712
-0,      16160,      16160,      160,      320, 0xcfc8b3a2
-0,      16320,      16320,      160,      320, 0x768cadce
-0,      16480,      16480,      160,      320, 0x3a8a97f1
-0,      16640,      16640,      160,      320, 0x502fa59b
-0,      16800,      16800,      160,      320, 0x4c3e9b0f
-0,      16960,      16960,      160,      320, 0x1cd2b111
-0,      17120,      17120,      160,      320, 0xa845a5a3
-0,      17280,      17280,      160,      320, 0xa6b8b982
-0,      17440,      17440,      160,      320, 0x4d5caab9
-0,      17600,      17600,      160,      320, 0x7993b604
-0,      17760,      17760,      160,      320, 0x8d19b37b
-0,      17920,      17920,      160,      320, 0xbe48adb6
-0,      18080,      18080,      160,      320, 0x7d68ab8e
-0,      18240,      18240,      160,      320, 0xbfffb0e2
-0,      18400,      18400,      160,      320, 0x90b5b7e3
-0,      18560,      18560,      160,      320, 0x9fa1b016
-0,      18720,      18720,      160,      320, 0x70abafc9
-0,      18880,      18880,      160,      320, 0x82cfad9c
-0,      19040,      19040,      160,      320, 0x05f6aa2c
-0,      19200,      19200,      160,      320, 0x511cbb5b
-0,      19360,      19360,      160,      320, 0xd27caaa6
-0,      19520,      19520,      160,      320, 0x781ca481
-0,      19680,      19680,      160,      320, 0x12e9ad1a
-0,      19840,      19840,      160,      320, 0xe46b989d
-0,      20000,      20000,      160,      320, 0x76dbb0a7
-0,      20160,      20160,      160,      320, 0x10eba486
-0,      20320,      20320,      160,      320, 0x2269a7c8
-0,      20480,      20480,      160,      320, 0x084a9c7e
-0,      20640,      20640,      160,      320, 0x84eda891
-0,      20800,      20800,      160,      320, 0x2ef9a639
-0,      20960,      20960,      160,      320, 0x8bb2a0dd
-0,      21120,      21120,      160,      320, 0x47e5a169
-0,      21280,      21280,      160,      320, 0x98faae42
-0,      21440,      21440,      160,      320, 0x81d2aba4
-0,      21600,      21600,      160,      320, 0x5af8bb33
-0,      21760,      21760,      160,      320, 0x331e8d9f
-0,      21920,      21920,      160,      320, 0xd9b0c09a
-0,      22080,      22080,      160,      320, 0xbaf9bfcf
-0,      22240,      22240,      160,      320, 0x54e89ab5
-0,      22400,      22400,      160,      320, 0x1d62c1d2
-0,      22560,      22560,      160,      320, 0xead6b436
-0,      22720,      22720,      160,      320, 0x465f98bc
-0,      22880,      22880,      160,      320, 0xe707a346
-0,      23040,      23040,      160,      320, 0xf66cb1c2
-0,      23200,      23200,      160,      320, 0xcfc89ae6
-0,      23360,      23360,      160,      320, 0x0b10b796
-0,      23520,      23520,      160,      320, 0xb29caf2c
-0,      23680,      23680,      160,      320, 0x0284a9d1
-0,      23840,      23840,      160,      320, 0xb966b5fc
-0,      24000,      24000,      160,      320, 0x2defa630
-0,      24160,      24160,      160,      320, 0xcdcd8ef3
-0,      24320,      24320,      160,      320, 0xa81bba2b
-0,      24480,      24480,      160,      320, 0x6bc0aeb1
-0,      24640,      24640,      160,      320, 0x38d8ac82
-0,      24800,      24800,      160,      320, 0xeb66a865
-0,      24960,      24960,      160,      320, 0x4fff9cd9
-0,      25120,      25120,      160,      320, 0x6819a19b
-0,      25280,      25280,      160,      320, 0xfd7c93ce
-0,      25440,      25440,      160,      320, 0xa7419f63
-0,      25600,      25600,      160,      320, 0x572caacb
-0,      25760,      25760,      160,      320, 0x918fb1de
-0,      25920,      25920,      160,      320, 0x0088a675
-0,      26080,      26080,      160,      320, 0x19229cf7
-0,      26240,      26240,      160,      320, 0x827ea812
-0,      26400,      26400,      160,      320, 0x6c258ef7
-0,      26560,      26560,      160,      320, 0x6a89b8fe
-0,      26720,      26720,      160,      320, 0x166c9ce0
-0,      26880,      26880,      160,      320, 0x68b39db7
-0,      27040,      27040,      160,      320, 0x3d5aa8ec
-0,      27200,      27200,      160,      320, 0x25e09ff3
-0,      27360,      27360,      160,      320, 0x759aa4ce
-0,      27520,      27520,      160,      320, 0xe5aab0ea
-0,      27680,      27680,      160,      320, 0xf0359e9a
-0,      27840,      27840,      160,      320, 0x51199fff
-0,      28000,      28000,      160,      320, 0xb04aa236
-0,      28160,      28160,      160,      320, 0xe09da0e3
-0,      28320,      28320,      160,      320, 0x144f98a9
-0,      28480,      28480,      160,      320, 0x0b4e9f8d
-0,      28640,      28640,      160,      320, 0xbb69a090
-0,      28800,      28800,      160,      320, 0xec6e9b5b
-0,      28960,      28960,      160,      320, 0x4f86a477
-0,      29120,      29120,      160,      320, 0x4a179d04
-0,      29280,      29280,      160,      320, 0x9682a375
-0,      29440,      29440,      160,      320, 0x3c6ba55e
-0,      29600,      29600,      160,      320, 0x50c0ab50
-0,      29760,      29760,      160,      320, 0xe58ea907
-0,      29920,      29920,      160,      320, 0xc5eaa021
-0,      30080,      30080,      160,      320, 0x38859f01
-0,      30240,      30240,      160,      320, 0x73f8a540
-0,      30400,      30400,      160,      320, 0x395da234
-0,      30560,      30560,      160,      320, 0x7f50b144
-0,      30720,      30720,      160,      320, 0x45568ceb
-0,      30880,      30880,      160,      320, 0xd0508dec
-0,      31040,      31040,      160,      320, 0x60aba7e4
-0,      31200,      31200,      160,      320, 0x4b24b15f
-0,      31360,      31360,      160,      320, 0xbfc9afd6
-0,      31520,      31520,      160,      320, 0xf0f2ad49
-0,      31680,      31680,      160,      320, 0xeea0a426
-0,      31840,      31840,      160,      320, 0xff07a7c9
-0,      32000,      32000,      160,      320, 0xce1fc788
-0,      32160,      32160,      160,      320, 0xc074ae9b
-0,      32320,      32320,      160,      320, 0x51649696
-0,      32480,      32480,      160,      320, 0x24399744
-0,      32640,      32640,      160,      320, 0xfb0eb920
-0,      32800,      32800,      160,      320, 0x3bf8af5c
-0,      32960,      32960,      160,      320, 0xeab69ee0
-0,      33120,      33120,      160,      320, 0x182696bb
-0,      33280,      33280,      160,      320, 0x36e6af72
-0,      33440,      33440,      160,      320, 0x48cc9ecc
-0,      33600,      33600,      160,      320, 0xfb3ca7b8
-0,      33760,      33760,      160,      320, 0xe01aa4b4
-0,      33920,      33920,      160,      320, 0x5c6dac8c
-0,      34080,      34080,      160,      320, 0x072fbd93
-0,      34240,      34240,      160,      320, 0xc8899ccc
-0,      34400,      34400,      160,      320, 0xdcc990ac
-0,      34560,      34560,      160,      320, 0x28e0a9d0
-0,      34720,      34720,      160,      320, 0x0cdbaa11
-0,      34880,      34880,      160,      320, 0x8f4ca093
-0,      35040,      35040,      160,      320, 0x7ee79ea9
-0,      35200,      35200,      160,      320, 0xa762b695
-0,      35360,      35360,      160,      320, 0x9af0b5da
-0,      35520,      35520,      160,      320, 0x1f2cb0e7
-0,      35680,      35680,      160,      320, 0x6029b8bb
-0,      35840,      35840,      160,      320, 0xf2f7acec
-0,      36000,      36000,      160,      320, 0xb3e5b5be
-0,      36160,      36160,      160,      320, 0x266ba8a6
-0,      36320,      36320,      160,      320, 0x4ff59296
-0,      36480,      36480,      160,      320, 0x11d1b9ac
-0,      36640,      36640,      160,      320, 0x749197f7
-0,      36800,      36800,      160,      320, 0x8192b517
-0,      36960,      36960,      160,      320, 0xde129dbe
-0,      37120,      37120,      160,      320, 0x85e4a096
-0,      37280,      37280,      160,      320, 0xdebf9182
-0,      37440,      37440,      160,      320, 0x7a4ba0bf
-0,      37600,      37600,      160,      320, 0x55fe9fcd
-0,      37760,      37760,      160,      320, 0xd242adec
-0,      37920,      37920,      160,      320, 0xeaf5b159
-0,      38080,      38080,      160,      320, 0xfcb1a571
-0,      38240,      38240,      160,      320, 0x62fabda0
-0,      38400,      38400,      160,      320, 0x45a9abcc
-0,      38560,      38560,      160,      320, 0x07af974b
-0,      38720,      38720,      160,      320, 0xc2a0b4fd
-0,      38880,      38880,      160,      320, 0xc30abccd
-0,      39040,      39040,      160,      320, 0xd33ca61c
-0,      39200,      39200,      160,      320, 0x3c33d11a
-0,      39360,      39360,      160,      320, 0x9c2ca0ac
-0,      39520,      39520,      160,      320, 0xa5d69777
-0,      39680,      39680,      160,      320, 0xb7d2c6b8
-0,      39840,      39840,      160,      320, 0x34bbaab9
-0,      40000,      40000,      160,      320, 0x3e7baccb
-0,      40160,      40160,      160,      320, 0x92c6b7e6
-0,      40320,      40320,      160,      320, 0xc810a18a
-0,      40480,      40480,      160,      320, 0x06a09f56
-0,      40640,      40640,      160,      320, 0x8804a504
-0,      40800,      40800,      160,      320, 0x783ba7d5
-0,      40960,      40960,      160,      320, 0x24dcada6
-0,      41120,      41120,      160,      320, 0x4af796be
-0,      41280,      41280,      160,      320, 0x1454b19c
-0,      41440,      41440,      160,      320, 0x0ad0a56e
-0,      41600,      41600,      160,      320, 0x8944a44e
-0,      41760,      41760,      160,      320, 0x31069ebd
-0,      41920,      41920,      160,      320, 0x19cb9812
-0,      42080,      42080,      160,      320, 0xac75abe2
-0,      42240,      42240,      160,      320, 0x0162a200
-0,      42400,      42400,      160,      320, 0xa2d7a4b2
-0,      42560,      42560,      160,      320, 0x078ca611
-0,      42720,      42720,      160,      320, 0x0ec39b40
-0,      42880,      42880,      160,      320, 0xe8f794b2
-0,      43040,      43040,      160,      320, 0xc2cfb258
-0,      43200,      43200,      160,      320, 0xe4759061
-0,      43360,      43360,      160,      320, 0xb1b6aea4
-0,      43520,      43520,      160,      320, 0x9bfb96df
-0,      43680,      43680,      160,      320, 0xcc61b5d3
-0,      43840,      43840,      160,      320, 0xd14e8df9
-0,      44000,      44000,      160,      320, 0xd9d5bbf5
-0,      44160,      44160,      160,      320, 0x4d9fa9b0
-0,      44320,      44320,      160,      320, 0xf606abfc
-0,      44480,      44480,      160,      320, 0x720baa19
-0,      44640,      44640,      160,      320, 0x7f7cac49
-0,      44800,      44800,      160,      320, 0xceab9b54
-0,      44960,      44960,      160,      320, 0x645fa70a
-0,      45120,      45120,      160,      320, 0xa081a40f
-0,      45280,      45280,      160,      320, 0x21d78f8c
-0,      45440,      45440,      160,      320, 0xedf3abc6
-0,      45600,      45600,      160,      320, 0x17679637
-0,      45760,      45760,      160,      320, 0x1cb1ae04
-0,      45920,      45920,      160,      320, 0x17cd9f62
-0,      46080,      46080,      160,      320, 0xf4bca3ab
-0,      46240,      46240,      160,      320, 0xb3bd9152
-0,      46400,      46400,      160,      320, 0x4e1e9825
-0,      46560,      46560,      160,      320, 0x037e9a56
-0,      46720,      46720,      160,      320, 0xd7589fcc
-0,      46880,      46880,      160,      320, 0x5f949e90
-0,      47040,      47040,      160,      320, 0xe133a495
-0,      47200,      47200,      160,      320, 0x7cb7a52c
-0,      47360,      47360,      160,      320, 0xb8b29d95
-0,      47520,      47520,      160,      320, 0x01bca472
-0,      47680,      47680,      160,      320, 0xbcc69895
-0,      47840,      47840,      160,      320, 0xabffa0ee
-0,      48000,      48000,      160,      320, 0xe6629eca
-0,      48160,      48160,      160,      320, 0x572da7cd
-0,      48320,      48320,      160,      320, 0x3017972d
-0,      48480,      48480,      160,      320, 0xac4e9c78
-0,      48640,      48640,      160,      320, 0x112f9c45
-0,      48800,      48800,      160,      320, 0x05e9a64d
-0,      48960,      48960,      160,      320, 0x8f7394d4
-0,      49120,      49120,      160,      320, 0xbaeea07e
-0,      49280,      49280,      160,      320, 0xd757c00e
-0,      49440,      49440,      160,      320, 0x8aa09783
-0,      49600,      49600,      160,      320, 0x31d4ae7a
-0,      49760,      49760,      160,      320, 0x221493e8
-0,      49920,      49920,      160,      320, 0x92f4a3a7
-0,      50080,      50080,      160,      320, 0xbd5bafd9
-0,      50240,      50240,      160,      320, 0x1895b760
-0,      50400,      50400,      160,      320, 0x7a4eacdd
-0,      50560,      50560,      160,      320, 0xc9f7a1c3
-0,      50720,      50720,      160,      320, 0xd750be06
-0,      50880,      50880,      160,      320, 0x641d9a6f
-0,      51040,      51040,      160,      320, 0x70d6b6ff
-0,      51200,      51200,      160,      320, 0x1fd3a546
-0,      51360,      51360,      160,      320, 0x72cfaabe
-0,      51520,      51520,      160,      320, 0x2e61b6ce
-0,      51680,      51680,      160,      320, 0x4813a091
-0,      51840,      51840,      160,      320, 0xbfe7bc0f
-0,      52000,      52000,      160,      320, 0x8c759c1f
-0,      52160,      52160,      160,      320, 0xf4c1c952
-0,      52320,      52320,      160,      320, 0x00fdaa79
-0,      52480,      52480,      160,      320, 0x2ffda252
-0,      52640,      52640,      160,      320, 0x841aa523
-0,      52800,      52800,      160,      320, 0x8c079e5e
-0,      52960,      52960,      160,      320, 0x96e9a83f
-0,      53120,      53120,      160,      320, 0x5926a639
-0,      53280,      53280,      160,      320, 0x02e1a07b
-0,      53440,      53440,      160,      320, 0x2972a999
-0,      53600,      53600,      160,      320, 0x30c89c62
-0,      53760,      53760,      160,      320, 0x83f5a263
-0,      53920,      53920,      160,      320, 0xa3909667
-0,      54080,      54080,      160,      320, 0xd5309fd4
-0,      54240,      54240,      160,      320, 0x3154a571
-0,      54400,      54400,      160,      320, 0x51039a5e
-0,      54560,      54560,      160,      320, 0xf167a344
-0,      54720,      54720,      160,      320, 0x8e709d7d
-0,      54880,      54880,      160,      320, 0x936fa0fd
-0,      55040,      55040,      160,      320, 0x024b9e3c
-0,      55200,      55200,      160,      320, 0x2ea1aa75
-0,      55360,      55360,      160,      320, 0x33f0a2bb
-0,      55520,      55520,      160,      320, 0xbf079d2d
-0,      55680,      55680,      160,      320, 0x847ba2c8
-0,      55840,      55840,      160,      320, 0x37e1a767
-0,      56000,      56000,      160,      320, 0xb607acbb
-0,      56160,      56160,      160,      320, 0x1288ac6d
-0,      56320,      56320,      160,      320, 0xf60e98b3
-0,      56480,      56480,      160,      320, 0xc6b5abdd
-0,      56640,      56640,      160,      320, 0x7feaa710
-0,      56800,      56800,      160,      320, 0x77329fcd
-0,      56960,      56960,      160,      320, 0x91a6a715
-0,      57120,      57120,      160,      320, 0xd0e99f24
-0,      57280,      57280,      160,      320, 0x07089f61
-0,      57440,      57440,      160,      320, 0x2bbda900
-0,      57600,      57600,      160,      320, 0xad3da0d5
-0,      57760,      57760,      160,      320, 0x997ba6d2
-0,      57920,      57920,      160,      320, 0xb15b9dcb
-0,      58080,      58080,      160,      320, 0x17cea82f
-0,      58240,      58240,      160,      320, 0xab51a73e
-0,      58400,      58400,      160,      320, 0x77a1abd6
-0,      58560,      58560,      160,      320, 0x0bddacad
-0,      58720,      58720,      160,      320, 0x43b3bdc4
-0,      58880,      58880,      160,      320, 0xefe0a9ba
-0,      59040,      59040,      160,      320, 0x8eb4bc2f
-0,      59200,      59200,      160,      320, 0x39cdc190
-0,      59360,      59360,      160,      320, 0x1ef3baff
-0,      59520,      59520,      160,      320, 0x1a6ab7e2
-0,      59680,      59680,      160,      320, 0x444ccc69
-0,      59840,      59840,      160,      320, 0x05ebb598
-0,      60000,      60000,      160,      320, 0x4ac5b0ad
-0,      60160,      60160,      160,      320, 0x0ee5ba52
-0,      60320,      60320,      160,      320, 0x501d9fa0
-0,      60480,      60480,      160,      320, 0x2038a9f4
-0,      60640,      60640,      160,      320, 0xa61cb8b3
-0,      60800,      60800,      160,      320, 0xdd009777
-0,      60960,      60960,      160,      320, 0x2a2db86d
-0,      61120,      61120,      160,      320, 0xe9bab3bc
-0,      61280,      61280,      160,      320, 0xf7f8a056
-0,      61440,      61440,      160,      320, 0x514caf14
-0,      61600,      61600,      160,      320, 0xa220b149
-0,      61760,      61760,      160,      320, 0xbf7ea183
-0,      61920,      61920,      160,      320, 0x1d8dc5c6
-0,      62080,      62080,      160,      320, 0x9182a8ea
-0,      62240,      62240,      160,      320, 0x31eba026
-0,      62400,      62400,      160,      320, 0xcfbcc3df
-0,      62560,      62560,      160,      320, 0x3d8cb7ae
-0,      62720,      62720,      160,      320, 0xbe39aec0
-0,      62880,      62880,      160,      320, 0xd236bf71
-0,      63040,      63040,      160,      320, 0x9377b0b2
-0,      63200,      63200,      160,      320, 0xb5e6b2df
-0,      63360,      63360,      160,      320, 0xa3b9bbce
-0,      63520,      63520,      160,      320, 0xa7bda251
-0,      63680,      63680,      160,      320, 0xbf9ab162
-0,      63840,      63840,      160,      320, 0x6928b9cb
-0,      64000,      64000,      160,      320, 0xf5cca209
-0,      64160,      64160,      160,      320, 0xfdf4afad
-0,      64320,      64320,      160,      320, 0xe7e7c216
-0,      64480,      64480,      160,      320, 0x0c5797c6
-0,      64640,      64640,      160,      320, 0x66c1a9ca
-0,      64800,      64800,      160,      320, 0x6b5ca48d
-0,      64960,      64960,      160,      320, 0xec04968a
-0,      65120,      65120,      160,      320, 0xaaada691
-0,      65280,      65280,      160,      320, 0x77c3a624
-0,      65440,      65440,      160,      320, 0xaed9a5d5
-0,      65600,      65600,      160,      320, 0x360fac41
-0,      65760,      65760,      160,      320, 0xa05ea727
-0,      65920,      65920,      160,      320, 0x9f7b9f83
-0,      66080,      66080,      160,      320, 0x474bc4c2
-0,      66240,      66240,      160,      320, 0xb6078d3b
-0,      66400,      66400,      160,      320, 0x8e15a8f9
-0,      66560,      66560,      160,      320, 0x7dc7d4a8
-0,      66720,      66720,      160,      320, 0x55ceab6b
-0,      66880,      66880,      160,      320, 0x982cc94f
-0,      67040,      67040,      160,      320, 0x6153948f
-0,      67200,      67200,      160,      320, 0x5338c621
-0,      67360,      67360,      160,      320, 0x2e2db6e8
-0,      67520,      67520,      160,      320, 0x28e3a9c3
-0,      67680,      67680,      160,      320, 0x74d7b435
-0,      67840,      67840,      160,      320, 0xcf17a10c
-0,      68000,      68000,      160,      320, 0xf1f9ac8c
-0,      68160,      68160,      160,      320, 0x35e0b480
-0,      68320,      68320,      160,      320, 0x5e60b3a4
-0,      68480,      68480,      160,      320, 0x20579b26
-0,      68640,      68640,      160,      320, 0x3e27b89b
-0,      68800,      68800,      160,      320, 0x02e4af94
-0,      68960,      68960,      160,      320, 0x6d6897f1
-0,      69120,      69120,      160,      320, 0x1582b267
-0,      69280,      69280,      160,      320, 0x33ba9eb3
-0,      69440,      69440,      160,      320, 0xb6acad7d
-0,      69600,      69600,      160,      320, 0x1969a6c2
-0,      69760,      69760,      160,      320, 0x363fa350
-0,      69920,      69920,      160,      320, 0xae50bf65
-0,      70080,      70080,      160,      320, 0x0877a50f
-0,      70240,      70240,      160,      320, 0x66e2a42f
-0,      70400,      70400,      160,      320, 0x0b0abcb3
-0,      70560,      70560,      160,      320, 0x23a9afaa
-0,      70720,      70720,      160,      320, 0xc3729b40
-0,      70880,      70880,      160,      320, 0xdd3fc7e2
-0,      71040,      71040,      160,      320, 0x7e0494af
-0,      71200,      71200,      160,      320, 0xcbd096fb
-0,      71360,      71360,      160,      320, 0x5d71b303
-0,      71520,      71520,      160,      320, 0xeedca04a
-0,      71680,      71680,      160,      320, 0x2836a47d
-0,      71840,      71840,      160,      320, 0x7237c2a0
-0,      72000,      72000,      160,      320, 0x7c009bc0
-0,      72160,      72160,      160,      320, 0xc9dcb366
-0,      72320,      72320,      160,      320, 0x4993aac8
-0,      72480,      72480,      160,      320, 0x05ec9954
-0,      72640,      72640,      160,      320, 0xa955bd5c
-0,      72800,      72800,      160,      320, 0x9018aea3
-0,      72960,      72960,      160,      320, 0x780cca52
-0,      73120,      73120,      160,      320, 0x9b8f95f6
-0,      73280,      73280,      160,      320, 0xcd7bb178
-0,      73440,      73440,      160,      320, 0xfec6b443
-0,      73600,      73600,      160,      320, 0xe214abb6
-0,      73760,      73760,      160,      320, 0xdcbebb38
-0,      73920,      73920,      160,      320, 0xe683a30d
-0,      74080,      74080,      160,      320, 0xe4cdb197
-0,      74240,      74240,      160,      320, 0xa426c432
-0,      74400,      74400,      160,      320, 0x761ba6cc
-0,      74560,      74560,      160,      320, 0xcc9aa6aa
-0,      74720,      74720,      160,      320, 0x742bd03d
-0,      74880,      74880,      160,      320, 0x61d9a511
-0,      75040,      75040,      160,      320, 0x3021a4dd
-0,      75200,      75200,      160,      320, 0x6970bbc0
-0,      75360,      75360,      160,      320, 0x76f5a037
-0,      75520,      75520,      160,      320, 0x758d91f2
-0,      75680,      75680,      160,      320, 0xe854a2f1
-0,      75840,      75840,      160,      320, 0xf994a6f8
-0,      76000,      76000,      160,      320, 0x31ebaf40
-0,      76160,      76160,      160,      320, 0x24699970
-0,      76320,      76320,      160,      320, 0x37dda53e
-0,      76480,      76480,      160,      320, 0xa857a752
-0,      76640,      76640,      160,      320, 0xc483ad1d
-0,      76800,      76800,      160,      320, 0x5966add9
-0,      76960,      76960,      160,      320, 0x4dbab89c
-0,      77120,      77120,      160,      320, 0x2f0bb0e6
-0,      77280,      77280,      160,      320, 0x913aaa88
-0,      77440,      77440,      160,      320, 0x245dc1c3
-0,      77600,      77600,      160,      320, 0xb085c5ad
-0,      77760,      77760,      160,      320, 0x9cf1b0fa
-0,      77920,      77920,      160,      320, 0x6887b543
-0,      78080,      78080,      160,      320, 0xcad69feb
-0,      78240,      78240,      160,      320, 0xc12a8ddb
-0,      78400,      78400,      160,      320, 0x01d1bc5a
-0,      78560,      78560,      160,      320, 0x3018b7e8
-0,      78720,      78720,      160,      320, 0x6431b0ef
-0,      78880,      78880,      160,      320, 0x3a53998e
-0,      79040,      79040,      160,      320, 0x1c80a6c6
-0,      79200,      79200,      160,      320, 0x6639adc5
-0,      79360,      79360,      160,      320, 0x92489f9a
-0,      79520,      79520,      160,      320, 0x8cafad00
-0,      79680,      79680,      160,      320, 0xca0392e1
-0,      79840,      79840,      160,      320, 0x30a9ae88
+0,          0,          0,      160,      320, 0x2052a4e7
+0,        160,        160,      160,      320, 0xe9aeafca
+0,        320,        320,      160,      320, 0xde83b450
+0,        480,        480,      160,      320, 0x06a6a80e
+0,        640,        640,      160,      320, 0xf6aeb1e2
+0,        800,        800,      160,      320, 0x2623b40c
+0,        960,        960,      160,      320, 0x8ec69f25
+0,       1120,       1120,      160,      320, 0xddaaac88
+0,       1280,       1280,      160,      320, 0x9e60b713
+0,       1440,       1440,      160,      320, 0xb738ab30
+0,       1600,       1600,      160,      320, 0xdb4bbb92
+0,       1760,       1760,      160,      320, 0x0370ae8b
+0,       1920,       1920,      160,      320, 0xb611a3fb
+0,       2080,       2080,      160,      320, 0x07ee8e3b
+0,       2240,       2240,      160,      320, 0xdb1ec628
+0,       2400,       2400,      160,      320, 0xd5f1bda2
+0,       2560,       2560,      160,      320, 0xcabb9a9c
+0,       2720,       2720,      160,      320, 0x16c8ad61
+0,       2880,       2880,      160,      320, 0xf76fc25e
+0,       3040,       3040,      160,      320, 0x7118a10d
+0,       3200,       3200,      160,      320, 0x29f9a0db
+0,       3360,       3360,      160,      320, 0x41f2a4ef
+0,       3520,       3520,      160,      320, 0x36dfb231
+0,       3680,       3680,      160,      320, 0xc5399eda
+0,       3840,       3840,      160,      320, 0x17d4b9e0
+0,       4000,       4000,      160,      320, 0x2b5797ac
+0,       4160,       4160,      160,      320, 0x0128c5e7
+0,       4320,       4320,      160,      320, 0xf4f38037
+0,       4480,       4480,      160,      320, 0x77d6b5f2
+0,       4640,       4640,      160,      320, 0xd94a93e0
+0,       4800,       4800,      160,      320, 0x968daae3
+0,       4960,       4960,      160,      320, 0xda5ba0ec
+0,       5120,       5120,      160,      320, 0x316da1ec
+0,       5280,       5280,      160,      320, 0x3a35b2d2
+0,       5440,       5440,      160,      320, 0xca0b988f
+0,       5600,       5600,      160,      320, 0x1295b0b1
+0,       5760,       5760,      160,      320, 0xe121ae72
+0,       5920,       5920,      160,      320, 0x7da7ad43
+0,       6080,       6080,      160,      320, 0x96a49cfe
+0,       6240,       6240,      160,      320, 0x70c2b1de
+0,       6400,       6400,      160,      320, 0x668d88c0
+0,       6560,       6560,      160,      320, 0x5460b5a8
+0,       6720,       6720,      160,      320, 0x6ac78eab
+0,       6880,       6880,      160,      320, 0x0d8dab87
+0,       7040,       7040,      160,      320, 0xe2be94af
+0,       7200,       7200,      160,      320, 0x3487acdc
+0,       7360,       7360,      160,      320, 0x5048955a
+0,       7520,       7520,      160,      320, 0x2ef4ae0d
+0,       7680,       7680,      160,      320, 0xc765b773
+0,       7840,       7840,      160,      320, 0xad96a486
+0,       8000,       8000,      160,      320, 0xb9fdbf1f
+0,       8160,       8160,      160,      320, 0xf26c9ecf
+0,       8320,       8320,      160,      320, 0xbcadb535
+0,       8480,       8480,      160,      320, 0xa8c897bc
+0,       8640,       8640,      160,      320, 0xaa58b520
+0,       8800,       8800,      160,      320, 0xcb48a716
+0,       8960,       8960,      160,      320, 0x4d5da564
+0,       9120,       9120,      160,      320, 0x9809ae28
+0,       9280,       9280,      160,      320, 0x5baeb1e4
+0,       9440,       9440,      160,      320, 0x6a719b63
+0,       9600,       9600,      160,      320, 0xc27d92f0
+0,       9760,       9760,      160,      320, 0x0e9b9fe9
+0,       9920,       9920,      160,      320, 0xbf9d9bf7
+0,      10080,      10080,      160,      320, 0xf35aa64d
+0,      10240,      10240,      160,      320, 0x26449ce8
+0,      10400,      10400,      160,      320, 0x58f4a997
+0,      10560,      10560,      160,      320, 0x155da289
+0,      10720,      10720,      160,      320, 0x63b19a5c
+0,      10880,      10880,      160,      320, 0xe01aad38
+0,      11040,      11040,      160,      320, 0x4e0f9c43
+0,      11200,      11200,      160,      320, 0x9447a284
+0,      11360,      11360,      160,      320, 0xdb36a433
+0,      11520,      11520,      160,      320, 0x799a9b2c
+0,      11680,      11680,      160,      320, 0x1526a162
+0,      11840,      11840,      160,      320, 0x0a4ea140
+0,      12000,      12000,      160,      320, 0xb08f9ed7
+0,      12160,      12160,      160,      320, 0x221bab76
+0,      12320,      12320,      160,      320, 0x4befacf0
+0,      12480,      12480,      160,      320, 0xac489509
+0,      12640,      12640,      160,      320, 0x57a1a5b4
+0,      12800,      12800,      160,      320, 0x81e8ab97
+0,      12960,      12960,      160,      320, 0xc6ada4d6
+0,      13120,      13120,      160,      320, 0x12489975
+0,      13280,      13280,      160,      320, 0x1da59ba9
+0,      13440,      13440,      160,      320, 0xf225ac62
+0,      13600,      13600,      160,      320, 0x8c8e9eab
+0,      13760,      13760,      160,      320, 0x10599dec
+0,      13920,      13920,      160,      320, 0x06c39fa5
+0,      14080,      14080,      160,      320, 0xb0efa3c4
+0,      14240,      14240,      160,      320, 0x72caadab
+0,      14400,      14400,      160,      320, 0xe4619ff0
+0,      14560,      14560,      160,      320, 0x49bca017
+0,      14720,      14720,      160,      320, 0x413f9fbe
+0,      14880,      14880,      160,      320, 0x6eaed0ee
+0,      15040,      15040,      160,      320, 0x27e4b1eb
+0,      15200,      15200,      160,      320, 0x8c42a30f
+0,      15360,      15360,      160,      320, 0x0afaa0f4
+0,      15520,      15520,      160,      320, 0x0f74b76b
+0,      15680,      15680,      160,      320, 0xa9a2b9d5
+0,      15840,      15840,      160,      320, 0xde2a8712
+0,      16000,      16000,      160,      320, 0xcfc8b3a2
+0,      16160,      16160,      160,      320, 0x768cadce
+0,      16320,      16320,      160,      320, 0x3a8a97f1
+0,      16480,      16480,      160,      320, 0x502fa59b
+0,      16640,      16640,      160,      320, 0x4c3e9b0f
+0,      16800,      16800,      160,      320, 0x1cd2b111
+0,      16960,      16960,      160,      320, 0xa845a5a3
+0,      17120,      17120,      160,      320, 0xa6b8b982
+0,      17280,      17280,      160,      320, 0x4d5caab9
+0,      17440,      17440,      160,      320, 0x7993b604
+0,      17600,      17600,      160,      320, 0x8d19b37b
+0,      17760,      17760,      160,      320, 0xbe48adb6
+0,      17920,      17920,      160,      320, 0x7d68ab8e
+0,      18080,      18080,      160,      320, 0xbfffb0e2
+0,      18240,      18240,      160,      320, 0x90b5b7e3
+0,      18400,      18400,      160,      320, 0x9fa1b016
+0,      18560,      18560,      160,      320, 0x70abafc9
+0,      18720,      18720,      160,      320, 0x82cfad9c
+0,      18880,      18880,      160,      320, 0x05f6aa2c
+0,      19040,      19040,      160,      320, 0x511cbb5b
+0,      19200,      19200,      160,      320, 0xd27caaa6
+0,      19360,      19360,      160,      320, 0x781ca481
+0,      19520,      19520,      160,      320, 0x12e9ad1a
+0,      19680,      19680,      160,      320, 0xe46b989d
+0,      19840,      19840,      160,      320, 0x76dbb0a7
+0,      20000,      20000,      160,      320, 0x10eba486
+0,      20160,      20160,      160,      320, 0x2269a7c8
+0,      20320,      20320,      160,      320, 0x084a9c7e
+0,      20480,      20480,      160,      320, 0x84eda891
+0,      20640,      20640,      160,      320, 0x2ef9a639
+0,      20800,      20800,      160,      320, 0x8bb2a0dd
+0,      20960,      20960,      160,      320, 0x47e5a169
+0,      21120,      21120,      160,      320, 0x98faae42
+0,      21280,      21280,      160,      320, 0x81d2aba4
+0,      21440,      21440,      160,      320, 0x5af8bb33
+0,      21600,      21600,      160,      320, 0x331e8d9f
+0,      21760,      21760,      160,      320, 0xd9b0c09a
+0,      21920,      21920,      160,      320, 0xbaf9bfcf
+0,      22080,      22080,      160,      320, 0x54e89ab5
+0,      22240,      22240,      160,      320, 0x1d62c1d2
+0,      22400,      22400,      160,      320, 0xead6b436
+0,      22560,      22560,      160,      320, 0x465f98bc
+0,      22720,      22720,      160,      320, 0xe707a346
+0,      22880,      22880,      160,      320, 0xf66cb1c2
+0,      23040,      23040,      160,      320, 0xcfc89ae6
+0,      23200,      23200,      160,      320, 0x0b10b796
+0,      23360,      23360,      160,      320, 0xb29caf2c
+0,      23520,      23520,      160,      320, 0x0284a9d1
+0,      23680,      23680,      160,      320, 0xb966b5fc
+0,      23840,      23840,      160,      320, 0x2defa630
+0,      24000,      24000,      160,      320, 0xcdcd8ef3
+0,      24160,      24160,      160,      320, 0xa81bba2b
+0,      24320,      24320,      160,      320, 0x6bc0aeb1
+0,      24480,      24480,      160,      320, 0x38d8ac82
+0,      24640,      24640,      160,      320, 0xeb66a865
+0,      24800,      24800,      160,      320, 0x4fff9cd9
+0,      24960,      24960,      160,      320, 0x6819a19b
+0,      25120,      25120,      160,      320, 0xfd7c93ce
+0,      25280,      25280,      160,      320, 0xa7419f63
+0,      25440,      25440,      160,      320, 0x572caacb
+0,      25600,      25600,      160,      320, 0x918fb1de
+0,      25760,      25760,      160,      320, 0x0088a675
+0,      25920,      25920,      160,      320, 0x19229cf7
+0,      26080,      26080,      160,      320, 0x827ea812
+0,      26240,      26240,      160,      320, 0x6c258ef7
+0,      26400,      26400,      160,      320, 0x6a89b8fe
+0,      26560,      26560,      160,      320, 0x166c9ce0
+0,      26720,      26720,      160,      320, 0x68b39db7
+0,      26880,      26880,      160,      320, 0x3d5aa8ec
+0,      27040,      27040,      160,      320, 0x25e09ff3
+0,      27200,      27200,      160,      320, 0x759aa4ce
+0,      27360,      27360,      160,      320, 0xe5aab0ea
+0,      27520,      27520,      160,      320, 0xf0359e9a
+0,      27680,      27680,      160,      320, 0x51199fff
+0,      27840,      27840,      160,      320, 0xb04aa236
+0,      28000,      28000,      160,      320, 0xe09da0e3
+0,      28160,      28160,      160,      320, 0x144f98a9
+0,      28320,      28320,      160,      320, 0x0b4e9f8d
+0,      28480,      28480,      160,      320, 0xbb69a090
+0,      28640,      28640,      160,      320, 0xec6e9b5b
+0,      28800,      28800,      160,      320, 0x4f86a477
+0,      28960,      28960,      160,      320, 0x4a179d04
+0,      29120,      29120,      160,      320, 0x9682a375
+0,      29280,      29280,      160,      320, 0x3c6ba55e
+0,      29440,      29440,      160,      320, 0x50c0ab50
+0,      29600,      29600,      160,      320, 0xe58ea907
+0,      29760,      29760,      160,      320, 0xc5eaa021
+0,      29920,      29920,      160,      320, 0x38859f01
+0,      30080,      30080,      160,      320, 0x73f8a540
+0,      30240,      30240,      160,      320, 0x395da234
+0,      30400,      30400,      160,      320, 0x7f50b144
+0,      30560,      30560,      160,      320, 0x45568ceb
+0,      30720,      30720,      160,      320, 0xd0508dec
+0,      30880,      30880,      160,      320, 0x60aba7e4
+0,      31040,      31040,      160,      320, 0x4b24b15f
+0,      31200,      31200,      160,      320, 0xbfc9afd6
+0,      31360,      31360,      160,      320, 0xf0f2ad49
+0,      31520,      31520,      160,      320, 0xeea0a426
+0,      31680,      31680,      160,      320, 0xff07a7c9
+0,      31840,      31840,      160,      320, 0xce1fc788
+0,      32000,      32000,      160,      320, 0xc074ae9b
+0,      32160,      32160,      160,      320, 0x51649696
+0,      32320,      32320,      160,      320, 0x24399744
+0,      32480,      32480,      160,      320, 0xfb0eb920
+0,      32640,      32640,      160,      320, 0x3bf8af5c
+0,      32800,      32800,      160,      320, 0xeab69ee0
+0,      32960,      32960,      160,      320, 0x182696bb
+0,      33120,      33120,      160,      320, 0x36e6af72
+0,      33280,      33280,      160,      320, 0x48cc9ecc
+0,      33440,      33440,      160,      320, 0xfb3ca7b8
+0,      33600,      33600,      160,      320, 0xe01aa4b4
+0,      33760,      33760,      160,      320, 0x5c6dac8c
+0,      33920,      33920,      160,      320, 0x072fbd93
+0,      34080,      34080,      160,      320, 0xc8899ccc
+0,      34240,      34240,      160,      320, 0xdcc990ac
+0,      34400,      34400,      160,      320, 0x28e0a9d0
+0,      34560,      34560,      160,      320, 0x0cdbaa11
+0,      34720,      34720,      160,      320, 0x8f4ca093
+0,      34880,      34880,      160,      320, 0x7ee79ea9
+0,      35040,      35040,      160,      320, 0xa762b695
+0,      35200,      35200,      160,      320, 0x9af0b5da
+0,      35360,      35360,      160,      320, 0x1f2cb0e7
+0,      35520,      35520,      160,      320, 0x6029b8bb
+0,      35680,      35680,      160,      320, 0xf2f7acec
+0,      35840,      35840,      160,      320, 0xb3e5b5be
+0,      36000,      36000,      160,      320, 0x266ba8a6
+0,      36160,      36160,      160,      320, 0x4ff59296
+0,      36320,      36320,      160,      320, 0x11d1b9ac
+0,      36480,      36480,      160,      320, 0x749197f7
+0,      36640,      36640,      160,      320, 0x8192b517
+0,      36800,      36800,      160,      320, 0xde129dbe
+0,      36960,      36960,      160,      320, 0x85e4a096
+0,      37120,      37120,      160,      320, 0xdebf9182
+0,      37280,      37280,      160,      320, 0x7a4ba0bf
+0,      37440,      37440,      160,      320, 0x55fe9fcd
+0,      37600,      37600,      160,      320, 0xd242adec
+0,      37760,      37760,      160,      320, 0xeaf5b159
+0,      37920,      37920,      160,      320, 0xfcb1a571
+0,      38080,      38080,      160,      320, 0x62fabda0
+0,      38240,      38240,      160,      320, 0x45a9abcc
+0,      38400,      38400,      160,      320, 0x07af974b
+0,      38560,      38560,      160,      320, 0xc2a0b4fd
+0,      38720,      38720,      160,      320, 0xc30abccd
+0,      38880,      38880,      160,      320, 0xd33ca61c
+0,      39040,      39040,      160,      320, 0x3c33d11a
+0,      39200,      39200,      160,      320, 0x9c2ca0ac
+0,      39360,      39360,      160,      320, 0xa5d69777
+0,      39520,      39520,      160,      320, 0xb7d2c6b8
+0,      39680,      39680,      160,      320, 0x34bbaab9
+0,      39840,      39840,      160,      320, 0x3e7baccb
+0,      40000,      40000,      160,      320, 0x92c6b7e6
+0,      40160,      40160,      160,      320, 0xc810a18a
+0,      40320,      40320,      160,      320, 0x06a09f56
+0,      40480,      40480,      160,      320, 0x8804a504
+0,      40640,      40640,      160,      320, 0x783ba7d5
+0,      40800,      40800,      160,      320, 0x24dcada6
+0,      40960,      40960,      160,      320, 0x4af796be
+0,      41120,      41120,      160,      320, 0x1454b19c
+0,      41280,      41280,      160,      320, 0x0ad0a56e
+0,      41440,      41440,      160,      320, 0x8944a44e
+0,      41600,      41600,      160,      320, 0x31069ebd
+0,      41760,      41760,      160,      320, 0x19cb9812
+0,      41920,      41920,      160,      320, 0xac75abe2
+0,      42080,      42080,      160,      320, 0x0162a200
+0,      42240,      42240,      160,      320, 0xa2d7a4b2
+0,      42400,      42400,      160,      320, 0x078ca611
+0,      42560,      42560,      160,      320, 0x0ec39b40
+0,      42720,      42720,      160,      320, 0xe8f794b2
+0,      42880,      42880,      160,      320, 0xc2cfb258
+0,      43040,      43040,      160,      320, 0xe4759061
+0,      43200,      43200,      160,      320, 0xb1b6aea4
+0,      43360,      43360,      160,      320, 0x9bfb96df
+0,      43520,      43520,      160,      320, 0xcc61b5d3
+0,      43680,      43680,      160,      320, 0xd14e8df9
+0,      43840,      43840,      160,      320, 0xd9d5bbf5
+0,      44000,      44000,      160,      320, 0x4d9fa9b0
+0,      44160,      44160,      160,      320, 0xf606abfc
+0,      44320,      44320,      160,      320, 0x720baa19
+0,      44480,      44480,      160,      320, 0x7f7cac49
+0,      44640,      44640,      160,      320, 0xceab9b54
+0,      44800,      44800,      160,      320, 0x645fa70a
+0,      44960,      44960,      160,      320, 0xa081a40f
+0,      45120,      45120,      160,      320, 0x21d78f8c
+0,      45280,      45280,      160,      320, 0xedf3abc6
+0,      45440,      45440,      160,      320, 0x17679637
+0,      45600,      45600,      160,      320, 0x1cb1ae04
+0,      45760,      45760,      160,      320, 0x17cd9f62
+0,      45920,      45920,      160,      320, 0xf4bca3ab
+0,      46080,      46080,      160,      320, 0xb3bd9152
+0,      46240,      46240,      160,      320, 0x4e1e9825
+0,      46400,      46400,      160,      320, 0x037e9a56
+0,      46560,      46560,      160,      320, 0xd7589fcc
+0,      46720,      46720,      160,      320, 0x5f949e90
+0,      46880,      46880,      160,      320, 0xe133a495
+0,      47040,      47040,      160,      320, 0x7cb7a52c
+0,      47200,      47200,      160,      320, 0xb8b29d95
+0,      47360,      47360,      160,      320, 0x01bca472
+0,      47520,      47520,      160,      320, 0xbcc69895
+0,      47680,      47680,      160,      320, 0xabffa0ee
+0,      47840,      47840,      160,      320, 0xe6629eca
+0,      48000,      48000,      160,      320, 0x572da7cd
+0,      48160,      48160,      160,      320, 0x3017972d
+0,      48320,      48320,      160,      320, 0xac4e9c78
+0,      48480,      48480,      160,      320, 0x112f9c45
+0,      48640,      48640,      160,      320, 0x05e9a64d
+0,      48800,      48800,      160,      320, 0x8f7394d4
+0,      48960,      48960,      160,      320, 0xbaeea07e
+0,      49120,      49120,      160,      320, 0xd757c00e
+0,      49280,      49280,      160,      320, 0x8aa09783
+0,      49440,      49440,      160,      320, 0x31d4ae7a
+0,      49600,      49600,      160,      320, 0x221493e8
+0,      49760,      49760,      160,      320, 0x92f4a3a7
+0,      49920,      49920,      160,      320, 0xbd5bafd9
+0,      50080,      50080,      160,      320, 0x1895b760
+0,      50240,      50240,      160,      320, 0x7a4eacdd
+0,      50400,      50400,      160,      320, 0xc9f7a1c3
+0,      50560,      50560,      160,      320, 0xd750be06
+0,      50720,      50720,      160,      320, 0x641d9a6f
+0,      50880,      50880,      160,      320, 0x70d6b6ff
+0,      51040,      51040,      160,      320, 0x1fd3a546
+0,      51200,      51200,      160,      320, 0x72cfaabe
+0,      51360,      51360,      160,      320, 0x2e61b6ce
+0,      51520,      51520,      160,      320, 0x4813a091
+0,      51680,      51680,      160,      320, 0xbfe7bc0f
+0,      51840,      51840,      160,      320, 0x8c759c1f
+0,      52000,      52000,      160,      320, 0xf4c1c952
+0,      52160,      52160,      160,      320, 0x00fdaa79
+0,      52320,      52320,      160,      320, 0x2ffda252
+0,      52480,      52480,      160,      320, 0x841aa523
+0,      52640,      52640,      160,      320, 0x8c079e5e
+0,      52800,      52800,      160,      320, 0x96e9a83f
+0,      52960,      52960,      160,      320, 0x5926a639
+0,      53120,      53120,      160,      320, 0x02e1a07b
+0,      53280,      53280,      160,      320, 0x2972a999
+0,      53440,      53440,      160,      320, 0x30c89c62
+0,      53600,      53600,      160,      320, 0x83f5a263
+0,      53760,      53760,      160,      320, 0xa3909667
+0,      53920,      53920,      160,      320, 0xd5309fd4
+0,      54080,      54080,      160,      320, 0x3154a571
+0,      54240,      54240,      160,      320, 0x51039a5e
+0,      54400,      54400,      160,      320, 0xf167a344
+0,      54560,      54560,      160,      320, 0x8e709d7d
+0,      54720,      54720,      160,      320, 0x936fa0fd
+0,      54880,      54880,      160,      320, 0x024b9e3c
+0,      55040,      55040,      160,      320, 0x2ea1aa75
+0,      55200,      55200,      160,      320, 0x33f0a2bb
+0,      55360,      55360,      160,      320, 0xbf079d2d
+0,      55520,      55520,      160,      320, 0x847ba2c8
+0,      55680,      55680,      160,      320, 0x37e1a767
+0,      55840,      55840,      160,      320, 0xb607acbb
+0,      56000,      56000,      160,      320, 0x1288ac6d
+0,      56160,      56160,      160,      320, 0xf60e98b3
+0,      56320,      56320,      160,      320, 0xc6b5abdd
+0,      56480,      56480,      160,      320, 0x7feaa710
+0,      56640,      56640,      160,      320, 0x77329fcd
+0,      56800,      56800,      160,      320, 0x91a6a715
+0,      56960,      56960,      160,      320, 0xd0e99f24
+0,      57120,      57120,      160,      320, 0x07089f61
+0,      57280,      57280,      160,      320, 0x2bbda900
+0,      57440,      57440,      160,      320, 0xad3da0d5
+0,      57600,      57600,      160,      320, 0x997ba6d2
+0,      57760,      57760,      160,      320, 0xb15b9dcb
+0,      57920,      57920,      160,      320, 0x17cea82f
+0,      58080,      58080,      160,      320, 0xab51a73e
+0,      58240,      58240,      160,      320, 0x77a1abd6
+0,      58400,      58400,      160,      320, 0x0bddacad
+0,      58560,      58560,      160,      320, 0x43b3bdc4
+0,      58720,      58720,      160,      320, 0xefe0a9ba
+0,      58880,      58880,      160,      320, 0x8eb4bc2f
+0,      59040,      59040,      160,      320, 0x39cdc190
+0,      59200,      59200,      160,      320, 0x1ef3baff
+0,      59360,      59360,      160,      320, 0x1a6ab7e2
+0,      59520,      59520,      160,      320, 0x444ccc69
+0,      59680,      59680,      160,      320, 0x05ebb598
+0,      59840,      59840,      160,      320, 0x4ac5b0ad
+0,      60000,      60000,      160,      320, 0x0ee5ba52
+0,      60160,      60160,      160,      320, 0x501d9fa0
+0,      60320,      60320,      160,      320, 0x2038a9f4
+0,      60480,      60480,      160,      320, 0xa61cb8b3
+0,      60640,      60640,      160,      320, 0xdd009777
+0,      60800,      60800,      160,      320, 0x2a2db86d
+0,      60960,      60960,      160,      320, 0xe9bab3bc
+0,      61120,      61120,      160,      320, 0xf7f8a056
+0,      61280,      61280,      160,      320, 0x514caf14
+0,      61440,      61440,      160,      320, 0xa220b149
+0,      61600,      61600,      160,      320, 0xbf7ea183
+0,      61760,      61760,      160,      320, 0x1d8dc5c6
+0,      61920,      61920,      160,      320, 0x9182a8ea
+0,      62080,      62080,      160,      320, 0x31eba026
+0,      62240,      62240,      160,      320, 0xcfbcc3df
+0,      62400,      62400,      160,      320, 0x3d8cb7ae
+0,      62560,      62560,      160,      320, 0xbe39aec0
+0,      62720,      62720,      160,      320, 0xd236bf71
+0,      62880,      62880,      160,      320, 0x9377b0b2
+0,      63040,      63040,      160,      320, 0xb5e6b2df
+0,      63200,      63200,      160,      320, 0xa3b9bbce
+0,      63360,      63360,      160,      320, 0xa7bda251
+0,      63520,      63520,      160,      320, 0xbf9ab162
+0,      63680,      63680,      160,      320, 0x6928b9cb
+0,      63840,      63840,      160,      320, 0xf5cca209
+0,      64000,      64000,      160,      320, 0xfdf4afad
+0,      64160,      64160,      160,      320, 0xe7e7c216
+0,      64320,      64320,      160,      320, 0x0c5797c6
+0,      64480,      64480,      160,      320, 0x66c1a9ca
+0,      64640,      64640,      160,      320, 0x6b5ca48d
+0,      64800,      64800,      160,      320, 0xec04968a
+0,      64960,      64960,      160,      320, 0xaaada691
+0,      65120,      65120,      160,      320, 0x77c3a624
+0,      65280,      65280,      160,      320, 0xaed9a5d5
+0,      65440,      65440,      160,      320, 0x360fac41
+0,      65600,      65600,      160,      320, 0xa05ea727
+0,      65760,      65760,      160,      320, 0x9f7b9f83
+0,      65920,      65920,      160,      320, 0x474bc4c2
+0,      66080,      66080,      160,      320, 0xb6078d3b
+0,      66240,      66240,      160,      320, 0x8e15a8f9
+0,      66400,      66400,      160,      320, 0x7dc7d4a8
+0,      66560,      66560,      160,      320, 0x55ceab6b
+0,      66720,      66720,      160,      320, 0x982cc94f
+0,      66880,      66880,      160,      320, 0x6153948f
+0,      67040,      67040,      160,      320, 0x5338c621
+0,      67200,      67200,      160,      320, 0x2e2db6e8
+0,      67360,      67360,      160,      320, 0x28e3a9c3
+0,      67520,      67520,      160,      320, 0x74d7b435
+0,      67680,      67680,      160,      320, 0xcf17a10c
+0,      67840,      67840,      160,      320, 0xf1f9ac8c
+0,      68000,      68000,      160,      320, 0x35e0b480
+0,      68160,      68160,      160,      320, 0x5e60b3a4
+0,      68320,      68320,      160,      320, 0x20579b26
+0,      68480,      68480,      160,      320, 0x3e27b89b
+0,      68640,      68640,      160,      320, 0x02e4af94
+0,      68800,      68800,      160,      320, 0x6d6897f1
+0,      68960,      68960,      160,      320, 0x1582b267
+0,      69120,      69120,      160,      320, 0x33ba9eb3
+0,      69280,      69280,      160,      320, 0xb6acad7d
+0,      69440,      69440,      160,      320, 0x1969a6c2
+0,      69600,      69600,      160,      320, 0x363fa350
+0,      69760,      69760,      160,      320, 0xae50bf65
+0,      69920,      69920,      160,      320, 0x0877a50f
+0,      70080,      70080,      160,      320, 0x66e2a42f
+0,      70240,      70240,      160,      320, 0x0b0abcb3
+0,      70400,      70400,      160,      320, 0x23a9afaa
+0,      70560,      70560,      160,      320, 0xc3729b40
+0,      70720,      70720,      160,      320, 0xdd3fc7e2
+0,      70880,      70880,      160,      320, 0x7e0494af
+0,      71040,      71040,      160,      320, 0xcbd096fb
+0,      71200,      71200,      160,      320, 0x5d71b303
+0,      71360,      71360,      160,      320, 0xeedca04a
+0,      71520,      71520,      160,      320, 0x2836a47d
+0,      71680,      71680,      160,      320, 0x7237c2a0
+0,      71840,      71840,      160,      320, 0x7c009bc0
+0,      72000,      72000,      160,      320, 0xc9dcb366
+0,      72160,      72160,      160,      320, 0x4993aac8
+0,      72320,      72320,      160,      320, 0x05ec9954
+0,      72480,      72480,      160,      320, 0xa955bd5c
+0,      72640,      72640,      160,      320, 0x9018aea3
+0,      72800,      72800,      160,      320, 0x780cca52
+0,      72960,      72960,      160,      320, 0x9b8f95f6
+0,      73120,      73120,      160,      320, 0xcd7bb178
+0,      73280,      73280,      160,      320, 0xfec6b443
+0,      73440,      73440,      160,      320, 0xe214abb6
+0,      73600,      73600,      160,      320, 0xdcbebb38
+0,      73760,      73760,      160,      320, 0xe683a30d
+0,      73920,      73920,      160,      320, 0xe4cdb197
+0,      74080,      74080,      160,      320, 0xa426c432
+0,      74240,      74240,      160,      320, 0x761ba6cc
+0,      74400,      74400,      160,      320, 0xcc9aa6aa
+0,      74560,      74560,      160,      320, 0x742bd03d
+0,      74720,      74720,      160,      320, 0x61d9a511
+0,      74880,      74880,      160,      320, 0x3021a4dd
+0,      75040,      75040,      160,      320, 0x6970bbc0
+0,      75200,      75200,      160,      320, 0x76f5a037
+0,      75360,      75360,      160,      320, 0x758d91f2
+0,      75520,      75520,      160,      320, 0xe854a2f1
+0,      75680,      75680,      160,      320, 0xf994a6f8
+0,      75840,      75840,      160,      320, 0x31ebaf40
+0,      76000,      76000,      160,      320, 0x24699970
+0,      76160,      76160,      160,      320, 0x37dda53e
+0,      76320,      76320,      160,      320, 0xa857a752
+0,      76480,      76480,      160,      320, 0xc483ad1d
+0,      76640,      76640,      160,      320, 0x5966add9
+0,      76800,      76800,      160,      320, 0x4dbab89c
+0,      76960,      76960,      160,      320, 0x2f0bb0e6
+0,      77120,      77120,      160,      320, 0x913aaa88
+0,      77280,      77280,      160,      320, 0x245dc1c3
+0,      77440,      77440,      160,      320, 0xb085c5ad
+0,      77600,      77600,      160,      320, 0x9cf1b0fa
+0,      77760,      77760,      160,      320, 0x6887b543
+0,      77920,      77920,      160,      320, 0xcad69feb
+0,      78080,      78080,      160,      320, 0xc12a8ddb
+0,      78240,      78240,      160,      320, 0x01d1bc5a
+0,      78400,      78400,      160,      320, 0x3018b7e8
+0,      78560,      78560,      160,      320, 0x6431b0ef
+0,      78720,      78720,      160,      320, 0x3a53998e
+0,      78880,      78880,      160,      320, 0x1c80a6c6
+0,      79040,      79040,      160,      320, 0x6639adc5
+0,      79200,      79200,      160,      320, 0x92489f9a
+0,      79360,      79360,      160,      320, 0x8cafad00
+0,      79520,      79520,      160,      320, 0xca0392e1
+0,      79680,      79680,      160,      320, 0x30a9ae88
+0,      79840,      79840,      160,      320, 0xc54ca946
diff --git a/tests/ref/fate/h264-invalid-ref-mod b/tests/ref/fate/h264-invalid-ref-mod
index 09271fe..8c4af67 100644
--- a/tests/ref/fate/h264-invalid-ref-mod
+++ b/tests/ref/fate/h264-invalid-ref-mod
@@ -3,13 +3,13 @@ 
 #codec_id 0: rawvideo
 #dimensions 0: 1920x1080
 #sar 0: 1/1
-0,          1,          1,        1,  6220800, 0x89daa15e
-0,          2,          2,        1,  6220800, 0xcf52e254
-0,          3,          3,        1,  6220800, 0x91132c13
-0,          4,          4,        1,  6220800, 0x37b8be91
-0,          5,          5,        1,  6220800, 0x2b09bafa
-0,          6,          6,        1,  6220800, 0x06d79d8d
-0,          7,          7,        1,  6220800, 0x8e793c1d
-0,          8,          8,        1,  6220800, 0xea0fd885
-0,          9,          9,        1,  6220800, 0x7786a2ad
-0,         10,         10,        1,  6220800, 0xed4f9dd9
+0,          0,          0,        1,  6220800, 0x89daa15e
+0,          1,          1,        1,  6220800, 0xcf52e254
+0,          2,          2,        1,  6220800, 0x91132c13
+0,          3,          3,        1,  6220800, 0x37b8be91
+0,          4,          4,        1,  6220800, 0x2b09bafa
+0,          5,          5,        1,  6220800, 0x06d79d8d
+0,          6,          6,        1,  6220800, 0x8e793c1d
+0,          7,          7,        1,  6220800, 0xea0fd885
+0,          8,          8,        1,  6220800, 0x7786a2ad
+0,          9,          9,        1,  6220800, 0xed4f9dd9
\ No newline at end of file
diff --git a/tests/ref/fate/mov-1elist-1ctts b/tests/ref/fate/mov-1elist-1ctts
new file mode 100644
index 0000000..379d47a
--- /dev/null
+++ b/tests/ref/fate/mov-1elist-1ctts
@@ -0,0 +1,57 @@ 
+#format: frame checksums
+#version: 2
+#hash: MD5
+#tb 0: 1/24
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 640x480
+#sar 0: 0/1
+#stream#, dts,        pts, duration,     size, hash
+0,          0,          0,        1,   460800, 3dd21395fc5d3429f9b08492f47af093
+0,          1,          1,        1,   460800, 117009cceecc160c385dac3d344505c9
+0,          2,          2,        1,   460800, c093aa6e8747287cfeb758f2da7476d1
+0,          3,          3,        1,   460800, 6b7c94a3363f3381f7f930ac02b0c975
+0,          4,          4,        1,   460800, 87c3824a0ef3566f1a384c3c3e2b0d96
+0,          5,          5,        1,   460800, 3de48f3009a159e4737b5993102266de
+0,          6,          6,        1,   460800, 2be0ed1afe921093645af2ff917281ab
+0,          7,          7,        1,   460800, a89170c8413305fdba8d413a5080e57a
+0,          8,          8,        1,   460800, 5a3be131222c223ef8eccd9636330839
+0,          9,          9,        1,   460800, 01068b423526481b9732214c16b9e229
+0,         10,         10,        1,   460800, f9ea60560154e82d77e2661c34dca143
+0,         11,         11,        1,   460800, d77f5b82e34ea5a450076a85141a5618
+0,         12,         12,        1,   460800, 91ff4efcfc3a2301fb2329139e0e71a2
+0,         13,         13,        1,   460800, af8d914008f5f64f2ec1fadfae8bc697
+0,         14,         14,        1,   460800, abb2c4fd1f1ce3c449236da246b62bef
+0,         15,         15,        1,   460800, 66b0558f03dd5a472836fea045dd06ea
+0,         16,         16,        1,   460800, 224207d3e5b93fc4e8c71b782aabca51
+0,         17,         17,        1,   460800, ef975cfa7bc4de88f1333eb301f7ebdd
+0,         18,         18,        1,   460800, d75bf790003d2b1ee56bea0cef068e8e
+0,         19,         19,        1,   460800, d7a16935d7f808cca046db971e5b612a
+0,         20,         20,        1,   460800, f49d06ca4995c267fdc8c674c992cdd1
+0,         21,         21,        1,   460800, f53fd634154dec26ec85b6bef01ba890
+0,         22,         22,        1,   460800, d2d36371e50ace43ae4d2bab092a24c3
+0,         23,         23,        1,   460800, a4c08f4979e7dc914d69a170e198656c
+0,         24,         24,        1,   460800, 0d128e33f156fcc228d92117d56a5f93
+0,         25,         25,        1,   460800, 52fb8fc75c848ed9bc61d5129473f3fb
+0,         26,         26,        1,   460800, 5517f79d2ccb4fc93ede061bfcd632ea
+0,         27,         27,        1,   460800, c24fea9e8d02240328de3cb520904a6b
+0,         28,         28,        1,   460800, 0cbe46a4b91a0bd235d5e74084058e61
+0,         29,         29,        1,   460800, 355b17c2feb6b809c95bb71b333a670d
+0,         30,         30,        1,   460800, 063643ba941293ba95e024da202267cb
+0,         31,         31,        1,   460800, 8b31727d492fa9b25e025a1f45425b16
+0,         32,         32,        1,   460800, 45c5901c24d2ae2304b3e82c075a96bf
+0,         33,         33,        1,   460800, b7d4449d0e2157093727cb0f00648751
+0,         34,         34,        1,   460800, 167642e702f645853c974531853987f8
+0,         35,         35,        1,   460800, 2eb4596d675f099bab6c3b40ce30fd88
+0,         36,         36,        1,   460800, 8dd1aec35b92610cb22bedd3c54cb26a
+0,         37,         37,        1,   460800, 8eacf32e58d9a731467aba0f61d9e60f
+0,         38,         38,        1,   460800, 6a735f86d18ebe265894f633071a25d7
+0,         39,         39,        1,   460800, 843b0c938845b72e1c23bc39f7479cba
+0,         40,         40,        1,   460800, ca2099b43141cb9131505ab40ac3959f
+0,         41,         41,        1,   460800, e65322e1929def11f9985683365ab6bf
+0,         42,         42,        1,   460800, 565410a8c2f4b50a192f9590e6ab32c0
+0,         43,         43,        1,   460800, fa9a8ac625854cc279a07766ddad6e6f
+0,         44,         44,        1,   460800, a46ac62886c48edef3dc58de34a2a004
+0,         45,         45,        1,   460800, 414e01b6c24e71efc9c58f65dc0f4aca
+0,         46,         46,        1,   460800, e0501b903f21b490da049e51e7a02bae
+0,         47,         47,        1,   460800, 48b30eec1e9d862ee54b136045e1d90f
diff --git a/tests/ref/fate/mov-1elist-ends-last-bframe b/tests/ref/fate/mov-1elist-ends-last-bframe
new file mode 100644
index 0000000..4f8f1ae
--- /dev/null
+++ b/tests/ref/fate/mov-1elist-ends-last-bframe
@@ -0,0 +1,56 @@ 
+#format: frame checksums
+#version: 2
+#hash: MD5
+#tb 0: 1/24
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 640x480
+#sar 0: 0/1
+#stream#, dts,        pts, duration,     size, hash
+0,          0,          0,        1,   460800, b3d774603a22dbf9e952465c0d295166
+0,          1,          1,        1,   460800, d8f88e4269888dfadeb15bec662a3851
+0,          2,          2,        1,   460800, 6d6e686070143f797f8f1eca43d9cf28
+0,          3,          3,        1,   460800, a934f883968e71f22df044f043e61b14
+0,          4,          4,        1,   460800, 83dc65c7703f43ce97c87eea7191f69e
+0,          5,          5,        1,   460800, d633ab0dba64277b104ff5c2e1983424
+0,          6,          6,        1,   460800, 6c7d2c7481bd11584d68dbb9262d8351
+0,          7,          7,        1,   460800, 59b0bbc661b79ba82d726ca4d28255f2
+0,          8,          8,        1,   460800, 821cd7ca0adc4d6a3f10419b6c4283a6
+0,          9,          9,        1,   460800, 4655b1d6e8237b2e880f5b4140f7cf08
+0,         10,         10,        1,   460800, 264858653f9ac0623ffc87ca5e4c9939
+0,         11,         11,        1,   460800, b7129e91b9a6b4f8582747f12cafa52e
+0,         12,         12,        1,   460800, 1f6596fba655e213fd5c2ea99a891138
+0,         13,         13,        1,   460800, c8d67dc8fa8bdca263060ae542e55278
+0,         14,         14,        1,   460800, 57aa680b64b140eaeaa7f4250c12b59e
+0,         15,         15,        1,   460800, b87e8a9c0701cd8811dd38292b9994f7
+0,         16,         16,        1,   460800, 2427eb2900c8e18da0f36e47799a5ed8
+0,         17,         17,        1,   460800, 710a727a7ba51bc2938ca83376c6edd6
+0,         18,         18,        1,   460800, 44d5ce80804d9ca470f9e5348c66e9b3
+0,         19,         19,        1,   460800, 448e1fc3af42c4143e5fc4120090cdd6
+0,         20,         20,        1,   460800, 7c2c4c61843cfdd033b8fa295766a524
+0,         21,         21,        1,   460800, 20a197cb4e20857e135d4c10945987f6
+0,         22,         22,        1,   460800, 7534b00e60f6920da7b767aef0876e65
+0,         23,         23,        1,   460800, b88cedb84145f07226d5573aa57a1cce
+0,         24,         24,        1,   460800, 620751271985df3728b6dbc627974183
+0,         25,         25,        1,   460800, 643719b26ac93f93d1674fee97c58a35
+0,         26,         26,        1,   460800, 5d3f8fa9abab0256afbf4285cd337804
+0,         27,         27,        1,   460800, a6c302c54c6481088f9c27189ecda5a8
+0,         28,         28,        1,   460800, 2851ad86c15a1dc7b6d4a0fe8f15de8f
+0,         29,         29,        1,   460800, 42157005018908c810b1840856778482
+0,         30,         30,        1,   460800, 2541042038568329922fd6f7187aad49
+0,         31,         31,        1,   460800, 855b9ecfa9da66ef5971fcea7e515890
+0,         32,         32,        1,   460800, 85df610183efce5de91946cb909019c9
+0,         33,         33,        1,   460800, 369bce83d8aa0ac3cfb853b7e2886896
+0,         34,         34,        1,   460800, b428e7b294e5ac0d316971e02a25b12a
+0,         35,         35,        1,   460800, aa66321995b890e8dbd0d7b188ecb19c
+0,         36,         36,        1,   460800, 1533e3c85fd9d1f6710442653b936ef0
+0,         37,         37,        1,   460800, 99f3d38c95f1e4c0b442007a466f77cb
+0,         38,         38,        1,   460800, 30e007d8a4c0f0cfa22c8b6051980b59
+0,         39,         39,        1,   460800, fef21426b54048af617211234ee9b602
+0,         40,         40,        1,   460800, ff9a482c793a8e9950c0aa7e2845ca0e
+0,         41,         41,        1,   460800, ac0bb586786c35a51bdb6a5514ff54b9
+0,         42,         42,        1,   460800, bb008ec74fe642d6350bb1b4c922a6b0
+0,         43,         43,        1,   460800, 3e4255d1e817b9c6fa2cfbb0f198069d
+0,         44,         44,        1,   460800, 0fe04242f0441fa5c90e69ca015f4b2d
+0,         45,         45,        1,   460800, f14c12ec008a56c9aa99ef1be857ad23
+0,         46,         46,        1,   460800, 43ac558397b699ac82f7e12810c7ade9
diff --git a/tests/ref/fate/mov-1elist-noctts b/tests/ref/fate/mov-1elist-noctts
new file mode 100644
index 0000000..379d47a
--- /dev/null
+++ b/tests/ref/fate/mov-1elist-noctts
@@ -0,0 +1,57 @@ 
+#format: frame checksums
+#version: 2
+#hash: MD5
+#tb 0: 1/24
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 640x480
+#sar 0: 0/1
+#stream#, dts,        pts, duration,     size, hash
+0,          0,          0,        1,   460800, 3dd21395fc5d3429f9b08492f47af093
+0,          1,          1,        1,   460800, 117009cceecc160c385dac3d344505c9
+0,          2,          2,        1,   460800, c093aa6e8747287cfeb758f2da7476d1
+0,          3,          3,        1,   460800, 6b7c94a3363f3381f7f930ac02b0c975
+0,          4,          4,        1,   460800, 87c3824a0ef3566f1a384c3c3e2b0d96
+0,          5,          5,        1,   460800, 3de48f3009a159e4737b5993102266de
+0,          6,          6,        1,   460800, 2be0ed1afe921093645af2ff917281ab
+0,          7,          7,        1,   460800, a89170c8413305fdba8d413a5080e57a
+0,          8,          8,        1,   460800, 5a3be131222c223ef8eccd9636330839
+0,          9,          9,        1,   460800, 01068b423526481b9732214c16b9e229
+0,         10,         10,        1,   460800, f9ea60560154e82d77e2661c34dca143
+0,         11,         11,        1,   460800, d77f5b82e34ea5a450076a85141a5618
+0,         12,         12,        1,   460800, 91ff4efcfc3a2301fb2329139e0e71a2
+0,         13,         13,        1,   460800, af8d914008f5f64f2ec1fadfae8bc697
+0,         14,         14,        1,   460800, abb2c4fd1f1ce3c449236da246b62bef
+0,         15,         15,        1,   460800, 66b0558f03dd5a472836fea045dd06ea
+0,         16,         16,        1,   460800, 224207d3e5b93fc4e8c71b782aabca51
+0,         17,         17,        1,   460800, ef975cfa7bc4de88f1333eb301f7ebdd
+0,         18,         18,        1,   460800, d75bf790003d2b1ee56bea0cef068e8e
+0,         19,         19,        1,   460800, d7a16935d7f808cca046db971e5b612a
+0,         20,         20,        1,   460800, f49d06ca4995c267fdc8c674c992cdd1
+0,         21,         21,        1,   460800, f53fd634154dec26ec85b6bef01ba890
+0,         22,         22,        1,   460800, d2d36371e50ace43ae4d2bab092a24c3
+0,         23,         23,        1,   460800, a4c08f4979e7dc914d69a170e198656c
+0,         24,         24,        1,   460800, 0d128e33f156fcc228d92117d56a5f93
+0,         25,         25,        1,   460800, 52fb8fc75c848ed9bc61d5129473f3fb
+0,         26,         26,        1,   460800, 5517f79d2ccb4fc93ede061bfcd632ea
+0,         27,         27,        1,   460800, c24fea9e8d02240328de3cb520904a6b
+0,         28,         28,        1,   460800, 0cbe46a4b91a0bd235d5e74084058e61
+0,         29,         29,        1,   460800, 355b17c2feb6b809c95bb71b333a670d
+0,         30,         30,        1,   460800, 063643ba941293ba95e024da202267cb
+0,         31,         31,        1,   460800, 8b31727d492fa9b25e025a1f45425b16
+0,         32,         32,        1,   460800, 45c5901c24d2ae2304b3e82c075a96bf
+0,         33,         33,        1,   460800, b7d4449d0e2157093727cb0f00648751
+0,         34,         34,        1,   460800, 167642e702f645853c974531853987f8
+0,         35,         35,        1,   460800, 2eb4596d675f099bab6c3b40ce30fd88
+0,         36,         36,        1,   460800, 8dd1aec35b92610cb22bedd3c54cb26a
+0,         37,         37,        1,   460800, 8eacf32e58d9a731467aba0f61d9e60f
+0,         38,         38,        1,   460800, 6a735f86d18ebe265894f633071a25d7
+0,         39,         39,        1,   460800, 843b0c938845b72e1c23bc39f7479cba
+0,         40,         40,        1,   460800, ca2099b43141cb9131505ab40ac3959f
+0,         41,         41,        1,   460800, e65322e1929def11f9985683365ab6bf
+0,         42,         42,        1,   460800, 565410a8c2f4b50a192f9590e6ab32c0
+0,         43,         43,        1,   460800, fa9a8ac625854cc279a07766ddad6e6f
+0,         44,         44,        1,   460800, a46ac62886c48edef3dc58de34a2a004
+0,         45,         45,        1,   460800, 414e01b6c24e71efc9c58f65dc0f4aca
+0,         46,         46,        1,   460800, e0501b903f21b490da049e51e7a02bae
+0,         47,         47,        1,   460800, 48b30eec1e9d862ee54b136045e1d90f
diff --git a/tests/ref/fate/mov-2elist-elist1-ends-bframe b/tests/ref/fate/mov-2elist-elist1-ends-bframe
new file mode 100644
index 0000000..76296ca
--- /dev/null
+++ b/tests/ref/fate/mov-2elist-elist1-ends-bframe
@@ -0,0 +1,51 @@ 
+#format: frame checksums
+#version: 2
+#hash: MD5
+#tb 0: 1/24
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 640x480
+#sar 0: 0/1
+#stream#, dts,        pts, duration,     size, hash
+0,          0,          0,        1,   460800, b3d774603a22dbf9e952465c0d295166
+0,          1,          1,        1,   460800, d8f88e4269888dfadeb15bec662a3851
+0,          2,          2,        1,   460800, 6d6e686070143f797f8f1eca43d9cf28
+0,          3,          3,        1,   460800, a934f883968e71f22df044f043e61b14
+0,          4,          4,        1,   460800, 83dc65c7703f43ce97c87eea7191f69e
+0,          5,          5,        1,   460800, d633ab0dba64277b104ff5c2e1983424
+0,          6,          6,        1,   460800, 6c7d2c7481bd11584d68dbb9262d8351
+0,          7,          7,        1,   460800, 59b0bbc661b79ba82d726ca4d28255f2
+0,          8,          8,        1,   460800, 821cd7ca0adc4d6a3f10419b6c4283a6
+0,          9,          9,        1,   460800, 4655b1d6e8237b2e880f5b4140f7cf08
+0,         10,         10,        1,   460800, 264858653f9ac0623ffc87ca5e4c9939
+0,         11,         11,        1,   460800, b7129e91b9a6b4f8582747f12cafa52e
+0,         12,         12,        1,   460800, 1f6596fba655e213fd5c2ea99a891138
+0,         13,         13,        1,   460800, c8d67dc8fa8bdca263060ae542e55278
+0,         14,         14,        1,   460800, 57aa680b64b140eaeaa7f4250c12b59e
+0,         15,         15,        1,   460800, b87e8a9c0701cd8811dd38292b9994f7
+0,         16,         16,        1,   460800, 2427eb2900c8e18da0f36e47799a5ed8
+0,         17,         17,        1,   460800, 710a727a7ba51bc2938ca83376c6edd6
+0,         18,         18,        1,   460800, 620751271985df3728b6dbc627974183
+0,         19,         19,        1,   460800, 643719b26ac93f93d1674fee97c58a35
+0,         20,         20,        1,   460800, 5d3f8fa9abab0256afbf4285cd337804
+0,         21,         21,        1,   460800, a6c302c54c6481088f9c27189ecda5a8
+0,         22,         22,        1,   460800, 2851ad86c15a1dc7b6d4a0fe8f15de8f
+0,         23,         23,        1,   460800, 42157005018908c810b1840856778482
+0,         24,         24,        1,   460800, 2541042038568329922fd6f7187aad49
+0,         25,         25,        1,   460800, 855b9ecfa9da66ef5971fcea7e515890
+0,         26,         26,        1,   460800, 85df610183efce5de91946cb909019c9
+0,         27,         27,        1,   460800, 369bce83d8aa0ac3cfb853b7e2886896
+0,         28,         28,        1,   460800, b428e7b294e5ac0d316971e02a25b12a
+0,         29,         29,        1,   460800, aa66321995b890e8dbd0d7b188ecb19c
+0,         30,         30,        1,   460800, 1533e3c85fd9d1f6710442653b936ef0
+0,         31,         31,        1,   460800, 99f3d38c95f1e4c0b442007a466f77cb
+0,         32,         32,        1,   460800, 30e007d8a4c0f0cfa22c8b6051980b59
+0,         33,         33,        1,   460800, fef21426b54048af617211234ee9b602
+0,         34,         34,        1,   460800, ff9a482c793a8e9950c0aa7e2845ca0e
+0,         35,         35,        1,   460800, ac0bb586786c35a51bdb6a5514ff54b9
+0,         36,         36,        1,   460800, bb008ec74fe642d6350bb1b4c922a6b0
+0,         37,         37,        1,   460800, 3e4255d1e817b9c6fa2cfbb0f198069d
+0,         38,         38,        1,   460800, 0fe04242f0441fa5c90e69ca015f4b2d
+0,         39,         39,        1,   460800, f14c12ec008a56c9aa99ef1be857ad23
+0,         40,         40,        1,   460800, 43ac558397b699ac82f7e12810c7ade9
+0,         41,         41,        1,   460800, 35431eb1a8be4f05d08d23380655178c
diff --git a/tests/ref/fate/mov-3elist b/tests/ref/fate/mov-3elist
new file mode 100644
index 0000000..daf4927
--- /dev/null
+++ b/tests/ref/fate/mov-3elist
@@ -0,0 +1,57 @@ 
+#format: frame checksums
+#version: 2
+#hash: MD5
+#tb 0: 1/24
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 640x480
+#sar 0: 0/1
+#stream#, dts,        pts, duration,     size, hash
+0,          0,          0,        1,   460800, 80fbbdec589e15e6c493b44d243f92a9
+0,          1,          1,        1,   460800, f4b23293bb2ecf69cc3570853d8c56a1
+0,          2,          2,        1,   460800, 0c03ce2c1c6ec405d7455465ecd559a3
+0,          3,          3,        1,   460800, 7921791695537fba2c3c123da4834cb9
+0,          4,          4,        1,   460800, 30c8e2903a561b84d4cbaf95c668d236
+0,          5,          5,        1,   460800, 7ff42e998217c17592ddf6b584f26cef
+0,          6,          6,        1,   460800, 5e402c48bf097db2d31b82bb4194a382
+0,          7,          7,        1,   460800, 824c49e92c8ae6d99a0207b514dd756c
+0,          8,          8,        1,   460800, 24f189216a1d9cf2313b2d6dbe3dbdd3
+0,          9,          9,        1,   460800, 519179a8e74275d26b183374637e003f
+0,         10,         10,        1,   460800, f18331ddcef0adf5b069bfa98baf8db4
+0,         11,         11,        1,   460800, 081f61688690d47dbdddd5384e5d5a70
+0,         12,         12,        1,   460800, 90dbf019b9035433371a8df41a9268b7
+0,         13,         13,        1,   460800, bb5adfb9c66732898b34186eca1667ba
+0,         14,         14,        1,   460800, cc08cfd64f37783ecddaf143f6ad78bc
+0,         15,         15,        1,   460800, b8ae21d024fe4df903d56f4521993c72
+0,         16,         16,        1,   460800, b45a99907f045dcadf0a2befc11555e3
+0,         17,         17,        1,   460800, 603ba935845e65ab6cccbbec88bbf60d
+0,         18,         18,        1,   460800, df80c8d3e6a77258a306903f17995a18
+0,         19,         19,        1,   460800, 4b7e90c0a5fd0e0cd958d47f0afac636
+0,         20,         20,        1,   460800, 9feb6e36182f1745be6387edea240eb6
+0,         21,         21,        1,   460800, 86e6de4bd0a5ff7558f4cf6c1ec3930d
+0,         22,         22,        1,   460800, 726b69df77edbe7b503d4698656d1320
+0,         23,         23,        1,   460800, d282fb7a953ac205b0a43d00c2d60a33
+0,         24,         24,        1,   460800, eece3daa70cc20208dd75d91ac84c8fd
+0,         25,         25,        1,   460800, c86d23e73bcce351fc315fb1f13348da
+0,         26,         26,        1,   460800, 93497b4f7c5ad9d61212239b7c9d2770
+0,         27,         27,        1,   460800, eb217d2c12de67903835a8c58f620488
+0,         28,         28,        1,   460800, d966480867bb54c8cd044f18388ed486
+0,         29,         29,        1,   460800, 3ea6207942b3181fdd8e8aa6cae1062a
+0,         30,         30,        1,   460800, 2620df54aca086ec0fb9527c6e6f5135
+0,         31,         31,        1,   460800, 43bb7320f0bb583188dc965ddbfade90
+0,         32,         32,        1,   460800, 0cddaa04645f804e02f65b0836412113
+0,         33,         33,        1,   460800, 83b2dc95807289d7f4a4632bf18c2e97
+0,         34,         34,        1,   460800, 98134d0e41e6dd12827049ccf33b4669
+0,         35,         35,        1,   460800, 56f55631731fa39c7acbab0afeb2eb1b
+0,         36,         36,        1,   460800, 379c1105be09d836a515dc909455ddf4
+0,         37,         37,        1,   460800, 1df87c47e9d98731faf1c3885b77e5da
+0,         38,         38,        1,   460800, 9a8734bcbfdb4d97e530683b8b556a26
+0,         39,         39,        1,   460800, c7a7990d0cddc5adfbe27da7a42e025e
+0,         40,         40,        1,   460800, 0c81e46011e03be410feaf056207fd55
+0,         41,         41,        1,   460800, ca76e4e63016ff29d8aeeb9cb053bb6c
+0,         42,         42,        1,   460800, cebfbe299c17c1f8fc1e6b189555c3c2
+0,         43,         43,        1,   460800, 4f002c5feca5e75f07089e0df47507dd
+0,         44,         44,        1,   460800, c5fd83fc4a745abee9b3d9a6eec9dd3e
+0,         45,         45,        1,   460800, 57d9bad9b45aa2746de5d8bdc2c24969
+0,         46,         46,        1,   460800, 9831673ad7dec167af4a959f64258949
+0,         47,         47,        1,   460800, 77a1cb208f70f51bcb01e28d8cba73b4
diff --git a/tests/ref/fate/mov-3elist-1ctts b/tests/ref/fate/mov-3elist-1ctts
new file mode 100644
index 0000000..379d47a
--- /dev/null
+++ b/tests/ref/fate/mov-3elist-1ctts
@@ -0,0 +1,57 @@ 
+#format: frame checksums
+#version: 2
+#hash: MD5
+#tb 0: 1/24
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 640x480
+#sar 0: 0/1
+#stream#, dts,        pts, duration,     size, hash
+0,          0,          0,        1,   460800, 3dd21395fc5d3429f9b08492f47af093
+0,          1,          1,        1,   460800, 117009cceecc160c385dac3d344505c9
+0,          2,          2,        1,   460800, c093aa6e8747287cfeb758f2da7476d1
+0,          3,          3,        1,   460800, 6b7c94a3363f3381f7f930ac02b0c975
+0,          4,          4,        1,   460800, 87c3824a0ef3566f1a384c3c3e2b0d96
+0,          5,          5,        1,   460800, 3de48f3009a159e4737b5993102266de
+0,          6,          6,        1,   460800, 2be0ed1afe921093645af2ff917281ab
+0,          7,          7,        1,   460800, a89170c8413305fdba8d413a5080e57a
+0,          8,          8,        1,   460800, 5a3be131222c223ef8eccd9636330839
+0,          9,          9,        1,   460800, 01068b423526481b9732214c16b9e229
+0,         10,         10,        1,   460800, f9ea60560154e82d77e2661c34dca143
+0,         11,         11,        1,   460800, d77f5b82e34ea5a450076a85141a5618
+0,         12,         12,        1,   460800, 91ff4efcfc3a2301fb2329139e0e71a2
+0,         13,         13,        1,   460800, af8d914008f5f64f2ec1fadfae8bc697
+0,         14,         14,        1,   460800, abb2c4fd1f1ce3c449236da246b62bef
+0,         15,         15,        1,   460800, 66b0558f03dd5a472836fea045dd06ea
+0,         16,         16,        1,   460800, 224207d3e5b93fc4e8c71b782aabca51
+0,         17,         17,        1,   460800, ef975cfa7bc4de88f1333eb301f7ebdd
+0,         18,         18,        1,   460800, d75bf790003d2b1ee56bea0cef068e8e
+0,         19,         19,        1,   460800, d7a16935d7f808cca046db971e5b612a
+0,         20,         20,        1,   460800, f49d06ca4995c267fdc8c674c992cdd1
+0,         21,         21,        1,   460800, f53fd634154dec26ec85b6bef01ba890
+0,         22,         22,        1,   460800, d2d36371e50ace43ae4d2bab092a24c3
+0,         23,         23,        1,   460800, a4c08f4979e7dc914d69a170e198656c
+0,         24,         24,        1,   460800, 0d128e33f156fcc228d92117d56a5f93
+0,         25,         25,        1,   460800, 52fb8fc75c848ed9bc61d5129473f3fb
+0,         26,         26,        1,   460800, 5517f79d2ccb4fc93ede061bfcd632ea
+0,         27,         27,        1,   460800, c24fea9e8d02240328de3cb520904a6b
+0,         28,         28,        1,   460800, 0cbe46a4b91a0bd235d5e74084058e61
+0,         29,         29,        1,   460800, 355b17c2feb6b809c95bb71b333a670d
+0,         30,         30,        1,   460800, 063643ba941293ba95e024da202267cb
+0,         31,         31,        1,   460800, 8b31727d492fa9b25e025a1f45425b16
+0,         32,         32,        1,   460800, 45c5901c24d2ae2304b3e82c075a96bf
+0,         33,         33,        1,   460800, b7d4449d0e2157093727cb0f00648751
+0,         34,         34,        1,   460800, 167642e702f645853c974531853987f8
+0,         35,         35,        1,   460800, 2eb4596d675f099bab6c3b40ce30fd88
+0,         36,         36,        1,   460800, 8dd1aec35b92610cb22bedd3c54cb26a
+0,         37,         37,        1,   460800, 8eacf32e58d9a731467aba0f61d9e60f
+0,         38,         38,        1,   460800, 6a735f86d18ebe265894f633071a25d7
+0,         39,         39,        1,   460800, 843b0c938845b72e1c23bc39f7479cba
+0,         40,         40,        1,   460800, ca2099b43141cb9131505ab40ac3959f
+0,         41,         41,        1,   460800, e65322e1929def11f9985683365ab6bf
+0,         42,         42,        1,   460800, 565410a8c2f4b50a192f9590e6ab32c0
+0,         43,         43,        1,   460800, fa9a8ac625854cc279a07766ddad6e6f
+0,         44,         44,        1,   460800, a46ac62886c48edef3dc58de34a2a004
+0,         45,         45,        1,   460800, 414e01b6c24e71efc9c58f65dc0f4aca
+0,         46,         46,        1,   460800, e0501b903f21b490da049e51e7a02bae
+0,         47,         47,        1,   460800, 48b30eec1e9d862ee54b136045e1d90f
diff --git a/tests/ref/fate/mov-elist-starts-ctts-2ndsample b/tests/ref/fate/mov-elist-starts-ctts-2ndsample
new file mode 100644
index 0000000..1287a40
--- /dev/null
+++ b/tests/ref/fate/mov-elist-starts-ctts-2ndsample
@@ -0,0 +1,57 @@ 
+#format: frame checksums
+#version: 2
+#hash: MD5
+#tb 0: 1/24
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 640x480
+#sar 0: 0/1
+#stream#, dts,        pts, duration,     size, hash
+0,          0,          0,        1,   460800, e2ec4074e83dd4f9188915b6b08aa3a2
+0,          1,          1,        1,   460800, 9ed1ba935bc22ef03e6f8fd5b0b37ee6
+0,          2,          2,        1,   460800, 3f1c536514750de86571122046b5858f
+0,          3,          3,        1,   460800, 4f7943cb6f7966d19d344081b0db0d71
+0,          4,          4,        1,   460800, 0661f34eb45398f8cd158b5a1637bd96
+0,          5,          5,        1,   460800, 177620fa17c4d6fddad1d31c1605e46e
+0,          6,          6,        1,   460800, 8e22cde58a50e0279be01c23dfd7c032
+0,          7,          7,        1,   460800, 8c74c4d8ceee929fded82eeb7a0a7c29
+0,          8,          8,        1,   460800, a50d00a8868f0722be55fa5953bc6ebf
+0,          9,          9,        1,   460800, f791233c8904da4e267bf7bcf5d6201e
+0,         10,         10,        1,   460800, 4ff703ef573eb8e88639d3c700645bf8
+0,         11,         11,        1,   460800, fd4c98487779aa7783e9fb3e874f9c8b
+0,         12,         12,        1,   460800, e11fbc6c36ad086ea6e611ddd28b211c
+0,         13,         13,        1,   460800, a63b8af666ee30a243cf9ea0d49834b5
+0,         14,         14,        1,   460800, 1cec6499bfaf054bf581efdab72f5799
+0,         15,         15,        1,   460800, 5cb8ea5a7158cac1112fc6453b2a577f
+0,         16,         16,        1,   460800, 2df256cb311f97f4648cdeee41ba20d1
+0,         17,         17,        1,   460800, afb2c133204a99fe434767340f50c2b9
+0,         18,         18,        1,   460800, 27c802932fa873af8663a6b8733391d7
+0,         19,         19,        1,   460800, c53872c43baf56d496811d2809ebcd9b
+0,         20,         20,        1,   460800, d3ca26ecb6bec6bfa508f07e2a66fa3a
+0,         21,         21,        1,   460800, 2d44e18ccf734fe0ed98a7ce1e361fe7
+0,         22,         22,        1,   460800, ac4078b5426e4664029923ccf6ea3377
+0,         23,         23,        1,   460800, 60d4460a8b97e58e72c12d0c7334b4e4
+0,         24,         24,        1,   460800, 95bceab68b4ecf5df261ff9d3743041a
+0,         25,         25,        1,   460800, 0b80ad5bf2afbfbe512b83af797afd84
+0,         26,         26,        1,   460800, fbc70468f9331a0538e8c09ec3ead20e
+0,         27,         27,        1,   460800, de0578b4a114235250b7e93e9f9bf6de
+0,         28,         28,        1,   460800, 72f50490650b718e394822f8873ad071
+0,         29,         29,        1,   460800, b26594051d313892823eef711a08dc00
+0,         30,         30,        1,   460800, 1122641658f6b433e82080e092fe6943
+0,         31,         31,        1,   460800, aae4ddc51bcbdf9428f68069f5881090
+0,         32,         32,        1,   460800, 018047addf7fd2ef4f1d231d69187bf5
+0,         33,         33,        1,   460800, bd03ace29c974b64e2a7a4cc815ec582
+0,         34,         34,        1,   460800, 7fddacb17f01d8facfb09df44ff8bdfd
+0,         35,         35,        1,   460800, e8d84d6b3406404900b8342183f6ada7
+0,         36,         36,        1,   460800, 5b24faed4fdd21bf9a1218658a113009
+0,         37,         37,        1,   460800, 8d82775c56b6b0ab31db0c522999b0a1
+0,         38,         38,        1,   460800, 282e5e03295c80b2a7b472b82c57483d
+0,         39,         39,        1,   460800, 0ad41f5975c2466fc3166ea20bde6842
+0,         40,         40,        1,   460800, 1439ad336ceafda0ad62355a7d0b6e50
+0,         41,         41,        1,   460800, d3a97471ad64ac2378591d4f6eadba1c
+0,         42,         42,        1,   460800, a40c32a1e589b103f639f2068b71bf02
+0,         43,         43,        1,   460800, a339b2bedc7ef46961f8502089abfb87
+0,         44,         44,        1,   460800, 2ccde43c94259682ea72188b08489e92
+0,         45,         45,        1,   460800, fc47cca1f029d44ec92d95853e9c46b4
+0,         46,         46,        1,   460800, 6c4d3b63dc1d4291ec88a4bb8c35aecd
+0,         47,         47,        1,   460800, 7a9be67aca439dd2a7ff17447b478974
diff --git a/tests/ref/fate/pcm_s16be-stereo b/tests/ref/fate/pcm_s16be-stereo
index 2500ba2..6d29a67 100644
--- a/tests/ref/fate/pcm_s16be-stereo
+++ b/tests/ref/fate/pcm_s16be-stereo
@@ -1 +1 @@ 
-f0c0fd7615cdef66fa72f5816632ca9b
+759cf5d12a4b2fb653e61f5219331f14
diff --git a/tests/ref/fate/quickdraw b/tests/ref/fate/quickdraw
index c3bb0a5..5746929 100644
--- a/tests/ref/fate/quickdraw
+++ b/tests/ref/fate/quickdraw
@@ -4,4 +4,14 @@ 
 #dimensions 0: 640x480
 #sar 0: 0/1
 0,          0,          0,        1,   921600, 0xc0e68764
-0,          2,          2,        1,   921600, 0x01a16629
+0,          1,          1,        1,   921600, 0xc0e68764
+0,          2,          2,        1,   921600, 0xc0e68764
+0,          3,          3,        1,   921600, 0xc0e68764
+0,          4,          4,        1,   921600, 0xc0e68764
+0,          5,          5,        1,   921600, 0xc0e68764
+0,          7,          7,        1,   921600, 0x01a16629
+0,          9,          9,        1,   921600, 0x01a16629
+0,         10,         10,        1,   921600, 0x01a16629
+0,         11,         11,        1,   921600, 0x01a16629
+0,         12,         12,        1,   921600, 0x01a16629
+0,         13,         13,        1,   921600, 0x01a16629
diff --git a/tests/ref/fate/tscc2-mov b/tests/ref/fate/tscc2-mov
index 8714a87..679f5bb 100644
--- a/tests/ref/fate/tscc2-mov
+++ b/tests/ref/fate/tscc2-mov
@@ -3,18 +3,8 @@ 
 #codec_id 0: rawvideo
 #dimensions 0: 892x441
 #sar 0: 0/1
-0,          0,          0,        1,  1180116, 0x01d01336
-0,          1,          1,        1,  1180116, 0x01d01336
-0,          2,          2,        1,  1180116, 0x01d01336
-0,          3,          3,        1,  1180116, 0x01d01336
-0,          4,          4,        1,  1180116, 0x01d01336
-0,          5,          5,        1,  1180116, 0x01d01336
-0,          6,          6,        1,  1180116, 0x01d01336
-0,          7,          7,        1,  1180116, 0x01d01336
-0,          8,          8,        1,  1180116, 0x01d01336
-0,          9,          9,        1,  1180116, 0x01d01336
-0,         10,         10,        1,  1180116, 0x056fdadd
-0,         11,         11,        1,  1180116, 0x6f73e080
-0,         12,         12,        1,  1180116, 0x5244d9e5
-0,         13,         13,        1,  1180116, 0x629bf10f
-0,         14,         14,        1,  1180116, 0x97c726cb
+0,          0,          0,        1,  1180116, 0x056fdadd
+0,          1,          1,        1,  1180116, 0x6f73e080
+0,          2,          2,        1,  1180116, 0x5244d9e5
+0,          3,          3,        1,  1180116, 0x629bf10f
+0,          4,          4,        1,  1180116, 0x97c726cb
diff --git a/tests/ref/lavf-fate/mov_qtrle_mace6 b/tests/ref/lavf-fate/mov_qtrle_mace6
index b6ecea5..30c705e 100644
--- a/tests/ref/lavf-fate/mov_qtrle_mace6
+++ b/tests/ref/lavf-fate/mov_qtrle_mace6
@@ -1,3 +1,3 @@ 
-db3e70328340fcb3cd0e06c215fadaa3 *./tests/data/lavf-fate/lavf.mov
+dcc9c4c182a5809dee9a9366f4533797 *./tests/data/lavf-fate/lavf.mov
 1270387 ./tests/data/lavf-fate/lavf.mov
 ./tests/data/lavf-fate/lavf.mov CRC=0x5ec66f68
-- 
2.8.0.rc3.226.g39d4020