Commit Briefs

Omar Polo

add a simple filetype detector instead of relying on file extension

just a bit of "magic" :) Flac are easy, they always start with "fLaC". mp3 are weird because they either start with "ID3" (but this theoretically only ensures that's a tagged file, not an mp3) or 0xFF 0xFB. Ogg Opus should have a magic sequence "OpusHead" somewhere near the start of the file but also have the ogg' "OggS" magic bytes. I hope it's enough to distinguish between Ogg Opus and Vorbis. Another option would be to refactor play_oggvorbis/opus to not close the file on failure and try in cascade the play_* functions, but it's more complex and this solution seems to be enough.



Omar Polo

refactor player_playnext: return status code

let the caller decide to call senderr or sendeof.



Omar Polo

pledge audio too

while for my particular use-case this has always worked with only "stdio recvfd", sio_open(3) mentions that if no further sio_open calls are made all pledges can be dropped except for "audio", so let's keep it.


Omar Polo

remove the got_stop hack

now player_playnext has enough information to decide wheter to call player_senderr or player_sendeof.




Omar Polo

change the log debug string for player_setup

now it includes all the params, not only the rate


Omar Polo

fix player wrt unknown files


Omar Polo

allow changing sample bit size



Omar Polo

implement `load' command



Omar Polo

extra new line