summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-03-31Fix compiler warningLars-Dominik Braun1-2/+2
2014-03-31Use libav/ffmpeg for audio decodingLars-Dominik Braun7-627/+304
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.
2014-03-14waitress: Increase kernel receive bufferLars-Dominik Braun1-1/+1
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.
2014-03-14piano: Request track lengthLars-Dominik Braun4-2/+7
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.
2014-03-13fix warnings now noted due to format string checkingCody P Schafer3-7/+7
2014-03-13Add an attribute to start checking format stringsCody P Schafer1-1/+1
2014-01-31Switch to clang for debugging build + fix issuesLars-Dominik Braun4-46/+40
2014-01-12Return if station info request failsLars-Dominik Braun1-1/+5
2014-01-02Added Ctrl-u to readlineLars-Dominik Braun2-21/+28
Based on suggestion from Sebastian, see issue #416. Fixed several issues (multibyte, \0-termination) and refactored readline code while I’m at it.
2013-10-24Port to OpenBSDRichard Allen1-0/+2
This really just tells the makefile how to call the compiler on OpenBSD. You'll also want the following packages: json libmad libao faad gnutls
2013-09-15Back to -devLars-Dominik Braun1-1/+1
2013-09-15Prepare for release 2013.09.15Lars-Dominik Braun2-1/+11
2013-09-08waitress: Move testcases to separate fileLars-Dominik Braun4-123/+149
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.
2013-08-12headless_pianobar: Support command-line argumentsPeter Olson1-70/+148
See issue #383.
2013-08-09Remove nonexisting list.h from MakefileLars-Dominik Braun1-1/+0
Oops. Fixes #386.
2013-08-08waitress: Try all addresses returned by getaddrinfoLars-Dominik Braun1-32/+51
Fixes issue #384.
2013-08-07piano: Generic linked listsLars-Dominik Braun9-231/+239
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.
2013-07-30Added support for EOF and ^D and environment variables to headless_pianobarPeter Olson1-3/+6
Closes #382.
2013-07-29Fix display of song lists with more than 999 itemsLars-Dominik Braun1-1/+1
Increased buffer size.
2013-07-28piano: Replace station with same idLars-Dominik Braun1-3/+19
2013-07-07Add keyboard shortcut to reset volumeLars-Dominik Braun6-7/+26
Closes #377.
2013-07-02piano: Check for libgcrypt errorsLars-Dominik Braun4-13/+34
Fixes mysterious segfaults from issue #369 and #293.
2013-06-08Fix build in FreeBSDWilliam Grzybowski4-1/+8
2013-05-19Back to -devLars-Dominik Braun1-1/+1
2013-05-19Prepare for release 2013.05.19Lars-Dominik Braun2-1/+13
2013-05-13Permit multiple HTTP errors in a rowLars-Dominik Braun7-9/+23
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
2013-05-08waitress: Close connection if body has been receivedLars-Dominik Braun2-0/+9
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.
2013-04-30Makefile: Use simple variablesLars-Dominik Braun1-30/+30
TIL recursive variables and $(shell …) slow down `make`.
2013-04-30Makefile: Use new json-c pkgconfig file nameLars-Dominik Braun1-2/+2
Keeps compatibility with older versions (will be removed in the future). Closes #364.
2013-04-17Link dynamic pianobar against gcryptLars-Dominik Braun1-1/+2
Commit 96db841a16670b52fa462337c657c6dc6bd2844a added initialization functions to the pianobar binary but failed to link the dynamically linked version against libgcrypt. Closes #362.
2013-04-17Fix player state for unsupported audio file formatsLars-Dominik Braun1-4/+6
Player thread now sets its status correctly. Closes #360.
2013-03-31Ignore HTTP status 400Lars-Dominik Braun3-6/+16
Workaround for #355, fixes commit 2c516503d2cb81dd156afc24677ac4bf3caefceb.
2013-03-27Add missing events to genre station selectionLars-Dominik Braun4-77/+73
Two new events: stationfetchgenre, stationaddgenre
2013-03-20Fix station name when deleting a stationLars-Dominik Braun1-1/+1
2013-03-20Transform actual station when loving/banning songsLars-Dominik Braun1-2/+16
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.
2013-03-09Stop playback if audio file is not accessibleLars-Dominik Braun1-0/+6
See #352.
2013-03-08piano: Add error message for code 1039Lars-Dominik Braun2-1/+5
See #352.
2013-02-26Add play and pause commandsAdam Simpkins9-41/+99
Add commands that always play and always pause, in addition to the current toggle pause command. Closes #342.
2013-01-09Remove install note about OS XLars-Dominik Braun1-12/+0
Should work “out of the box” now. See #340.
2013-01-09Use gcc -std=c99 instead of c99 on OS XTej Chajed1-1/+6
Automatic checking in Makefile. Fixes #308 and #340.
2013-01-06mktemp’s template argument is required on OS XLars-Dominik Braun1-1/+1
And possibly others. Fixes #337.
2012-12-29config-example: Update fingerprint of internal-tunerLars-Dominik Braun1-1/+1
See #328
2012-12-01Back to -devLars-Dominik Braun1-1/+1
2012-12-01Prepare for release 2012.12.01Lars-Dominik Braun2-1/+10
2012-12-01Added script that retrieves current TLS fingerprintBob Saska1-0/+9
Needs openssl. Closes #325.
2012-12-01waitress: Add TLS fingerprint mismatch error codeLars-Dominik Braun2-17/+18
2012-11-30New default TLS fingerprintLars-Dominik Braun1-2/+2
Welcome to the post-CA world. Fixes #324.
2012-11-30waitress: Fix chunked decoderLars-Dominik Braun2-45/+51
Closes #322.
2012-11-17player: Fix insane typecastLars-Dominik Braun1-6/+13
2012-11-04New setting: Read RPC TLS portPierre Zurek6-2/+16
Useful for tuner-beta.savagebeast.com:8443. Closes #319.