changeset 2756:8258fb5a6aa0 libavformat

Honor the 8bit extension (now 32bit instaed 24bit) of the pts field introduced in FLV specification v9.
author alex
date Fri, 16 Nov 2007 00:09:34 +0000
parents bb9c77d499dd
children 39cac1b7296e
files flvdec.c flvenc.c
diffstat 2 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/flvdec.c	Thu Nov 15 23:53:19 2007 +0000
+++ b/flvdec.c	Fri Nov 16 00:09:34 2007 +0000
@@ -275,10 +275,11 @@
     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)
--- a/flvenc.c	Thu Nov 15 23:53:19 2007 +0000
+++ b/flvenc.c	Fri Nov 16 00:09:34 2007 +0000
@@ -307,7 +307,8 @@
 
     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);