From cfced0420ecc0d0e28d08c6ed17c67cca4c06e5b Mon Sep 17 00:00:00 2001
From: "Kevin P. Fleming" <kpfleming@digium.com>
Date: Tue, 1 Nov 2005 18:48:05 +0000
Subject: [PATCH] use a writeable frame (some channel drivers/transcoders may
 modify the frame after it has been passed to ast_write())

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6926 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channel.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/channel.c b/channel.c
index 6c2566ffe1..b67dc707a4 100755
--- a/channel.c
+++ b/channel.c
@@ -3933,19 +3933,19 @@ static void silence_generator_release(struct ast_channel *chan, void *data)
 	/* 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 @@ static int silence_generator_generate(struct ast_channel *chan, void *data, int
 		struct ast_frame frame = {
 			.frametype = AST_FRAME_VOICE,
 			.subclass = AST_FORMAT_SLINEAR,
-			.data = normal_silence_buf,
+			.data = buf,
 			.samples = samples,
 			.datalen = sizeof(buf),
 		};
-- 
GitLab