Commit Graph

4238 Commits

Author SHA1 Message Date
ejurgensen
2d84b0bab9 [alsa] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
cd4386228d [spotify] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
0fdca0587c [airplay] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
a09da06e8f [scan] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
d72958f1f7 [db] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
070866b41a [jsonapi] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
53ee9a3c39 [daap] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
334beb1cfa [httpd] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
c9aac896ee [player] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
0bc574fafe [rtsp] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
b059d73211 [commands] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
e321c54655 [artwork] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
d857116e41 [daap] Fix null dereference on missing group-type param 2022-01-14 23:12:49 +01:00
ejurgensen
5e6f19a6da [airplay] Fix reading features txt from Kodi (fixes #1381)
Adds support for "features" values that are not comma separated.
2022-01-12 20:33:07 +01:00
ejurgensen
021a53aa64 [spotify] Add missing return() in librespot-c channel.c 2022-01-11 20:11:35 +01:00
ejurgensen
6a0c7db50a [airplay] Disable unused ntp_to_timestamp() 2022-01-11 20:10:54 +01:00
whatdoineed2do/Ray
07a9ed6654 [jsonapi] composer review 2021-12-30 10:49:45 +00:00
whatdoineed2do/Ray
69d32eb691 [jsonapi] support composers
- enable search for composer (albums/tracks)
- expose new rest endpoint for retreiving all known composers
2021-12-29 14:14:56 +00:00
chme
8dfbb460c2 [db/readme] Add comment to browse_info object; update docs for genre
endpoint
2021-12-29 12:01:42 +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
d7086cab00 [db,jsonapi] Additional meta data for browse queries 2021-12-28 06:29:07 +01:00
chme
f3fa343b9b [spotify] Add missing listener notification on librespot logout 2021-12-26 20:22:06 +01:00
whatdoineed2do/Ray
8f9356ff11 [http,conf] allow user to request no ssl peer verification
This solves for the case where hosted RSS podcasts have self signed or
expired certs:  using default (verify peer) in these instances results
in 'SSL peer certificate or SSH remote key was not OK'
2021-12-18 17:00:05 +00: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
d6cc0e453d [airplay] Update pair_ap to 0.12
Better input validation of public keys
2021-12-06 22:49:34 +01:00
ejurgensen
088e26c1f0 [airplay] Fix rare pairing bug due to incorrect SRP padding (ref #1280)
Update pair_ap to version 0.11, which it fixes an issue where some randomized
values of SRP "a" are short enough that they require padding.
2021-12-04 23:05:33 +01:00
ejurgensen
1418bfb245 [scan] Don't iTunes playlist scan timestamp on failed scan
Also some refactoring.

Closes #1359
2021-12-01 20:11:54 +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
0d67f26662 [artwork] Fix memleak on pipe artwork error 2021-11-15 22:57:43 +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
65d578f8c8 [scan] Ignore 0-byte files in library so ffmpeg 3.2 doesn't crash 2021-10-29 23:08:37 +02:00
whatdoineed2do
a5f75dab36
[jsonapi] /api/library/*/{id} returns 404 (instead of 500) on not finding item (#1326)
Co-authored-by: whatdoineed2do/Ray <whatdoineed2do@nospam.gmail.com>
2021-10-25 17:36:51 +02:00
ejurgensen
d2ee9f20fb [jsonapi] Add PUT /api/library/tracks endpoint (update multiple tracks)
Also fix error in json doc (track->id type)
2021-10-10 23:31:34 +02:00
ejurgensen
41e3733ccc [misc] Make safe_xxx integer conversions safer by checking for NULL input
Also don't touch output on error + fix missing check for return in db.c
2021-10-09 23:39:00 +02:00
ejurgensen
c4d57aa5d1 [spotify] Clear spotify_status on logout (clears logged_in and username) 2021-10-05 20:46:44 +02:00
ejurgensen
ae7280b770 [library] Fix macos format warning
library.c:233:123: warning: format specifies type 'long' but the argument has type '__darwin_suseconds_t' (aka 'int') [-Wformat]
2021-10-01 19:01:32 +02:00
ejurgensen
679c142212 [db] Remove unused strdup_if() 2021-10-01 18:58:13 +02:00
ejurgensen
5e93080aa2 [airplay] Fix warning about int type seqnum 2021-10-01 16:52:47 +02:00
ejurgensen
aff8ac6a6b [raop] Fix warning about int type seqnum 2021-10-01 16:52:02 +02:00
ejurgensen
7572560bf2 [chromecast] Fix format and type errors 2021-10-01 16:44:30 +02:00
ejurgensen
63c3d59d2f [spotify] Preserve fine-grained errors from request_make() 2021-09-24 19:17:47 +02:00
ejurgensen
6692411040 [-] Fixup PR 1309 (usermark) 2021-09-17 22:58:21 +02:00
whatdoineed2do/Ray
4d5c256327 [db,jsonapi] revert usermark from queue item table 2021-09-16 10:43:55 +01:00
whatdoineed2do/Ray
16cf3cb44b [jsonapi] use u32 types for parsing param: rating 2021-09-16 09:11:31 +01:00
whatdoineed2do/Ray
52d1ba7dd4 [db,jsonapi] remove DB_FILES_USERMARK_MAX 2021-09-15 08:40:07 +01:00
whatdoineed2do/Ray
d43ce017f5 [db,jsonapi,smartpl] db usermark flag review 2021-09-08 14:51:55 +01:00
whatdoineed2do/Ray
e65203e1e2 [db] expand file tbl's flag values 2021-09-07 11:49:24 +01:00
whatdoineed2do/Ray
ad573b8bc7 [db,jsonapi]] update api/library/tracks and db to accept 'flag' param 2021-09-06 20:15:35 +01:00
whatdoineed2do/Ray
5cbb5f061d [smartpl] add review 'flag' 2021-09-06 20:15:35 +01:00
whatdoineed2do/Ray
4dcc9b602e [db] add review 'flag' column to files/queue tbls 2021-09-06 20:15:35 +01:00
Christian Meffert
29cd5a7a19
Merge pull request #1286 from chme/spotify_podcasts
[spotify] Scan spotify podcast subscriptions into library
2021-09-04 12:06:26 +02:00
chme
d8a344d87c Fix wrong check for NULL after creating smartpl parser 2021-09-04 09:55:11 +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
c58e792ff4 [spotify] Code format change 2021-09-04 09:46:28 +02:00
chme
f700935b57 [spotify] Add artwork support for episodes (podcasts) 2021-09-04 09:46:28 +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
de7ab1547f [library] Remove needless stat() in scan_playlist()
Fixes time-of-check time-of-use warning from CodeQL
2021-09-02 00:12:18 +02:00
ejurgensen
54faa11ce5 [spotify] Update librespot-c so ./configure works with FreeBSD 2021-09-01 17:11:45 +02:00
ejurgensen
7584e6377f [misc] Fix forgotten return in net_evhttp_bind()
Makes it impossible to use the bind_address config setting properly
2021-08-30 23:46:36 +02:00
ejurgensen
e1375f6ad6 [streaming] Clean up streaming_player_status_update()
Fixes compiler warning from newer versions of gcc + reduces malloc's
2021-08-27 16:46:08 +02:00
ejurgensen
774d7c36fd [input] Logging changes 2021-08-18 01:00:17 +02:00
ejurgensen
f4983b8a11 [airplay] Add missing include of errno.h in the new events handling
Closes #1294
2021-08-14 21:13:50 +02:00
ejurgensen
b6835fac29
[airplay] Support for airplay events (eg Homepod controls)
Ref. issue #1181
2021-07-31 01:16:23 +02:00
ejurgensen
246d8ae0ce [misc] Fix use-after-free in net_bind()
Thanks to Ba Jinsheng for reporting this bug
2021-07-31 00:55:48 +02:00
Christian Meffert
dc8e66109e
Merge pull request #1284 from chme/web-update
Web interface v1.1.0
2021-07-09 10:03:38 +02:00
Christian Meffert
81dafab4ac
Merge pull request #1283 from chme/smartpl-comment-field
[smartpl] Add "comment" field to smartpl expression language
2021-07-09 10:02:51 +02:00
Christian Meffert
3a9589c25b
Merge pull request #1282 from chme/httpd_webroot
[httpd] Dereference web root directory to allow symlinks
2021-07-09 09:56:06 +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
chme
1e4728f6b1 [jsonapi] Expose "use_libspotify" config 2021-07-04 14:40:08 +02:00
chme
44c24cee0f [jsonapi] Add "comment" field to track object 2021-07-04 12:03:05 +02:00
chme
467b169210 [smartpl] Add "comment" string field 2021-07-04 11:48:51 +02:00
chme
93b9740233 [httpd] Dereference web root directory to allow symlinks 2021-07-04 11:41:39 +02:00
ejurgensen
e18969ef75 [rsp] Interpret artist in queries as album_artist (fixes #1263) 2021-06-07 20:22:36 +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
57449a126a [xcode] Merge avio_evbuffer into transcode
Only used by transcode anyway. Makes it easier to add custom seek for evbuffer.
2021-05-31 11:55:32 +02:00
ejurgensen
b058f47ffb [input] Also log input buffer threshold in debug mode 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
d3cc8a52f8 [mpd] Minor fixup 2021-05-28 16:57:57 +02:00
ejurgensen
c96dc1fcff [dacp] Fix support for device-volume (speaker volume buttons)
Closes #613
2021-05-26 23:20:40 +02:00
ejurgensen
d2187d0ace [db] Partially revert commit aaffa4a so that source sort tags are used again
Fix for issue #1257
2021-05-25 23:44:53 +02:00
ejurgensen
684c23a044 [db] Fix error where adding Spotify track to queue returns "0 tracks added"
Caused by queue_item_add returning >0 as success, but caller is expecting ==0.
Try to avoid other occurancess of this issue by generally checking for error
("ret < 0") instead.
2021-05-24 21:55:09 +02:00
ejurgensen
5fdace5195 [web] Remove verbose listener_cb() logging added in commit f939215 2021-05-21 23:43:00 +02:00
ejurgensen
28f8ff5253 [web] Fix libwebsocket 2.0 (Debian Buster) incompability added in commit 1a56255 2021-05-21 19:59:12 +02:00
ejurgensen
5de0533232 [airplay] Add mdns txt for Sonos Symfonisk 2021-05-21 18:50:28 +02:00
ejurgensen
1a56255c54 [web] Fix for websocket server only listening on ipv6 on FreeBSD
Credit @luusl
2021-05-21 16:13:44 +02:00
ejurgensen
5128d9478a [misc] Fix for evhttp_bind_socket not supporting dual stack ipv4/6 on BSD 2021-05-20 21:01:00 +02:00
ejurgensen
c1db4d914f [http] Also allow remote playlists to have https streams (fixes #1251)
Fix it by adding net_is_http_or_https() utility function in misc.h and make
sure it used whenever a http protocol check is made.
2021-05-19 22:53:25 +02:00
Christian Meffert
f93921554e
Merge pull request #1243 from luusl/enhance_websocket
Improve the websocket to send events to clients immediately.
2021-05-19 20:32:08 +02:00
taku0220
4d22cb05b3 [scan]Add sort tags for ALAC 2021-05-19 03:02:08 +09:00
martin
f3e5400caf Libwebsockets 2.x compatibility 2021-05-17 12:47:57 +02:00