diff options
author | Martin Storsjö <martin@martin.st> | 2011-11-06 22:10:21 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2011-11-13 13:07:48 +0100 |
commit | c4a090ddb564b87fd9d6d4f83e0f134a77c96007 (patch) | |
tree | 908c02873d9222ea2be177df8fae493666b155d4 | |
parent | 6aa0b98fb27ab22bd62a365de44d9f16cc07d03e (diff) | |
download | ffmpeg-c4a090ddb564b87fd9d6d4f83e0f134a77c96007.tar.gz |
avio: Add an internal utility function for checking the new interrupt callback
Signed-off-by: Anton Khirnov <anton@khirnov.net>
-rw-r--r-- | libavformat/avio.c | 8 | ||||
-rw-r--r-- | libavformat/url.h | 6 |
2 files changed, 14 insertions, 0 deletions
diff --git a/libavformat/avio.c b/libavformat/avio.c index 8e1854976e..1964012b1d 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -408,6 +408,14 @@ void avio_set_interrupt_cb(int (*interrupt_cb)(void)) url_interrupt_cb = interrupt_cb; } +int ff_check_interrupt(AVIOInterruptCB *cb) +{ + int ret; + if (cb && cb->callback && (ret = cb->callback(cb->opaque))) + return ret; + return url_interrupt_cb(); +} + #if FF_API_OLD_AVIO int av_url_read_pause(URLContext *h, int pause) { diff --git a/libavformat/url.h b/libavformat/url.h index c0f532278f..de10033710 100644 --- a/libavformat/url.h +++ b/libavformat/url.h @@ -170,6 +170,12 @@ int ffurl_get_file_handle(URLContext *h); */ int ffurl_register_protocol(URLProtocol *protocol, int size); +/** + * Check if the user has requested to interrup a blocking function + * associated with cb. + */ +int ff_check_interrupt(AVIOInterruptCB *cb); + /* udp.c */ int ff_udp_set_remote_url(URLContext *h, const char *uri); int ff_udp_get_local_port(URLContext *h); |