From 840df1f1931499ba7a8b388115cff37f0b82ee48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Heusipp?= Date: Sun, 17 Jul 2016 15:37:13 +0200 Subject: [PATCH] libopenmpt: set stream duration and fix time base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix the confusion around the used time base. Check size returned from avio_size() Signed-off-by: Jörn Heusipp Signed-off-by: Josh de Kock --- libavformat/libopenmpt.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/libopenmpt.c b/libavformat/libopenmpt.c index a87283b77b..bad34b958a 100644 --- a/libavformat/libopenmpt.c +++ b/libavformat/libopenmpt.c @@ -73,6 +73,8 @@ static int read_header_openmpt(AVFormatContext *s) AVStream *st; OpenMPTContext *openmpt = s->priv_data; int64_t size = avio_size(s->pb); + if (!size) + return AVERROR_INVALIDDATA; char *buf = av_malloc(size); int ret; @@ -118,9 +120,8 @@ static int read_header_openmpt(AVFormatContext *s) openmpt->module = NULL; return AVERROR(ENOMEM); } - avpriv_set_pts_info(st, 64, 1, 1000); - if (st->duration > 0) - st->duration = llrint(openmpt->duration*AV_TIME_BASE); + avpriv_set_pts_info(st, 64, 1, AV_TIME_BASE); + st->duration = llrint(openmpt->duration*AV_TIME_BASE); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_NE(AV_CODEC_ID_PCM_F32BE, AV_CODEC_ID_PCM_F32LE);