From aae49f0f80e73d1b52f23b89b0d314e9b9f89425 Mon Sep 17 00:00:00 2001 From: Daniel Kamil Kozar Date: Sat, 15 Dec 2018 22:55:44 +0100 Subject: [PATCH] Add an option to disable cover art resizing Imported from https://sourceforge.net/p/minidlna/patches/_discuss/thread/9825a1a0/4c28/attachment/minidlna-1.1.2-no-cover-resize.patch --- albumart.c | 3 +++ minidlna.c | 4 ++++ options.c | 1 + options.h | 1 + upnpglobalvars.h | 1 + 5 files changed, 10 insertions(+) diff --git a/albumart.c b/albumart.c index de026ec..04fa8f2 100644 --- a/albumart.c +++ b/albumart.c @@ -67,6 +67,9 @@ save_resized_album_art(image_s *imsrc, const char *path) strncpyt(cache_dir, cache_file, sizeof(cache_dir)); make_dir(dirname(cache_dir), S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH); + if( GETFLAG(NO_COVER_RESIZE_MASK) ) + return image_save_to_jpeg_file(imsrc, cache_file); + if( imsrc->width > imsrc->height ) { dstw = 160; diff --git a/minidlna.c b/minidlna.c index 7cce301..a1dd08b 100644 --- a/minidlna.c +++ b/minidlna.c @@ -735,6 +735,10 @@ init(int argc, char **argv) if (strtobool(ary_options[i].value)) SETFLAG(DLNA_STRICT_MASK); break; + case RESIZE_COVER_ART: + if((strcmp(ary_options[i].value, "no") == 0) || !atoi(ary_options[i].value)) + SETFLAG(NO_COVER_RESIZE_MASK); + break; case ROOT_CONTAINER: switch (ary_options[i].value[0]) { case '.': diff --git a/options.c b/options.c index cee3dff..cacbdfb 100644 --- a/options.c +++ b/options.c @@ -68,6 +68,7 @@ static const struct { { WIDE_LINKS, "wide_links" }, { TIVO_DISCOVERY, "tivo_discovery" }, { ENABLE_SUBTITLES, "enable_subtitles" }, + { RESIZE_COVER_ART, "resize_covers" }, }; int diff --git a/options.h b/options.h index 1ff5b22..ec5ea68 100644 --- a/options.h +++ b/options.h @@ -61,6 +61,7 @@ enum upnpconfigoptions { WIDE_LINKS, /* allow following symlinks outside the defined media_dirs */ TIVO_DISCOVERY, /* TiVo discovery protocol: bonjour or beacon. Defaults to bonjour if supported */ ENABLE_SUBTITLES, /* Enable generic subtitle support for all clients by default */ + RESIZE_COVER_ART, /* resize cover art to comply with DLNA spec */ }; /* readoptionsfile() diff --git a/upnpglobalvars.h b/upnpglobalvars.h index 1a2fb5e..7e3a1ba 100644 --- a/upnpglobalvars.h +++ b/upnpglobalvars.h @@ -205,6 +205,7 @@ extern uint32_t runtime_flags; #define RESCAN_MASK 0x0200 #define SUBTITLES_MASK 0x0400 #define FORCE_ALPHASORT_MASK 0x0800 +#define NO_COVER_RESIZE_MASK 0x1000 #define SETFLAG(mask) runtime_flags |= mask #define GETFLAG(mask) (runtime_flags & mask)