MT#55447 amend codec_store_add_*

Make these functions return the newly created payload type object so
that it can be manipulated directly without having to do a lookup.

Change-Id: Ib035cf7d61c61d0de6d5f87dfd497d17ba28ca5f
pull/1563/head
Richard Fuchs 3 years ago
parent 8a169c171f
commit 60b8299ad2

@ -3923,18 +3923,25 @@ static int handler_func_inject_dtmf(struct codec_handler *h, struct media_packet
return 0;
}
#endif
static struct rtp_payload_type *codec_make_payload_type_sup(const str *codec_str, struct call_media *media) {
struct rtp_payload_type *ret = codec_make_payload_type(codec_str, media->type_id);
struct rtp_payload_type *ret = codec_make_payload_type(codec_str, media ? media->type_id : MT_UNKNOWN);
if (!ret)
goto err2;
#ifndef WITH_TRANSCODING
return ret;
#else
// check for type mismatch and don't warn if it is
if (!ret->codec_def || (media->type_id && ret->codec_def->media_type != media->type_id)) {
if (!ret->codec_def || (media && media->type_id && ret->codec_def->media_type != media->type_id)) {
payload_type_free(ret);
return NULL;
}
@ -3951,6 +3958,9 @@ static struct rtp_payload_type *codec_make_payload_type_sup(const str *codec_str
err:
payload_type_free(ret);
#endif
err2:
ilogs(codec, LOG_WARN, "Codec '" STR_FORMAT "' requested for transcoding is not supported",
STR_FMT(codec_str));
@ -3959,6 +3969,8 @@ err2:
}
#ifdef WITH_TRANSCODING
static struct rtp_payload_type *codec_add_payload_type_pt(struct rtp_payload_type *pt, struct call_media *media,
struct call_media *other_media, struct codec_store *extra_cs)
{
@ -4301,21 +4313,24 @@ void codec_store_add_raw(struct codec_store *cs, struct rtp_payload_type *pt) {
codec_store_add_raw_link(cs, pt, NULL);
}
static void codec_store_add_link(struct codec_store *cs, struct rtp_payload_type *pt, GList *link) {
static struct rtp_payload_type *codec_store_add_link(struct codec_store *cs,
struct rtp_payload_type *pt, GList *link)
{
if (!cs->media)
return;
return NULL;
ensure_codec_def(pt, cs->media);
if (proto_is_not_rtp(cs->media->protocol))
return;
return NULL;
struct rtp_payload_type *copy = rtp_payload_type_dup(pt);
codec_store_add_raw_link(cs, copy, link);
return copy;
}
// appends to the end, but before supplemental codecs
static void codec_store_add_order(struct codec_store *cs, struct rtp_payload_type *pt) {
codec_store_add_link(cs, pt, cs->supp_link);
static struct rtp_payload_type *codec_store_add_order(struct codec_store *cs, struct rtp_payload_type *pt) {
return codec_store_add_link(cs, pt, cs->supp_link);
}
// always add to end
static void codec_store_add_end(struct codec_store *cs, struct rtp_payload_type *pt) {

Loading…
Cancel
Save