Kevin noted that the thing that I _actually_ changed here was that I converted
authorRussell Bryant <russell@russellbryant.com>
Fri, 11 Jan 2008 19:05:24 +0000 (19:05 +0000)
committerRussell Bryant <russell@russellbryant.com>
Fri, 11 Jan 2008 19:05:24 +0000 (19:05 +0000)
a value from a double, to a float, back to a double.  Sure enough, when I changed
my interim variable back to a double, it still blows up.  Switching all of these
to a float fixes the problem.  This seems like a compiler bug where a double passed
as an argument isn't getting properly aligned, so I'll have to see if I can replicate
it with a small test program.

(related to issue #11725)

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

codecs/codec_resample.c

index 871bbc3..251d99c 100644 (file)
@@ -49,12 +49,12 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 
 struct slin16_to_slin8_pvt {
        void *resampler;
 
 struct slin16_to_slin8_pvt {
        void *resampler;
-       double resample_factor;
+       float resample_factor;
 };
 
 struct slin8_to_slin16_pvt {
        void *resampler;
 };
 
 struct slin8_to_slin16_pvt {
        void *resampler;
-       double resample_factor;
+       float resample_factor;
 };
 
 static int slin16_to_slin8_new(struct ast_trans_pvt *pvt)
 };
 
 static int slin16_to_slin8_new(struct ast_trans_pvt *pvt)
@@ -98,7 +98,7 @@ static void slin8_to_slin16_destroy(struct ast_trans_pvt *pvt)
 }
 
 static int resample_frame(struct ast_trans_pvt *pvt,
 }
 
 static int resample_frame(struct ast_trans_pvt *pvt,
-       void *resampler, double resample_factor, struct ast_frame *f)
+       void *resampler, float resample_factor, struct ast_frame *f)
 {
        int total_in_buf_used = 0;
        int total_out_buf_used = 0;
 {
        int total_in_buf_used = 0;
        int total_out_buf_used = 0;