[FFmpeg-devel] [PATCH] avformat/dashdec: Also fetch final partial segment

Matt Robinson git at nerdoftheherd.com
Tue Apr 13 22:42:45 EEST 2021


On Tue, 6 Apr 2021 at 02:36, Steven Liu <lq at chinaffmpeg.org> wrote:
>
> > 2021年4月6日 上午1:45,Matt Robinson <git at nerdoftheherd.com> 写道:
> >
> > Currently, the DASH demuxer omits the final segment for a non-live
> > stream (using SegmentTemplate) if it is shorter than the other segments.
> >
> > Correct calc_max_seg_no to round up when calulating the number of
> > segments instead of rounding down to resolve this issue.
> >
> > Signed-off-by: Matt Robinson <git at nerdoftheherd.com>
> > ---
> > libavformat/dashdec.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
> > index 6f3f28dcc7..73effd85db 100644
> > --- a/libavformat/dashdec.c
> > +++ b/libavformat/dashdec.c
> > @@ -1445,7 +1445,7 @@ static int64_t calc_max_seg_no(struct representation *pls, DASHContext *c)
> >     } else if (c->is_live && pls->fragment_duration) {
> >         num = pls->first_seq_no + (((get_current_time_in_sec() - c->availability_start_time)) * pls->fragment_timescale)  / pls->fragment_duration;
> >     } else if (pls->fragment_duration) {
> > -        num = pls->first_seq_no + (c->media_presentation_duration * pls->fragment_timescale) / pls->fragment_duration;
> > +        num = pls->first_seq_no + av_rescale_rnd(1, c->media_presentation_duration * pls->fragment_timescale, pls->fragment_duration, AV_ROUND_UP);
> >     }
> >
> >     return num;
> > --
> > 2.25.1
>
> LGTM
>
>
> Thanks
>
> Steven Liu

Perfect, thank you Steven.

Does anyone else have any comments on the patch, or would somebody be
okay to commit it?

Many Thanks,

Matt


More information about the ffmpeg-devel mailing list