summaryrefslogtreecommitdiff
path: root/main/audiohook.c
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2015-08-13 12:22:14 -0500
committerRichard Mudgett <rmudgett@digium.com>2015-08-13 17:59:18 -0500
commitbb374732342b32c68bd8b78e52b67c0038215c58 (patch)
treed1fd5ca536bac1d2d90cf13a2f9a098e23f2687e /main/audiohook.c
parentf96ce0de87365aa8d5ca6fce73de78ee73c697ba (diff)
audiohook.c: Fix MixMonitor crash when using the r() or t() options.
The built frame format in audiohook_read_frame_both() is now set to a signed linear format before the rx and tx frames are duplicated instead of only for the mixed audio frame duplication. ASTERISK-25322 #close Reported by Sean Pimental Change-Id: I86f85b5c48c49e4e2d3b770797b9d484250a1538
Diffstat (limited to 'main/audiohook.c')
-rw-r--r--main/audiohook.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/main/audiohook.c b/main/audiohook.c
index ba1ecd4fd..ba7219354 100644
--- a/main/audiohook.c
+++ b/main/audiohook.c
@@ -326,6 +326,8 @@ static struct ast_frame *audiohook_read_frame_both(struct ast_audiohook *audioho
ast_debug(1, "Failed to get %d samples from write factory %p\n", (int)samples, &audiohook->write_factory);
}
+ frame.subclass.format = ast_format_cache_get_slin_by_rate(audiohook->hook_internal_samp_rate);
+
/* Basically we figure out which buffer to use... and if mixing can be done here */
if (read_buf && read_reference) {
frame.data.ptr = buf1;
@@ -352,8 +354,6 @@ static struct ast_frame *audiohook_read_frame_both(struct ast_audiohook *audioho
/* Make the final buffer part of the frame, so it gets duplicated fine */
frame.data.ptr = final_buf;
- frame.subclass.format = ast_format_cache_get_slin_by_rate(audiohook->hook_internal_samp_rate);
-
/* Yahoo, a combined copy of the audio! */
return ast_frdup(&frame);
}