Quoting Luca Barbato (2015-12-18 15:36:33) > On 18/12/15 15:25, Andreas Cadhalpun wrote: > > On 18.12.2015 12:00, Luca Barbato wrote: > >> On 17/12/15 23:01, Andreas Cadhalpun wrote: > >>> On 16.12.2015 22:18, Luca Barbato wrote: > >>>> On 16/12/15 20:56, Andreas Cadhalpun wrote: > >>>>> Signed-off-by: Andreas Cadhalpun <[email protected]> > >>>>> --- > >>>>> libavformat/nuv.c | 4 ++++ > >>>>> 1 file changed, 4 insertions(+) > >>>>> > >>>>> diff --git a/libavformat/nuv.c b/libavformat/nuv.c > >>>>> index 2a1b70f..4cb28d5 100644 > >>>>> --- a/libavformat/nuv.c > >>>>> +++ b/libavformat/nuv.c > >>>>> @@ -172,6 +172,10 @@ static int nuv_header(AVFormatContext *s) > >>>>> if (aspect > 0.9999 && aspect < 1.0001) > >>>>> aspect = 4.0 / 3.0; > >>>>> fps = av_int2double(avio_rl64(pb)); > >>>>> + if (fps <= 0.0f) { > >>>>> + av_log(s, AV_LOG_ERROR, "Invalid frame rate %f\n", fps); > >>>>> + return AVERROR_INVALIDDATA; > >>>>> + } > >>>>> > >>>>> // number of packets per stream type, -1 means unknown, e.g. > >>>>> streaming > >>>>> v_packs = avio_rl32(pb); > >>>>> > >>>> > >>>> What happens if a negative fps is used? > >>> > >>> It doesn't make sense. Or what is a negative frame rate supposed to mean? > >> > >> So the options are: > >> > >> a- not demux at all > > > > That's what my patch does. > > > >> b- mark the framerate as invalid > > > > How does one do that? > > > >> and let the user decide what to do, > >> e.g. override it with a value that works for them. > >> c- a or b depending on explode. > >> > >> A framerate of 0 is the same as a negative framerate for all the > >> intended purposes. > > > > So should a negative framerate simply be set to 0? > > > > I'd just have an explode mode: either error out or otherwise set it to > invalid (0 is fine as invalid) and let the user decide what to do.
To elaborate, check if AV_EF_EXPLODE is set in AVFormatContext.error_recognition -- Anton Khirnov _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
