diff options
-rw-r--r-- | libavformat/applehttp.c | 5 | ||||
-rw-r--r-- | libavformat/applehttpproto.c | 4 | ||||
-rw-r--r-- | libavformat/avio.c | 2 | ||||
-rw-r--r-- | libavformat/rtpproto.c | 2 | ||||
-rw-r--r-- | libavformat/rtsp.c | 2 | ||||
-rw-r--r-- | libavformat/tcp.c | 4 | ||||
-rw-r--r-- | libavformat/tls.c | 2 | ||||
-rw-r--r-- | libavformat/utils.c | 2 |
8 files changed, 13 insertions, 10 deletions
diff --git a/libavformat/applehttp.c b/libavformat/applehttp.c index eadb230..06884a0 100644 --- a/libavformat/applehttp.c +++ b/libavformat/applehttp.c @@ -99,6 +99,7 @@ typedef struct AppleHTTPContext { int cur_seq_no; int end_of_segment; int first_packet; + AVIOInterruptCB *interrupt_callback; } AppleHTTPContext; static int read_chomp_line(AVIOContext *s, char *buf, int maxlen) @@ -388,7 +389,7 @@ reload: return AVERROR_EOF; while (av_gettime() - v->last_load_time < v->target_duration*1000000) { - if (url_interrupt_cb()) + if (ff_check_interrupt(c->interrupt_callback)) return AVERROR_EXIT; usleep(100*1000); } @@ -433,6 +434,8 @@ static int applehttp_read_header(AVFormatContext *s, AVFormatParameters *ap) AppleHTTPContext *c = s->priv_data; int ret = 0, i, j, stream_offset = 0; + c->interrupt_callback = &s->interrupt_callback; + if ((ret = parse_playlist(c, s->filename, NULL, s->pb)) < 0) goto fail; diff --git a/libavformat/applehttpproto.c b/libavformat/applehttpproto.c index 85f3cfc..1476ea2 100644 --- a/libavformat/applehttpproto.c +++ b/libavformat/applehttpproto.c @@ -266,7 +266,7 @@ retry: if (s->finished) return AVERROR_EOF; while (av_gettime() - s->last_load_time < s->target_duration*1000000) { - if (url_interrupt_cb()) + if (ff_check_interrupt(&h->interrupt_callback)) return AVERROR_EXIT; usleep(100*1000); } @@ -276,7 +276,7 @@ retry: av_log(h, AV_LOG_DEBUG, "opening %s\n", url); ret = ffurl_open(&s->seg_hd, url, AVIO_FLAG_READ); if (ret < 0) { - if (url_interrupt_cb()) + if (ff_check_interrupt(&h->interrupt_callback)) return AVERROR_EXIT; av_log(h, AV_LOG_WARNING, "Unable to open %s\n", url); s->cur_seq_no++; diff --git a/libavformat/avio.c b/libavformat/avio.c index 1964012..c66e2ca 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -284,7 +284,7 @@ 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()) + if (ff_check_interrupt(&h->interrupt_callback)) return AVERROR_EXIT; } return len; diff --git a/libavformat/rtpproto.c b/libavformat/rtpproto.c index 9a18157..1bb0a4b 100644 --- a/libavformat/rtpproto.c +++ b/libavformat/rtpproto.c @@ -226,7 +226,7 @@ static int rtp_read(URLContext *h, uint8_t *buf, int size) struct pollfd p[2] = {{s->rtp_fd, POLLIN, 0}, {s->rtcp_fd, POLLIN, 0}}; for(;;) { - if (url_interrupt_cb()) + if (ff_check_interrupt(&h->interrupt_callback)) return AVERROR_EXIT; /* build fdset to listen to RTP and RTCP packets */ n = poll(p, 2, 100); diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 8f7bd37..5bdb7fa 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -1619,7 +1619,7 @@ static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, struct pollfd *p = rt->p; for (;;) { - if (url_interrupt_cb()) + if (ff_check_interrupt(&s->interrupt_callback)) return AVERROR_EXIT; if (wait_end && wait_end - av_gettime() < 0) return AVERROR(EAGAIN); diff --git a/libavformat/tcp.c b/libavformat/tcp.c index e602a55..fda34a3 100644 --- a/libavformat/tcp.c +++ b/libavformat/tcp.c @@ -100,7 +100,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags) struct pollfd p = {fd, POLLOUT, 0}; ret = ff_neterrno(); if (ret == AVERROR(EINTR)) { - if (url_interrupt_cb()) { + if (ff_check_interrupt(&h->interrupt_callback)) { ret = AVERROR_EXIT; goto fail1; } @@ -112,7 +112,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags) /* wait until we are connected or until abort */ while(timeout--) { - if (url_interrupt_cb()) { + if (ff_check_interrupt(&h->interrupt_callback)) { ret = AVERROR_EXIT; goto fail1; } diff --git a/libavformat/tls.c b/libavformat/tls.c index 8211e88..15d51f3 100644 --- a/libavformat/tls.c +++ b/libavformat/tls.c @@ -97,7 +97,7 @@ static int do_tls_poll(URLContext *h, int ret) int n = poll(&p, 1, 100); if (n > 0) break; - if (url_interrupt_cb()) + if (ff_check_interrupt(&h->interrupt_callback)) return AVERROR(EINTR); } return 0; diff --git a/libavformat/utils.c b/libavformat/utils.c index c2beeae..91760c8 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2310,7 +2310,7 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) count = 0; read_size = 0; for(;;) { - if(url_interrupt_cb()){ + if (ff_check_interrupt(&ic->interrupt_callback)){ ret= AVERROR_EXIT; av_log(ic, AV_LOG_DEBUG, "interrupted\n"); break; |