Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
When there are no seeds (i.e. genre station), do not display initial “Delete”.
|
|
Fixes #730.
|
|
As suggested by the official documentation.
|
|
This should improve the situation with unreliable HTTP proxies. See #725.
|
|
|
|
Fixes #724.
|
|
It does not have any modes anyway.
Fixes #723.
|
|
Closes #708.
|
|
|
|
Use av_packet_alloc() instead of av_packet_init().
|
|
Do not hard-code pkg-config tool path.
Fixes https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=956118
|
|
|
|
|
|
There is a small typo in src/libpiano/response.c.
Should read `exhausted` rather than `exhaused`.
|
|
We don’t really need it, but why not…
|
|
Introduce new format string for playback time, supporting formats like
-remaining/total, elapsed/total, …
Fixes #699.
|
|
Compile *without* -DNDEBUG. The environment variable PIANOBAR_DEBUG
accepts a bitfield which enables (1) network (2) audio (4) UI debug
messages.
|
|
Fixes #700.
|
|
|
|
|
|
By default the number of stations returned is limited to 95. Adding a
flag returns all stations.
Fixes #693.
|
|
Fixes #684
|
|
Fixes #683
|
|
Since commit 24852ca110c7240dd5c57aa7201d802302a097ce we depend on
ffmpeg>=3.3. libav does not have av_buffersink_get_time_base and is thus
unsupported.
See issue #680
|
|
|
|
|
|
av_mul_q calls av_reduce, whose runtime depends on its inputs. This is
a latency-sensitive calculation though.
|
|
Again, I used the wrong time_base. Since lastTimestamp and the decoder’s
frame->pts used different time_base’s, the buffer health was wrong,
resulting in an indefinite stall (“buffer is full” when it was not).
See #678.
|
|
Their time_base is not the same for stream and buffersink.
See issue #678.
|
|
Mainly useful for debugging with AV_LOG_DEBUG.
|
|
|
|
* Follow redirects on URLs (mostly changing http to https)
* Capitalize Homebrew and change Mac OS X to macOS
* Use the MacPorts homepage, instead of the old Subversion repository
|
|
|
|
When the play thread receives an error (ret < 0), it waits for
aoplayCond. But if the buffer is full (decode thread waiting for
aoplayCond), the player deadlocks.
See #672.
|
|
See issue #672.
|
|
Back to default value before ff4f15214100d209f39e4ed85f47e572c8fe9289.
It is used by the player as well and since 403’s are considered an
“error” it must be larger than the number of files per playlist (4).
See issue #672.
|
|
These are now optional according to doc/APIchanges. Closes #670.
|
|
Prevent stuttering on low-power devices like Android phones by moving
playback to its own thread and decoupling it from decoding through a
reasonably sized buffer.
Fixes #665.
|
|
See #668.
|
|
|
|
|
|
HAPPY 10TH BIRTHDAY PIANOBAR!
It’s first public release was created on 2008-06-05. So I’m slightly
late to the party. Sorry about that.
Also, I never thought a piece of software *I* wrote would last that
long.
|
|
Has been merged into avfilter.h. Closes #660.
|
|
All network operations can time out now. API requests are retried up to
three times (default). Replaces setting max_player_errors with
max_retries, which is used for player and API. Adds timeout setting.
Partially reverts 436a1d4012553a2f33d0e3a5180b3b5ae0378bdd and fixes
(at least) issue #657.
Thanks to @exarkun for testing.
|
|
The volatile keyword neither guarantees atomic access nor memory
visibility[1]. Although this is usually not a problem on x86, it is
incorrect to rely on this. Use mutex locks to protect all shared player
variables and enforce memory visibility.
[1] https://wiki.sei.cmu.edu/confluence/display/c/CON02-C.+Do+not+use+volatile+as+a+synchronization+primitive
|
|
Closes #634
|
|
Closes #648
|
|
|
|
For songs with no station associated (NULL) “(deleted)” was shown
unconditionally. Hide it. Fixes commit
4dfca5b56b441faf4938b6c8e97585f68e468039.
|