rtmp: Correctly handle the Window Acknowledgement Size packets
authorMartin Storsjö <martin@martin.st>
Tue, 31 Jan 2017 14:15:56 +0000 (16:15 +0200)
committerMartin Storsjö <martin@martin.st>
Fri, 3 Feb 2017 07:27:41 +0000 (09:27 +0200)
commit15a92e0c402c830b607f905d6bf203b6cfb4fa8c
tree4cc16dd5f6805a443f434c8b64f4a6fed3e1a5c8
parenta1a143adb0fd11c474221431417cff25db7d920f
rtmp: Correctly handle the Window Acknowledgement Size packets

This swaps which field is set when the Window Acknowledgement Size
and Set Peer BW packets are received, renames the fields in
order to clarify their role further and adds verbose comments
explaining their respective roles and how well the code currently
does what it is supposed to.

The Set Peer BW packet tells the receiver of the packet (which
can be either client or server) that it should not send more data
if it already has sent more data than the specified number of bytes,
without receiving acknowledgement for them. Actually checking this
limit is currently not implemented.

In order to be able to check that properly, one can send the
Window Acknowledgement Size packet, which tells the receiver of the
packet that it needs to send Acknowledgement packets
(RTMP_PT_BYTES_READ) at least after receiving a given number of bytes
since the last Acknowledgement.

Therefore, when we receive a Window Acknowledgement Size packet,
this sets the maximum number of bytes we can receive without sending
an Acknowledgement; therefore when handling this packet we should set
the receive_report_size field (previously client_report_size).

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/rtmpproto.c