Hi. Le duodi 2 frimaire, an CCXIV, Wesley J. Landaker a écrit : > speexenc always crashes on amd64; here is an example, and lots of info:
I tracked this bug a bit further than you. Here is the origin of the crash: op.packet = (unsigned char *)speex_header_to_packet(&header, (int*)&(op.bytes)); (from speexenc.c) op.bytes is a long, not an int, it is wrong to pass it as an int, and it is even wronger to use a cast to hide the warning. Here is a fix: --- speexenc.c.orig 2006-01-01 17:56:44.157165648 +0100 +++ speexenc.c 2006-01-01 17:57:39.994551085 +0100 @@ -629,7 +629,9 @@ /*Write header*/ { - op.packet = (unsigned char *)speex_header_to_packet(&header, (int*)&(op.bytes)); + int packet_size; + op.packet = (unsigned char *)speex_header_to_packet(&header, &packet_size); + op.bytes = size; op.b_o_s = 1; op.e_o_s = 0; op.granulepos = 0; Regards, -- Nicolas George
signature.asc
Description: Digital signature