commit cec9ff7559292978692d09afedf72daf0aa5085d from: Omar Polo date: Fri Feb 18 22:02:16 2022 UTC don't die on opus failures commit - efe0c8838579123aa8b598d840f59148175b94e1 commit + cec9ff7559292978692d09afedf72daf0aa5085d blob - fc7f4ae38538cbc1b2da97e34fd23e949db9155b blob + 9be3933fa1855c6fd8a26e08ea15b1171a530d11 --- player_opus.c +++ player_opus.c @@ -33,6 +33,7 @@ #include #include "amused.h" +#include "log.h" #ifndef nitems #define nitems(x) (sizeof(x)/sizeof(x[0])) @@ -53,8 +54,10 @@ play_opus(int fd) err(1, "fdopen"); of = op_open_callbacks(f, &cb, NULL, 0, &ret); - if (of == NULL) - errx(1, "failed open opus file"); + if (of == NULL) { + close(fd); + return; + } for (;;) { if (player_shouldstop()) @@ -64,8 +67,10 @@ play_opus(int fd) ret = op_read_stereo(of, pcm, nitems(pcm)); if (ret == OP_HOLE) /* corrupt file segment? */ continue; - if (ret < 0) - errx(1, "error decoding file (%d)", ret); + if (ret < 0) { + log_warnx("error %d decoding file", ret); + break; + } if (ret == 0) break; /* eof */