summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-03-07Fix upcoming songs assertion failureLars-Dominik Braun2-4/+2
This should not be an assertion, it is expected to happen. Test with `echo -e "s0\nu" > ctl`. Fixes #509.
2015-01-05Use default channel layout if zeroCody1-0/+7
libav 11 reports an invalid channel layout for mp3 files. This is a work-around. The problem is fixed with libav 11.1.
2014-11-22player: Remove unused variableLars-Dominik Braun1-1/+0
2014-11-22Expand ~ in event_command tooLars-Dominik Braun1-1/+1
2014-10-23contrib: Fix scrobbling scriptLars-Dominik Braun1-2/+2
Time is measured in seconds since commit c872f00508ce4afe3b8ec863b23595c31fd8b4be.
2014-09-28Back to -devLars-Dominik Braun1-1/+1
2014-09-28Prepare for release 2014.09.28Lars-Dominik Braun2-1/+7
2014-09-19Improve player pause/quitLars-Dominik Braun1-10/+8
Skipping/quitting while pausing does not play the current packet any more. Avoid unneccessary calls to av_read_(play|pause).
2014-08-17Fix volume control with ffmpeg 2.3Lars-Dominik Braun1-1/+1
2014-08-06Makefile: Avoid double path separator (//)Lars-Dominik Braun1-11/+11
Causes problems on Windows/Cygwin. Fixes #471.
2014-07-25Makefile: remove dependency generation for *.d filesBrian Norris1-9/+2
The %.d rule means that 'make clean' will try to generate dependency files first. Let's use somem extra gcc flags to make this simpler. Fixes Github Issue #468 Signed-off-by: Brian Norris <computersforpeace@gmail.com>
2014-07-21Fix player retry logicLars-Dominik Braun1-1/+2
If retry is triggered once and openStream fails after that retry is never set to false, resulting in an infinite loop that cannot be interrupted by the user.
2014-07-21Refactor audio player, add retry timeoutLars-Dominik Braun7-111/+221
Fixes #442.
2014-07-07piano: Update API doc URLLars-Dominik Braun1-1/+1
2014-06-21piano: Fix segfault in GET_STATION_INFO response parserLars-Dominik Braun1-1/+8
Pandora added two new integer values to the feedback object, which breaks the assumption that all values are arrays. Since we know the names of the interesting keys (thumbsUp and thumbsDown) just use them instead of iterating over all available keys. Fixes #460.
2014-06-20act_debug’s scope is DC_SONGLars-Dominik Braun1-1/+1
Fixes segfault reported in #461.
2014-06-16Re-init terminal when awaking from ^ZLars-Dominik Braun3-55/+26
And simplify code that nobody touched in a long long time… Fixes input issues reported in #458.
2014-06-08Back to -devLars-Dominik Braun1-1/+1
2014-06-08Prepare for release 2014.06.08Lars-Dominik Braun2-1/+12
2014-06-07Fix autodetection of ffmpeg 2.2Lars-Dominik Braun1-2/+1
Drop minor version check, assuming this workaround is required for all future versions. See 0a64272db65201fc2ecb3406b89d895966933b99. Fixes issue #456.
2014-06-04Print error message when proxy URL format is incorrectTej Chajed1-2/+10
2014-06-02Show username stored in config if asking for passwordLars-Dominik Braun1-2/+8
Thanks to Unit 193 for the suggestion.
2014-06-02libav* autodetectionLars-Dominik Braun2-23/+21
I’ll give it another shot. ffmpeg’s doc/developer.texi states their micro version always starts at 100 for this very reason. Use that to detect ffmpeg and guess its version by looking at major and minor version numbers. Let’s hope this works.
2014-05-30settings: Support ~/ expansionLars-Dominik Braun3-33/+73
Only the simple ~/ expansion is supported right now, since ~user expansion does not make sense for per-user config files anyway. Closes #431 and #430. On my way to this solution I tried libconfuse and json-based config files. I’m not convinced yet one of these is the solution though…
2014-05-25waitress: Improve getaddr error messageLars-Dominik Braun1-1/+1
2014-05-08piano: Fix include guard of crypt.hLars-Dominik Braun1-3/+3
Missed that one in 4d8ad7d87072bc1631d0b949930f4869e56b7b99. Fixes #449.
2014-05-08Makefile: Improve libav selectionLars-Dominik Braun1-4/+8
See #447.
2014-04-22player: Add missing header for ffmpeg1.2Lars-Dominik Braun2-1/+5
Closes #441.
2014-04-22Fix include guardsLars-Dominik Braun13-39/+39
Macros starting with _ are reserved (see http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html). Fixes #440.
2014-04-18player: Fix state-machineLars-Dominik Braun2-1/+2
Song timer was shown without song playing.
2014-04-18waitress: Use standard socket buffer sizeLars-Dominik Braun1-5/+0
libav* uses its own HTTP implementation and the API calls do not benefit from it anyway.
2014-04-12INSTALL: Add note about libav* configurationLars-Dominik Braun1-2/+6
2014-04-11Fix volume controlLars-Dominik Braun3-37/+19
Commit 8012d6cb4bb65a858105ef878c5b98d91b24e1cd was broken in several ways. Since auto-detection did not work correctly it was replaced by a user-editable variable. See #439.
2014-04-07ffmpeg compatibilityLars-Dominik Braun3-32/+66
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.
2014-04-07player: discard unused streamnsLars-Dominik Braun1-0/+6
Shouldn’t make a difference right now. Just in case…
2014-04-04Send headers in first packet.Kenny MacDermid1-9/+6
Splitting up the writes causes the Host header to end up in a different packet than the requst line, making it harder to proxy.
2014-04-04Send the server_name extension.Kenny MacDermid1-0/+4
Required by sniproxy when forwarding the connection.
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.