From c6e7cc5d32ad95b0c9d21609d6a163a39bde244c Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Thu, 24 Feb 2022 09:59:48 -0500 Subject: [PATCH] TT#136957 refactor __send_timer_send_common Change-Id: I4114ada4f9c789660ca7bc0a994799e37e1cb5fd --- daemon/media_player.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/daemon/media_player.c b/daemon/media_player.c index 040b75253..1dac2fcda 100644 --- a/daemon/media_player.c +++ b/daemon/media_player.c @@ -181,18 +181,19 @@ static void send_timer_rtcp(struct send_timer *st, struct ssrc_ctx *ssrc_out) { } -static void __send_timer_send_common(struct send_timer *st, struct codec_packet *cp) { - if (!st->sink->selected_sfd) - goto out; +static bool __send_timer_send_1(struct rtp_header *rh, struct packet_stream *sink, struct codec_packet *cp) { + struct stream_fd *sink_fd = sink->selected_sfd; + + if (!sink_fd || sink_fd->socket.fd == -1) + return false; - log_info_stream_fd(st->sink->selected_sfd); + log_info_stream_fd(sink->selected_sfd); - struct rtp_header *rh = cp->rtp; if (rh) { ilog(LOG_DEBUG, "Forward to sink endpoint: local %s -> remote %s%s%s " "(RTP seq %u TS %u SSRC %x)", - endpoint_print_buf(&st->sink->selected_sfd->socket.local), - FMT_M(endpoint_print_buf(&st->sink->endpoint)), + endpoint_print_buf(&sink_fd->socket.local), + FMT_M(endpoint_print_buf(&sink->endpoint)), ntohs(rh->seq_num), ntohl(rh->timestamp), ntohl(rh->ssrc)); @@ -200,11 +201,20 @@ static void __send_timer_send_common(struct send_timer *st, struct codec_packet } else ilog(LOG_DEBUG, "Forward to sink endpoint: local %s -> remote %s%s%s", - endpoint_print_buf(&st->sink->selected_sfd->socket.local), - FMT_M(endpoint_print_buf(&st->sink->endpoint))); + endpoint_print_buf(&sink_fd->socket.local), + FMT_M(endpoint_print_buf(&sink->endpoint))); + + socket_sendto(&sink_fd->socket, + cp->s.s, cp->s.len, &sink->endpoint); + + log_info_pop(); + + return true; +} - socket_sendto(&st->sink->selected_sfd->socket, - cp->s.s, cp->s.len, &st->sink->endpoint); +static void __send_timer_send_common(struct send_timer *st, struct codec_packet *cp) { + if (!__send_timer_send_1(cp->rtp, st->sink, cp)) + goto out; if (cp->ssrc_out && cp->rtp) { atomic64_inc(&cp->ssrc_out->packets);