We are happy to announce that Gerbera Media Server 1.10.0 is now available.
It's been a long time since we released a new version. There are many changes we integrated which make gerbera even more powerful.
Please see our Documentation for how to install the latest Gerbera version on your system.
Changes
- replace for loop with while (#2451), thanks @neheb
- Minor UI Improvements (#2453), thanks @whyman
- Show subdir of recursive autoscan in directory tree (#2448), thanks @KarlStraussberger
- Also display autoscan badge in filesystem view (#2446), thanks @KarlStraussberger
- Add screenshots for grid view (#2445), thanks @KarlStraussberger
- Thumbnails for images and grid view for items (#2444), thanks @KarlStraussberger
- UI: Tidy homepage (#2443), thanks @whyman
- UI: Hide more when not logged in (#2442), thanks @whyman
- remove some {}. (#2440), thanks @neheb
- remove unique_ptr from tests (#2439), thanks @neheb
- FFMpegThumbnailer: Split into its own handler (#2429), thanks @whyman
- remove const from several unique_ptrs (#2117), thanks @neheb
- remove unique_ptr (#2402), thanks @neheb
- Update fmt version (#2436), thanks @KarlStraussberger
- add mising header for size_t (#2435), thanks @neheb
- remove various shared_ptr copies (#2374), thanks @neheb
- replace copy with move (#2427), thanks @neheb
- Fix function to change items per page (#2433), thanks @KarlStraussberger
- remove string_view quote (#2431), thanks @neheb
- Bring back selection of items per page on items page (#2432), thanks @KarlStraussberger
- Document the special role of "PC Directory" (#2430), thanks @cweiske
- Support for multiple entries in genre (#2428), thanks @KarlStraussberger
- Multiply out sample rate reported by FFMpeg (#2407), thanks @whyman
- Bump follow-redirects from 1.14.7 to 1.14.8 in /gerbera-web (#2425), thanks @dependabot
- Fix bad static_pointer_cast transformation (#2426), thanks @neheb
- Bump karma from 6.3.13 to 6.3.14 in /gerbera-web (#2424), thanks @dependabot
- cppcheck fixes (#2417), thanks @neheb
- readability clang-tidy fixes (#2415), thanks @neheb
- simplify some static_pointer_cast (#2414), thanks @neheb
- simplify loop (#2413), thanks @neheb
- remove mimetype parameter (#2403), thanks @neheb
- Optimize Ffmpeg handler (#2410), thanks @KarlStraussberger
- Web logo link (#2408), thanks @cweiske
- Fix library links in compilation docs (#2409), thanks @cweiske
- fix bugs in addFfmpegMetadataFields() (#2406), thanks @mlaerd
- fix memory leak (#2404), thanks @neheb
- Update node modules to fix security issues (#2400), thanks @KarlStraussberger
- Block negative track numbers (#2399), thanks @KarlStraussberger
- Improve DLNA compatibility (#2382), thanks @KarlStraussberger
- turn vector to array (#2393), thanks @neheb
- static function conversion (#2396), thanks @neheb
- remove pointless void cast (#2395), thanks @neheb
- Feature/dockerfile (#2389), thanks @tiescher
- change class to struct (#2388), thanks @neheb
- Docker: Add transcoding tag (#2387), thanks @whyman
- Build armv7/arm64 deb images (#2386), thanks @whyman
- Remove trailing slash from URL (#2385), thanks @whyman
- Fix for fmt > 8.0 (#2384), thanks @kyak
- Provide documentation for file types, metadata and playlists (#2381), thanks @KarlStraussberger
- Only set DNLA headers for resources we know about (#2379), thanks @whyman
- Allow IPs in request validation (#2378), thanks @whyman
- Implement libupnp hostname validation (#2365), thanks @whyman
- Happy New Year (#2367), thanks @KarlStraussberger
- clang-tidy: pass by value (#2370), thanks @neheb
- unique_ptr conversions (#2371), thanks @neheb
- lambda conversion (#2346), thanks @neheb
- Fix display of container art (#2363), thanks @KarlStraussberger
- Add support for ASX playlists (#2361), thanks @KarlStraussberger
- deque removal (#2349), thanks @neheb
- rename const variables to WebKit style (#2362), thanks @neheb
- Drop resourceHandler concept (#2359), thanks @whyman
- Refactor file_request_handler (#2358), thanks @whyman
- Move DB defines out of common (#2354), thanks @whyman
- avoid some shared_ptr copying (#2352), thanks @neheb
- const ref conversion (#2353), thanks @neheb
- place it variable in lambda (#2347), thanks @neheb
- get rid of static_pointer_cast (#2348), thanks @neheb
- Avoid locking mutex for too long (#2344), thanks @KarlStraussberger
- Fix transcoding regression (#2343), thanks @KarlStraussberger
- make all mutexes mutable (#2340), thanks @neheb
- CMake: UUID target/MacOS fixes (#2338), thanks @whyman
- remove old PRETTY_FUNCTION define (#2331), thanks @neheb
- replace C function pointer with std::function (#2330), thanks @neheb
- Fix playlist numbering (#2328), thanks @KarlStraussberger
- Fix npm audit messages (#2329), thanks @KarlStraussberger
- Delay release of ixmlDocument (#2325), thanks @KarlStraussberger
- some stuff (#2324), thanks @neheb
- fmt c++20 fixes (#2323), thanks @neheb
- set by move (#2317), thanks @neheb
- remove some chrono code duplication (#2322), thanks @neheb
- mysql: rename variables based on WebKit style (#2321), thanks @neheb
- pass by value (#2319), thanks @neheb
- merge various if statements (#2318), thanks @neheb
- replace findinotify with KDE's version (#2298), thanks @neheb
- Reduce Docker image size (#2314), thanks @ngosang
- Build libupnp in Dockerfile (#2313), thanks @ngosang
- const ref conversion (#2309), thanks @neheb
- use startswith (#2315), thanks @neheb
- Fix join statement for multiple metadata search (#2311), thanks @KarlStraussberger
- simplify shared_ptr assignment (#2303), thanks @neheb
- BufferedIOHandler: Fix random exceptions (#2306), thanks @KarlStraussberger
- avoid some copies (#2308), thanks @neheb
- static in front (#2307), thanks @neheb
- remove cast with make_shared (#2295), thanks @neheb
- pair conversion (#2304), thanks @neheb
- add const to get functions (#2302), thanks @neheb
- simplify some if statements (#2297), thanks @neheb
- use operator< instead of creating temporaries (#2293), thanks @neheb
- pointer to reference conversions (#2296), thanks @neheb
- Fix focal build (#2301), thanks @KarlStraussberger
- Free EBML memory (#2272), thanks @KarlStraussberger
- Conan: Dont install CMake (#2299), thanks @whyman
- Add flag to hide dynamic content on Samsung devices (#2288), thanks @KarlStraussberger
- use auto with cast (#2286), thanks @neheb
- convert string to fs::path (#2287), thanks @neheb
- shared to unique_ptr conversions (#2284), thanks @neheb
- remove old libupnp compatibility (#2285), thanks @neheb
- avoid some shared_ptr copies (#2251), thanks @neheb
- Add two moves. (#2273), thanks @neheb
- ProcessExecutor: small std::array conversion (#2279), thanks @neheb
- grb_fs: run through clang-tidy (#2232), thanks @neheb
- add const to various get functions (#2282), thanks @neheb
- std::string_view conversions (#2281), thanks @neheb
- replace insert with emplace (#2277), thanks @neheb
- use std::pair for checkFileAndSubtitle (#2182), thanks @neheb
- CdsContainer: Comment out overriden function (#2276), thanks @neheb
- const pointer (#2275), thanks @neheb
- pass shared_ptr constructors by reference (#2268), thanks @neheb
- Handle path comparison correctly (#2271), thanks @KarlStraussberger
- fix wrong cast (#2269), thanks @neheb
- Remove root from container path (#2267), thanks @KarlStraussberger
- Free XMP namespaces (#2265), thanks @KarlStraussberger
- reduce lambda size slightly (#2222), thanks @neheb
- const ref conversion (#2228), thanks @neheb
- replace all lock_guard with scoped_lock (#2187), thanks @neheb
- Add mutext to lock access to layout (#2263), thanks @KarlStraussberger
- remove initializer_list usage (#2261), thanks @neheb
- various fixes (#2259), thanks @neheb
- cast to proper type (#2260), thanks @neheb
- Implement sort on metadata (#2253), thanks @KarlStraussberger
- use auto (#2257), thanks @neheb
- use operator < instead of startswith (#2150), thanks @neheb
- remove FileIOHandler destroctor (#2255), thanks @neheb
- remove custom destructor (#2254), thanks @neheb
- fix some implicit conversion warnings (#2252), thanks @neheb
- MySQL fix warnings with glibc 2.34, pass a real pointer (#2250), thanks @whyman
- return std::pair for stripLocationPrefix (#2246), thanks @neheb
- remove some uninitialized variables (#2247), thanks @neheb
- Add configuration for extensions to ignore on import (#2242), thanks @KarlStraussberger
- remove some more headers (#2241), thanks @neheb
- use std::byte (#2162), thanks @neheb
- remove random header (#2235), thanks @neheb
- Attempt to close leak (#2233), thanks @KarlStraussberger
- Import script hints (#2230), thanks @cweiske
- ffmpeg: const additions (#2231), thanks @neheb
- Move filesystem function to grb_fs (#2214), thanks @KarlStraussberger
- default initialize some fields in the constructor (#2225), thanks @neheb
- remove defaulted parameter. (#2227), thanks @neheb
- remove get() calls and match types (#2226), thanks @neheb
- early exit (#2223), thanks @neheb
- use dynamic cast for derived classes (#2220), thanks @neheb
- fs::path conversion (#2210), thanks @neheb
- merge some if statements (#2211), thanks @neheb
- remove some chrono includes (#2208), thanks @neheb
- remove stat include (#2213), thanks @neheb
- matroska_handler: default init activeFlag (#2209), thanks @neheb
- add parentheses to macros (#2207), thanks @neheb
- append with fmt (#2206), thanks @neheb
- fix variable names to WebKit style (#2205), thanks @neheb
- const exiv2 exception (#2203), thanks @neheb
- test_upnp_headers: init changes (#2200), thanks @neheb
- fix wrong case (#2202), thanks @neheb
- replace constructor with using (#2199), thanks @neheb
- move filesystem declaration after headers (#2188), thanks @neheb
- C++ cast (#2201), thanks @neheb
- find_if conversion (#2194), thanks @neheb
- move std::function stuff (#2193), thanks @neheb
- move several methods out of line (#2186), thanks @neheb
- Free libMatroska memory (#2198), thanks @KarlStraussberger
- Show numbering of items in UI (#2195), thanks @KarlStraussberger
- Set refId for playlist container (#2191), thanks @KarlStraussberger
- small typo (#2189), thanks @neheb
- add explicit (#2190), thanks @neheb
- use std::function (#2185), thanks @neheb
- use lambda and fs::path (#2172), thanks @neheb
- remove not really used bool (#2183), thanks @neheb
- return function directly (#2184), thanks @neheb
- follow rule of zero with some classes (#2180), thanks @neheb
- remove unused optional header. (#2179), thanks @neheb
- copy shared pointer instead of passing reference (#2173), thanks @neheb
- default init some shared pointers (#2170), thanks @neheb
- add const for getter functions (#2178), thanks @neheb
- remove some unused macros (#2169), thanks @neheb
- remove unused friend declaration (#2174), thanks @neheb
- const auto ref conversion (#2166), thanks @neheb
- remove unused class (#2168), thanks @neheb
- remove pointless move (#2164), thanks @neheb
- remove extra semicolon (#2165), thanks @neheb
- convert map to simple array (#2163), thanks @neheb
- rework for loop (#2158), thanks @neheb
- content manager changes (#2145), thanks @neheb
- remove unused enum (#2161), thanks @neheb
- add another using declaration (#2159), thanks @neheb
- use underlying_type_t (#2160), thanks @neheb
- Improve matroska parsing speed (#2140), thanks @KarlStraussberger
- replace constructors with using declarations (#2128), thanks @neheb
- Mention "gerbera --compile-info" on compilation docs (#2156), thanks @cweiske
- Validate bound port (#2154), thanks @whyman
- replace fatalHandler with lambda (#2136), thanks @neheb
- Process: misc tidy ups (#2141), thanks @whyman
- use braced init list (#2151), thanks @neheb
- remove redundant base class init (#2152), thanks @neheb
- get logfile from command line (#2148), thanks @KarlStraussberger
- remove pointless reference (#2146), thanks @neheb
- Avoid storing reference to node (#2143), thanks @KarlStraussberger
- deb: Drop Ubuntu 20.10, add 21.10 (#2135), thanks @whyman
- Don't iterate on different copies (#2138), thanks @KarlStraussberger
- make maps and vectors const (#2137), thanks @neheb
- Docs: sphinx 4.2, pin versions, fix warnings (#2134), thanks @whyman
- Revert "replace all lock_guard with scoped_lock" (#2131), thanks @whyman
- Update man page and help text to reflect the current situation (#2130), thanks @KarlStraussberger
- replace all lock_guard with scoped_lock (#2111), thanks @neheb
- Misc fixes (#2129), thanks @KarlStraussberger
- Bleeding edge (#2107), thanks @KarlStraussberger
- exiv2: silence messages without debug (#2127), thanks @neheb
- Revert "silence exiv2 warnings" (#2121), thanks @KarlStraussberger
- use to_string for bool (#2120), thanks @neheb
- convert function to static (#2118), thanks @neheb
- convert string to fs::path (#2119), thanks @neheb
- silence exiv2 warnings (#2114), thanks @neheb
- manual header removals (#2108), thanks @neheb
- return pair instead of by reference param (#2116), thanks @neheb
- random sonarlint cleanups (#2115), thanks @neheb
- several duktake type fixes (#2113), thanks @neheb
- fix mismatching declaration (#2110), thanks @neheb
- don't use else after return (#2109), thanks @neheb
- unused enum (#2105), thanks @neheb
- more unneeded headers (#2103), thanks @neheb
- simplify bool (#2104), thanks @neheb
- restore log level to debug (#2106), thanks @dyseg
- add missing defines (#2102), thanks @neheb
- comment out some unused code (#2093), thanks @neheb
- WebUI: bump bootstrap to 4.6.1, delete non min files (#2100), thanks @whyman
- Enable colour log levels (#2099), thanks @whyman
- Send alive messages every 60s by default (#2098), thanks @whyman
- remove several unused functions (#2089), thanks @neheb
- grammar fixes (#2084), thanks @neheb
- fix definition of M_CONTENT_CLASS (#2097), thanks @KarlStraussberger
- JS: add array check to getArrayProperty (#2096), thanks @whyman
- comment fixes (#2095), thanks @neheb
- https (#2094), thanks @neheb
- CI: Bump CI to clang-format-13 (#2082), thanks @whyman
- Simplify makeFifo, unify with curl and tidy unused (#2080), thanks @whyman
- use auto (#2088), thanks @neheb
- fix wrong macro comments (#2087), thanks @neheb
- unused includes (#2085), thanks @neheb
- remove unused parameter (#2086), thanks @neheb
- remove dead assignment (#2083), thanks @neheb
- Drop SopCast "support" (#2081), thanks @whyman
- remove custom merge function (#2079), thanks @neheb
- Improve support for Samsung UPnP extension X_GetFeatureList (#2077), thanks @KarlStraussberger
- Drop servedir feature. (#2074), thanks @whyman
- change checkResolution to return a pair (#2066), thanks @neheb
- make startswith constexpr (#2060), thanks @neheb
- Bump jquery-ui from 1.12.1 to 1.13.0 in /gerbera-web (#2072), thanks @dependabot
- Bump JS libs (#2073), thanks @KarlStraussberger
- Change compare order for to IPV6 then IPV4 (#2071), thanks @Smartsmurf
- Rename session cookie to GerberaSID. (#2065), thanks @KarlStraussberger
- Web: remove unused, duplicate code. Rename check_request (#2059), thanks @whyman
- remove some C arrays (#2055), thanks @neheb
- Set video codec for artwork resource if media is an audio file (#2054), thanks @KarlStraussberger
- Replace double-pointer out-param with return value (#2049), thanks @matthiasstraka
- convert double pointer to pointer ref (#2050), thanks @neheb
- Allow setting environment variables in transcoding sub processes (#2048), thanks @KarlStraussberger
- fix deprecated copy warning (#2051), thanks @neheb
- remove time_t stuff (#2039), thanks @neheb
- convert std::array to normal array (#2047), thanks @neheb
- avoid using new for a char array (#2046), thanks @neheb
- Dont trigger play hooks for metadata resources (#2021), thanks @whyman
- Taglib: Handle OGG containing Opus, Speex or FLAC (#2025), thanks @whyman
- Improve upgrade file checks and messages (#2043), thanks @KarlStraussberger
- clang-tidy: use WebKit style for ffmpeg variables (#2038), thanks @neheb
- test: some more make_unique conversions (#2040), thanks @neheb
- Code cleanup for #2033 (#2035), thanks @matthiasstraka
- Use correct method to set attribute (#2034), thanks @KarlStraussberger
- Optimize the use of references (#2032), thanks @matthiasstraka
- Docker: Enable github actions based layer caching (#2030), thanks @whyman
- Conan: Use taglib package from conan (#2028), thanks @whyman
- Docker: Bump alpine to 3.14 (#2027), thanks @whyman
- test: Use correct option for test discovery timeout (#2029), thanks @whyman
- test: Increase gtest discovery timeout (#2026), thanks @whyman
- Delay loading of status after login (#2024), thanks @KarlStraussberger
- test: use make_unique instead of new (#2023), thanks @neheb
- test: apply the same strlen removal as main.cc (#2022), thanks @neheb
- Switch staticThreadProc to lambda (#2020), thanks @whyman
- fix subtitle type value (#2018), thanks @KarlStraussberger
- Display status details on home page (#2016), thanks @KarlStraussberger
- tests: remove various using namespace (#2015), thanks @neheb
- clang-tidy: run through readability checks (#2014), thanks @neheb
- clang-tidy: various renamings (#2012), thanks @neheb
- Remove duplicate logic from file_request_handler (#2011), thanks @whyman
- Rework creation of containers (#2002), thanks @KarlStraussberger
- ref conversion (#2010), thanks @neheb
- Optimize SQL Statements / result gathering (#2007), thanks @matthiasstraka
- Reuse Request Handler (#2006), thanks @whyman
- use some type deduction (#2004), thanks @neheb
- run clang-format on test files (#2003), thanks @neheb
- Use better primary key for grb_cds_resource (#1977), thanks @matthiasstraka
- Batch-execute multiple getChildCount queries (#1978), thanks @matthiasstraka
- Path to map rework, handle empty values (#1998), thanks @whyman
- Initialize builtin layout properly (#1997), thanks @KarlStraussberger
- clang-tidy: renames to WebKit style (#1991), thanks @neheb
- Fix detection of content type for thumbnails (#1995), thanks @KarlStraussberger
- Block XML Declaration for IRadio based devices (#1992), thanks @KarlStraussberger
- Search title in metadata instead of file name (#1996), thanks @KarlStraussberger
- Layout: remove unused profiling code (#1990), thanks @whyman
- convert all enum members to upper case (#1937), thanks @neheb
- replace callbacks with lambdas (#1986), thanks @neheb
- convert all usages of toCString to to8Bit (#1985), thanks @neheb
- Add all metadata to search capabilities (#1983), thanks @KarlStraussberger
- Remove .c_str() for fmt-string arguments (#1973), thanks @matthiasstraka
- Replace removed app.add_stylesheet() by app.add_css_file() (#1981), thanks @marillat
- Tools optimizations (#1964), thanks @matthiasstraka
- Bump master (#1980), thanks @KarlStraussberger
Please see our Documentation for how to install the latest Gerbera version on your system.