Browse Source

MT#63317 split out ptime setting

Change-Id: Id9a7e0a794ae74110c0c2169c23af98d66fbfade
pull/2008/head
Richard Fuchs 4 months ago
parent
commit
fa54abf0b8
1 changed files with 16 additions and 27 deletions
  1. +16
    -27
      daemon/call.c

+ 16
- 27
daemon/call.c View File

@ -3010,35 +3010,22 @@ static void media_copy_format(struct call_media *media, struct call_media *src)
media->format_str = call_str_cpy(&src->format_str);
}
// `media` can be NULL
__attribute__((nonnull(1, 3, 4)))
static void __media_init_from_flags(struct call_media *other_media, struct call_media *media,
struct stream_params *sp, sdp_ng_flags *flags)
{
// codec and RTP payload types handling
__attribute__((nonnull(1, 2)))
static void media_set_ptime(struct call_media *media, struct stream_params *sp, int ptime, int ptime_rev) {
if (sp->ptime > 0) {
if (media && !MEDIA_ISSET(media, PTIME_OVERRIDE))
if (!MEDIA_ISSET(media, PTIME_OVERRIDE))
media->ptime = sp->ptime;
if (!MEDIA_ISSET(other_media, PTIME_OVERRIDE))
other_media->ptime = sp->ptime;
}
if (media && sp->maxptime > 0) {
media->maxptime = sp->maxptime;
}
if (media && flags->ptime > 0) {
media->ptime = flags->ptime;
media->maxptime = sp->maxptime;
if (ptime > 0) {
media->ptime = ptime;
MEDIA_SET(media, PTIME_OVERRIDE);
MEDIA_SET(other_media, PTIME_OVERRIDE);
}
if (flags->rev_ptime > 0) {
other_media->ptime = flags->rev_ptime;
if (media)
MEDIA_SET(media, PTIME_OVERRIDE);
MEDIA_SET(other_media, PTIME_OVERRIDE);
}
if (ptime_rev > 0)
MEDIA_SET(media, PTIME_OVERRIDE);
}
unsigned int proto_num_ports(unsigned int sp_ports, struct call_media *media, sdp_ng_flags *flags,
bool allow_offer_split)
{
@ -3098,7 +3085,7 @@ static struct call_media * monologue_add_zero_media(struct call_monologue *sende
media_update_crypto(sender_media, sp, flags);
media_update_attrs(sender_media, sp);
media_update_format(sender_media, sp);
__media_init_from_flags(sender_media, NULL, sp, flags);
media_set_ptime(sender_media, sp, flags->rev_ptime, flags->ptime);
*num_ports_other = proto_num_ports(sp->num_ports, sender_media, flags,
(flags->rtcp_mux_demux || flags->rtcp_mux_accept) ? true : false);
__disable_streams(sender_media, *num_ports_other);
@ -3227,7 +3214,8 @@ int monologue_offer_answer(struct call_monologue *monologues[2], sdp_streams_q *
media_update_format(sender_media, sp);
media_copy_format(receiver_media, sender_media);
media_set_address_family(receiver_media, sender_media, flags);
__media_init_from_flags(sender_media, receiver_media, sp, flags);
media_set_ptime(sender_media, sp, flags->rev_ptime, flags->ptime);
media_set_ptime(receiver_media, sp, flags->ptime, flags->rev_ptime);
if (flags->opmode == OP_OFFER) {
ilog(LOG_DEBUG, "Setting media recording slots to %u", flags->media_rec_slot_offer);
@ -3642,7 +3630,7 @@ int monologue_publish(struct call_monologue *ml, sdp_streams_q *streams, sdp_ng_
media_update_crypto(media, sp, flags);
media_update_attrs(media, sp);
media_update_format(media, sp);
__media_init_from_flags(media, NULL, sp, flags);
media_set_ptime(media, sp, flags->ptime, 0);
codec_store_populate(&media->codecs, &sp->codecs,
.allow_asymmetric = !!flags->allow_asymmetric_codecs);
@ -3737,7 +3725,8 @@ static int monologue_subscribe_request1(struct call_monologue *src_ml, struct ca
media_update_crypto(dst_media, sp, flags);
media_copy_format(dst_media, src_media);
media_set_address_family(dst_media, src_media, flags);
__media_init_from_flags(src_media, dst_media, sp, flags);
media_set_ptime(src_media, sp, flags->rev_ptime, flags->ptime);
media_set_ptime(dst_media, sp, flags->ptime, flags->rev_ptime);
codec_store_populate(&dst_media->codecs, &src_media->codecs,
.allow_asymmetric = !!flags->allow_asymmetric_codecs);
@ -3846,7 +3835,7 @@ int monologue_subscribe_answer(struct call_monologue *dst_ml, sdp_ng_flags *flag
media_update_flags(dst_media, sp);
media_update_crypto(dst_media, sp, flags);
media_update_format(dst_media, sp);
__media_init_from_flags(dst_media, NULL, sp, flags);
media_set_ptime(dst_media, sp, flags->ptime, 0);
if (flags->allow_transcoding) {
codec_store_populate(&dst_media->codecs, &sp->codecs,


Loading…
Cancel
Save