Christian Meffert
27c9224f69
[listener] Support passing context arg to listener callbacks
2024-12-27 13:54:49 +01:00
ejurgensen
4a08644806
[xcode] Change the signature of transcode_setup/transcode_en/decode_setup()
...
Should make it easier to add/remove parameters without changing all calls to the
functions throughout the code.
Also adds an interface through which to call make_mp4_header().
2024-06-17 22:05:07 +02:00
ejurgensen
61bae6367d
[spotify/rtp] Remove some unused functions
...
Closes #1705
2024-01-01 16:37:15 +01:00
ejurgensen
3ee9204ff8
[xcode/daap/rsp] Default transcode to 320 kbps mp3 instead of wav
...
- Calculate size for both formats (+ move the return to transcode_encode_query)
- Let transcode_needed() decide what format to output
- Determine content-type from transcoding type
- Add transcode-dependent ability to override file metadata in rsp/daap
- Send file size matching format
2023-12-04 17:26:03 +01:00
ejurgensen
65c72c484b
[misc] Add misc_xml.c to wrap mxml, fixes XML reading of CDATA (et al)
...
The change removes all direct calls to mxml from the modules that need an XML
parser (lastfm.c, pipe.c, rssscanner.c and httpd_rsp.c).
Even with the help of mxml, reading XML is hard, so a layer is added which
helps deal with stuff like whitespace and CDATA. This should make OwnTone more
resilient to any XML variations it might receive.
The changes fixes issue #1677 .
2023-11-12 23:43:38 +01:00
ejurgensen
214ef12cb5
[spotify] Fix free of invalid pointer on http request error
...
Fixes #1643
2023-08-29 20:14:19 +02:00
ejurgensen
0ca02687bd
[spotify] Remove old libspotify integration
...
No longer works, libspotify has been sunset by Spotify
2022-05-25 22:49:35 +02:00
ejurgensen
d4a2b11c3e
[spotify] Slightly improved version of recent commit 79fb65f
2022-05-24 20:34:45 +02:00
ejurgensen
79fb65fbd8
[spotify] Fix for "Premium account required" (issue #1474 )
...
Sadly user-agent spoofing seems to be necessary after Spotify sunset of
libspotify. Apparently librespot is whitelisted.
2022-05-17 23:31:30 +02:00
chme
d277f7c7b3
[http/spotify] Add support for http sessions across multiple requests
...
This change allows to reuse curl handles for multiple requests.
Reusing a curl handle improves performance if more than one request is
made against a service (connection, session cache, dns cache are kept
between requests).
2022-05-01 09:01:23 +02:00
ejurgensen
03d05ea828
[spotify] Make sure failed AP's are avoided on next connection attempt
2022-03-22 20:58:43 +01:00
ejurgensen
48051f6364
[spotify] Handle channel error (so that new AP connection is triggered)
2022-03-15 21:14:28 +01:00
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