Commits


handle fdopen failure gracefully


opusfile and vorbisfile want a different type for the buffer no practical difference, just the compiler being annoying on linux


use (a modified version of) kristaps' oconfigure see GitHub issue #1


implement seeking This adds the internal management of the seeking, as well as the decoder backends bits.


keep track of current position and total duration


improving error reporting makes the player process optionally send back a string describing the failure to provide a better and more coincise error message. This turns the syslog message(s): amused: unknown file type amused: failed to play, skipping /home/op/pics/phos.jpg into: amused: unknown file type; skipping /home/op/pics/phos.jpg


free the FILE on op_open_callbacks failure the API is a bit of a shitshow. op_fdopen is just a wrapper around FILE*, but returns void* for don't know what Windows limitation. if op_open_callbacks fails we have to free the stream by ourselves. the documentation implies that this void* pointer is, in fact, a FILE*.


s/player_setrate/player_setup when the function was renamed, the error messages weren't.


unbreak opus too i am just unable to do a proper refactoring. When i changed the return type of play_opus I mixed `r' and `ret', so it would always play zero samples...


change play_*() so that they return an integer this will allow to remove the `got_stop' hack in player.c


drop now unused #include <sndio.h> with the recent refactoring, sndio is only visible in player.c


refactor the player_shouldstop/sio_write dance in a function


allow changing sample bit size


don't die on opus failures


simplify further the code