mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 18:55:19 +00:00 
			
		
		
		
	Merge "codec_opus: Fix warning when Opus negotiated but codec_opus not loaded."
This commit is contained in:
		| @@ -729,6 +729,21 @@ static struct ast_codec g719 = { | |||||||
| 	.get_length = g719_length, | 	.get_length = g719_length, | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | static int opus_samples(struct ast_frame *frame) | ||||||
|  | { | ||||||
|  | 	/* | ||||||
|  | 	 * XXX This is likely not at all what's intended from this | ||||||
|  | 	 * callback.  If you have codec_opus.so loaded then this | ||||||
|  | 	 * function is overridden anyway.  However, since opus is | ||||||
|  | 	 * variable bit rate and I cannot extract the calculation code | ||||||
|  | 	 * from the opus library, I am going to punt and assume 20ms | ||||||
|  | 	 * worth of samples.  In testing, this has worked just fine. | ||||||
|  | 	 * Pass through support doesn't seem to care about the value | ||||||
|  | 	 * returned anyway. | ||||||
|  | 	 */ | ||||||
|  | 	return ast_format_get_sample_rate(frame->subclass.format) / 50; | ||||||
|  | } | ||||||
|  |  | ||||||
| static struct ast_codec opus = { | static struct ast_codec opus = { | ||||||
| 	.name = "opus", | 	.name = "opus", | ||||||
| 	.description = "Opus Codec", | 	.description = "Opus Codec", | ||||||
| @@ -737,6 +752,7 @@ static struct ast_codec opus = { | |||||||
| 	.minimum_ms = 20, | 	.minimum_ms = 20, | ||||||
| 	.maximum_ms = 60, | 	.maximum_ms = 60, | ||||||
| 	.default_ms = 20, | 	.default_ms = 20, | ||||||
|  | 	.samples_count = opus_samples, | ||||||
| 	.minimum_bytes = 10, | 	.minimum_bytes = 10, | ||||||
| }; | }; | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user