kopia lustrzana https://github.com/xdsopl/robot36
cleaned up interface
rodzic
2ceabe4081
commit
3f194c5f09
3
README
3
README
|
@ -27,3 +27,6 @@ read from wav file input.wav and write out to ppm image output.ppm:
|
||||||
encode ppm image input.ppm to output.wav using rate of 40000Hz
|
encode ppm image input.ppm to output.wav using rate of 40000Hz
|
||||||
# ./encode input.ppm output.wav 40000
|
# ./encode input.ppm output.wav 40000
|
||||||
|
|
||||||
|
encode ppm image input.ppm and write out to default alsa device
|
||||||
|
# ./encode input.ppm
|
||||||
|
|
||||||
|
|
16
encode.c
16
encode.c
|
@ -35,8 +35,8 @@ void add_freq(float freq) {
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
if (argc != 4) {
|
if (argc < 2) {
|
||||||
fprintf(stderr, "usage: %s <input.ppm> <output.wav> <rate>\n", argv[0]);
|
fprintf(stderr, "usage: %s <input.ppm> <output.wav|default|hw:?,?> <rate>\n", argv[0]);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,12 +57,18 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
uint8_t *pixel = (uint8_t *)ppm_p + strlen(ppm_head);
|
uint8_t *pixel = (uint8_t *)ppm_p + strlen(ppm_head);
|
||||||
|
|
||||||
if (!open_pcm_write(&pcm, argv[2], atoi(argv[3]), 1, 37.5)) {
|
char *pcm_name = "default";
|
||||||
fprintf(stderr, "couldnt open output %s\n", argv[2]);
|
float rate = 48000;
|
||||||
|
if (argc > 2)
|
||||||
|
pcm_name = argv[2];
|
||||||
|
if (argc > 3)
|
||||||
|
rate = atoi(argv[3]);
|
||||||
|
if (!open_pcm_write(&pcm, pcm_name, rate, 1, 37.5)) {
|
||||||
|
fprintf(stderr, "couldnt open output %s\n", pcm_name);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
float rate = rate_pcm(pcm);
|
rate = rate_pcm(pcm);
|
||||||
channels = channels_pcm(pcm);
|
channels = channels_pcm(pcm);
|
||||||
|
|
||||||
buff = (short *)malloc(sizeof(short)*channels);
|
buff = (short *)malloc(sizeof(short)*channels);
|
||||||
|
|
2
wav.c
2
wav.c
|
@ -53,7 +53,7 @@ void close_wav(pcm_t *pcm)
|
||||||
void info_wav(pcm_t *pcm)
|
void info_wav(pcm_t *pcm)
|
||||||
{
|
{
|
||||||
wav_t *wav = (wav_t *)pcm;
|
wav_t *wav = (wav_t *)pcm;
|
||||||
fprintf(stderr, "%d channel(s), %d rate, %d frames\n", wav->c, wav->r, wav->frames);
|
fprintf(stderr, "%d channel(s), %d rate, %.2f seconds\n", wav->c, wav->r, (float)wav->frames / (float)wav->r);
|
||||||
}
|
}
|
||||||
int rate_wav(pcm_t *pcm)
|
int rate_wav(pcm_t *pcm)
|
||||||
{
|
{
|
||||||
|
|
Ładowanie…
Reference in New Issue