Browse Source

TT#136957 refactor some parts of kernelize()

no-op change

Change-Id: I3cb082b5f1ed7848794de82ef368a31931b60990
pull/1692/head
Richard Fuchs 3 years ago
parent
commit
583c6816a0
1 changed files with 18 additions and 13 deletions
  1. +18
    -13
      daemon/media_socket.c

+ 18
- 13
daemon/media_socket.c View File

@ -1625,6 +1625,19 @@ output:
return NULL; return NULL;
} }
// helper function for kernelize()
static void kernelize_one_sink_handler(struct rtpengine_target_info *reti, GQueue *outputs,
struct packet_stream *stream, struct sink_handler *sink_handler, GQueue *sinks,
GList **payload_types)
{
struct packet_stream *sink = sink_handler->sink;
if (PS_ISSET(sink, NAT_WAIT) && !PS_ISSET(sink, RECEIVED))
return;
const char *err = kernelize_one(reti, outputs, stream, sink_handler, &stream->rtp_sinks,
payload_types);
if (err)
ilog(LOG_WARNING, "No support for kernel packet forwarding available (%s)", err);
}
/* called with in_lock held */ /* called with in_lock held */
void kernelize(struct packet_stream *stream) { void kernelize(struct packet_stream *stream) {
struct call *call = stream->call; struct call *call = stream->call;
@ -1657,7 +1670,9 @@ void kernelize(struct packet_stream *stream) {
GQueue outputs = G_QUEUE_INIT; GQueue outputs = G_QUEUE_INIT;
GList *payload_types = NULL; GList *payload_types = NULL;
if (!stream->rtp_sinks.length && !stream->rtcp_sinks.length) {
unsigned int num_sinks = stream->rtp_sinks.length + stream->rtcp_sinks.length;
if (num_sinks == 0) {
// add blackhole kernel rule // add blackhole kernel rule
const char *err = kernelize_one(&reti, &outputs, stream, NULL, NULL, &payload_types); const char *err = kernelize_one(&reti, &outputs, stream, NULL, NULL, &payload_types);
if (err) if (err)
@ -1668,24 +1683,14 @@ void kernelize(struct packet_stream *stream) {
struct sink_handler *sh = l->data; struct sink_handler *sh = l->data;
if (sh->attrs.block_media) if (sh->attrs.block_media)
continue; continue;
struct packet_stream *sink = sh->sink;
if (PS_ISSET(sink, NAT_WAIT) && !PS_ISSET(sink, RECEIVED))
continue;
const char *err = kernelize_one(&reti, &outputs, stream, sh, &stream->rtp_sinks,
kernelize_one_sink_handler(&reti, &outputs, stream, sh, &stream->rtp_sinks,
&payload_types); &payload_types);
if (err)
ilog(LOG_WARNING, "No support for kernel packet forwarding available (%s)", err);
} }
// record number of RTP destinations // record number of RTP destinations
unsigned int num_rtp_dests = reti.num_destinations; unsigned int num_rtp_dests = reti.num_destinations;
for (GList *l = stream->rtcp_sinks.head; l; l = l->next) { for (GList *l = stream->rtcp_sinks.head; l; l = l->next) {
struct sink_handler *sh = l->data; struct sink_handler *sh = l->data;
struct packet_stream *sink = sh->sink;
if (PS_ISSET(sink, NAT_WAIT) && !PS_ISSET(sink, RECEIVED))
continue;
const char *err = kernelize_one(&reti, &outputs, stream, sh, &stream->rtp_sinks, NULL);
if (err)
ilog(LOG_WARNING, "No support for kernel packet forwarding available (%s)", err);
kernelize_one_sink_handler(&reti, &outputs, stream, sh, &stream->rtp_sinks, NULL);
} }
reti.num_rtcp_destinations = reti.num_destinations - num_rtp_dests; reti.num_rtcp_destinations = reti.num_destinations - num_rtp_dests;
} }


Loading…
Cancel
Save