Age | Commit message (Collapse) | Author | Files | Lines |
|
Commit 8012d6cb4bb65a858105ef878c5b98d91b24e1cd was broken in several
ways. Since auto-detection did not work correctly it was replaced by a
user-editable variable. See #439.
|
|
Adds support for ffmpeg 2.2 and 1.2. Right now the maintenance overhead
of supporting both libav implementations is not that big.
Fixes #437 and #435.
|
|
Shouldn’t make a difference right now. Just in case…
|
|
Splitting up the writes causes the Host header to end up in a
different packet than the requst line, making it harder to proxy.
|
|
Required by sniproxy when forwarding the connection.
|
|
|
|
libav 9.12 and ffmpeg 2.2 have been tested.
Here’s why: My mp4 “parser” *cough* never was a mp4 parser in the sense
that it actually understood the file format. Instead it grepped the
input stream for “magic” strings (section identifiers). That alone
should be sufficient to throw away the code and rewrite it. Additionally
libfaad2 has not been updated for ages. I guess it was abandoned in
favor of libav/ffmpeg.
With libav/ffmpeg, which we support both as long as the API’s don’t
diverge too much, pianobar gains fast and reliable AAC and MP3 decoding
without bothering too much about the details. Most users will have it
installed already. On my own machine libav consumes about 2/3 CPU time
compared to the previous solution when playing AAC. Unfortunately memory
usage doubled and my attempts to disable unused protocols/formats/codec
failed due to libav’s API limitations.
While cleaning up a small detail regarding the eventcmd API has changed
too: Song duration and position are measured in seconds instead of
milliseconds now. Since libav/ffmpeg keeps track of accurate timing the
precision pianobar keeps track of can be reduced, while still being
sufficient for most users.
|
|
Suggested in #426. Should be large enough for a complete song now (if
permitted by sysctl). The correct solution™ would be a buffer in
userspace though.
|
|
The returned length is used as first length estimate before enough audio
data arrives to show the real length and for the eventcmd API. See #427
and #64.
|
|
|
|
|
|
|
|
|
|
Based on suggestion from Sebastian, see issue #416. Fixed several issues
(multibyte, \0-termination) and refactored readline code while I’m at
it.
|
|
|
|
|
|
Now the test-enabled waitress.o does not conflict with pianobar’s
waitress.o any more, thus running `make test` without `make clean` works
fine.
|
|
Fixes issue #384.
|
|
Introduces generic linked list structure and functions (like append,
delete, …). Removes a lot of copy&pasted code and improves code
readability/reusability.
Heads up: This change breaks libpiano’s ABI.
|
|
Increased buffer size.
|
|
|
|
Closes #377.
|
|
Fixes mysterious segfaults from issue #369 and #293.
|
|
|
|
|
|
|
|
1) Make sure that multiple bad playlists in a row don’t result in a
temporary ban
2) Ignore songs skipped because the playlist timed out after pausing for
too long
|
|
Now libwaitress won’t wait until the server closes the connection if the
request body has been received. Multiple requests per connection are not
supported anyway. Fixes #321. Thanks to Michael Stowe.
|
|
Player thread now sets its status correctly. Closes #360.
|
|
Workaround for #355, fixes commit
2c516503d2cb81dd156afc24677ac4bf3caefceb.
|
|
Two new events: stationfetchgenre, stationaddgenre
|
|
|
|
Loving/banning a song from a shared station while playing quickmix
resulted in “call not allowed”, because we tried to transform the
quickmix instead of the song’s real station. Fixes #354.
|
|
See #352.
|
|
See #352.
|
|
Add commands that always play and always pause, in addition to the
current toggle pause command.
Closes #342.
|
|
|
|
|
|
|
|
Welcome to the post-CA world. Fixes #324.
|
|
Closes #322.
|
|
|
|
Useful for tuner-beta.savagebeast.com:8443. Closes #319.
|
|
Decoding errors are usually not fatal, so we can recover by skipping the
broken frame. This also fixes invalid memory reads caused by
sampleSizeCurr >= sampleSizeN. See issue #304.
|
|
Closes #314.
|
|
Closes #307.
|
|
… and restore both on startup. To disable run `ln -sv /dev/null
~/.config/pianobar/state`. Setting an invalid autostart_station in the
config file prevents automatic station selection on startup.
Closes #305.
|
|
|
|
With `history = 0` playlist items are discarded, but not freed.
|
|
|