Commit 688c22e0 authored by Baptiste Coudurier's avatar Baptiste Coudurier Committed by Ronald S. Bultje

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: 's avatarNicolas George <nicolas.george@normalesup.org>
Signed-off-by: 's avatarRonald S. Bultje <rsbultje@gmail.com>
parent 789936db
......@@ -221,8 +221,6 @@ static inline int retry_transfer_wrapper(URLContext *h, unsigned char *buf, int
len = 0;
while (len < size_min) {
if (url_interrupt_cb())
return AVERROR(EINTR);
ret = transfer_func(h, buf+len, size-len);
if (ret == AVERROR(EINTR))
continue;
......@@ -239,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;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment