From 189a262206aaf52f142f35dc28cb5957e8eb628a Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Mon, 5 Feb 2024 06:24:59 +0100 Subject: [PATCH] select remote's first codec Change-Id: I21452edfce34ced393ebb83a5a8b2a746f78d9c6 --- src/libmsc/codec_filter.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/libmsc/codec_filter.c b/src/libmsc/codec_filter.c index 87bad9457..7f3fc1fbe 100644 --- a/src/libmsc/codec_filter.c +++ b/src/libmsc/codec_filter.c @@ -66,6 +66,11 @@ int codec_filter_run(struct codec_filter *codec_filter, struct sdp_msg *result, * assigned codec from the filter result, and it is the CC code's responsibility to detect this and * assign a working codec instead. */ sdp_audio_codecs_select(r, a); + } else if (remote && remote->audio_codecs.count) { + /* If we haven't assigned yet, favor remote's first pick. Assume that the remote side has placed its + * favorite codec up first. Remote may already have assigned a codec, and picking a different one might + * trigger a change of codec mode (Re-Assignment). So try to adhere to the first codec listed. */ + sdp_audio_codecs_select(r, &remote->audio_codecs.codec[0]); } return 0; }