ejurgensen
cd4386228d
[spotify] Coverity fixups
2022-01-20 20:17:38 +01:00
ejurgensen
c9aac896ee
[player] Coverity fixups
2022-01-20 20:17:38 +01:00
ejurgensen
021a53aa64
[spotify] Add missing return() in librespot-c channel.c
2022-01-11 20:11:35 +01:00
chme
8becdee8f1
[db] Refactor db_query_fetch_* functions to take the output parameter
...
first and the input parameter as last parameter
2021-12-28 07:23:56 +01:00
chme
a65ee4462e
[db] Refactor fetching query result into generic function
...
Additionally changes the return value in case the end of the result set
is reached.
2021-12-28 06:55:35 +01:00
chme
f3fa343b9b
[spotify] Add missing listener notification on librespot logout
2021-12-26 20:22:06 +01:00
ejurgensen
5efe0eeb0f
[pipe] Fix regression in commit 6646802
...
Don't try to apply pipe metadata if parsing failed. Resolves #1366 .
2021-12-12 10:32:42 +01:00
ejurgensen
b71c353fc9
[spotify] Update librespot-c for better connection handling
...
- New attempt at fixing #1317 : Don't prevent reconnection if a request is queued
- Protection against flooding Spotify with reconnection attempts
- Don't reconnect when getting a stop request during blocked download
2021-11-27 15:10:56 +01:00
ejurgensen
ce5634e372
[spotify] Fix log message typo
2021-11-20 14:55:27 +01:00
ejurgensen
6646802832
[pipe] Fix deadlock coming from metadata pipe (issue #1343 )
...
Cause of deadlock:
new volume pipe metadata -> lock pipe mutex -> set player volume waiting for
player -> player waiting for input write -> input write waiting for get
metadata -> get metadata waiting for mutex
Change implementation so lock is only held while parsing/storing metadata,
where it is required, and not when calling the player.
2021-11-15 23:13:13 +01:00
ejurgensen
6d54886030
[librespot-c] Close connection if peer disconnects
...
Attempt to fix possible bad state where librespot-c keeps try to using a
connection even after the access point has disconnected.
2021-11-04 17:20:55 +01:00
ejurgensen
5e66dbd8c9
[spotify] Fix Spotify initialization issues
...
* loading library even though library playback login failed
2021-11-01 10:37:17 +01:00
ejurgensen
c4d57aa5d1
[spotify] Clear spotify_status on logout (clears logged_in and username)
2021-10-05 20:46:44 +02:00
ejurgensen
63c3d59d2f
[spotify] Preserve fine-grained errors from request_make()
2021-09-24 19:17:47 +02:00
chme
ce3e79d804
[spotify] Move "has_podcast_support" to spotify_status and expose this
...
flag in the web API
2021-09-04 09:46:29 +02:00
chme
24450bc90a
[spotify] Scan spotify podcast subscriptions into library
2021-09-04 09:46:28 +02:00
ejurgensen
3f13ab1026
[pipe] Use fstat instead of lstat to fix time-of-check time-of-use warning
...
Fixes warning from CodeQL. Wasn't really a security issue since the check was
just a service to the user.
2021-09-02 00:17:22 +02:00
ejurgensen
54faa11ce5
[spotify] Update librespot-c so ./configure works with FreeBSD
2021-09-01 17:11:45 +02:00
ejurgensen
d2f4efa1bf
[misc] Centralize thread naming plus name websocket thread
2021-07-05 21:40:31 +02:00
ejurgensen
eae09039d5
[spotify] Add missing include of config.h
2021-07-05 21:09:02 +02:00
ejurgensen
5d2d2ea227
[spotify] Add missing include of errno.h ( fixes #1267 )
2021-06-05 21:10:22 +02:00
ejurgensen
9fbbf9836c
[spotify] Submit actual system info to Spotify
2021-06-05 21:09:44 +02:00
ejurgensen
4463d4e7d8
[-] Fix build with old libgcrypt versions (eg Buster's) with no pkg-config
2021-06-01 20:29:16 +02:00
ejurgensen
6f0fef6179
[spotify] Reintroduce libspotify support, change spotifyc to librespot-c
...
Select use of either libspotify or librespot-c as streaming backend via config
option.
librespot-c (renamed/improved spotifyc) impl has the following:
- sync interface
- seek support
- honor bitrate config, set client and thread name
- use web access token with "streaming" scope for login
- fix issue with podcast playback
Also say goodbye to file-based Spotify login.
2021-05-31 23:24:58 +02:00
ejurgensen
2bbc5f16c5
[xcode] Add support for seekable custom I/O (evbuffer input to transcode)
2021-05-31 11:55:32 +02:00
ejurgensen
a67c74ba6c
[spotify] Introduce own spotifyc as replacement for libspotify
2021-05-31 11:54:30 +02:00
ejurgensen
5f1686695a
[-] Name update forked-daapd -> owntone throughout the code
2021-04-24 23:54:20 +02:00
ejurgensen
363bd5644b
[pipe] Support for Shairport sync metadata flush event
2021-03-12 19:48:01 +01:00
ejurgensen
d1a1f6c59c
[pipe] Log when artwork is written to temp file
2020-11-28 21:27:58 +01:00
ejurgensen
67f16138c5
[pipe] Change int64_t print mask for log message
...
Removes compiler warning
2020-07-05 20:59:03 +02:00
ejurgensen
37521406f3
[input] Split file_http.c input into file.c and http.c
...
The common code is by now limited, and there is a lot of http-specific code.
2020-05-19 23:06:36 +02:00
ejurgensen
a69cc65ff6
[input] Download StreamUrl resource async so input thread is not blocked
2020-05-19 23:06:36 +02:00
ejurgensen
b44e5b3ede
[input] Add handler/parser for StreamUrl tags
2020-05-19 23:06:36 +02:00
ejurgensen
d2ac216f47
[http] Change name of struct field for StreamUrl
...
Should not be called artwork_url, since it also can link to other ressources.
Also some fixup, e.g. use new macros.
2020-05-16 00:13:31 +02:00
ejurgensen
360e46683b
[input] Add a simple input for testing timing
2020-05-12 22:25:38 +02:00
ejurgensen
63ab446bd5
[pipe] Fix issue where Shairport progress metadata was ignored
...
Sometimes the progress has a negative position, which we were incorrectly
disregarding.
2020-05-11 21:39:02 +02:00
ejurgensen
d84ea2008f
[pipe] Increase metadata pipe max read size + don't abort if exceeded
...
Closes #976
2020-04-29 23:02:05 +02:00
ejurgensen
dbc798da4f
[-] Workaround for mxml 2.10 memleak
...
2.10's mxmlDelete memleaks, and mxml is used in many parts of forked-daapd. So
to avoid that we ship upstream's fixed version of mxmlDelete and use that.
2020-04-04 21:07:16 +02:00
ejurgensen
2651a979fe
[inputs] Fix issue where input metadata would not be erased
...
When playing a stream, the input metadata is transferred to the queue_item.
However, that was not done if there was no input metadata, which meant that
old metadata was not getting erased.
2020-02-23 20:30:35 +01:00
ejurgensen
f5e59c9b26
[pipe] Allow sample rate of 88200
...
Ref. issue #838
2019-11-05 00:13:33 +01:00
ejurgensen
051e526b2c
[pipe] Disallow 24 bit input, doesn't work currently
...
If 24 bit input needs to be transcoded, like it will for AirPlay, it
will fail in transcode.c, because XCODE_PCM24 actually produces 4-byte
samples.
2019-10-26 23:28:05 +02:00
ejurgensen
41f51d43ac
[pipe] Allow configuration of 32 bit input format (issue #830 )
...
Should work with e.g. arecord -f S32_LE -r 96000 -c 2 -t wav
2019-10-21 21:54:12 +02:00
ejurgensen
cae790ed7e
[pipe] Harden pict_tmpfile_recreate() against invalid input, take 2
2019-09-22 22:56:18 +02:00
ejurgensen
d2921e9444
[pipe] Harden pict_tmpfile_recreate() against invalid input
2019-09-22 20:27:47 +02:00
ejurgensen
56d3f42598
Fix a few gcc 8 / scan-build compiler warnings
2019-09-22 00:51:17 +02:00
ejurgensen
cf927e7daa
[pipe] Fixup missing condition
2019-09-20 21:51:09 +02:00
ejurgensen
7316c060b8
[pipe/artwork] Support for artwork via Shairport metadata pipes, take 3
...
This implementation uses a tmpfile for storage of the artwork, plus it uses
artwork_get() which means that it scales the image as requested by the client.
It also does not create a tmpfile unless we actually receive artwork.
2019-09-20 21:47:17 +02:00
ejurgensen
ddb91e61ef
[pipe/artwork] Support for artwork via Shairport metadata pipes, take 2
...
This implementation uses a tmpfile for storage of the artwork (instead of the
cache, which may not be enabled).
2019-09-20 21:47:17 +02:00
ejurgensen
69fafd873d
[pipe/artwork] Support for artwork via Shairport metadata pipes
...
This implementation uses the cache for storage. Might change that to use a
tmpfile instead.
2019-09-20 21:47:17 +02:00
ejurgensen
1752901529
[misc] Change b64_* to wrap ffmpeg's base64 encoder/decoder
...
Using ffmpeg's is probably better than having our own, plus it provides us with
decoded length, which we will need to support artwork via pipe.
2019-09-20 21:47:17 +02:00