[FFmpeg-cvslog] rtmp: Account for bytes_read wraparound

Luca Barbato git at videolan.org
Sat May 20 17:43:12 EEST 2017


ffmpeg | branch: master | Luca Barbato <lu_zero at gentoo.org> | Wed Jan 25 15:59:09 2017 +0100| [11e225db31dcad57e2219ad8dfae2ac027af53d6] | committer: Luca Barbato

rtmp: Account for bytes_read wraparound

Servers seem to be happy to receive the wrapped-around value as long
as they receive a report, otherwise they timeout.

Initially reported and analyzed by Thomas Bernhard.

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

 libavformat/rtmpproto.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
index 5298c18790..49a40dd66a 100644
--- a/libavformat/rtmpproto.c
+++ b/libavformat/rtmpproto.c
@@ -2416,7 +2416,7 @@ static int get_packet(URLContext *s, int for_header)
         rt->last_timestamp = rpkt.timestamp;
 
         rt->bytes_read += ret;
-        if (rt->bytes_read > rt->last_bytes_read + rt->client_report_size) {
+        if (rt->bytes_read - rt->last_bytes_read > rt->client_report_size) {
             av_log(s, AV_LOG_DEBUG, "Sending bytes read report\n");
             if ((ret = gen_bytes_read(s, rt, rpkt.timestamp + 1)) < 0)
                 return ret;



More information about the ffmpeg-cvslog mailing list