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>
Wed, 21 Sep 2011 18:56:53 +0000 (20:56 +0200)
(cherry picked from commit b2f230e23dd61112ac090b0c059d87b5f6bcb307)

libavformat/mpeg.c

index 1bc4480..3166b42 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;
 }