Module: libav
Branch: master
Commit: 34d908c083361f607879c717d7367109786b858d

Author:    Raffaele Sena <[email protected]>
Committer: Luca Barbato <[email protected]>
Date:      Wed Mar  7 10:21:16 2012 -0800

rtmp: implement bandwidth notification

Improve compatibility with some servers.

Signed-off-by: Luca Barbato <[email protected]>

---

 libavformat/rtmpproto.c |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
index a6917ce..7683559 100644
--- a/libavformat/rtmpproto.c
+++ b/libavformat/rtmpproto.c
@@ -347,6 +347,21 @@ static void gen_pong(URLContext *s, RTMPContext *rt, 
RTMPPacket *ppkt)
 }
 
 /**
+ * Generate server bandwidth message and send it to the server.
+ */
+static void gen_server_bw(URLContext *s, RTMPContext *rt)
+{
+    RTMPPacket pkt;
+    uint8_t *p;
+
+    ff_rtmp_packet_create(&pkt, RTMP_NETWORK_CHANNEL, RTMP_PT_SERVER_BW, 0, 4);
+    p = pkt.data;
+    bytestream_put_be32(&p, 2500000);
+    ff_rtmp_packet_write(rt->stream, &pkt, rt->chunk_size, rt->prev_pkt[1]);
+    ff_rtmp_packet_destroy(&pkt);
+}
+
+/**
  * Generate report on bytes read so far and send it to the server.
  */
 static void gen_bytes_read(URLContext *s, RTMPContext *rt, uint32_t ts)
@@ -607,6 +622,7 @@ static int rtmp_parse_result(URLContext *s, RTMPContext 
*rt, RTMPPacket *pkt)
                     gen_fcpublish_stream(s, rt);
                     rt->state = STATE_RELEASING;
                 } else {
+                    gen_server_bw(s, rt);
                     rt->state = STATE_CONNECTING;
                 }
                 gen_create_stream(s, rt);

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to