|
Packit |
c32a2d |
#include "config.h"
|
|
Packit |
c32a2d |
#include "compat.h"
|
|
Packit |
c32a2d |
#include "dither.h"
|
|
Packit |
c32a2d |
#include "debug.h"
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
/* Directly include the code for testing, avoiding
|
|
Packit |
c32a2d |
build of same object with and without libtool. */
|
|
Packit |
c32a2d |
#include "../libmpg123/dither_impl.h"
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
const char *typenames[] = { "white", "tpdf", "highpass_tpdf" };
|
|
Packit |
c32a2d |
enum mpg123_noise_type types[] = { mpg123_white_noise, mpg123_tpdf_noise, mpg123_highpass_tpdf_noise };
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
int main(int argc, char **argv)
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
size_t i;
|
|
Packit |
c32a2d |
size_t count = DITHERSIZE;
|
|
Packit |
c32a2d |
float *table;
|
|
Packit |
c32a2d |
enum mpg123_noise_type type = mpg123_highpass_tpdf_noise;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
fprintf(stderr, "Note: You could give two optional arguments: noise type and table size (number count).\n");
|
|
Packit |
c32a2d |
if(argc > 1)
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
const char *typename = argv[1];
|
|
Packit |
c32a2d |
for(i=0; i
|
|
Packit |
c32a2d |
if(strcmp(typename, typenames[i]) == 0)
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
type = types[i];
|
|
Packit |
c32a2d |
break;
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
if(i == sizeof(typenames)/sizeof(char*))
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
error("Unknown noise type!");
|
|
Packit |
c32a2d |
return -1;
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
if(argc > 2)
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
count = (size_t) atol(argv[2]);
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
table = malloc(sizeof(float)*count);
|
|
Packit |
c32a2d |
if(table == NULL)
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
error("Cannot allocate memory for noise table!");
|
|
Packit |
c32a2d |
return -2;
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_noise(table, count, type);
|
|
Packit |
c32a2d |
for(i=0; i
|
|
Packit |
c32a2d |
printf("%g\n", table[i]);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
free(table);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
return 0;
|
|
Packit |
c32a2d |
}
|