From 8d23ea1d3e30f520f03a286773da585d63860796 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Sat, 7 Nov 2015 15:09:04 +0100 Subject: [PATCH] SAT>IP server: run rtcp thread after signals are initialized otherwise forking does not work --- src/satip/rtp.c | 11 ++++++++--- src/satip/rtsp.c | 3 ++- src/satip/server.h | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/satip/rtp.c b/src/satip/rtp.c index cfee3c041..d6062dfa4 100644 --- a/src/satip/rtp.c +++ b/src/satip/rtp.c @@ -625,13 +625,18 @@ end: /* * */ -void satip_rtp_init(void) +void satip_rtp_init(int boot) { TAILQ_INIT(&satip_rtp_sessions); pthread_mutex_init(&satip_rtp_lock, NULL); - satip_rtcp_run = 1; - tvhthread_create(&satip_rtcp_tid, NULL, satip_rtcp_thread, NULL); + if (boot) + satip_rtcp_run = 0; + + if (!boot && !satip_rtcp_run) { + satip_rtcp_run = 1; + tvhthread_create(&satip_rtcp_tid, NULL, satip_rtcp_thread, NULL); + } } /* diff --git a/src/satip/rtsp.c b/src/satip/rtsp.c index a350f0ddf..2f2ab1a10 100644 --- a/src/satip/rtsp.c +++ b/src/satip/rtsp.c @@ -1542,7 +1542,7 @@ void satip_server_rtsp_init session_number = *(uint32_t *)rnd; TAILQ_INIT(&rtsp_sessions); pthread_mutex_init(&rtsp_lock, NULL); - satip_rtp_init(); + satip_rtp_init(1); } if (rtsp_port != port && rtsp_server) { rtsp_close_sessions(); @@ -1564,6 +1564,7 @@ void satip_server_rtsp_init void satip_server_rtsp_register(void) { tcp_server_register(rtsp_server); + satip_rtp_init(0); } void satip_server_rtsp_done(void) diff --git a/src/satip/server.h b/src/satip/server.h index 01ba87f20..222227a5c 100644 --- a/src/satip/server.h +++ b/src/satip/server.h @@ -45,7 +45,7 @@ void satip_rtp_update_pids(void *id, mpegts_apids_t *pids); int satip_rtp_status(void *id, char *buf, int len); void satip_rtp_close(void *id); -void satip_rtp_init(void); +void satip_rtp_init(int boot); void satip_rtp_done(void); void satip_server_rtsp_init(const char *bindaddr, int port, -- 2.47.3