summaryrefslogtreecommitdiff
path: root/libavformat/oggdec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-09-25 16:00:09 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-09-25 16:00:09 +0200
commit0842e32f99105f06ad6b53f580ee777bc4bf9dee (patch)
treeb0b5b9ffcb9463556f7be33fdd5f43ba68d5fdfb /libavformat/oggdec.c
parent4c273eb64c1faa47ced1cfcf15a7a1af4d27dc44 (diff)
parentd1f05dd18375f2f8e68372edee11436927e43ba8 (diff)
Merge commit 'd1f05dd18375f2f8e68372edee11436927e43ba8'
* commit 'd1f05dd18375f2f8e68372edee11436927e43ba8': ogg: calculate the start position once all the headers are parsed Conflicts: libavformat/oggdec.c libavformat/oggparseskeleton.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/oggdec.c')
-rw-r--r--libavformat/oggdec.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c
index fc26314316..a36dfae234 100644
--- a/libavformat/oggdec.c
+++ b/libavformat/oggdec.c
@@ -223,6 +223,7 @@ static int ogg_new_stream(AVFormatContext *s, uint32_t serial)
os->bufsize = DECODER_BUFFER_SIZE;
os->buf = av_malloc(os->bufsize + FF_INPUT_BUFFER_PADDING_SIZE);
os->header = -1;
+ os->start_granule = OGG_NOGRANULE_VALUE;
if (!os->buf)
return AVERROR(ENOMEM);
@@ -609,6 +610,9 @@ static int ogg_read_header(AVFormatContext *s)
} else if (os->codec && os->nb_header < os->codec->nb_header) {
av_log(s, AV_LOG_WARNING, "Number of headers (%d) mismatch for stream %d\n", os->nb_header, i);
}
+ if (os->start_granule != OGG_NOGRANULE_VALUE)
+ os->lastpts = s->streams[i]->start_time =
+ ogg_gptopts(s, i, os->start_granule, NULL);
}
//linear granulepos seek from end