Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
^C now works as expected: It interrupts API requests, input prompts and
audio streaming. Timeouts have been removed.
|
|
scanf’s %s matches non-whitespace characters only and thus ‘# foo = bar’
is parsed as ‘foo’, ‘bar’ and not ‘# foo’, ‘bar’ (as expected). Thus
comments did not work if they a) started with a valid key and b) had a
space between hash-sign and key.
Fixes issue #526.
|
|
On one of my machines the first song plays fine, but every track
thereafter fails playing with the following error message:
[volume @ 0x7f6b1c0a1200] [Eval @ 0x7f6b21ab6b60] Invalid chars '.0' at the end of expression '1.0'
[volume @ 0x7f6b1c0a1200] Error when evaluating the volume expression '1.0'
/!\ create_filter volume (Das Argument ist ungültig)
I’m not sure why this fixes the issue, but it might be a bug in ffmpeg.
|
|
A few changes were made to AVFrame and the buffersink. Should be
compatible with ffmpeg >= 2.1 and libav >= 10. Version 1.2/9 do not work
at this point.
|
|
I removed most of the *BSD-related stuff, because I can’t test these. If
this breaks your build, send me a patch please.
|
|
Currently exposed settings: Username, password and explicit content
filter. New key for settings is ‘!’, changeable with “act_settings”.
Fixes issues #524 and #506.
|
|
|
|
The proxy config setting did not set ffmpeg’s http proxy previously. See
issue #531.
|
|
|
|
Drops libwaitress. Adds the new dependency libcurl and drops gnutls.
I wouldn’t say writing my own HTTP library was a mistake – it was not
and the experience gained was worth it. Instead I have to acknowledge
that libcurl is just better than my own implementation. Sure, it does a
lot more than HTTP – one could call that bloat. Yet if you just want to
get the job done™ reusing code is the way to go.
See #512 and #513.
|
|
The initial volume setup was ignored as well. Introduced by previous
commit 310900e4be52d11388792d776d9f6b89380bbecd. See
https://github.com/PromyLOPh/pianobar/commit/310900e4be52d11388792d776d9f6b89380bbecd
|
|
Fixes issue #508.
|
|
This should not be an assertion, it is expected to happen. Test with
`echo -e "s0\nu" > ctl`. Fixes #509.
|
|
libav 11 reports an invalid channel layout for mp3 files. This is a
work-around. The problem is fixed with libav 11.1.
|
|
|
|
|
|
|
|
|
|
Skipping/quitting while pausing does not play the current packet any
more. Avoid unneccessary calls to av_read_(play|pause).
|
|
|
|
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.
|
|
Fixes #442.
|
|
|
|
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.
|
|
Fixes segfault reported in #461.
|
|
And simplify code that nobody touched in a long long time… Fixes input
issues reported in #458.
|
|
|
|
|
|
Drop minor version check, assuming this workaround is required for all
future versions. See 0a64272db65201fc2ecb3406b89d895966933b99. Fixes
issue #456.
|
|
|
|
Thanks to Unit 193 for the suggestion.
|
|
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.
|
|
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…
|
|
|
|
Missed that one in 4d8ad7d87072bc1631d0b949930f4869e56b7b99. Fixes #449.
|
|
Closes #441.
|
|
Macros starting with _ are reserved (see
http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html).
Fixes #440.
|
|
Song timer was shown without song playing.
|
|
libav* uses its own HTTP implementation and the API calls do not benefit
from it anyway.
|
|
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.
|