---
libavformat/rtmphttp.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/libavformat/rtmphttp.c b/libavformat/rtmphttp.c
index fdcff50..7c58f2b 100644
--- a/libavformat/rtmphttp.c
+++ b/libavformat/rtmphttp.c
@@ -24,6 +24,8 @@
* RTMP HTTP protocol
*/
+#include <unistd.h>
+
#include "libavutil/avstring.h"
#include "libavutil/intfloat.h"
#include "libavutil/opt.h"
@@ -44,6 +46,7 @@ typedef struct RTMP_HTTPContext {
int out_capacity; ///< current output buffer capacity
int initialized; ///< flag indicating when the http context
is initialized
int finishing; ///< flag indicating when the client
closes the connection
+ int nb_bytes_read; ///< number of bytes read since the last
request
} RTMP_HTTPContext;
static int rtmp_http_send_cmd(URLContext *h, const char *cmd)
@@ -122,6 +125,13 @@ static int rtmp_http_read(URLContext *h, uint8_t *buf, int
size)
if ((ret = rtmp_http_send_cmd(h, "idle")) < 0)
return ret;
+ rt->nb_bytes_read = 0;
+ }
+
+ if (rt->nb_bytes_read == 0) {
+ /* Wait 50ms before retrying to read a server reply in
+ * order to reduce the number of idle requets. */
+ usleep(50000);
}
if (h->flags & AVIO_FLAG_NONBLOCK) {
@@ -131,6 +141,7 @@ static int rtmp_http_read(URLContext *h, uint8_t *buf, int
size)
} else {
off += ret;
size -= ret;
+ rt->nb_bytes_read += ret;
}
} while (off <= 0);
--
1.7.10.3
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel