Skip to content
Snippets Groups Projects
Commit f080ca65 authored by Sean Bright's avatar Sean Bright
Browse files

media formats: update res_format_attr_opus & silk

In r419044, we changed how formats were handled, but the return value
of the format_parse_sdp_fmtp functions in res_format_attr_opus and
res_format_attr_silk were not updated, causing calls to fail.  Ran
into this when getting codec_opus working with Asterisk 13.

Once the return value was corrected, we were crashing in opus_getjoint
because of NULL format attributes.  I've fixed this as well in this
patch.

Review: https://reviewboard.asterisk.org/r/4371/
........

Merged revisions 431267 from http://svn.asterisk.org/svn/asterisk/branches/13


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@431268 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 69e107b2
Branches
Tags
No related merge requests found
......@@ -51,6 +51,12 @@ struct opus_attr {
unsigned int spropstereo; /* Default 0 */
};
static struct opus_attr default_opus_attr = {
.fec = 0,
.dtx = 0,
.stereo = 0,
};
static void opus_destroy(struct ast_format *format)
{
struct opus_attr *attr = ast_format_get_attribute_data(format);
......@@ -120,7 +126,7 @@ static struct ast_format *opus_parse_sdp_fmtp(const struct ast_format *format, c
attr->dtx = val;
}
return 0;
return cloned;
}
static void opus_generate_sdp_fmtp(const struct ast_format *format, unsigned int payload, struct ast_str **str)
......@@ -163,6 +169,14 @@ static struct ast_format *opus_getjoint(const struct ast_format *format1, const
struct ast_format *jointformat;
struct opus_attr *attr_res;
if (!attr1) {
attr1 = &default_opus_attr;
}
if (!attr2) {
attr2 = &default_opus_attr;
}
jointformat = ast_format_clone(format1);
if (!jointformat) {
return NULL;
......
......@@ -94,7 +94,7 @@ static struct ast_format *silk_parse_sdp_fmtp(const struct ast_format *format, c
attr->fec = val;
}
return 0;
return cloned;
}
static void silk_generate_sdp_fmtp(const struct ast_format *format, unsigned int payload, struct ast_str **str)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment