From 11e225db31dcad57e2219ad8dfae2ac027af53d6 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Wed, 25 Jan 2017 15:59:09 +0100 Subject: 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. --- 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; -- cgit v1.2.3