]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Set pkt->pos correctly (to the start of header of the packet) in swfdec.
authorreimar <reimar@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Fri, 13 Mar 2009 22:26:45 +0000 (22:26 +0000)
committerreimar <reimar@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Fri, 13 Mar 2009 22:26:45 +0000 (22:26 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@17953 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavformat/swfdec.c

index 84510eedcdeddc5d4e3e6b41be67aadd94319197..1f010c58be38f574bca3da71e40918b3f9a3d207 100644 (file)
@@ -87,6 +87,7 @@ static int swf_read_packet(AVFormatContext *s, AVPacket *pkt)
     int tag, len, i, frame, v;
 
     for(;;) {
+        uint64_t pos = url_ftell(pb);
         tag = get_swf_tag(pb, &len);
         if (tag < 0)
             return AVERROR(EIO);
@@ -148,6 +149,7 @@ static int swf_read_packet(AVFormatContext *s, AVPacket *pkt)
                 if (st->codec->codec_type == CODEC_TYPE_VIDEO && st->id == ch_id) {
                     frame = get_le16(pb);
                     av_get_packet(pb, pkt, len-2);
+                    pkt->pos = pos;
                     pkt->pts = frame;
                     pkt->stream_index = st->index;
                     return pkt->size;
@@ -163,6 +165,7 @@ static int swf_read_packet(AVFormatContext *s, AVPacket *pkt)
             } else { // ADPCM, PCM
                 av_get_packet(pb, pkt, len);
             }
+            pkt->pos = pos;
             pkt->stream_index = st->index;
             return pkt->size;
                 }
@@ -195,6 +198,7 @@ static int swf_read_packet(AVFormatContext *s, AVPacket *pkt)
             } else {
                 get_buffer(pb, pkt->data + 4, pkt->size - 4);
             }
+            pkt->pos = pos;
             pkt->stream_index = st->index;
             return pkt->size;
         }