summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/rtp_engine.c8
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);