From 018b6fb465814f63ef06044283813e971fa40c2b Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Fri, 16 Nov 2007 00:09:34 +0000 Subject: [PATCH] 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 --- libavformat/flvdec.c | 3 ++- libavformat/flvenc.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c index e9578c2..0530335 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 2adc303..3901ba7 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); -- 2.7.4