diff options
author | Alex Beregszaszi <alex@rtfs.hu> | 2007-11-16 00:09:34 +0000 |
---|---|---|
committer | Alex Beregszaszi <alex@rtfs.hu> | 2007-11-16 00:09:34 +0000 |
commit | 018b6fb465814f63ef06044283813e971fa40c2b (patch) | |
tree | 060d516a59948e44204a235bfc941d6a4e6e90c6 /libavformat | |
parent | 964ff35445a7368fbb1ee594c34357952ade4ead (diff) | |
download | ffmpeg-018b6fb465814f63ef06044283813e971fa40c2b.tar.gz |
Honor the 8bit extension (now 32bit instaed 24bit) of the pts field introduced in FLV specification v9.
Originally committed as revision 11043 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/flvdec.c | 3 | ||||
-rw-r--r-- | libavformat/flvenc.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c index e9578c2e49..0530335c29 100644 --- a/libavformat/flvdec.c +++ b/libavformat/flvdec.c @@ -275,10 +275,11 @@ static int flv_read_packet(AVFormatContext *s, AVPacket *pkt) type = get_byte(&s->pb); size = get_be24(&s->pb); pts = get_be24(&s->pb); + pts |= get_byte(&s->pb) << 24; // av_log(s, AV_LOG_DEBUG, "type:%d, size:%d, pts:%d\n", type, size, pts); if (url_feof(&s->pb)) return AVERROR(EIO); - url_fskip(&s->pb, 4); /* reserved */ + url_fskip(&s->pb, 3); /* stream id, always 0 */ flags = 0; if(size == 0) diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c index 2adc303232..3901ba76b0 100644 --- a/libavformat/flvenc.c +++ b/libavformat/flvenc.c @@ -307,7 +307,8 @@ static int flv_write_packet(AVFormatContext *s, AVPacket *pkt) put_be24(pb,size + flags_size); put_be24(pb,pkt->pts); - put_be32(pb,flv->reserved); + put_byte(pb,pkt->pts >> 24); + put_be24(pb,flv->reserved); put_byte(pb,flags); if (enc->codec_id == CODEC_ID_VP6) put_byte(pb,0); |