summaryrefslogtreecommitdiff
path: root/src/main.c
AgeCommit message (Collapse)AuthorFilesLines
2014-03-31Use libav/ffmpeg for audio decodingLars-Dominik Braun1-38/+37
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-14piano: Request track lengthLars-Dominik Braun1-2/+2
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 Schafer1-1/+1
2013-08-07piano: Generic linked listsLars-Dominik Braun1-3/+3
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-02piano: Check for libgcrypt errorsLars-Dominik Braun1-2/+8
Fixes mysterious segfaults from issue #369 and #293.
2013-05-13Permit multiple HTTP errors in a rowLars-Dominik Braun1-2/+9
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-02-26Add play and pause commandsAdam Simpkins1-0/+2
Add commands that always play and always pause, in addition to the current toggle pause command. Closes #342.
2012-11-04New setting: Read RPC TLS portPierre Zurek1-0/+1
Useful for tuner-beta.savagebeast.com:8443. Closes #319.
2012-10-21New setting: Read password from external commandLars-Dominik Braun1-7/+70
Closes #314.
2012-09-22Save station and volume to statefileLars-Dominik Braun1-0/+3
… 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.
2012-09-17Fix history memory leakLars-Dominik Braun1-0/+1
With `history = 0` playlist items are discarded, but not freed.
2012-07-05Initialize libgcryptLars-Dominik Braun1-0/+3
Closes #287
2012-06-14Ignore SIGPIPELars-Dominik Braun1-0/+4
We have all the error handling in place, no need to kill the program. See #274.
2012-06-09piano: Select quality instead of audio formatLars-Dominik Braun1-1/+1
Pandora limited the audio formats we can request explicitly. Don’t rely on this and use the formats available with the given partner credentials. Closes #271.
2012-05-26Move mutex initalization to main threadLars-Dominik Braun1-1/+3
Closes #250.
2012-05-26Revert "Remove pause mutex/add pthread cleanup function"Lars-Dominik Braun1-8/+12
This reverts commit 7df9371491e96a99c1e463f7787aede352ac5a37.
2012-05-14Remove pause mutex/add pthread cleanup functionLars-Dominik Braun1-12/+8
No more mutex locking/checking for quit condition. Should (slightly) increase responsiveness of the player thread. Closes #250.
2012-05-07Configureable RPC hostLars-Dominik Braun1-1/+1
In case someone wants to use internal-tuner.pandora.com. See #243.
2012-05-05Avoid player mode race conditionLars-Dominik Braun1-16/+13
Always run cleanup, ensure thread is joined and player struct is reset. See #250.
2012-05-01Don’t hardcode passwordsLars-Dominik Braun1-1/+3
It’s a bad idea to hardcode these, although playback does not work with non-android login yet.
2012-03-31Warn if ctl is not a fifoLars-Dominik Braun1-3/+13
Ordinary files are not supported and cause problems, so close the fd and print a warning instead. Thanks to Sergey Bronnikov for the initial patch.
2012-03-17Auto-select last remaining item of filtered listLars-Dominik Braun1-1/+2
See #231.
2012-01-12Eliminate concurrent use of (un-)buffered I/OLars-Dominik Braun1-1/+2
Closes #201
2012-01-11TLS is enabled per-request nowLars-Dominik Braun1-1/+0
2011-11-11waitress: Fingerprint checkLars-Dominik Braun1-14/+3
Reduces memory usage, protects against 0wned CA's and avoids ca-bundle confusion. Closes #175
2011-11-10Die if trust file load failsLars-Dominik Braun1-4/+16
2011-11-09TLS is not optional any moreLars-Dominik Braun1-11/+1
2011-11-09Added TLS settingsLars-Dominik Braun1-4/+8
2011-11-09Free Waitress handleLars-Dominik Braun1-0/+1
2011-11-09waitress: move credentials init to WaitressInitLars-Dominik Braun1-2/+2
Reusable.
2011-11-09waitress: Initial TLS implementation (using gnutls)Lars-Dominik Braun1-1/+9
2011-10-22Support seed stationsLars-Dominik Braun1-1/+1
Fixes #165
2011-08-23Configureable fifo pathLars-Dominik Braun1-4/+2
See #149.
2011-07-29Ask for email address instead of usernameOliver Graff1-1/+1
Fixes #144
2011-07-25Added toggle to quickmix menuLars-Dominik Braun1-1/+1
Closes #141
2011-07-14Defined _DARWIN_C_SOURCELars-Dominik Braun1-0/+1
Required to expose non-standard functions. Closes #138
2011-07-11Disable feature test macros on FreeBSDEitan Adler1-0/+2
Closes #136
2011-06-13waitress: Rewrite split urlLars-Dominik Braun1-17/+5
Accepts user and password in urls now. Tests added.
2011-05-18Configureable format stringsLars-Dominik Braun1-16/+20
Closes #88
2011-02-26Always add song to historyLars-Dominik Braun1-35/+3
2011-02-26Rewrite input processingLars-Dominik Braun1-23/+4
2011-02-07Add eventcmd events for login/fetch stationsLars-Dominik Braun1-9/+11
See issue #83
2011-02-02BarReadline rewriteLars-Dominik Braun1-53/+30
Doesn't use c streams any more, allows multiplexing of fifo/stdin in all situations.
2011-02-02Allow keyboard shortcuts to be disabledLars-Dominik Braun1-5/+10
Something like act_foobar = disabled disables the command foobar completely now. Useful if you don't use software volume control. See issue #78.
2011-01-15Send station list to eventcmdMatthew Beckler1-4/+5
See issue #76
2010-12-27Fix high cpu usage if stdin is /dev/nullLars-Dominik Braun1-0/+4
See issue #71.
2010-12-27Change my email addressLars-Dominik Braun1-1/+1
Again. And hopefully the last time.
2010-12-27Use PATH_MAX from limits.hLars-Dominik Braun1-2/+2
2010-12-27Software volume controlLars-Dominik Braun1-1/+3
2010-12-14Refactored main()castlec1-263/+345
No functional changes.