aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>2011-03-04 23:43:02 +0100
committerMichael Niedermayer <michaelni@gmx.at>2011-03-08 02:09:44 +0100
commitaa612fbb99f6246913a789afde5a26f70c5a9159 (patch)
tree27d2a368e67cd0a7b5b0d5f4e1d26aa45d2ee8ce
parenta2fc93f7005ee97cf17a07caac0f07f0537e2f59 (diff)
downloadffmpeg-aa612fbb99f6246913a789afde5a26f70c5a9159.tar.gz
In retry_transfer_wrapper, do not check url_interrupt_cb, causes problems
when writing and pressing q during encoding. Instead, check url_interrupt_cb at the end. Note that when a protocol is interrupted by url_interrupt_cb, some data may be silently discarded: the protocol context is not suitable for anything anymore. Signed-off-by: Nicolas George <nicolas.george@normalesup.org> Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com> (cherry picked from commit 688c22e033a48ebf84fb4b52642bbd40f11e9c4e)
-rw-r--r--libavformat/avio.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libavformat/avio.c b/libavformat/avio.c
index 49031a548c..2265549266 100644
--- a/libavformat/avio.c
+++ b/libavformat/avio.c
@@ -237,6 +237,8 @@ static inline int retry_transfer_wrapper(URLContext *h, unsigned char *buf, int
if (ret)
fast_retries = FFMAX(fast_retries, 2);
len += ret;
+ if (url_interrupt_cb())
+ return AVERROR(EINTR);
}
return len;
}