Browse Source

oggdec: pass avformat context to ogg_reset()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n0.11
Michael Niedermayer 13 years ago
parent
commit
5f9f78dc9b
1 changed files with 5 additions and 4 deletions
  1. +5
    -4
      libavformat/oggdec.c

+ 5
- 4
libavformat/oggdec.c View File

@@ -117,8 +117,9 @@ static int ogg_restore(AVFormatContext *s, int discard)
return 0; return 0;
} }


static int ogg_reset(struct ogg *ogg)
static int ogg_reset(AVFormatContext *s)
{ {
struct ogg *ogg = s->priv_data;
int i; int i;


for (i = 0; i < ogg->nstreams; i++){ for (i = 0; i < ogg->nstreams; i++){
@@ -659,7 +660,7 @@ static int64_t ogg_read_timestamp(AVFormatContext *s, int stream_index,
int i = -1; int i = -1;
int pstart, psize; int pstart, psize;
avio_seek(bc, *pos_arg, SEEK_SET); avio_seek(bc, *pos_arg, SEEK_SET);
ogg_reset(ogg);
ogg_reset(s);


while (avio_tell(bc) < pos_limit && !ogg_packet(s, &i, &pstart, &psize, pos_arg)) { while (avio_tell(bc) < pos_limit && !ogg_packet(s, &i, &pstart, &psize, pos_arg)) {
if (i == stream_index) { if (i == stream_index) {
@@ -680,7 +681,7 @@ static int64_t ogg_read_timestamp(AVFormatContext *s, int stream_index,
if (pts != AV_NOPTS_VALUE) if (pts != AV_NOPTS_VALUE)
break; break;
} }
ogg_reset(ogg);
ogg_reset(s);
return pts; return pts;
} }


@@ -694,7 +695,7 @@ static int ogg_read_seek(AVFormatContext *s, int stream_index,
av_assert0(stream_index < ogg->nstreams); av_assert0(stream_index < ogg->nstreams);
// Ensure everything is reset even when seeking via // Ensure everything is reset even when seeking via
// the generated index. // the generated index.
ogg_reset(ogg);
ogg_reset(s);


// Try seeking to a keyframe first. If this fails (very possible), // Try seeking to a keyframe first. If this fails (very possible),
// av_seek_frame will fall back to ignoring keyframes // av_seek_frame will fall back to ignoring keyframes


Loading…
Cancel
Save