OSDN Git Service

mpegpsdec: fix reading first mpegps packet
authorArne de Bruijn <mail@arnedebruijn.nl>
Sat, 17 Sep 2011 12:59:00 +0000 (14:59 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 17 Sep 2011 23:57:56 +0000 (01:57 +0200)
libavformat/mpeg.c

index dc5d264..c58e072 100644 (file)
@@ -106,6 +106,7 @@ static int mpegps_read_header(AVFormatContext *s,
     MpegDemuxContext *m = s->priv_data;
     const char *sofdec = "Sofdec";
     int v, i = 0;
+    int64_t last_pos = avio_tell(s->pb);
 
     m->header_state = 0xff;
     s->ctx_flags |= AVFMTCTX_NOHEADER;
@@ -119,6 +120,9 @@ static int mpegps_read_header(AVFormatContext *s,
 
     m->sofdec = (m->sofdec == 6) ? 1 : 0;
 
+    if (!m->sofdec)
+       avio_seek(s->pb, last_pos, SEEK_SET);
+
     /* no need to do more */
     return 0;
 }