diff options
Diffstat (limited to 'main')
-rw-r--r-- | main/rtp_engine.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/main/rtp_engine.c b/main/rtp_engine.c index 8ad3d9e77..57a3ef354 100644 --- a/main/rtp_engine.c +++ b/main/rtp_engine.c @@ -727,9 +727,13 @@ int ast_rtp_codecs_payloads_set_rtpmap_type_rate(struct ast_rtp_codecs *codecs, new_type->rtp_code = t->payload_type.rtp_code; if ((ast_format_cmp(t->payload_type.format, ast_format_g726) == AST_FORMAT_CMP_EQUAL) && t->payload_type.asterisk_format && (options & AST_RTP_OPT_G726_NONSTANDARD)) { - new_type->format = ao2_bump(ast_format_g726_aal2); + new_type->format = ast_format_g726_aal2; } else { - new_type->format = ao2_bump(t->payload_type.format); + new_type->format = t->payload_type.format; + } + if (new_type->format) { + /* SDP parsing automatically increases the reference count */ + new_type->format = ast_format_parse_sdp_fmtp(new_type->format, ""); } AST_VECTOR_REPLACE(&codecs->payloads, pt, new_type); |