[FFmpeg-devel] [PATCH] lavf/mov.c: Set duration to zero if the duration is UINT_MAX

Sasi Inguva isasi at google.com
Tue Nov 1 07:25:36 EET 2016


For MP4F files , stream duration is updated by the sum of duration of
moof's
http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavformat/mov.c;h=414007e7aa128aa66e07395b42c0cd4b369b3146;hb=HEAD#l4193
 , only if the duration in the header is less than that. Normally duration
field in header is 0, so this is ok. But some MP4F files have it set to
UINT_MAX , like the example I have uploaded.

On Mon, Oct 31, 2016 at 5:16 PM, Yusuke Nakamura <
muken.the.vfrmaniac at gmail.com> wrote:

> 2016-10-27 4:40 GMT+09:00 Sasi Inguva <isasi-at-google.com at ffmpeg.org>:
>
> > Fixes some MP4F files which have duration in mdhd set to UINT_MAX instead
> > of zero.
> >
>
> What does this patch fix?
>
>
> >
> > Signed-off-by: Sasi Inguva <isasi at google.com>
> > ---
> >  libavformat/mov.c | 5 +++++
> >  1 file changed, 5 insertions(+)
> >
> > diff --git a/libavformat/mov.c b/libavformat/mov.c
> > index 357d800..245e424 100644
> > --- a/libavformat/mov.c
> > +++ b/libavformat/mov.c
> > @@ -1221,6 +1221,11 @@ static int mov_read_mdhd(MOVContext *c,
> AVIOContext
> > *pb, MOVAtom atom)
> >      sc->time_scale = avio_rb32(pb);
> >      st->duration = (version == 1) ? avio_rb64(pb) : avio_rb32(pb); /*
> > duration */
> >
> > +    if ((version == 1 && st->duration == UINT64_MAX) ||
> > +        (version != 1 && st->duration == UINT32_MAX)) {
> > +        st->duration = 0;
> > +    }
> > +
> >      lang = avio_rb16(pb); /* language */
> >      if (ff_mov_lang_to_iso639(lang, language))
> >          av_dict_set(&st->metadata, "language", language, 0);
> > --
> > 2.8.0.rc3.226.g39d4020
> >
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel at ffmpeg.org
> > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>


More information about the ffmpeg-devel mailing list