Commit 0fc07ad9 authored by David Conrad's avatar David Conrad

Set start_time and duration in AVStream instead of AVFormatContext for

formats with only one stream; the AVFormatContext values will be derived from
the AVStream and this helps in calculating stream bitrate.

Originally committed as revision 21361 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 1f630b97
...@@ -310,8 +310,8 @@ static int ape_read_header(AVFormatContext * s, AVFormatParameters * ap) ...@@ -310,8 +310,8 @@ static int ape_read_header(AVFormatContext * s, AVFormatParameters * ap)
st->codec->frame_size = MAC_SUBFRAME_SIZE; st->codec->frame_size = MAC_SUBFRAME_SIZE;
st->nb_frames = ape->totalframes; st->nb_frames = ape->totalframes;
s->start_time = 0; st->start_time = 0;
s->duration = (int64_t) total_blocks * AV_TIME_BASE / ape->samplerate; st->duration = total_blocks / MAC_SUBFRAME_SIZE;
av_set_pts_info(st, 64, MAC_SUBFRAME_SIZE, ape->samplerate); av_set_pts_info(st, 64, MAC_SUBFRAME_SIZE, ape->samplerate);
st->codec->extradata = av_malloc(APE_EXTRADATA_SIZE); st->codec->extradata = av_malloc(APE_EXTRADATA_SIZE);
......
...@@ -115,8 +115,8 @@ static int mpc_read_header(AVFormatContext *s, AVFormatParameters *ap) ...@@ -115,8 +115,8 @@ static int mpc_read_header(AVFormatContext *s, AVFormatParameters *ap)
st->codec->sample_rate = mpc_rate[st->codec->extradata[2] & 3]; st->codec->sample_rate = mpc_rate[st->codec->extradata[2] & 3];
av_set_pts_info(st, 32, MPC_FRAMESIZE, st->codec->sample_rate); av_set_pts_info(st, 32, MPC_FRAMESIZE, st->codec->sample_rate);
/* scan for seekpoints */ /* scan for seekpoints */
s->start_time = 0; st->start_time = 0;
s->duration = (int64_t)c->fcount * MPC_FRAMESIZE * AV_TIME_BASE / st->codec->sample_rate; st->duration = c->fcount;
/* try to read APE tags */ /* try to read APE tags */
if (!url_is_streamed(s->pb)) { if (!url_is_streamed(s->pb)) {
......
...@@ -168,8 +168,8 @@ static int wv_read_header(AVFormatContext *s, ...@@ -168,8 +168,8 @@ static int wv_read_header(AVFormatContext *s,
st->codec->sample_rate = wc->rate; st->codec->sample_rate = wc->rate;
st->codec->bits_per_coded_sample = wc->bpp; st->codec->bits_per_coded_sample = wc->bpp;
av_set_pts_info(st, 64, 1, wc->rate); av_set_pts_info(st, 64, 1, wc->rate);
s->start_time = 0; st->start_time = 0;
s->duration = (int64_t)wc->samples * AV_TIME_BASE / st->codec->sample_rate; st->duration = wc->samples;
if(!url_is_streamed(s->pb)) { if(!url_is_streamed(s->pb)) {
int64_t cur = url_ftell(s->pb); int64_t cur = url_ftell(s->pb);
......
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