}
/* Setup poll */
- memset(ev, 0, sizeof(ev));
nfds = 0;
if ((rtsp_flags & SATIP_SETUP_TCP) == 0) {
- ev[nfds].events = TVHPOLL_IN;
- ev[nfds].fd = rtp->fd;
- ev[nfds].ptr = rtp;
- nfds++;
- ev[nfds].events = TVHPOLL_IN;
- ev[nfds].fd = rtcp->fd;
- ev[nfds].ptr = rtcp;
- nfds++;
+ tvhpoll_event(&ev[nfds++], rtp->fd, TVHPOLL_IN, rtp);
+ tvhpoll_event(&ev[nfds++], rtcp->fd, TVHPOLL_IN, rtcp);
} else {
rtsp->hc_io_size = 128 * 1024;
rtsp->hc_rtp_data_received = satip_frontend_rtp_data_received;
}
- if (i) {
- ev[nfds].events = TVHPOLL_IN;
- ev[nfds].fd = rtsp->hc_fd;
- ev[nfds].ptr = rtsp;
- nfds++;
- }
+ if (i)
+ tvhpoll_event(&ev[nfds++], rtsp->hc_fd, TVHPOLL_IN, rtsp);
tvhpoll_add(efd, ev, nfds);
rtsp->hc_efd = efd;
udp_multirecv_free(&um);
lfe->sf_curmux = NULL;
- memset(ev, 0, sizeof(ev));
nfds = 0;
if ((rtsp_flags & SATIP_SETUP_TCP) == 0) {
- ev[nfds++].fd = rtp->fd;
- ev[nfds++].fd = rtcp->fd;
+ tvhpoll_event1(&ev[nfds++], rtp->fd);
+ tvhpoll_event1(&ev[nfds++], rtcp->fd);
}
- ev[nfds++].fd = lfe->sf_dvr_pipe.rd;
+ tvhpoll_event1(&ev[nfds++], lfe->sf_dvr_pipe.rd);
tvhpoll_rem(efd, ev, nfds);
if (exit_flag) {
/* the poll set includes the sockfd and the pipe for IPC */
efd = tvhpoll_create(2);
- memset(ev, 0, sizeof(ev));
- ev[0].events = TVHPOLL_IN;
- ev[0].fd = sockfd;
- ev[0].ptr = hfe;
- ev[1].events = TVHPOLL_IN;
- ev[1].fd = hfe->hf_input_thread_pipe.rd;
- ev[1].ptr = &hfe->hf_input_thread_pipe;
+ tvhpoll_event(ev+0, sockfd, TVHPOLL_IN, hfe);
+ tvhpoll_event(ev+1, hfe->hf_input_thread_pipe.rd, TVHPOLL_IN,
+ &hfe->hf_input_thread_pipe);
r = tvhpoll_add(efd, ev, 2);
if(r < 0)
tvhpoll_t *efd = tvhpoll_create(2);
int nfds;
- memset(ev, 0, sizeof(ev));
- ev[0].events = TVHPOLL_IN;
- ev[0].fd = spawn_pipe_info.rd;
- ev[0].ptr = &spawn_pipe_info;
- ev[1].events = TVHPOLL_IN;
- ev[1].fd = spawn_pipe_error.rd;
- ev[1].ptr = &spawn_pipe_error;
+ tvhpoll_event(ev+0, spawn_pipe_info.rd, TVHPOLL_IN, &spawn_pipe_info);
+ tvhpoll_event(ev+1, spawn_pipe_error.rd, TVHPOLL_IN, &spawn_pipe_error);
tvhpoll_add(efd, ev, 2);
while (atomic_get(&spawn_pipe_running)) {
tvhpoll_event_t ev = { 0 };
pd = tvhpoll_create(1);
- ev.fd = ts->rd_pipe.rd;
- ev.events = TVHPOLL_IN;
- tvhpoll_add(pd, &ev, 1);
+ tvhpoll_add1(pd, ts->rd_pipe.rd, TVHPOLL_IN, NULL);
/* Output */
while (run) {
#define TVHPOLL_ERR 0x08
#define TVHPOLL_HUP 0x10
+static inline
+tvhpoll_event_t *tvhpoll_event
+ (tvhpoll_event_t *ev, int fd, uint32_t events, void *ptr)
+{
+ ev->fd = fd; ev->events = events; ev->ptr = ptr; return ev;
+}
+
+static inline
+tvhpoll_event_t *tvhpoll_event1(tvhpoll_event_t *ev, int fd)
+{
+ ev->fd = fd; ev->events = 0; ev->ptr = NULL; return ev;
+}
+
tvhpoll_t *tvhpoll_create(size_t num);
void tvhpoll_destroy(tvhpoll_t *tp);
void tvhpoll_set_trace(tvhpoll_t *tp, int subsys, int trace);
if (unicast == NULL || unicast == UDP_FATAL_ERROR)
goto error;
- memset(&ev, 0, sizeof(ev));
- ev[0].fd = multicast->fd;
- ev[0].events = TVHPOLL_IN;
- ev[0].ptr = multicast;
- ev[1].fd = unicast->fd;
- ev[1].events = TVHPOLL_IN;
- ev[1].ptr = unicast;
+ tvhpoll_event(ev+0, multicast->fd, TVHPOLL_IN, multicast);
+ tvhpoll_event(ev+1, unicast->fd, TVHPOLL_IN, unicast);
tvhpoll_add(poll, ev, 2);
delay_ms = 0;