TT#162750 make sure we can transcode to destination codec

Change-Id: I8fa38b367ce99042779538972843d8b9d5e5d90a
mr9.5.4
Richard Fuchs 3 years ago
parent deb02a539a
commit e929d754fc

@ -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.

Loading…
Cancel
Save