On Thu, Aug 15, 2019 at 12:49 PM Jun Li <junli1...@gmail.com> wrote: > > On Thu, Jun 20, 2019 at 2:02 AM Jun Li <junli1...@gmail.com> wrote: > > > > > > > On Tue, May 21, 2019 at 1:05 AM Jun Li <junli1...@gmail.com> wrote: > > > >> > >> > >> On Thu, May 16, 2019 at 1:00 AM Jun Li <junli1...@gmail.com> wrote: > >> > >>> > >>> > >>> On Sun, May 12, 2019 at 7:44 PM Jun Li <junli1...@gmail.com> wrote: > >>> > >>>> > >>>> > >>>> On Fri, May 10, 2019 at 7:25 PM Jun Li <junli1...@gmail.com> wrote: > >>>> > >>>>> > >>>>> On Thu, May 9, 2019 at 2:08 AM Jun Li <junli1...@gmail.com> wrote: > >>>>> > >>>>>> Fix #5090 > >>>>>> Fix the timestamp rescale issue, from sidx timebase to > >>>>>> stream's timebase. > >>>>>> --- > >>>>>> libavformat/mov.c | 2 +- > >>>>>> 1 file changed, 1 insertion(+), 1 deletion(-) > >>>>>> > >>>>>> diff --git a/libavformat/mov.c b/libavformat/mov.c > >>>>>> index 78f692872b..d058855e6c 100644 > >>>>>> --- a/libavformat/mov.c > >>>>>> +++ b/libavformat/mov.c > >>>>>> @@ -5017,7 +5017,7 @@ static int mov_read_sidx(MOVContext *c, > >>>>>> AVIOContext *pb, MOVAtom atom) > >>>>>> return AVERROR_PATCHWELCOME; > >>>>>> } > >>>>>> avio_rb32(pb); // sap_flags > >>>>>> - timestamp = av_rescale_q(pts, st->time_base, timescale); > >>>>>> + timestamp = av_rescale_q(pts, timescale, st->time_base); > >>>>>> > >>>>>> index = update_frag_index(c, offset); > >>>>>> frag_stream_info = get_frag_stream_info(&c->frag_index, > >>>>>> index, track_id); > >>>>>> -- > >>>>>> 2.17.1 > >>>>>> > >>>>> > >>>>> Ping > >>>>> > >>>> > >>>> This change is for fix the issue of calculating sidx_pts. > >>>> Sidx box has "earliest_presentation_time", used as pts of the referent > >>>> track, sidx also has timescale field. > >>>> So the operation should convert from sidx's timescale to track's > >>>> timescale, this patch is for addressing this, as well as fixing #5090. > >>>> > >>>> Of course this is based on my understanding, so please correct me if I > >>>> am wrong. Thanks ! > >>>> > >>>> > >>> Ping. > >>> I believe this is a bug and triggered whenever sidx box's timescale is > >>> different from track's timescale. > >>> Created this kind of content and verified that ffplay couldn't play > >>> while VLC plays well. > >>> Then I checked VLC's implementation: > >>> > >>> https://github.com/videolan/vlc/blob/5609c1b41d6fbca6323103619c6139caf7bc9e6e/modules/demux/mp4/mp4.c#L4735 > >>> > >>> Hope someone could help to have a review ? Thanks ! :) > >>> > >>> Best Regards, > >>> -Jun > >>> > >>> > >>>> Best Regards, > >>>> Jun > >>>> > >>> > >> Ping x 3 > >> > > > > Ping x 4. > > I believe this is an obvious bug and happened whenever sidx box's > > timescale is different from track's timescale. > > I created this kind of content and verified that ffplay couldn't play > > while VLC plays well. > > This is VLC's implementation: > > > > https://github.com/videolan/vlc/blob/5609c1b41d6fbca6323103619c6139caf7bc9e6e/modules/demux/mp4/mp4.c#L4735 > > > > Ping x 5 Tested and verified with ffplay/ffprobe, now the sample video DTS is monotonically increasing without wrap around. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".