summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
4 daysBack to -dev.HEADmasterLars-Dominik Braun1-1/+1
4 daysRelease 2024.12.21.2024.12.21Lars-Dominik Braun1-1/+1
4 daysplayer: Replace deprecated function avcodec_close.Lars-Dominik Braun1-1/+1
2024-03-29piano: Do not return empty explanation.Lars-Dominik Braun2-3/+8
Instead return NULL and let the client handle it.
2024-03-29player: Translate error code to string in debug messages.Lars-Dominik Braun1-2/+6
2024-03-29player: Adapt to new ffmpeg channel layout API.Lars-Dominik Braun1-6/+7
Bumps required ffmpeg version to at least 5.1.
2024-03-29piano: Use unsigned int where possible.Lars-Dominik Braun1-12/+12
2024-03-29ui: Replace deprecated libcurl function.Lars-Dominik Braun1-4/+4
Bumps required curl version up to 7.32.0.
2024-03-24ui: Send upcoming songs to eventcmd.Lars-Dominik Braun1-16/+60
2023-03-27player: Also retry on ECONNRESET.Lars-Dominik Braun1-1/+3
It’s not entirely clear why or when ffmpeg returns this error. Fixes #735.
2022-04-01Back to -devLars-Dominik Braun1-1/+1
2022-04-01Release 2022.04.012022.04.01Lars-Dominik Braun1-1/+1
2022-03-31ui_act: Improve station management queryLars-Dominik Braun1-1/+6
When there are no seeds (i.e. genre station), do not display initial “Delete”.
2022-03-31player: Add missing include for ffmpeg 5.0Lars-Dominik Braun1-0/+1
Fixes #730.
2022-02-12ui: Declare more HTTP errors as “temporary”Lars-Dominik Braun1-1/+22
This should improve the situation with unreliable HTTP proxies. See #725.
2021-12-11Disable station mode selection for QuickMixLars-Dominik Braun1-3/+10
It does not have any modes anyway. Fixes #723.
2021-07-23player: Replace deprecated ffmpeg functionLars-Dominik Braun1-10/+11
Use av_packet_alloc() instead of av_packet_init().
2021-01-25Back to -devLars-Dominik Braun1-1/+1
2020-11-28Release 2020.11.282020.11.28Lars-Dominik Braun1-1/+1
2020-11-28docs: fix simple typo, exhaused -> exhaustedTim Gates1-1/+1
There is a small typo in src/libpiano/response.c. Should read `exhausted` rather than `exhaused`.
2020-08-09Allow choosing time formatLars-Dominik Braun5-8/+26
Introduce new format string for playback time, supporting formats like -remaining/total, elapsed/total, … Fixes #699.
2020-08-09Add optional debugging codeLars-Dominik Braun6-0/+124
Compile *without* -DNDEBUG. The environment variable PIANOBAR_DEBUG accepts a bitfield which enables (1) network (2) audio (4) UI debug messages.
2020-08-08Allow changing station modeLars-Dominik Braun6-23/+183
Fixes #700.
2020-08-08Back to -devLars-Dominik Braun1-1/+1
2020-04-05Release 2020.04.052020.04.05Lars-Dominik Braun1-1/+1
2020-03-31piano: Request all stationsLars-Dominik Braun1-0/+3
By default the number of stations returned is limited to 95. Adding a flag returns all stations. Fixes #693.
2019-06-06Allow writing audio to a named pipe (fifo) instead of live deviceBruno Morais3-4/+32
Fixes #684
2019-06-06Add audio resamplingBruno Morais3-3/+16
Fixes #683
2019-02-14Back to -devLars-Dominik Braun1-1/+1
2019-02-14Release 2019.02.142019.02.14Lars-Dominik Braun1-1/+1
2019-02-14player: Use floating point arithmetic instead of AVRationalLars-Dominik Braun1-9/+7
av_mul_q calls av_reduce, whose runtime depends on its inputs. This is a latency-sensitive calculation though.
2019-02-14player: Fix buffering issue with mp3Lars-Dominik Braun1-1/+5
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.
2019-02-14player: Fix time display for MP3 filesLars-Dominik Braun1-3/+6
Their time_base is not the same for stream and buffersink. See issue #678.
2019-02-14player: attach names to filtersLars-Dominik Braun1-4/+4
Mainly useful for debugging with AV_LOG_DEBUG.
2019-02-01Back to -devLars-Dominik Braun1-1/+1
2019-01-25Release 2019.01.252019.01.25Lars-Dominik Braun1-1/+1
2019-01-19player: Avoid deadlockLars-Dominik Braun1-0/+1
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.
2018-10-15Expose audio buffer size settingLars-Dominik Braun3-2/+5
See issue #672.
2018-10-15Increase max_retries default valueLars-Dominik Braun2-2/+3
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.
2018-09-23Don’t use deprecated ffmpeg functionsLars-Dominik Braun2-4/+32
These are now optional according to doc/APIchanges. Closes #670.
2018-09-15Implement audio bufferingedward-p3-42/+108
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.
2018-08-12Improve QuickMix selection error messageLars-Dominik Braun1-3/+3
See #668.
2018-06-22Back to -devLars-Dominik Braun1-1/+1
2018-06-22Release 2018.06.222018.06.22Lars-Dominik Braun1-1/+1
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.
2018-04-16Remove deprecated header avfiltergraph.hLars-Dominik Braun2-2/+0
Has been merged into avfilter.h. Closes #660.
2018-04-07Add network timeouts and retriesLars-Dominik Braun5-7/+33
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.
2018-03-15Properly protect player struct with mutexLars-Dominik Braun6-82/+149
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
2017-10-07Fix logic for marking station (deleted)Lars-Dominik Braun1-8/+7
For songs with no station associated (NULL) “(deleted)” was shown unconditionally. Hide it. Fixes commit 4dfca5b56b441faf4938b6c8e97585f68e468039.
2017-10-07piano: Fetch extended attribs for station infoLars-Dominik Braun2-0/+8
We can show the song length in the feedback list now.
2017-10-02Show station in song listsLars-Dominik Braun4-16/+38
Iff song’s station is not the current station. This is only the case for the song history right now. Closes #638