[FFmpeg-cvslog] avformat/rtmpproto: Fix 2 more cases of the 2nd packet size being wrong

Michael Niedermayer git at videolan.org
Fri Oct 2 02:19:00 CEST 2015


ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Fri Oct  2 01:59:22 2015 +0200| [94d50b5d00ced1d341cf8bfd3f318ebec76dbdea] | committer: Michael Niedermayer

avformat/rtmpproto: Fix 2 more cases of the 2nd packet size being wrong

This should fix RTMP input which was broken by cbbd906be6150be38dfc14b6bc67dcac8da8aea4
the 40 + 11 case is untested as it did not occur in the testcase

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=94d50b5d00ced1d341cf8bfd3f318ebec76dbdea
---

 libavformat/rtmpproto.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
index 73ba89b..2e33dc8 100644
--- a/libavformat/rtmpproto.c
+++ b/libavformat/rtmpproto.c
@@ -2368,8 +2368,9 @@ static int handle_metadata(RTMPContext *rt, RTMPPacket *pkt)
         bytestream_put_be24(&p, ts);
         bytestream_put_byte(&p, ts >> 24);
         memcpy(p, next, size + 3 + 4);
+        p    += size + 3;
+        bytestream_put_be32(&p, size + 11);
         next += size + 3 + 4;
-        p    += size + 3 + 4;
     }
     if (p != rt->flv_data + rt->flv_size) {
         av_log(NULL, AV_LOG_WARNING, "Incomplete flv packets in "
@@ -2559,7 +2560,7 @@ static int inject_fake_duration_metadata(RTMPContext *rt)
     // Finalise object
     bytestream_put_be16(&p, 0); // Empty string
     bytestream_put_byte(&p, AMF_END_OF_OBJECT);
-    bytestream_put_be32(&p, 40); // size of data part (sum of all parts below)
+    bytestream_put_be32(&p, 40 + 11); // size of data part (sum of all parts below)
 
     return 0;
 }



More information about the ffmpeg-cvslog mailing list