audio_audiohook_write_list() did not correctly update sample size after ast_translate.
authorDavid Vossel <dvossel@digium.com>
Fri, 3 Apr 2009 16:29:47 +0000 (16:29 +0000)
committerDavid Vossel <dvossel@digium.com>
Fri, 3 Apr 2009 16:29:47 +0000 (16:29 +0000)
audio_audiohook_write_list() did not take into account that the sample size may change after translation depending on if the original frame is is 8khz or 16khz.  the sample size is now updated after translating to reflect this possibility.  This caused the audio on the receiving end to sound terrible.  Thanks to jcolp and mmichelson for helping me work this out.

(issue AST-197)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@186379 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/audiohook.c

index 640ec2f..baf370d 100644 (file)
@@ -576,6 +576,7 @@ static struct ast_frame *audio_audiohook_write_list(struct ast_channel *chan, st
                }
                if (!(middle_frame = ast_translate(in_translate->trans_pvt, frame, 0)))
                        return frame;
+               samples = middle_frame->samples;
        }
 
        /* Queue up signed linear frame to each spy */