Commit Graph

121 Commits

Author SHA1 Message Date
ejurgensen
1921a2401f [artwork] Fix memleak in source_item_pipe_get
Queue item not being freed on succes
2020-05-11 21:37:29 +02:00
ejurgensen
a6cb70fd66 [artwork] Don't use group handlers if unknown group (artist/album) 2020-05-11 17:24:05 +02:00
ejurgensen
86d49a7028 [artwork] Don't log Spotify artwork errors if user is not logged in
Ref issue #986
2020-05-05 16:23:55 +02:00
ejurgensen
37b4188c3c [artwork] Generalize handler configuration of supported media_kinds 2020-05-02 00:52:52 +02:00
whatdoineed2do/Ray
329c0620fc [artwork] query playlist-wide artwork if availble 2020-04-30 20:28:36 +02:00
ejurgensen
daf3922650 [artwork] Remove http instance of artwork_source for embedded
Commit 8510f7e should mean that it is not required any more, since we won't be
probing http streams unless we know they have artwork.
2020-04-25 21:59:18 +02:00
chme
8510f7e5f2 [artwork] Only try embedded artwork if dbmfi has ARTWORK_EMBEDDED flag 2020-04-25 21:58:21 +02:00
chme
14b4081769 [artwork] Ignore streams with media kind != music in artwork sources
"stream", "discogs", "coverartarchive", "spotify"
2020-04-12 10:49:56 +02:00
ejurgensen
c4cc366e6f [artwork] Avoid slow nowplaying artwork response -> slow Remote connect
Lower priority of potentielly slow embedded artwork retrieval, plus make sure
we tell the transcode module about http data kind, so that it can probe
quicker.
2020-04-07 22:54:10 +02:00
chme
67fd555b52 [artwork] Refactor artwork_get_dir_image 2020-03-14 07:03:06 +01:00
chme
6ba45e8d94 [artwork] Remove libspotify based artwork handler 2020-02-25 05:41:49 +01:00
ejurgensen
248f82f3c8 [db] Fixup fixup in commit #00de0a3 (upgrade dbvers to 21.3)
Forgot to include db_upgrade to v21.3
2020-02-23 21:26:00 +01:00
ejurgensen
1ed10771f1 [artwork] Get enablement of online srcs from settings
Settings will take care of consulting the cfg file now
2020-02-23 20:30:35 +01:00
ejurgensen
afa1a07a42 [artwork] Fix handling of cache + enable online srcs via config
* Don't save artwork for permanent items (file + Spotify) to the stash. The
  stash is only for short term artwork.
* If a request comes with a different max_w/max then search the online source
  again.
* Make artwork requests thread-safe by mutex protecting the search history.
* Add config option
2020-02-23 20:30:35 +01:00
ejurgensen
ad9ebb75c6 [artwork] Refinement of online artwork search
* Add system to avoid making too many futile requests + repeated requests
* Fixup Spotify artwork search (use type=track, type=album gave empty results)
* Include stash caching in artwork_get_byurl()
2020-02-23 20:30:35 +01:00
ejurgensen
a289135325 [artwork] Construct online src querys based on data_kind
For http streams we don't have an album name to search for. Plus we don't
want to cache those images.
2020-02-23 20:30:35 +01:00
ejurgensen
b73f33f8e9 [artwork] Use settings to enable online sources 2020-02-23 20:30:35 +01:00
ejurgensen
18cf2dbbbf [misc] Change json_drilldown to _select and fix error case 2020-02-23 20:30:35 +01:00
ejurgensen
70f0ff1f61 [artwork] Support for online artwork sources - WIP
* Discogs
* Spotify
* Cover Art Archive
2020-02-23 20:30:35 +01: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
4f5966c9ff [db] Speed up Q_PL query used by e.g. '/databases/1/containers' request
The previous solution would use subqueries to count the number of items and
streams in each playlist, which means that response time gets pretty slow if
there are many playlists.

This commit also includes a number of lesser db code changes.
2019-05-30 21:19:40 +02:00
ejurgensen
53780a7ef3 [xcode] Make sample rate + channels variable
This change is preparation to use ffmpeg's resampling capabilities to keep local
audio in sync (by up/downsampling slightly). This requires that sample rates are
not fixed for a transcode profile.

Added benefit of this is that we don't need quite as many xcode profiles.
2019-04-02 22:47:11 +02:00
chme
9b8bff45ab [artwork/http] Check response code and content type
Extends the http_client_ctx to hold the response code for a request.
Also adds the content type header, if it was a https request (using
libcurl instead of libevent)
2019-02-09 08:35:20 +01:00
chme
733a521df8 [spotify/artwork] Add spotify webapi as an additional artwork source 2019-02-05 16:04:08 +01:00
chme
c77acbddf2 [artwork] Ignore artwork requests for items with a non persistent id 2018-05-10 07:23:33 +02:00
ejurgensen
4802823f3c Revert "[spotify/artwork] Load artwork for spotify through the wep api" and "[spotify] Thread safety for the webapi access"
Wait with this until it becomes necessary or we can achieve same performance as libspotify

This reverts commit 997b4da4ad and 2da993cc7b
2017-12-27 18:51:11 +01:00
chme
997b4da4ad [spotify/artwork] Load artwork for spotify through the wep api 2017-12-25 19:52:40 +01:00
ejurgensen
b64d282f32 [artwork] Fix for issue #427, some embedded file artwork not showing
Artwork in embedded files not showing up in non-legacy mode if the artwork does
not require rescaling. The bug is that we are by mistake sending a chunk of the
embedded file, not the artwork in it.
2017-10-27 19:51:37 +02:00
ejurgensen
88a565ea2c [db] Replace sqlite3_xxx() calls outside db.c/cache.c so they are abstracted 2017-10-17 23:11:31 +02:00
ejurgensen
441ad006a6 [artwork/transcode] Also let transcode.c handle rescaling of non-file Spotify artwork 2017-08-06 22:31:43 +02:00
ejurgensen
e7f888645f [artwork/transcode] Adjust transcode.c so it can take care of artwork
rescaling, meaning we can do without parallel ffmpeg interfaces.
This also moves artwork rescaling from libswscale to libavfilter, which
seems to fix a problem with PNG rescaling.
2017-08-06 22:31:43 +02:00
ejurgensen
ef13abe2cf [artwork] Fix for issue #345 and #367: Broken PNG rescaling 2017-03-15 22:12:37 +01:00
sshambar
c54c909ae4 Added support for libav/ffmpeg dual installs (#346)
* [config] Added support for libav/ffmpeg dual installs

Reordered CPPFLAGS/LIBS so that library flags (includes etc) appear
ahead of prefix/global directives and the correct headers/libraries
are checked (if symbols are defined in alternative libraries).
Updated libav checks to use header declaration checks
rather than link checks (so differences between
libav/ffmpeg can be correctly found), and updated code references
to use new defines.  Added support the alternate pkg-config
package names for libav.  Updated ffmpeg vs libav check
to check MICRO version number (>=100 for ffmpeg).  Simplified
resulting configure script by using a function to merge
CPPFLAGS variables.

* [config] Use FORKED_OPTS prefix for libevent_pthreads option

* [config] Add --with-libav option to select libav even if ffmpeg present
2017-02-19 15:21:00 +01:00
ejurgensen
2696b27972 [artwork] Let the artwork handler for streams use queue->artwork_url instead of calling the player, which was messy 2017-01-27 22:36:00 +01:00
ejurgensen
db4068f046 [artwork] Hardcode destination pixel format for png rescaling since
avcode_find_best_pix_fmt_of_list() does not live up to its name
(fixes issue #345)
2017-01-25 21:02:41 +01:00
ejurgensen
785ff21045 Merge pull request #328 from sshambar/fixconfig
Updated configure/makefiles related to Issue #327
2017-01-12 22:41:47 +01:00
ejurgensen
966a81cc77 [db] Fixup - itemcount not required for finding a playlist 2017-01-06 20:03:02 +01:00
ejurgensen
27946a472b [artwork] Add handler for playlist local artwork (for http items)
- ref https://www.raspberrypi.org/forums/viewtopic.php?p=1090166#p1090166
2017-01-06 19:35:05 +01:00
Scott Shambarger
ce4ef0aa23 [config] Many updates to configuration and feature checks
- Added custom checks for libraries and pkgconfig modules that test library
 presence with additional checks for use of headers and functions with
 given options.  Also support correct additional feature library checks
 using provided flags.
- Added custom enable/disable feature macros to simplify their use.
- Use custom CFLAGS and LIBS variables for Makefiles to simplify maintenance.
- Update many feature checks from platform to function.
- Streamline many function checks.
- Correctly check gnutls, gcrypt and gpg-error libraries.
- Fix chromecast and spotify config and compile on FreeBSD
- Added inotify, signalfd and kqueue, and byte swap checks.
- Many clarifications of error messages.
- Correct json-c checks to properly use supplied CFLAGS.
- Correct many quoting inconsistencies
- Use __DATE__ in place of BUILDDATE
- Use full path for gperf and antlr3
- Remove unnecessary CFLAGS
- Added tests for pthread_setname_np parameters
- Added tests for clock_gettime and timer_settime
- Added tests for time.h
- Test if pthread, dl and rt libs are required/available.
- Updated checks for libunistring
2017-01-06 00:44:18 -08:00
ejurgensen
8c0db10e67 [http] Move Curl https client from lastfm to http so it is available for other modules 2016-11-05 13:43:35 +01:00
ejurgensen
22a1e16c12 [artwork] Move timebase back, it must be set for the AVCodecContext for libav (and older versions of ffmpeg?) 2016-01-07 23:42:27 +01:00
ejurgensen
1b24a86169 [artwork] Tidy up artwork.c and handle remaining ffmpeg deprecated warning 2016-01-07 22:48:04 +01:00
ejurgensen
d56576094a [artwork] Do like libav says: "Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead." 2016-01-06 23:02:43 +01:00
ejurgensen
1f1d79025d [artwork] Keep a raw Spotify source image in case rescaling is not required 2016-01-06 22:39:32 +01:00
ejurgensen
0d55e055c0 [ffmpeg] Update most deprecated functions 2016-01-05 23:22:01 +01:00
ejurgensen
7caf8cc66a [artwork] Add ability to rescale Spotify (should improve caching so we don't save too large images) 2016-01-05 21:44:44 +01:00
ejurgensen
9a0a390a73 [artwork] Get rid of legacy libav/ffmpeg support in artwork.c 2016-01-03 12:24:21 +01:00
ejurgensen
c3d9f65f8b [artwork] Adjust existing code to new structure 2016-01-03 12:24:20 +01:00