commit e24324f1e5f50d7f1ceb3f8ae4c5513fa27d89f5 from: Omar Polo date: Mon Feb 21 17:25:10 2022 UTC allow changing sample bit size commit - b73e68f5b5b551164fdf405f67d4758bc274bce5 commit + e24324f1e5f50d7f1ceb3f8ae4c5513fa27d89f5 blob - 65993a4ee46bf3d75153c371ee0fd4bed0a7543c blob + f01329e0d66edab94097e8f83217870ca699193a --- amused.h +++ amused.h @@ -133,7 +133,7 @@ __dead void usage(void); __dead void ctl(int, char **); /* player.c */ -int player_setup(int, int); +int player_setup(int, int, int); void player_senderr(void); void player_sendeof(void); int player_shouldstop(void); blob - 80997945fe67bea2dae6ff24b54f4d8cc68721e2 blob + 8dcc0a356a2af59e38690e72bbf3256b173a97ea --- player.c +++ player.c @@ -74,7 +74,7 @@ audio_init(void) } int -player_setup(int rate, int channels) +player_setup(int bits, int rate, int channels) { struct sio_par par; @@ -83,6 +83,7 @@ player_setup(int rate, int channels) sio_stop(hdl); sio_initpar(&par); + par.bits = bits; par.rate = rate; par.pchan = channels; if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) { @@ -90,7 +91,7 @@ player_setup(int rate, int channels) return -1; } - if (par.pchan != channels) { + if (par.bits != bits || par.pchan != channels) { log_warnx("failed to set params"); return -1; } blob - c35eca5bd8922058df803e4188eade87e12029dc blob + 94d91e32a4f6dd6d63588d491b2f7d7bafa94fe2 --- player_flac.c +++ player_flac.c @@ -74,7 +74,7 @@ metacb(const FLAC__StreamDecoder *decoder, const FLAC_ sample_rate = meta->data.stream_info.sample_rate; channels = meta->data.stream_info.channels; - if (player_setup(sample_rate, channels) == -1) + if (player_setup(16, sample_rate, channels) == -1) err(1, "player_setrate"); } } blob - dde2aa7fba32e8e424d29c03237ab99aa53adb95 blob + 23565c675b73ec5687d981392dfc887517e8a07e --- player_mad.c +++ player_mad.c @@ -99,7 +99,7 @@ output(void *data, const struct mad_header *header, st buffer->channels != pcm->channels) { buffer->sample_rate = pcm->samplerate; buffer->channels = pcm->channels; - if (player_setup(pcm->samplerate, pcm->channels) == -1) + if (player_setup(16, pcm->samplerate, pcm->channels) == -1) err(1, "player_setrate"); } blob - 1a021a064be20ce190396b037ba388863c132af9 blob + d6b64076b8d69170c9cf6c22d7cbb9ab80e72a7e --- player_oggvorbis.c +++ player_oggvorbis.c @@ -63,7 +63,7 @@ play_oggvorbis(int fd) * previous revision of this file. */ vi = ov_info(&vf, -1); - if (player_setup(vi->rate, vi->channels) == -1) + if (player_setup(16, vi->rate, vi->channels) == -1) err(1, "player_setrate"); while (!eof) { blob - 9be3933fa1855c6fd8a26e08ea15b1171a530d11 blob + 4a2f92ba4db4355e132cb2d1e3059028b9bb5611 --- player_opus.c +++ player_opus.c @@ -82,7 +82,7 @@ play_opus(int fd) head = op_head(of, li); if (head->input_sample_rate && - player_setup(head->input_sample_rate, 2) == -1) + player_setup(16, head->input_sample_rate, 2) == -1) err(1, "player_setrate"); }