[FFmpeg-devel] [PATCH] avformat/dashdec: The segments in dash file doesn't read completely when segment's size and duration is very small.

Steven Liu lingjiujianke at gmail.com
Fri Sep 13 13:36:27 EEST 2024


Steven Liu <lingjiujianke at gmail.com> 于2024年9月2日周一 16:46写道:
>
> jiangjie <jiangjie618 at gmail.com> 于2024年9月2日周一 16:35写道:
> >
> > If the segment is very small, avformat_find_stream_info will read all audio/video data in this segment. cur->is_restart_needed is set to 0 later in dash_read_packet function, and no chance to be set to 1 again in the read_data function.
> >
> > Reproduction:
> > ffmpeg -f lavfi -i mandelbrot -f lavfi -i anullsrc -c:v vp8 -g 5 -r 5 -c:a libopus -use_template 0 -seg_duration 1 -t 15 -y test_720.mpd
> > ffprobe -show_packets test_720.mpd
> >
> > The duration of the test_720.mpd file is 15 seconds, but the duration that ffprobe show is small than 15 second.
> > ---
> >  libavformat/dashdec.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
> > index 63070b77be..12960d0312 100644
> > --- a/libavformat/dashdec.c
> > +++ b/libavformat/dashdec.c
> > @@ -2207,9 +2207,9 @@ static int dash_read_packet(AVFormatContext *s, AVPacket *pkt)
> >          if (cur->is_restart_needed) {
> >              cur->cur_seg_offset = 0;
> >              cur->init_sec_buf_read_offset = 0;
> > +            cur->is_restart_needed = 0;
> >              ff_format_io_close(cur->parent, &cur->input);
> >              ret = reopen_demux_for_component(s, cur);
> > -            cur->is_restart_needed = 0;
> >          }
> >      }
> >      return AVERROR_EOF;
> > --
> > 2.43.0
> >
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel at ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>
> good catch
> LGTM

will apply
>
> Thanks
> Steven


More information about the ffmpeg-devel mailing list