use a writeable frame (some channel drivers/transcoders may modify the frame after...
authorKevin P. Fleming <kpfleming@digium.com>
Tue, 1 Nov 2005 18:48:05 +0000 (18:48 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Tue, 1 Nov 2005 18:48:05 +0000 (18:48 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6926 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channel.c

index 6c2566f..b67dc70 100755 (executable)
--- 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),
                };