1
0
Fork 0
forked from len0rd/rockbox

Fix wavtrim not working correctly on PPC.

Don't rely on the host being little endian -- PPC Macs are not, resulting in
wavtrim not trimming files at all. Also fix a printf warning while at it.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25158 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dominik Riebeling 2010-03-13 22:25:21 +00:00
parent 9c2baa6b17
commit 1e67a28cff

View file

@ -167,7 +167,9 @@ int wavtrim(char * filename, int maxsilence ,char* errstring,int errsize)
/* clip the start */ /* clip the start */
for (i=0; i<datalen; i+=2) for (i=0; i<datalen; i+=2)
{ {
sample16 = *(short *)(databuf + i); /* samples are little endian */
sample16 = (*(databuf + i + 1) << 8) | *(databuf + i);
if (abs(sample16) > max_silence) if (abs(sample16) > max_silence)
break; break;
} }
@ -178,7 +180,8 @@ int wavtrim(char * filename, int maxsilence ,char* errstring,int errsize)
/* clip the end */ /* clip the end */
for (i=datalen-2; i>skip_head; i-=2) for (i=datalen-2; i>skip_head; i-=2)
{ {
sample16 = *(short *)(databuf + i); /* samples are little endian */
sample16 = (*(databuf + i + 1) << 8) | *(databuf + i);
if (abs(sample16) > max_silence) if (abs(sample16) > max_silence)
break; break;
} }
@ -231,7 +234,7 @@ int main (int argc, char** argv)
ret = wavtrim(argv[1],max_silence,errbuffer,255 ); ret = wavtrim(argv[1],max_silence,errbuffer,255 );
if( ret< 0) if( ret< 0)
{ {
printf(errbuffer); printf("%s", errbuffer);
} }
return ret; return ret;
} }