|
|
@ -3853,6 +3853,25 @@ void codec_update_all_handlers(struct call_monologue *ml) { |
|
|
|
|
|
|
|
|
dialogue_unkernelize(ml); |
|
|
dialogue_unkernelize(ml); |
|
|
} |
|
|
} |
|
|
|
|
|
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 |
|
|
|
|
|
GList *source_media_it = source->medias.head; |
|
|
|
|
|
GList *sink_media_it = ml->medias.head; |
|
|
|
|
|
while (source_media_it && sink_media_it) { |
|
|
|
|
|
struct call_media *source_media = source_media_it->data; |
|
|
|
|
|
struct call_media *sink_media = sink_media_it->data; |
|
|
|
|
|
codec_handlers_update(source_media, sink_media, flags, NULL); |
|
|
|
|
|
source_media_it = source_media_it->next; |
|
|
|
|
|
sink_media_it = sink_media_it->next; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
dialogue_unkernelize(ml); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void codec_calc_jitter(struct ssrc_ctx *ssrc, unsigned long ts, unsigned int clockrate, |
|
|
void codec_calc_jitter(struct ssrc_ctx *ssrc, unsigned long ts, unsigned int clockrate, |
|
|
|