Commit 840df1f1 authored by Jörn Heusipp's avatar Jörn Heusipp Committed by 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: 's avatarJörn Heusipp <osmanx@problemloesungsmaschine.de>
Signed-off-by: 's avatarJosh de Kock <josh@itanimul.li>
parent 4ed6edac
...@@ -73,6 +73,8 @@ static int read_header_openmpt(AVFormatContext *s) ...@@ -73,6 +73,8 @@ static int read_header_openmpt(AVFormatContext *s)
AVStream *st; AVStream *st;
OpenMPTContext *openmpt = s->priv_data; OpenMPTContext *openmpt = s->priv_data;
int64_t size = avio_size(s->pb); int64_t size = avio_size(s->pb);
if (!size)
return AVERROR_INVALIDDATA;
char *buf = av_malloc(size); char *buf = av_malloc(size);
int ret; int ret;
...@@ -118,9 +120,8 @@ static int read_header_openmpt(AVFormatContext *s) ...@@ -118,9 +120,8 @@ static int read_header_openmpt(AVFormatContext *s)
openmpt->module = NULL; openmpt->module = NULL;
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
} }
avpriv_set_pts_info(st, 64, 1, 1000); avpriv_set_pts_info(st, 64, 1, AV_TIME_BASE);
if (st->duration > 0) st->duration = llrint(openmpt->duration*AV_TIME_BASE);
st->duration = llrint(openmpt->duration*AV_TIME_BASE);
st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
st->codecpar->codec_id = AV_NE(AV_CODEC_ID_PCM_F32BE, AV_CODEC_ID_PCM_F32LE); st->codecpar->codec_id = AV_NE(AV_CODEC_ID_PCM_F32BE, AV_CODEC_ID_PCM_F32LE);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment