[Asterisk-cvs] asterisk channel.c,1.255,1.256

kpfleming kpfleming
Tue Nov 1 13:56:10 CST 2005


Update of /usr/cvsroot/asterisk
In directory mongoose.digium.com:/tmp/cvs-serv14727

Modified Files:
	channel.c 
Log Message:
use a writeable frame (some channel drivers/transcoders may modify the frame after it has been passed to ast_write())


Index: channel.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channel.c,v
retrieving revision 1.255
retrieving revision 1.256
diff -u -d -r1.255 -r1.256
--- channel.c	1 Nov 2005 17:22:25 -0000	1.255
+++ channel.c	1 Nov 2005 18:48:05 -0000	1.256
@@ -3933,19 +3933,19 @@
 	/* nothing to do */
 }
 
-static short normal_silence_buf[160] = { 0, };
-static struct ast_frame normal_silence_frame = {
-	.frametype = AST_FRAME_VOICE,
-	.subclass = AST_FORMAT_SLINEAR,
-	.data = normal_silence_buf,
-	.samples = 160,
-	.datalen = sizeof(normal_silence_buf),
-};
-
 static int silence_generator_generate(struct ast_channel *chan, void *data, int len, int samples) 
 {
 	if (samples == 160) {
-		if (ast_write(chan, &normal_silence_frame))
+		short buf[160] = { 0, };
+		struct ast_frame frame = {
+			.frametype = AST_FRAME_VOICE,
+			.subclass = AST_FORMAT_SLINEAR,
+			.data = buf,
+			.samples = 160,
+			.datalen = sizeof(buf),
+		};
+
+		if (ast_write(chan, &frame))
 			return -1;
 	} else {
 		short buf[samples];
@@ -3953,7 +3953,7 @@
 		struct ast_frame frame = {
 			.frametype = AST_FRAME_VOICE,
 			.subclass = AST_FORMAT_SLINEAR,
-			.data = normal_silence_buf,
+			.data = buf,
 			.samples = samples,
 			.datalen = sizeof(buf),
 		};




More information about the svn-commits mailing list