Mercurial > mplayer.hg
view TOOLS/alaw-gen.c @ 29784:a71d9cd6f01f
Add cast to signed for 64 bit check, since according to an FFmpeg bug report
some compilers (llvm?) do not fail when arrays larger than the maximum
addressable size are declared but instead just silently generate broken code.
author | reimar |
---|---|
date | Thu, 05 Nov 2009 19:05:42 +0000 |
parents | 044b3c830459 |
children | b573c7c7173b |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> // sox -t raw -A -r 8000 -b alaw.alaw -t sw alaw.out int main(void){ int i; FILE *f; f=fopen("alaw.dat","wb"); for(i=0;i<256;i++) fwrite(&i,1,1,f); fclose(f); system("sox -t raw -A -r 8000 -b alaw.dat -t sw alaw.out"); printf("// Generated by TOOLS/alaw-gen.c\n\n"); printf("#ifndef MPLAYER_ALAW_H\n"); printf("#define MPLAYER_ALAW_H\n"); printf("\nconst short alaw2short[]={\n"); f=fopen("alaw.out","rb"); for(i=0;i<256;i++){ signed short x; fread(&x,2,1,f); printf("%7d",x); if(i!=255) putchar(','); if((i&7)==7) printf("\n"); } fclose(f); printf("};\n"); system("sox -t raw -U -r 8000 -b alaw.dat -t sw alaw.out"); printf("\nconst short ulaw2short[]={\n"); f=fopen("alaw.out","rb"); for(i=0;i<256;i++){ signed short x; fread(&x,2,1,f); printf("%7d",x); if(i!=255) putchar(','); if((i&7)==7) printf("\n"); } fclose(f); printf("};\n\n"); printf("#endif /* MPLAYER_ALAW_H */\n"); return 0; }