From 554832d8e4daab359910b15eed88dec0af1130b1 Mon Sep 17 00:00:00 2001 From: Donat Zenichev Date: Mon, 28 Aug 2023 16:15:59 +0200 Subject: [PATCH] MT#57719 Use media subscriptions in `codec_update_all_source_handlers()` Start using the media subscriptions model (based on newly introduced `media_subscription` objects) in scope of `codec_update_all_source_handlers()`. Change-Id: I29da49cdd2b5de8c6e6f9a6629f5b1f3867596ba --- daemon/codec.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/daemon/codec.c b/daemon/codec.c index 3d45655ed..b34f633e7 100644 --- a/daemon/codec.c +++ b/daemon/codec.c @@ -4157,19 +4157,21 @@ void codec_update_all_handlers(struct call_monologue *ml) { dialogue_unkernelize(ml, "updating codec handlers"); } void codec_update_all_source_handlers(struct call_monologue *ml, const struct sdp_ng_flags *flags) { - for (GList *l = ml->subscriptions.head; l; l = l->next) { - struct call_subscription *cs = l->data; - struct call_monologue *source = cs->monologue; - // iterate both simultaneously + for (int i = 0; i < ml->medias->len; i++) + { + struct call_media * sink_media = ml->medias->pdata[i]; + if (!sink_media) + continue; + + for (GList * sub = sink_media->media_subscriptions.head; sub; sub = sub->next) + { + struct media_subscription * ms = sub->data; + struct call_media * source_media = ms->media; - for (unsigned int i = 0; i < source->medias->len && i < ml->medias->len; i++) { - struct call_media *source_media = source->medias->pdata[i]; if (!source_media) continue; - struct call_media *sink_media = ml->medias->pdata[i]; - if (!sink_media) - continue; + codec_handlers_update(source_media, sink_media, .flags = flags); } }