diff --git a/libavformat/libsrt.c b/libavformat/libsrt.c
index 233e9096fa..f87b10efe1 100644
|
a
|
b
|
static int libsrt_listen(int eid, int fd, const struct sockaddr *addr, socklen_t
|
| 233 | 233 | if (srt_listen(fd, 1)) |
| 234 | 234 | return libsrt_neterrno(h); |
| 235 | 235 | |
| 236 | | ret = libsrt_network_wait_fd_timeout(h, eid, 1, timeout, &h->interrupt_callback); |
| | 236 | ret = libsrt_network_wait_fd_timeout(h, eid, 0, timeout, &h->interrupt_callback); |
| 237 | 237 | if (ret < 0) |
| 238 | 238 | return ret; |
| 239 | 239 | |
| … |
… |
static int libsrt_setup(URLContext *h, const char *uri, int flags)
|
| 375 | 375 | char hostname[1024],proto[1024],path[1024]; |
| 376 | 376 | char portstr[10]; |
| 377 | 377 | int64_t open_timeout = 0; |
| 378 | | int eid, write_eid; |
| | 378 | int eid; |
| 379 | 379 | |
| 380 | 380 | av_url_split(proto, sizeof(proto), NULL, 0, hostname, sizeof(hostname), |
| 381 | 381 | &port, path, sizeof(path), uri); |
| … |
… |
static int libsrt_setup(URLContext *h, const char *uri, int flags)
|
| 435 | 435 | if (libsrt_socket_nonblock(fd, 1) < 0) |
| 436 | 436 | av_log(h, AV_LOG_DEBUG, "libsrt_socket_nonblock failed\n"); |
| 437 | 437 | |
| 438 | | ret = write_eid = libsrt_epoll_create(h, fd, 1); |
| 439 | | if (ret < 0) |
| 440 | | goto fail1; |
| 441 | 438 | if (s->mode == SRT_MODE_LISTENER) { |
| | 439 | int read_eid = ret = libsrt_epoll_create(h, fd, 0); |
| | 440 | if (ret < 0) |
| | 441 | goto fail1; |
| 442 | 442 | // multi-client |
| 443 | | ret = libsrt_listen(write_eid, fd, cur_ai->ai_addr, cur_ai->ai_addrlen, h, s->listen_timeout); |
| 444 | | srt_epoll_release(write_eid); |
| | 443 | ret = libsrt_listen(read_eid, fd, cur_ai->ai_addr, cur_ai->ai_addrlen, h, s->listen_timeout); |
| | 444 | srt_epoll_release(read_eid); |
| 445 | 445 | if (ret < 0) |
| 446 | 446 | goto fail1; |
| 447 | 447 | srt_close(fd); |
| 448 | 448 | fd = ret; |
| 449 | 449 | } else { |
| | 450 | int write_eid = ret = libsrt_epoll_create(h, fd, 1); |
| | 451 | if (ret < 0) |
| | 452 | goto fail1; |
| 450 | 453 | if (s->mode == SRT_MODE_RENDEZVOUS) { |
| 451 | 454 | if (srt_bind(fd, cur_ai->ai_addr, cur_ai->ai_addrlen)) { |
| 452 | 455 | ret = libsrt_neterrno(h); |