Set pkt->pos correctly (to the start of header of the packet) in swfdec.

Originally committed as revision 17953 to svn://svn.ffmpeg.org/ffmpeg/trunk
release/0.6
Reimar Döffinger 16 years ago
parent 4e35ffa978
commit 7e04cfba27
  1. 4
      libavformat/swfdec.c

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

Loading…
Cancel
Save