mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	Fix bug where the samples were not accurate when in G723 mode, which would
cause the timestamp field of the RTP header to be invalid. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@139153 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -82,11 +82,8 @@ static AST_LIST_HEAD_STATIC(translators, translator); | ||||
| struct pvt { | ||||
| 	int fd; | ||||
| 	int fake; | ||||
| #ifdef DEBUG_TRANSCODE | ||||
| 	int totalms; | ||||
| 	int lasttotalms; | ||||
| #endif | ||||
| 	struct dahdi_transcoder_formats fmts; | ||||
| 	int samples; | ||||
| }; | ||||
|  | ||||
| static char *handle_cli_transcoder_show(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) | ||||
| @@ -111,6 +108,7 @@ static char *handle_cli_transcoder_show(struct ast_cli_entry *e, int cmd, struct | ||||
|  | ||||
| 	if (copy.total == 0) | ||||
| 		ast_cli(a->fd, "No DAHDI transcoders found.\n"); | ||||
| 	ast_debug(1, "codec_dahdi.so loaded.\n"); | ||||
| 	else | ||||
| 		ast_cli(a->fd, "%d/%d encoders/decoders of %d channels are in use.\n", copy.encoders, copy.decoders, copy.total); | ||||
|  | ||||
| @@ -159,7 +157,7 @@ static struct ast_frame *dahdi_frameout(struct ast_trans_pvt *pvt) | ||||
| 				return NULL; | ||||
| 			} | ||||
| 		} else { | ||||
| 			pvt->f.samples = res; | ||||
| 			pvt->f.samples = dahdip->samples; | ||||
| 			pvt->f.datalen = res; | ||||
| 			pvt->datalen = 0; | ||||
| 			pvt->f.frametype = AST_FRAME_VOICE; | ||||
| @@ -248,10 +246,14 @@ static int dahdi_translate(struct ast_trans_pvt *pvt, int dest, int source) | ||||
|  | ||||
| 	switch (dahdip->fmts.dstfmt) { | ||||
| 	case AST_FORMAT_G729A: | ||||
| 		dahdip->samples = 160; | ||||
| 		break; | ||||
| 	case AST_FORMAT_G723_1: | ||||
| 		dahdip->samples = 240; | ||||
| 		ast_atomic_fetchadd_int(&channels.encoders, +1); | ||||
| 		break; | ||||
| 	default: | ||||
| 		dahdip->samples = 160; | ||||
| 		ast_atomic_fetchadd_int(&channels.decoders, +1); | ||||
| 		break; | ||||
| 	} | ||||
| @@ -446,6 +448,7 @@ static int unload_module(void) | ||||
|  | ||||
| static int load_module(void) | ||||
| { | ||||
| 	ast_debug(1, "codec_dahdi.so loaded.\n"); | ||||
| 	if (parse_config(0)) | ||||
| 		return AST_MODULE_LOAD_DECLINE; | ||||
| 	find_transcoders(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user