Honor the 8bit extension (now 32bit instaed 24bit) of the pts field introduced in...
authorAlex Beregszaszi <alex@rtfs.hu>
Fri, 16 Nov 2007 00:09:34 +0000 (00:09 +0000)
committerAlex Beregszaszi <alex@rtfs.hu>
Fri, 16 Nov 2007 00:09:34 +0000 (00:09 +0000)
Originally committed as revision 11043 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/flvdec.c
libavformat/flvenc.c

index e9578c2..0530335 100644 (file)
@@ -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)
index 2adc303..3901ba7 100644 (file)
@@ -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);