[FFmpeg-cvslog] libopenmpt: set stream duration and fix time base

Jörn Heusipp git at videolan.org
Thu Jul 21 04:51:16 EEST 2016


ffmpeg | branch: master | Jörn Heusipp <osmanx at problemloesungsmaschine.de> | Sun Jul 17 15:37:13 2016 +0200| [840df1f1931499ba7a8b388115cff37f0b82ee48] | committer: Josh de Kock

libopenmpt: set stream duration and fix time base

Fix the confusion around the used time base.

Check size returned from avio_size()

Signed-off-by: Jörn Heusipp <osmanx at problemloesungsmaschine.de>
Signed-off-by: Josh de Kock <josh at itanimul.li>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=840df1f1931499ba7a8b388115cff37f0b82ee48
---

 libavformat/libopenmpt.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/libavformat/libopenmpt.c b/libavformat/libopenmpt.c
index a87283b..bad34b9 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);



More information about the ffmpeg-cvslog mailing list