mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	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/ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431267 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user