diff mbox series

[FFmpeg-devel,v1] fftools/ffmpeg: set AV_PKT_FLAG_KEY for the subtitle packet

Message ID 20200320151532.778-1-lance.lmwang@gmail.com
State Superseded
Headers show
Series [FFmpeg-devel,v1] fftools/ffmpeg: set AV_PKT_FLAG_KEY for the subtitle packet | expand

Checks

Context Check Description
andriy/ffmpeg-patchwork success Make fate finished

Commit Message

Lance Wang March 20, 2020, 3:15 p.m. UTC
From: Limin Wang <lance.lmwang@gmail.com>

This fixes webvtt segment output.

Please testing with the following command and check the output:
./ffmpeg -i ../fate-suite/sub/MicroDVD_capability_tester.srt -f segment -segment_time 10 \
    -segment_list_size 0  -segment_list sub.m3u8 -segment_format webvtt -scodec webvtt sub-%d.vtt


Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
---
 fftools/ffmpeg.c                 |  1 +
 tests/ref/fate/binsub-movtextenc |  2 +-
 tests/ref/fate/sub2video         | 86 ++++++++++++++++----------------
 3 files changed, 45 insertions(+), 44 deletions(-)

Comments

Jan Ekström March 20, 2020, 4:03 p.m. UTC | #1
On Fri, Mar 20, 2020 at 5:45 PM <lance.lmwang@gmail.com> wrote:
>
> From: Limin Wang <lance.lmwang@gmail.com>
>
> This fixes webvtt segment output.
>
> Please testing with the following command and check the output:
> ./ffmpeg -i ../fate-suite/sub/MicroDVD_capability_tester.srt -f segment -segment_time 10 \
>     -segment_list_size 0  -segment_list sub.m3u8 -segment_format webvtt -scodec webvtt sub-%d.vtt
>
>
> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
> ---
>  fftools/ffmpeg.c                 |  1 +
>  tests/ref/fate/binsub-movtextenc |  2 +-
>  tests/ref/fate/sub2video         | 86 ++++++++++++++++----------------
>  3 files changed, 45 insertions(+), 44 deletions(-)
>
> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
> index aaaf241314..c5a2d0731d 100644
> --- a/fftools/ffmpeg.c
> +++ b/fftools/ffmpeg.c
> @@ -1054,6 +1054,7 @@ static void do_subtitle_out(OutputFile *of,
>              else
>                  pkt.pts += av_rescale_q(sub->end_display_time, (AVRational){ 1, 1000 }, ost->mux_timebase);
>          }
> +        pkt.flags |= AV_PKT_FLAG_KEY;
>          pkt.dts = pkt.pts;
>          output_packet(of, &pkt, ost, 0);
>      }

I do wonder if this is just a case of people forgetting to set the
flag for the relevant packets in the relevant modules?

I'm not sure if all API users should be forced to handle this
separately. If the packets are decode'able by themselves, they should
be marked as such.

(Unfortunately, this probably means that all subtitle encoders and
text-based subtitle format demuxers would have to be updated where
this flag is not set)

Best regards,
Jan
Nicolas George March 20, 2020, 4:12 p.m. UTC | #2
Jan Ekström (12020-03-20):
> I do wonder if this is just a case of people forgetting to set the
> flag for the relevant packets in the relevant modules?
> 
> I'm not sure if all API users should be forced to handle this
> separately. If the packets are decode'able by themselves, they should
> be marked as such.

I had the same idea, and I checked: the problem is that the subtitle
encoding API returns just a buffer of data, not a packet. With that
crappy API, this change is the best we can do.

Regards,
Jan Ekström March 20, 2020, 4:24 p.m. UTC | #3
On Fri, Mar 20, 2020 at 6:12 PM Nicolas George <george@nsup.org> wrote:
>
> Jan Ekström (12020-03-20):
> > I do wonder if this is just a case of people forgetting to set the
> > flag for the relevant packets in the relevant modules?
> >
> > I'm not sure if all API users should be forced to handle this
> > separately. If the packets are decode'able by themselves, they should
> > be marked as such.
>
> I had the same idea, and I checked: the problem is that the subtitle
> encoding API returns just a buffer of data, not a packet. With that
> crappy API, this change is the best we can do.
>

Just as I noticed that myself in ffmpeg.c :).

In that case, yes... Until the encoding API pushes out AVPackets we
can't help too much with this :/ . Consider my initial comment moot.

Jan
Andreas Rheinhardt March 20, 2020, 4:51 p.m. UTC | #4
Jan Ekström:
> On Fri, Mar 20, 2020 at 5:45 PM <lance.lmwang@gmail.com> wrote:
>>
>> From: Limin Wang <lance.lmwang@gmail.com>
>>
>> This fixes webvtt segment output.
>>
>> Please testing with the following command and check the output:
>> ./ffmpeg -i ../fate-suite/sub/MicroDVD_capability_tester.srt -f segment -segment_time 10 \
>>     -segment_list_size 0  -segment_list sub.m3u8 -segment_format webvtt -scodec webvtt sub-%d.vtt
>>
>>
>> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
>> ---
>>  fftools/ffmpeg.c                 |  1 +
>>  tests/ref/fate/binsub-movtextenc |  2 +-
>>  tests/ref/fate/sub2video         | 86 ++++++++++++++++----------------
>>  3 files changed, 45 insertions(+), 44 deletions(-)
>>
>> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
>> index aaaf241314..c5a2d0731d 100644
>> --- a/fftools/ffmpeg.c
>> +++ b/fftools/ffmpeg.c
>> @@ -1054,6 +1054,7 @@ static void do_subtitle_out(OutputFile *of,
>>              else
>>                  pkt.pts += av_rescale_q(sub->end_display_time, (AVRational){ 1, 1000 }, ost->mux_timebase);
>>          }
>> +        pkt.flags |= AV_PKT_FLAG_KEY;
>>          pkt.dts = pkt.pts;
>>          output_packet(of, &pkt, ost, 0);
>>      }
> 
> I do wonder if this is just a case of people forgetting to set the
> flag for the relevant packets in the relevant modules?
> 
> I'm not sure if all API users should be forced to handle this
> separately. If the packets are decode'able by themselves, they should
> be marked as such.
> 
> (Unfortunately, this probably means that all subtitle encoders and
> text-based subtitle format demuxers would have to be updated where
> this flag is not set)
> 
av_read_frame() already sets the AV_PKT_FLAG_KEY-flag for all subtitle
packets (see is_intra_only() in libavformat/utils.c; the subtitle
demuxer based around FFDemuxSubtitlesQueues actually have the flag set
even before it reaches is_intra_only()). One could do something similar
in libavformat/mux.c.
But are we actually sure that all subtitle packets are decodable by
themselves? IIRC this is not true for all PGS subtitles.

- Andreas

PS: The semantics of the AV_CODEC_PROP_INTRA_ONLY-flag seem to be based
around the assumption that subtitle packets are always intra-only: It is
only for video and audio-codecs only.
Lance Wang March 20, 2020, 11:28 p.m. UTC | #5
On Fri, Mar 20, 2020 at 06:03:53PM +0200, Jan Ekström wrote:
> On Fri, Mar 20, 2020 at 5:45 PM <lance.lmwang@gmail.com> wrote:
> >
> > From: Limin Wang <lance.lmwang@gmail.com>
> >
> > This fixes webvtt segment output.
> >
> > Please testing with the following command and check the output:
> > ./ffmpeg -i ../fate-suite/sub/MicroDVD_capability_tester.srt -f segment -segment_time 10 \
> >     -segment_list_size 0  -segment_list sub.m3u8 -segment_format webvtt -scodec webvtt sub-%d.vtt
> >
> >
> > Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
> > ---
> >  fftools/ffmpeg.c                 |  1 +
> >  tests/ref/fate/binsub-movtextenc |  2 +-
> >  tests/ref/fate/sub2video         | 86 ++++++++++++++++----------------
> >  3 files changed, 45 insertions(+), 44 deletions(-)
> >
> > diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
> > index aaaf241314..c5a2d0731d 100644
> > --- a/fftools/ffmpeg.c
> > +++ b/fftools/ffmpeg.c
> > @@ -1054,6 +1054,7 @@ static void do_subtitle_out(OutputFile *of,
> >              else
> >                  pkt.pts += av_rescale_q(sub->end_display_time, (AVRational){ 1, 1000 }, ost->mux_timebase);
> >          }
> > +        pkt.flags |= AV_PKT_FLAG_KEY;
> >          pkt.dts = pkt.pts;
> >          output_packet(of, &pkt, ost, 0);
> >      }
> 
> I do wonder if this is just a case of people forgetting to set the
> flag for the relevant packets in the relevant modules?
> 
> I'm not sure if all API users should be forced to handle this
> separately. If the packets are decode'able by themselves, they should
> be marked as such.

If we're using -c:s copy for the subtitle, the flag is set in 
ff_subtitles_queue_insert() of libavformat/subtitles.c.

> 
> (Unfortunately, this probably means that all subtitle encoders and
> text-based subtitle format demuxers would have to be updated where
> this flag is not set)

subtitle encoder haven no way to set the flag in the encoder api now.

> 
> Best regards,
> Jan
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Anton Khirnov March 26, 2020, 9:47 a.m. UTC | #6
Quoting Andreas Rheinhardt (2020-03-20 17:51:41)
> Jan Ekström:
> > On Fri, Mar 20, 2020 at 5:45 PM <lance.lmwang@gmail.com> wrote:
> >>
> >> From: Limin Wang <lance.lmwang@gmail.com>
> >>
> >> This fixes webvtt segment output.
> >>
> >> Please testing with the following command and check the output:
> >> ./ffmpeg -i ../fate-suite/sub/MicroDVD_capability_tester.srt -f segment -segment_time 10 \
> >>     -segment_list_size 0  -segment_list sub.m3u8 -segment_format webvtt -scodec webvtt sub-%d.vtt
> >>
> >>
> >> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
> >> ---
> >>  fftools/ffmpeg.c                 |  1 +
> >>  tests/ref/fate/binsub-movtextenc |  2 +-
> >>  tests/ref/fate/sub2video         | 86 ++++++++++++++++----------------
> >>  3 files changed, 45 insertions(+), 44 deletions(-)
> >>
> >> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
> >> index aaaf241314..c5a2d0731d 100644
> >> --- a/fftools/ffmpeg.c
> >> +++ b/fftools/ffmpeg.c
> >> @@ -1054,6 +1054,7 @@ static void do_subtitle_out(OutputFile *of,
> >>              else
> >>                  pkt.pts += av_rescale_q(sub->end_display_time, (AVRational){ 1, 1000 }, ost->mux_timebase);
> >>          }
> >> +        pkt.flags |= AV_PKT_FLAG_KEY;
> >>          pkt.dts = pkt.pts;
> >>          output_packet(of, &pkt, ost, 0);
> >>      }
> > 
> > I do wonder if this is just a case of people forgetting to set the
> > flag for the relevant packets in the relevant modules?
> > 
> > I'm not sure if all API users should be forced to handle this
> > separately. If the packets are decode'able by themselves, they should
> > be marked as such.
> > 
> > (Unfortunately, this probably means that all subtitle encoders and
> > text-based subtitle format demuxers would have to be updated where
> > this flag is not set)
> > 
> av_read_frame() already sets the AV_PKT_FLAG_KEY-flag for all subtitle
> packets (see is_intra_only() in libavformat/utils.c; the subtitle
> demuxer based around FFDemuxSubtitlesQueues actually have the flag set
> even before it reaches is_intra_only()). One could do something similar
> in libavformat/mux.c.
> But are we actually sure that all subtitle packets are decodable by
> themselves? IIRC this is not true for all PGS subtitles.
> 
> - Andreas
> 
> PS: The semantics of the AV_CODEC_PROP_INTRA_ONLY-flag seem to be based
> around the assumption that subtitle packets are always intra-only: It is
> only for video and audio-codecs only.

I would interpret it as simply not being defined for subtitles, rather
than saying they are all always intra only. So we can always add new
semantics for subtitles to it.
Michael Niedermayer March 27, 2020, 12:47 a.m. UTC | #7
On Thu, Mar 26, 2020 at 10:47:37AM +0100, Anton Khirnov wrote:
> Quoting Andreas Rheinhardt (2020-03-20 17:51:41)
> > Jan Ekström:
> > > On Fri, Mar 20, 2020 at 5:45 PM <lance.lmwang@gmail.com> wrote:
> > >>
> > >> From: Limin Wang <lance.lmwang@gmail.com>
> > >>
> > >> This fixes webvtt segment output.
> > >>
> > >> Please testing with the following command and check the output:
> > >> ./ffmpeg -i ../fate-suite/sub/MicroDVD_capability_tester.srt -f segment -segment_time 10 \
> > >>     -segment_list_size 0  -segment_list sub.m3u8 -segment_format webvtt -scodec webvtt sub-%d.vtt
> > >>
> > >>
> > >> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
> > >> ---
> > >>  fftools/ffmpeg.c                 |  1 +
> > >>  tests/ref/fate/binsub-movtextenc |  2 +-
> > >>  tests/ref/fate/sub2video         | 86 ++++++++++++++++----------------
> > >>  3 files changed, 45 insertions(+), 44 deletions(-)
> > >>
> > >> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
> > >> index aaaf241314..c5a2d0731d 100644
> > >> --- a/fftools/ffmpeg.c
> > >> +++ b/fftools/ffmpeg.c
> > >> @@ -1054,6 +1054,7 @@ static void do_subtitle_out(OutputFile *of,
> > >>              else
> > >>                  pkt.pts += av_rescale_q(sub->end_display_time, (AVRational){ 1, 1000 }, ost->mux_timebase);
> > >>          }
> > >> +        pkt.flags |= AV_PKT_FLAG_KEY;
> > >>          pkt.dts = pkt.pts;
> > >>          output_packet(of, &pkt, ost, 0);
> > >>      }
> > > 
> > > I do wonder if this is just a case of people forgetting to set the
> > > flag for the relevant packets in the relevant modules?
> > > 
> > > I'm not sure if all API users should be forced to handle this
> > > separately. If the packets are decode'able by themselves, they should
> > > be marked as such.
> > > 
> > > (Unfortunately, this probably means that all subtitle encoders and
> > > text-based subtitle format demuxers would have to be updated where
> > > this flag is not set)
> > > 
> > av_read_frame() already sets the AV_PKT_FLAG_KEY-flag for all subtitle
> > packets (see is_intra_only() in libavformat/utils.c; the subtitle
> > demuxer based around FFDemuxSubtitlesQueues actually have the flag set
> > even before it reaches is_intra_only()). One could do something similar
> > in libavformat/mux.c.
> > But are we actually sure that all subtitle packets are decodable by
> > themselves? IIRC this is not true for all PGS subtitles.
> > 
> > - Andreas
> > 
> > PS: The semantics of the AV_CODEC_PROP_INTRA_ONLY-flag seem to be based
> > around the assumption that subtitle packets are always intra-only: It is
> > only for video and audio-codecs only.
> 
> I would interpret it as simply not being defined for subtitles, rather
> than saying they are all always intra only. So we can always add new
> semantics for subtitles to it.

+1

[...]
Lance Wang April 3, 2020, 3:07 p.m. UTC | #8
On Fri, Mar 27, 2020 at 01:47:10AM +0100, Michael Niedermayer wrote:
> On Thu, Mar 26, 2020 at 10:47:37AM +0100, Anton Khirnov wrote:
> > Quoting Andreas Rheinhardt (2020-03-20 17:51:41)
> > > Jan Ekström:
> > > > On Fri, Mar 20, 2020 at 5:45 PM <lance.lmwang@gmail.com> wrote:
> > > >>
> > > >> From: Limin Wang <lance.lmwang@gmail.com>
> > > >>
> > > >> This fixes webvtt segment output.
> > > >>
> > > >> Please testing with the following command and check the output:
> > > >> ./ffmpeg -i ../fate-suite/sub/MicroDVD_capability_tester.srt -f segment -segment_time 10 \
> > > >>     -segment_list_size 0  -segment_list sub.m3u8 -segment_format webvtt -scodec webvtt sub-%d.vtt
> > > >>
> > > >>
> > > >> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
> > > >> ---
> > > >>  fftools/ffmpeg.c                 |  1 +
> > > >>  tests/ref/fate/binsub-movtextenc |  2 +-
> > > >>  tests/ref/fate/sub2video         | 86 ++++++++++++++++----------------
> > > >>  3 files changed, 45 insertions(+), 44 deletions(-)
> > > >>
> > > >> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
> > > >> index aaaf241314..c5a2d0731d 100644
> > > >> --- a/fftools/ffmpeg.c
> > > >> +++ b/fftools/ffmpeg.c
> > > >> @@ -1054,6 +1054,7 @@ static void do_subtitle_out(OutputFile *of,
> > > >>              else
> > > >>                  pkt.pts += av_rescale_q(sub->end_display_time, (AVRational){ 1, 1000 }, ost->mux_timebase);
> > > >>          }
> > > >> +        pkt.flags |= AV_PKT_FLAG_KEY;
> > > >>          pkt.dts = pkt.pts;
> > > >>          output_packet(of, &pkt, ost, 0);
> > > >>      }
> > > > 
> > > > I do wonder if this is just a case of people forgetting to set the
> > > > flag for the relevant packets in the relevant modules?
> > > > 
> > > > I'm not sure if all API users should be forced to handle this
> > > > separately. If the packets are decode'able by themselves, they should
> > > > be marked as such.
> > > > 
> > > > (Unfortunately, this probably means that all subtitle encoders and
> > > > text-based subtitle format demuxers would have to be updated where
> > > > this flag is not set)
> > > > 
> > > av_read_frame() already sets the AV_PKT_FLAG_KEY-flag for all subtitle
> > > packets (see is_intra_only() in libavformat/utils.c; the subtitle
> > > demuxer based around FFDemuxSubtitlesQueues actually have the flag set
> > > even before it reaches is_intra_only()). One could do something similar
> > > in libavformat/mux.c.
> > > But are we actually sure that all subtitle packets are decodable by
> > > themselves? IIRC this is not true for all PGS subtitles.
> > > 
> > > - Andreas
> > > 
> > > PS: The semantics of the AV_CODEC_PROP_INTRA_ONLY-flag seem to be based
> > > around the assumption that subtitle packets are always intra-only: It is
> > > only for video and audio-codecs only.
> > 
> > I would interpret it as simply not being defined for subtitles, rather
> > than saying they are all always intra only. So we can always add new
> > semantics for subtitles to it.
> 
> +1
I have updated the patch, please review whether it's expected.

> 
> [...]
> -- 
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> 
> The real ebay dictionary, page 2
> "100% positive feedback" - "All either got their money back or didnt complain"
> "Best seller ever, very honest" - "Seller refunded buyer after failed scam"



> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff mbox series

Patch

diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index aaaf241314..c5a2d0731d 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -1054,6 +1054,7 @@  static void do_subtitle_out(OutputFile *of,
             else
                 pkt.pts += av_rescale_q(sub->end_display_time, (AVRational){ 1, 1000 }, ost->mux_timebase);
         }
+        pkt.flags |= AV_PKT_FLAG_KEY;
         pkt.dts = pkt.pts;
         output_packet(of, &pkt, ost, 0);
     }
diff --git a/tests/ref/fate/binsub-movtextenc b/tests/ref/fate/binsub-movtextenc
index 78c05f4376..a8f94b7227 100644
--- a/tests/ref/fate/binsub-movtextenc
+++ b/tests/ref/fate/binsub-movtextenc
@@ -1 +1 @@ 
-35adf776cd73e808186ae7124445f4b8
+fc6d07679ac1f718aa50de687924cd97
diff --git a/tests/ref/fate/sub2video b/tests/ref/fate/sub2video
index 4e034a5e91..80abe9c905 100644
--- a/tests/ref/fate/sub2video
+++ b/tests/ref/fate/sub2video
@@ -10,7 +10,7 @@ 
 0,          0,          0,        1,   518400, 0x83c27b82
 0,          1,          1,        1,   518400, 0x4051c7f9
 0,          2,          2,        1,   518400, 0xfb00e17e
-1,     499000,     499000,  4960000,     1015, 0x19e092d2, F=0x0
+1,     499000,     499000,  4960000,     1015, 0x19e092d2
 0,          3,          3,        1,   518400, 0x192abb74
 0,          4,          4,        1,   518400, 0x4669a88b
 0,          5,          5,        1,   518400, 0xaababe00
@@ -58,129 +58,129 @@ 
 0,         47,         47,        1,   518400, 0xde69683f
 0,         48,         48,        1,   518400, 0x7df08fba
 0,         49,         49,        1,   518400, 0xbab197ea
-1,   15355000,   15355000,  4733000,     2094, 0x3c171425, F=0x0
+1,   15355000,   15355000,  4733000,     2094, 0x3c171425
 0,         77,         77,        1,   518400, 0x902285d9
 0,        100,        100,        1,   518400, 0xbab197ea
-1,   48797000,   48797000,  2560000,     2480, 0x7c0edf21, F=0x0
+1,   48797000,   48797000,  2560000,     2480, 0x7c0edf21
 0,        244,        244,        1,   518400, 0x7a11c812
 0,        257,        257,        1,   518400, 0xbab197ea
-1,   51433000,   51433000,  2366000,     3059, 0xc95b8a05, F=0x0
+1,   51433000,   51433000,  2366000,     3059, 0xc95b8a05
 0,        258,        258,        1,   518400, 0x34cdddee
 0,        269,        269,        1,   518400, 0xbab197ea
-1,   53910000,   53910000,  2696000,     2095, 0x61bb15ed, F=0x0
+1,   53910000,   53910000,  2696000,     2095, 0x61bb15ed
 0,        270,        270,        1,   518400, 0x4db4ce51
 0,        283,        283,        1,   518400, 0xbab197ea
-1,   56663000,   56663000,  1262000,     1013, 0xc9ae89b7, F=0x0
+1,   56663000,   56663000,  1262000,     1013, 0xc9ae89b7
 0,        284,        284,        1,   518400, 0xe6bc0ea9
 0,        290,        290,        1,   518400, 0xbab197ea
-1,   58014000,   58014000,  1661000,      969, 0xe01878f0, F=0x0
+1,   58014000,   58014000,  1661000,      969, 0xe01878f0
 0,        291,        291,        1,   518400, 0xa8643af7
 0,        298,        298,        1,   518400, 0xbab197ea
-1,   67724000,   67724000,  1365000,      844, 0xe7db4fc1, F=0x0
+1,   67724000,   67724000,  1365000,      844, 0xe7db4fc1
 0,        339,        339,        1,   518400, 0xb1885c67
 0,        345,        345,        1,   518400, 0xbab197ea
-1,   69175000,   69175000,  1558000,      802, 0xf48531ba, F=0x0
+1,   69175000,   69175000,  1558000,      802, 0xf48531ba
 0,        346,        346,        1,   518400, 0x378e3fd0
 0,        354,        354,        1,   518400, 0xbab197ea
-1,   70819000,   70819000,  1865000,     1709, 0xb4d5a1bd, F=0x0
+1,   70819000,   70819000,  1865000,     1709, 0xb4d5a1bd
 0,        355,        355,        1,   518400, 0xa3782469
 0,        363,        363,        1,   518400, 0xbab197ea
-1,   72762000,   72762000,  1968000,     2438, 0x99d7bc82, F=0x0
+1,   72762000,   72762000,  1968000,     2438, 0x99d7bc82
 0,        364,        364,        1,   518400, 0xba23a0d5
 0,        374,        374,        1,   518400, 0xbab197ea
-1,   74806000,   74806000,  1831000,     2116, 0x96514097, F=0x0
+1,   74806000,   74806000,  1831000,     2116, 0x96514097
 0,        375,        375,        1,   518400, 0x129de2f8
 0,        383,        383,        1,   518400, 0xbab197ea
-1,   76716000,   76716000,  1262000,     1822, 0xefccc72e, F=0x0
+1,   76716000,   76716000,  1262000,     1822, 0xefccc72e
 0,        384,        384,        1,   518400, 0x19772f0f
 0,        390,        390,        1,   518400, 0xbab197ea
-1,   78051000,   78051000,  1524000,      987, 0x7b927a27, F=0x0
+1,   78051000,   78051000,  1524000,      987, 0x7b927a27
 0,        391,        391,        1,   518400, 0x56f54e73
 0,        398,        398,        1,   518400, 0xbab197ea
-1,   79644000,   79644000,  2662000,     2956, 0x190778f7, F=0x0
+1,   79644000,   79644000,  2662000,     2956, 0x190778f7
 0,        399,        399,        1,   518400, 0x300b5247
-1,   82380000,   82380000,  2764000,     3094, 0xc021b7d3, F=0x0
+1,   82380000,   82380000,  2764000,     3094, 0xc021b7d3
 0,        412,        412,        1,   518400, 0xbab197ea
 0,        413,        413,        1,   518400, 0x6fd028fa
 0,        426,        426,        1,   518400, 0xbab197ea
-1,   85225000,   85225000,  2366000,     2585, 0x74d0048f, F=0x0
+1,   85225000,   85225000,  2366000,     2585, 0x74d0048f
 0,        427,        427,        1,   518400, 0x01f80e9d
 0,        438,        438,        1,   518400, 0xbab197ea
-1,   87652000,   87652000,  1831000,      634, 0x8832fda1, F=0x0
+1,   87652000,   87652000,  1831000,      634, 0x8832fda1
 0,        439,        439,        1,   518400, 0xb48d90c0
 0,        447,        447,        1,   518400, 0xbab197ea
-1,   91531000,   91531000,  2332000,     2080, 0x97a1146f, F=0x0
+1,   91531000,   91531000,  2332000,     2080, 0x97a1146f
 0,        458,        458,        1,   518400, 0xcb5a0173
 0,        469,        469,        1,   518400, 0xbab197ea
-1,   95510000,   95510000,  3299000,     2964, 0x8b8f6684, F=0x0
+1,   95510000,   95510000,  3299000,     2964, 0x8b8f6684
 0,        478,        478,        1,   518400, 0xb8a323e4
 0,        494,        494,        1,   518400, 0xbab197ea
-1,   98872000,   98872000,  2161000,     1875, 0x9002ef71, F=0x0
+1,   98872000,   98872000,  2161000,     1875, 0x9002ef71
 0,        495,        495,        1,   518400, 0xc43518ba
 0,        505,        505,        1,   518400, 0xbab197ea
-1,  101124000,  101124000,  4096000,     3872, 0x20c6ed9c, F=0x0
+1,  101124000,  101124000,  4096000,     3872, 0x20c6ed9c
 0,        506,        506,        1,   518400, 0x04e38692
 0,        526,        526,        1,   518400, 0xbab197ea
-1,  105303000,  105303000,  2730000,     3094, 0xf203a663, F=0x0
+1,  105303000,  105303000,  2730000,     3094, 0xf203a663
 0,        527,        527,        1,   518400, 0x856b0ee5
 0,        540,        540,        1,   518400, 0xbab197ea
-1,  108106000,  108106000,  2059000,     2404, 0x41a7b429, F=0x0
+1,  108106000,  108106000,  2059000,     2404, 0x41a7b429
 0,        541,        541,        1,   518400, 0x3e5beee2
 0,        551,        551,        1,   518400, 0xbab197ea
-1,  141556000,  141556000,  1661000,     1088, 0xde20aa20, F=0x0
+1,  141556000,  141556000,  1661000,     1088, 0xde20aa20
 0,        708,        708,        1,   518400, 0xb8bc1365
 0,        716,        716,        1,   518400, 0xbab197ea
 0,        817,        817,        1,   518400, 0x83efa32d
-1,  163445000,  163445000,  1331000,      339, 0x8bd186ef, F=0x0
+1,  163445000,  163445000,  1331000,      339, 0x8bd186ef
 0,        824,        824,        1,   518400, 0xbab197ea
 0,        840,        840,        1,   518400, 0x03ea0e90
-1,  168049000,  168049000,  1900000,     1312, 0x0bf20e8d, F=0x0
+1,  168049000,  168049000,  1900000,     1312, 0x0bf20e8d
 0,        850,        850,        1,   518400, 0xbab197ea
-1,  170035000,  170035000,  1524000,     1279, 0xb6c2dafe, F=0x0
+1,  170035000,  170035000,  1524000,     1279, 0xb6c2dafe
 0,        851,        851,        1,   518400, 0x8780239e
 0,        858,        858,        1,   518400, 0xbab197ea
 0,        861,        861,        1,   518400, 0x6eb72347
-1,  172203000,  172203000,  1695000,     1826, 0x9a1ac769, F=0x0
+1,  172203000,  172203000,  1695000,     1826, 0x9a1ac769
 0,        869,        869,        1,   518400, 0xbab197ea
-1,  173947000,  173947000,  1934000,     1474, 0xa9b03cdc, F=0x0
+1,  173947000,  173947000,  1934000,     1474, 0xa9b03cdc
 0,        870,        870,        1,   518400, 0x9c4a3a3d
 0,        879,        879,        1,   518400, 0xbab197ea
-1,  175957000,  175957000,  1763000,     1019, 0x20409355, F=0x0
+1,  175957000,  175957000,  1763000,     1019, 0x20409355
 0,        880,        880,        1,   518400, 0xc9ebfa89
 0,        889,        889,        1,   518400, 0xbab197ea
 0,        946,        946,        1,   518400, 0xbaf801ef
-1,  189295000,  189295000,  1968000,     1596, 0x408c726e, F=0x0
+1,  189295000,  189295000,  1968000,     1596, 0x408c726e
 0,        956,        956,        1,   518400, 0xbab197ea
-1,  191356000,  191356000,  1228000,     1517, 0xae8c5c2b, F=0x0
+1,  191356000,  191356000,  1228000,     1517, 0xae8c5c2b
 0,        957,        957,        1,   518400, 0x59f4e72f
 0,        963,        963,        1,   518400, 0xbab197ea
-1,  192640000,  192640000,  1763000,     2506, 0xa458d6d4, F=0x0
+1,  192640000,  192640000,  1763000,     2506, 0xa458d6d4
 0,        964,        964,        1,   518400, 0x9d5b9d69
 0,        972,        972,        1,   518400, 0xbab197ea
-1,  195193000,  195193000,  1092000,     1074, 0x397ba9a8, F=0x0
+1,  195193000,  195193000,  1092000,     1074, 0x397ba9a8
 0,        976,        976,        1,   518400, 0x923d1ce7
 0,        981,        981,        1,   518400, 0xbab197ea
-1,  196361000,  196361000,  1524000,     1715, 0x695ca41e, F=0x0
+1,  196361000,  196361000,  1524000,     1715, 0x695ca41e
 0,        982,        982,        1,   518400, 0x6e652cd2
 0,        989,        989,        1,   518400, 0xbab197ea
-1,  197946000,  197946000,  1160000,      789, 0xc63a189e, F=0x0
+1,  197946000,  197946000,  1160000,      789, 0xc63a189e
 0,        990,        990,        1,   518400, 0x25113966
 0,        996,        996,        1,   518400, 0xbab197ea
-1,  199230000,  199230000,  1627000,     1846, 0xeea8c599, F=0x0
+1,  199230000,  199230000,  1627000,     1846, 0xeea8c599
 0,        997,        997,        1,   518400, 0x2dc83609
 0,       1004,       1004,        1,   518400, 0xbab197ea
-1,  200924000,  200924000,  1763000,      922, 0xd4a87222, F=0x0
+1,  200924000,  200924000,  1763000,      922, 0xd4a87222
 0,       1005,       1005,        1,   518400, 0x90483bc6
 0,       1013,       1013,        1,   518400, 0xbab197ea
 0,       1053,       1053,        1,   518400, 0x3de86ab7
-1,  210600000,  210600000,  1831000,      665, 0x55580135, F=0x0
+1,  210600000,  210600000,  1831000,      665, 0x55580135
 0,       1062,       1062,        1,   518400, 0xbab197ea
-1,  214771000,  214771000,  1558000,     1216, 0x50d1f6c5, F=0x0
+1,  214771000,  214771000,  1558000,     1216, 0x50d1f6c5
 0,       1074,       1074,        1,   518400, 0x8c320e68
 0,       1082,       1082,        1,   518400, 0xbab197ea
 0,       1128,       1128,        1,   518400, 0x81e977b2
-1,  225640000,  225640000,  2127000,     2133, 0x670c11a5, F=0x0
+1,  225640000,  225640000,  2127000,     2133, 0x670c11a5
 0,       1139,       1139,        1,   518400, 0xbab197ea
-1,  227834000,  227834000,  1262000,     1264, 0xc1d9fc57, F=0x0
+1,  227834000,  227834000,  1262000,     1264, 0xc1d9fc57
 0,       1140,       1140,        1,   518400, 0xb046dd30
 0,       1145,       1145,        1,   518400, 0xbab197ea