[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