fix segfault regression from 7b65dedb

Change-Id: I38f4b39b34c72ca2a9b70fae4eaac6bf27286312
changes/21/19321/2
Richard Fuchs 8 years ago
parent 1184c92d23
commit 65c75c5177

@ -478,28 +478,30 @@ struct rtp_payload_type *codec_make_payload_type(const str *codec_str, struct ca
ret->codec_def = def; ret->codec_def = def;
#ifdef WITH_TRANSCODING #ifdef WITH_TRANSCODING
if (!ret->clock_rate) if (def) {
ret->clock_rate = def->default_clockrate; if (!ret->clock_rate)
if (!ret->channels) ret->clock_rate = def->default_clockrate;
ret->channels = def->default_channels; if (!ret->channels)
if (!ret->ptime) ret->channels = def->default_channels;
ret->ptime = def->default_ptime; if (!ret->ptime)
ret->ptime = def->default_ptime;
if (def->init)
def->init(ret); if (def->init)
def->init(ret);
if (def->rfc_payload_type >= 0) {
const struct rtp_payload_type *rfc_pt = rtp_get_rfc_payload_type(def->rfc_payload_type); if (def->rfc_payload_type >= 0) {
// only use the RFC payload type if all parameters match const struct rtp_payload_type *rfc_pt = rtp_get_rfc_payload_type(def->rfc_payload_type);
if (rfc_pt // only use the RFC payload type if all parameters match
&& (ret->clock_rate == 0 || ret->clock_rate == rfc_pt->clock_rate) if (rfc_pt
&& (ret->channels == 0 || ret->channels == rfc_pt->channels)) && (ret->clock_rate == 0 || ret->clock_rate == rfc_pt->clock_rate)
{ && (ret->channels == 0 || ret->channels == rfc_pt->channels))
ret->payload_type = rfc_pt->payload_type; {
if (!ret->clock_rate) ret->payload_type = rfc_pt->payload_type;
ret->clock_rate = rfc_pt->clock_rate; if (!ret->clock_rate)
if (!ret->channels) ret->clock_rate = rfc_pt->clock_rate;
ret->channels = rfc_pt->channels; if (!ret->channels)
ret->channels = rfc_pt->channels;
}
} }
} }
#endif #endif
@ -777,7 +779,7 @@ static struct rtp_payload_type *codec_make_payload_type_sup(const str *codec_str
if (!ret) if (!ret)
return NULL; return NULL;
if (media->type_id && ret->codec_def->media_type != media->type_id) { if (!ret->codec_def || (media->type_id && ret->codec_def->media_type != media->type_id)) {
payload_type_free(ret); payload_type_free(ret);
return (void *) 0x1; return (void *) 0x1;
} }

Loading…
Cancel
Save