---
 libavformat/icertpdec.c |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libavformat/icertpdec.c b/libavformat/icertpdec.c
index bc0849d..07be0a7 100644
--- a/libavformat/icertpdec.c
+++ b/libavformat/icertpdec.c
@@ -80,10 +80,14 @@ static int io_read(void *ptr, uint8_t *buf, int len)
     ICEContext *c = ptr;
     struct sockaddr_storage addr;
     socklen_t addrlen = sizeof(addr);
+    struct pollfd pfd = { c->stun.fd, POLLIN, 0 };
     int n;
 start:
     if (ff_check_interrupt(c->interrupt_callback))
         return AVERROR_EXIT;
+    n = poll(&pfd, 1, 50);
+    if (n <= 0)
+        goto start;
     n = recvfrom(c->stun.fd, buf, len, 0, (struct sockaddr*) &addr, &addrlen);
     if (n <= 0)
         return n;
-- 
1.7.9.4

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

Reply via email to