|
|
|
@ -610,7 +610,7 @@ static int __unused_pt_number(struct call_media *media, struct call_media *other |
|
|
|
goto next; |
|
|
|
if ((pt_match = g_hash_table_lookup(other_media->codecs_send, GINT_TO_POINTER(num)))) |
|
|
|
goto next; |
|
|
|
} |
|
|
|
} |
|
|
|
// OK |
|
|
|
break; |
|
|
|
|
|
|
|
@ -717,7 +717,7 @@ static void __accept_pt(struct call_media *receiver, struct call_media *sink, in |
|
|
|
// PT collision. We must renumber one of the entries. `pt` is taken |
|
|
|
// from the send list, so the PT should remain the same. Renumber |
|
|
|
// the existing entry. |
|
|
|
int new_pt = __unused_pt_number(receiver, sink, existing_pt); |
|
|
|
int new_pt = __unused_pt_number(receiver, sink, pt); |
|
|
|
if (new_pt < 0) { |
|
|
|
ilogs(codec, LOG_WARN, "Ran out of RTP payload type numbers while accepting '" |
|
|
|
STR_FORMAT "' due to '" STR_FORMAT "'", |
|
|
|
@ -1507,7 +1507,17 @@ unsupported: |
|
|
|
dest_pt = pref_dest_codec; |
|
|
|
if (pt->codec_def->supplemental) |
|
|
|
transcode_supplemental = 1; |
|
|
|
transcode:; |
|
|
|
transcode: |
|
|
|
// can we actually transcode to this? |
|
|
|
if (!dest_pt->codec_def) { |
|
|
|
ilogs(codec, LOG_DEBUG, "Target codec for " STR_FORMAT " would be " STR_FORMAT |
|
|
|
" but is not supported for transcoding. Using " STR_FORMAT |
|
|
|
" instead", |
|
|
|
STR_FMT(&pt->encoding_with_params), |
|
|
|
STR_FMT(&dest_pt->encoding_with_params), |
|
|
|
STR_FMT(&pref_dest_codec->encoding_with_params)); |
|
|
|
dest_pt = pref_dest_codec; |
|
|
|
} |
|
|
|
// look up the reverse side of this payload type, which is the decoder to our |
|
|
|
// encoder. if any codec options such as bitrate were set during an offer, |
|
|
|
// they're in the decoder // PT. copy them to the encoder PT. |
|
|
|
|