mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avformat: Use ff_check_interrupt
This commit is contained in:
parent
c4a090ddb5
commit
9957cdbfd5
@ -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;
|
||||
|
||||
|
@ -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++;
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user