On Sun, Nov 16, 2014 at 11:58 PM, Luca Barbato <[email protected]> wrote: > On 17/11/14 00:22, Vittorio Giovara wrote: >> Do not write negative values in CodecDelay as the embl accepts only >> unsigned integers. >> >> CC: [email protected] >> Bug-Id: CID 1238790 >> --- >> libavformat/matroskaenc.c | 11 +++++++---- >> 1 file changed, 7 insertions(+), 4 deletions(-) >> >> diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c >> index 4ec474d..6571de1 100644 >> --- a/libavformat/matroskaenc.c >> +++ b/libavformat/matroskaenc.c >> @@ -767,14 +767,17 @@ static int mkv_write_track(AVFormatContext *s, >> MatroskaMuxContext *mkv, >> put_ebml_uint(pb, MATROSKA_ID_TRACKFLAGDEFAULT, !!(st->disposition >> & AV_DISPOSITION_DEFAULT)); >> >> if (codec->codec_type == AVMEDIA_TYPE_AUDIO && codec->initial_padding) { >> + int delay = av_rescale_q(codec->initial_padding, >> + (AVRational) { 1, codec->sample_rate }, >> + (AVRational) { 1, 1000000000 }); >> + if (delay < 0) >> + return AVERROR_INVALIDDATA; > > > Can we really have negative padding? I'd check it outside the muxer if > possible.
We can if codec->sample_rate is borked. I think coverity is complaining that the put_embl is unsigned, while av_rescale_q may return a negative value. -- Vittorio _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
