view TOOLS/alaw-gen.c @ 11376:70b1673fe399

proper fix for 'some chipsets can't handle buffers > 128kB', vo_zr used to ignore information about the _actual_ buffer size returned by the kernel and continued to use the requested buffer size (the old fix was to request smaller buffers, but not ignoring information about the actual buffer size is way better)
author rik
date Mon, 03 Nov 2003 17:38:50 +0000
parents 714bc8aadb68
children f15f95c2671a
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(){
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");

printf("\nshort alaw2short[]={\n");

f=fopen("alaw.out","rb");
for(i=0;i<256;i++){
  signed short x;
  fread(&x,2,1,f);
  printf("%6d",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("\nshort ulaw2short[]={\n");

f=fopen("alaw.out","rb");
for(i=0;i<256;i++){
  signed short x;
  fread(&x,2,1,f);
  printf("%6d",x);
  if(i!=255) putchar(',');
  if((i&7)==7) printf("\n");
}
fclose(f);
printf("};\n");


}