Browse Source

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
pull/1722/head
Donat Zenichev 2 years ago
parent
commit
554832d8e4
1 changed files with 11 additions and 9 deletions
  1. +11
    -9
      daemon/codec.c

+ 11
- 9
daemon/codec.c View File

@ -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);
}
}


Loading…
Cancel
Save