Gerbera Versions Save

UPnP Media Server for 2024: Stream your digital media through your home network and consume it on all kinds of UPnP supporting devices 📱💻📺

v2.1.0

1 month ago

We are happy to announce that Gerbera Media Server 2.1 is now available.

This release started out as a mere bugfix release but gathered some nice features along the way. This includes the full build support for NPUPNP, the update of the conan build system to V2 and the return of custom headers for particular clients.

NEW Features

  • new JavaScript function print2 to allow setting log type (info, debug, trace)
  • configuration of client specific headers (brings back old custom-headers in new place)
  • wider use of box-layout settings in javascript and builtin layout

FIXES

  • Fix loading of playlists
  • Fix multiple crashes

Code Improvements

  • Restructuring files and refactoring classes
  • Update versions of fmt (10.2.1), spdlog (1.13.0), libexiv2 (0.28.2), npupnp (6.1.1), pugixml (1.14), wavpack (5.7.0)
  • WebUI: Update versions of jquery (3.7.1) and tether (2.0.0)
  • Docker: Update Alpine version (3.19)
  • Build System: Use cmake presets
  • Build System: Update Conan to V2
  • Build System: Support build with NPUPNP

Changes

  • Gerbera 2.1 (#3044), thanks @KarlStraussberger
  • Add issue templates (#3043), thanks @KarlStraussberger
  • Import: Fix message "No Container parent" (#3042), thanks @KarlStraussberger
  • Docker: update alpine version (#3041), thanks @KarlStraussberger
  • Docker: update alpine version (#3040), thanks @KarlStraussberger
  • Docker: update alpine version (#3039), thanks @KarlStraussberger
  • Update screenshots to latest version (#3037), thanks @KarlStraussberger
  • Cleanup FileRequestHandler (#3036), thanks @KarlStraussberger
  • Builtin layout: fix crash (#3035), thanks @KarlStraussberger
  • Metafile: handle instance (#3034), thanks @KarlStraussberger
  • Webui: update vendor libraries (#3033), thanks @KarlStraussberger
  • Update various library versions (#3032), thanks @KarlStraussberger
  • Sqlite: Harden delete (#3031), thanks @KarlStraussberger
  • Autoscan: avoid errors from parent directories (#3030), thanks @KarlStraussberger
  • matroska_handler: update API calls to work with libebml/libmatroska 2.0 (#3007), thanks @robUx4
  • WebUI: Add Item View (#3028), thanks @KarlStraussberger
  • Bump express from 4.18.2 to 4.19.2 in /gerbera-web (#3027), thanks @dependabot
  • Bring back custom headers as client specific headers (#3025), thanks @KarlStraussberger
  • Provide BoxKeys also for scripts (#3023), thanks @KarlStraussberger
  • Take configuration into account when creating virtual-layout (built-in + JS) (#3013), thanks @gobater
  • Update Conan to v2 (#3017), thanks @KarlStraussberger
  • Bump follow-redirects from 1.15.4 to 1.15.6 in /gerbera-web (#3020), thanks @dependabot
  • MetadataHandler: Refactor static methods (#3015), thanks @KarlStraussberger
  • Minor fixes to RST documentation (#3004), thanks @gobater
  • Enhances default javascript files to check config file options (#3003), thanks @gobater
  • debian12: fix script error (#3010), thanks @KarlStraussberger
  • Bump xml2js and parse-bmfont-xml in /gerbera-web (#3006), thanks @dependabot
  • Gerbera-web: update chromedriver for tests (#3005), thanks @KarlStraussberger
  • BUGFIX: common.js boxSetup check Video/AllDates for Dates (#2999), thanks @ljr55555
  • Docker image usability (#2996), thanks @mzuther
  • Expand firewall advice in docs (#2993) (#2995), thanks @storrence97
  • Fix findAutoscanDirectory (#2992), thanks @KarlStraussberger
  • Refactor parser files (#2989), thanks @KarlStraussberger
  • github workflows: make cmake stuff consistent (#2621), thanks @neheb
  • clang-tidy and cppcheck fixes (#2982), thanks @neheb
  • Import: Safely handle second scan - 2 (#2981), thanks @KarlStraussberger
  • clang-tidy fixes (#2978), thanks @neheb
  • Update workflow actions (#2980), thanks @KarlStraussberger
  • Config: Refactor handling of integer types (#2979), thanks @KarlStraussberger
  • Import: Safely handle second scan (#2977), thanks @KarlStraussberger
  • some fixes (#2975), thanks @neheb
  • Safely handle suppressed file types (#2974), thanks @KarlStraussberger
  • Scripting: print2 function with log level support (#2966), thanks @KarlStraussberger
  • Avoid crash when parent was not created yet. (#2964), thanks @KarlStraussberger
  • Add ctypes include (#2962), thanks @KarlStraussberger
  • Refactor config and enums to reduce nesting (#2961), thanks @KarlStraussberger
  • Fix build-deb.sh for releases (#2960), thanks @KarlStraussberger
  • CMake: Use presets (#2959), thanks @KarlStraussberger
  • Bump follow-redirects from 1.15.3 to 1.15.4 in /gerbera-web (#2958), thanks @dependabot
  • Build Support for NPUPNP (#2957), thanks @KarlStraussberger
  • Correct two typos. (#2956), thanks @limburgher
  • Gerbera welcomes 2024 (#2955), thanks @KarlStraussberger
  • Bump master (#2954), thanks @KarlStraussberger

Please see our Documentation for how to install the latest Gerbera version on your system.

v2.0.0

4 months ago

We are happy to announce that Gerbera Media Server 2.0.0 is now available.

This release is a new major release and contains two noteworthy changes.

The JavaScript integration has be overhauled to simplify the process of providing additional layout scripts. If you created copies and modified that code to you purpose, you may have to update your code to the new interfaces for import functions. In case you activate the new JavaScript folder loading mechanism by setting the respective config options, ensure that no older scripts are still in the script folders.

This release also introduces the configuration of virtual layout, you can translate the container titles or hide containers you don't use. Of course such a change requires a rescan of the library. The options for structured audio layout have been redesigned, so you need to migrate them to the new <box-layout ../>. Run gerbera with --create-config to get the defaults for the new section.

The second major change is the new staged import mode (grb) which is not activated by default. The default import mode (mt) handles each file completely, i.e. the physical file is read and the virtual layout is created in one go. The new grb-mode first reads all files, second creates the phyiscal structure and finally runs the layout functions on the physical items. The benefit is that the after an update to the file the original object can be updated instead of deleted and recreated like before.

NEW Features

  • Staged importing that allows updating the virtual layout instead of deleting and recreating it each time (import-mode="grb")
  • Config options as command line arguments (--set-option OPT=VAL with --print-options)
  • Allow configuration of follow-symlinks per autoscan directory
  • Configuration of containers in virtual layout: title can be changed, some nodes can be disabled
  • New mode of loading Javascript plugins with cleanup of global variables
  • Generation of example configuration via command line option --create-example-config
  • Case insensitive sorting for databases
  • New config options for URL handling and host redirection
  • Use .nomedia to hide directory, incl. config option
  • Support for UPnP commands GetFeatureList and GetSortExtensionCapabilities
  • Build for Ubuntu 23.04 and 23.10

FIXES

  • Autoscan: Keep track of renamed directories
  • Docker: add JPEG and update description
  • Runtime issues in request handling
  • Configurable handling of HOME directory
  • Transcoding: parsing issue of requests
  • Stability for sqlite database access
  • Browsing on Samsung devices

Code Improvements

  • Update Javascript libraries
  • Update versions of googletest (1.14), pupnp (1.14.18), libexiv2 (v0.28.1), libebml (1.4.5), fmt (10.2.0), pugixml (1.14), spdlog (1.12.0) and taglib (1.13.1)
  • Compatibility with gcc14

Changes

  • Gerbera 2.0.0 (#2944), thanks @KarlStraussberger
  • Fix processing for M_DATE and M_CREATION_DATE on FFmpeg handler. (#2948), thanks @mlaerd
  • Import: Handle really short file names correctly (#2946), thanks @KarlStraussberger
  • Update version of libfmt (#2945), thanks @KarlStraussberger
  • Import: Icon handling and other leftovers (#2942), thanks @KarlStraussberger
  • Fix "virtual-directories" heading level in documentation (#2941), thanks @cweiske
  • Playlist: Add support for boxlayout (#2940), thanks @KarlStraussberger
  • Import: Improve handling of thumbnails in mt-mode (#2939), thanks @KarlStraussberger
  • Update Documentation (#2938), thanks @KarlStraussberger
  • Clients: Add detection for FSL radios (#2937), thanks @KarlStraussberger
  • Update build for libexiv2 (#2935), thanks @KarlStraussberger
  • Config: Add required BoxLayout values from default (#2934), thanks @KarlStraussberger
  • Upnp: Add client flag to send simple date only (#2932), thanks @KarlStraussberger
  • Build for Ubuntu 23.10 (#2929), thanks @KarlStraussberger
  • Import: Fix LastModified for grb-mode (#2928), thanks @KarlStraussberger
  • Add artist chronology container (#2848), thanks @gobater
  • Fix for empty path (#2925), thanks @KarlStraussberger
  • Fix import and documentation links (#2922), thanks @KarlStraussberger
  • Restore duktape 2.3 support (#2921), thanks @KarlStraussberger
  • Scripting: Remove debugging leftover (#2916), thanks @cweiske
  • Scripting docs: Fix importFile parameter name (#2915), thanks @cweiske
  • Scripting: Log stacktrace on errors (#2914), thanks @cweiske
  • Autoscan: Fix inotify without autoscan (#2911), thanks @KarlStraussberger
  • Autoscan: Use path for handling of non-existing (#2909), thanks @KarlStraussberger
  • Transcoding: option to filter mime types with wildcard (#2908), thanks @KarlStraussberger
  • Autoscan: Handle renamed directory (#2907), thanks @KarlStraussberger
  • Document dependency installation on Debian 12 (#2904), thanks @cweiske
  • Transcode: Wildcards for mime type filter (#2901), thanks @KarlStraussberger
  • Doc: Compile libupnp --disable-blocking-tcp-connections (#2902), thanks @cweiske
  • Add #include to fix building with gcc 14 (#2899), thanks @kostadinsh
  • Bump chromedriver from 117.0.3 to 119.0.1 in /gerbera-web (#2896), thanks @dependabot
  • Samsung: Handle browse for content class correctly (#2892), thanks @KarlStraussberger
  • Clean up physical entries in subdirectories (#2887), thanks @KarlStraussberger
  • Bump @babel/traverse from 7.23.0 to 7.23.2 in /gerbera-web (#2888), thanks @dependabot
  • Clients: Support hiding resource types (#2885), thanks @KarlStraussberger
  • Clean up unreferenced items (#2884), thanks @KarlStraussberger
  • Display message on home screen when database is empty (#2883), thanks @KarlStraussberger
  • Update Ubuntu Version (#2882), thanks @KarlStraussberger
  • Config: Add follow-symlinks for autoscan (#2881), thanks @KarlStraussberger
  • Add permissions on HV transcoding devices in docker container (#2868), thanks @m-larin
  • WebUI: Fix display of time values (#2876), thanks @KarlStraussberger
  • Config: Add support for time specifications (#2874), thanks @KarlStraussberger
  • WebUI: Database View - don't allow deleting dynamic containers (#2873), thanks @KarlStraussberger
  • Config WebUI: Catch up with all config changes (#2872), thanks @KarlStraussberger
  • Add cleanup of missing entries to grb import mode (#2871), thanks @KarlStraussberger
  • Config: Generate Example Configuration (#2869), thanks @KarlStraussberger
  • Fix troff warning (#2866), thanks @snd1
  • Fix spelling errors reported by lintian (#2865), thanks @snd1
  • DB: Don't fail on uncritical operations. (#2863), thanks @KarlStraussberger
  • Update Library Versions and Documentation (#2862), thanks @KarlStraussberger
  • DB rework playstatus save (#2861), thanks @KarlStraussberger
  • Add support for UPnP commands GetFeatureList and GetSortExtensionCapabilities (#2860), thanks @KarlStraussberger
  • Bump word-wrap from 1.2.3 to 1.2.4 in /gerbera-web (#2847), thanks @dependabot
  • Update versions of exiv2, fmt, spdlog, googletest and taglib (#2846), thanks @KarlStraussberger
  • Add Support for Configuration of Virtual Layout (#2845), thanks @KarlStraussberger
  • Transcoding: Improve docs and examples (#2838), thanks @KarlStraussberger
  • Add audio to year container (#2844), thanks @KarlStraussberger
  • buildfix: support fmtlib 10 (#2840), thanks @mtasaka
  • Add option for external URL to be used in web page. (#2836), thanks @KarlStraussberger
  • Fully implement Thumbnail handling for grb mode (#2827), thanks @KarlStraussberger
  • debian: bookworm is now stable (#2832), thanks @KarlStraussberger
  • Fix handling transcoding requests (#2831), thanks @KarlStraussberger
  • Bump socket.io-parser from 4.2.2 to 4.2.3 in /gerbera-web (#2828), thanks @dependabot
  • Add support for nomedia file / add options to block default M_DATE (#2826), thanks @KarlStraussberger
  • Rework javascript mechanism (#2824), thanks @KarlStraussberger
  • Allow overriding home in config (#2821), thanks @KarlStraussberger
  • Import: Add staged import process (#2783), thanks @KarlStraussberger
  • Update to latest npm packages (#2820), thanks @KarlStraussberger
  • Bump engine.io and socket.io in /gerbera-web (#2819), thanks @dependabot
  • Set defaults for autoscan settings (#2815), thanks @KarlStraussberger
  • Database items sorting case insensitive (#2808), thanks @gobater
  • Update supported-devices.rst (#2812), thanks @KarlStraussberger
  • Bump webpack from 5.75.0 to 5.76.0 in /gerbera-web (#2811), thanks @dependabot
  • Fix conan (#2810), thanks @KarlStraussberger
  • Keep our unique_ptrs for the xml in scope until we are finished with … (#2803), thanks @whyman
  • Docker: Add JPEG libs (#2801), thanks @KarlStraussberger
  • Quirks: Check for clientInfo (#2796), thanks @KarlStraussberger
  • Update README.Docker.md -Add docker volume section (#2795), thanks @kevinflynn387
  • WebUI: Update popper to 2.11.6 / Update MD5 to 2.19.0 (#2793), thanks @KarlStraussberger
  • WebUI: Update JS libs (#2792), thanks @KarlStraussberger
  • Gerbera-Web: Update npm packages (#2791), thanks @KarlStraussberger
  • Bump ua-parser-js from 0.7.32 to 0.7.33 in /gerbera-web (#2786), thanks @dependabot
  • Docker: git badge update (#2780), thanks @KarlStraussberger
  • Use new ffmpeg channel layout API (#2778), thanks @whyman
  • README: fix CI badge (#2779), thanks @whyman
  • Bump master (#2777), thanks @KarlStraussberger

Please see our Documentation for how to install the latest Gerbera version on your system.

v1.12.1

1 year ago

We are happy to announce that Gerbera Media Server 1.12.1 is now available. It's a real maintenance release with some nice issues fixed

NEW Features

  • Debug options for specialized messages
  • Configure offset of lastPlayedPosition (aka Samsung bookmark)

FIXES

  • Calling null IOHandler
  • Encoding of ticks ' as &apos; for Bose
  • ffmpeg and transcoding in docker container
  • Tests failing on openSuSE > 15.3 and others
  • Update docker images to alpine 3.17

Code Improvements

  • Reduced header nesting
  • Build with latest versions of pugixml (1.13), spdlog (1.11.0), taglib (1.13), wavpack (5.6.0)

Changes

  • Gerbera 2023 (#2775), thanks @KarlStraussberger
  • Minimal: fix test fixture (#2772), thanks @KarlStraussberger
  • Samsung: allow configuring bookmark offset (#2769), thanks @KarlStraussberger
  • XML: Allow escaping ticks for some clients (#2766), thanks @KarlStraussberger
  • Server: Don't call handler if null (#2765), thanks @KarlStraussberger
  • MetadataHandler: Use resource instead of id (#2764), thanks @KarlStraussberger
  • Actions: Update deprecated replace-string-action (#2762), thanks @KarlStraussberger
  • openSuSE: Fix test and inits (#2759), thanks @KarlStraussberger
  • Fix Windows Explorer browsing (#2758), thanks @KarlStraussberger
  • Docker: fix ffmpeg-lib (#2757), thanks @KarlStraussberger
  • Docker: Update to alpine 3.17 (#2754), thanks @KarlStraussberger
  • Reduce Header Nesting (#2753), thanks @KarlStraussberger
  • Fix file encoding (#2752), thanks @KarlStraussberger
  • Reduce Header Nesting (#2751), thanks @KarlStraussberger
  • Clarify integer types handling (#2750), thanks @KarlStraussberger
  • Bump engine.io from 6.2.0 to 6.2.1 in /gerbera-web (#2749), thanks @dependabot
  • Update npm packages (#2748), thanks @KarlStraussberger
  • Debug Options: Allow separated facility debugging messages. (#2741), thanks @KarlStraussberger
  • Docker: Bring back ffmpeg in transcoding image (#2745), thanks @KarlStraussberger
  • Bump loader-utils from 2.0.2 to 2.0.3 in /gerbera-web (#2743), thanks @dependabot
  • libraries: add latest (#2739), thanks @KarlStraussberger

Please see our Documentation for how to install the latest Gerbera version on your system.

v1.12.0

1 year ago

We are happy to announce that Gerbera Media Server 1.12.0 is now available.

NEW Features

  • Support for NFO files as additional resources: Set up in resources and place nfo-files (https://kodi.wiki/view/NFO_files/Templates) next to your media files.
  • Tweaking mimetypes for clients
  • Editing Flags in web UI
  • More statistics on web UI
  • Add support for ip subnets in client config
  • Defaults for virtual container upnp class
  • Configuration for SQLite database modes
  • Offline mode for initial scan large libraries

FIXES

  • Database update on autoscan table
  • Transcoding for external items
  • Sqlite errors because of deleted objects
  • Sorting by certain keys
  • Broken path comparison (skipped renaming, adding files)
  • Update docker images to alpine 3.16

Code Improvements

  • Xml2Json rework
  • build with latest versions of pupnp (1.14.14), wavpack (5.5.0), ebml (1.4.4), matroska (1.7.1), exiv2 (0.27.5), fmt (9.1.0) and spdlog (1.10.0)
  • Further Cleanups

General

If you activated nfo-metafile resources you have to reimport your media files.

Changes

  • Workflows: Update actions (#2734), thanks @KarlStraussberger
  • Workflows: Update actions (#2731), thanks @KarlStraussberger
  • Workflows: Update actions (#2730), thanks @KarlStraussberger
  • Quirks: Avoid passing references (#2729), thanks @KarlStraussberger
  • Docker: Improve debugging build (#2727), thanks @KarlStraussberger
  • Fix build on systems that have const in second argument to iconv (#2726), thanks @niclasr
  • Debian: fix unstable build (#2724), thanks @KarlStraussberger
  • Docker: Update to alpine 3.16 (#2723), thanks @KarlStraussberger
  • Add edge tag to docker workflow (#2721), thanks @mill1000
  • Add cache for hostname (#2719), thanks @KarlStraussberger
  • Fix setting autoscan from Web UI (#2718), thanks @KarlStraussberger
  • Path handling cleanup (#2717), thanks @KarlStraussberger
  • Import: fix layout and performance issues (#2716), thanks @KarlStraussberger
  • CodeQL: Update version (#2714), thanks @KarlStraussberger
  • Sqlite: Configuration for database modes (#2713), thanks @KarlStraussberger
  • Systemd: Add wants entry (#2712), thanks @KarlStraussberger
  • Autoscan: Support configuration of upnp class of virtual containers (#2710), thanks @KarlStraussberger
  • Saveguard Samsung Quirks (#2706), thanks @KarlStraussberger
  • Fix static init (#2705), thanks @KarlStraussberger
  • Add support for ip subnets in client config (#2702), thanks @KarlStraussberger
  • Handle deleted objects in sqlite queue (#2701), thanks @KarlStraussberger
  • database: clearFlags use bit operation (#2698), thanks @KarlStraussberger
  • web: update jquery-ui to 1.13.2 (#2697), thanks @KarlStraussberger
  • use fmt 9.0.0 (#2695), thanks @KarlStraussberger
  • Fix build with fmt 9.0 (#2694), thanks @felixonmars
  • Fix removing flags in ui (#2693), thanks @KarlStraussberger
  • Fix: Remove duplicate open breaking url transcoding (#2692), thanks @KarlStraussberger
  • Remove dropped ubuntu versions (#2689), thanks @KarlStraussberger
  • Fix npm vulnerabilities (#2688), thanks @KarlStraussberger
  • Bump terser from 5.13.1 to 5.14.2 in /gerbera-web (#2684), thanks @dependabot
  • Bump jquery-ui from 1.13.1 to 1.13.2 in /gerbera-web (#2683), thanks @dependabot
  • fix compilation with latest exiv2 master (#2673), thanks @neheb
  • Transcoding for external items (#2667), thanks @KarlStraussberger
  • Cleanup tasks on removeObject (#2666), thanks @KarlStraussberger
  • Improve creating external links (#2662), thanks @KarlStraussberger
  • more sonarlint (#2665), thanks @neheb
  • Fix 2663 (#2664), thanks @KarlStraussberger
  • Improve error handling for Resolution (#2659), thanks @KarlStraussberger
  • const member functions (#2661), thanks @neheb
  • Simplify Xml2Json (#2657), thanks @KarlStraussberger
  • actions: use alpine 3.16 container (#2658), thanks @neheb
  • sonarlint fixes (#2656), thanks @neheb
  • Add files sizes to server stats (#2653), thanks @KarlStraussberger
  • replace some memcpy by std::copy_n (#2654), thanks @neheb
  • Coverity fixes (#2650), thanks @neheb
  • Handle Promise rejection (#2645), thanks @KarlStraussberger
  • remove const from member variables (#2643), thanks @neheb
  • Update node packages (#2642), thanks @KarlStraussberger
  • clang-tidy: const ref to value (#2640), thanks @neheb
  • Support tweaking mimetypes for client (#2637), thanks @KarlStraussberger
  • clang-tidy: use data() instead of pointer magic (#2638), thanks @neheb
  • clang-tidy: const string ref conversion (#2639), thanks @neheb
  • clang-tidy: don't use else after return (#2641), thanks @neheb
  • This and that (#2635), thanks @KarlStraussberger
  • Limit number of dynamic container entries (#2634), thanks @KarlStraussberger
  • Read Metadata from external files (asx playlist and NFO) (#2627), thanks @KarlStraussberger
  • Update versions (#2625), thanks @KarlStraussberger
  • add deleted copy functions for WavPackHandler (#2620), thanks @neheb
  • Drop scan_level on update to DB 19 (#2624), thanks @KarlStraussberger
  • Minor fixes (#2623), thanks @whyman

Please see our Documentation for how to install the latest Gerbera version on your system.

v1.11.0

2 years ago

We are happy to announce that Gerbera Media Server 1.11.0 is now available.

NEW Features

  • Database: Clients and statistics are stored database so restart does not empty client list. Client grouping for play statistics.
  • Search: Support searching playlists containers
  • Search: Respect ContainerID when performing search
  • Import: item class filtering and mapping by file properties allows more sophisticated virtual structure
  • Transcoding: Support filtering transcoding profiles by resource properties (like codecs) avoids transcoding if client can play files
  • DLNA: Detect DNLA profiles by resource attributes to specify more detailled profile for handling in client
  • File type support for WavPack improved: More metadata read with special library if compiled in.
  • Support Ubuntu 22.04

FIXES

  • Playlist: Fix parser error
  • Playlist: Handle end of file properly
  • Browsing: Sort containers first
  • Search: search result is sort by title now
  • Import: Timestamps in future are not stored for containers

Code Improvements

  • ContentHandler to enum
  • ResourceContentType to enum
  • ResourceAttribute new style enum
  • Config: Autoscan list to plain vector
  • ContentManager: Single autoscan list
  • Update Duktape version to 2.7.0
  • Server: Clean up virtualURL handling
  • Add WavPack as library
  • Further Cleanups

General

To benefit from changes a rescan of all media files is recommended

Changes

  • Gerbera 1.11.0 (#2610), thanks @KarlStraussberger
  • clang-tidy fixes (#2618), thanks @neheb
  • webkit style for transcoding (#2617), thanks @neheb
  • clang-tidy: add missing variable name in declaration (#2613), thanks @neheb
  • rename to_seconds to toSeconds (#2615), thanks @neheb
  • clang-tidy: fix case style of class/structs (#2614), thanks @neheb
  • use empty() (#2612), thanks @neheb
  • Build Ubuntu 22.04 (#2611), thanks @KarlStraussberger
  • Respect ContainerID when performing search (#2604), thanks @mill1000
  • Server: Clean up virtualURL handling (#2607), thanks @whyman
  • Don't store timestamps in future (#2608), thanks @KarlStraussberger
  • Fix compilation of jpeg_resolution.cc (#2609), thanks @kyak
  • clang-tidy: fix wrong erase (#2585), thanks @neheb
  • Add item class filter and mapping to autoscan directory (#2565), thanks @KarlStraussberger
  • fix compilation (#2601), thanks @neheb
  • remove unused upnp header (#2600), thanks @neheb
  • clang-tidy: remove defaulted constructors (#2588), thanks @neheb
  • CI: Docker local cache, only buld AMD64 for PRs (#2597), thanks @whyman
  • Fix built in JPEG resolution parsing. (#2596), thanks @whyman
  • FFMpegThumbnailer: Enable by default, improvements (#2594), thanks @whyman
  • ContentManager: Single autoscan list (#2580), thanks @whyman
  • fix compilation with npupnp (#2592), thanks @neheb
  • Fix search-item-result regression. (#2591), thanks @mill1000
  • clang-tidy: use at() instead of [] (#2587), thanks @neheb
  • fix wrong variable name (#2586), thanks @neheb
  • remove const from map (#2584), thanks @neheb
  • clang-tidy: redundant init (#2581), thanks @neheb
  • change read/write functions to use std::byte (#2583), thanks @neheb
  • manual unique_ptr removals (#2582), thanks @neheb
  • clang-tidy: use braced init list (#2574), thanks @neheb
  • Handle config sourced autoscans in DB more gracefully (#2579), thanks @whyman
  • remove IOHandler unique_ptrs (#2578), thanks @neheb
  • remove pointless move (#2577), thanks @neheb
  • clang-tidy: pass by value (#2570), thanks @neheb
  • remove unused includes (#2572), thanks @neheb
  • pass std::string by value (#2573), thanks @neheb
  • clang-tidy: add special member functions (#2575), thanks @neheb
  • value to ref conversions (#2576), thanks @neheb
  • manual move conversions (#2571), thanks @neheb
  • fix declaration (#2569), thanks @neheb
  • simplify bool expression (#2568), thanks @neheb
  • CI: Debian: whitelist /build (#2566), thanks @whyman
  • Config: Autoscan list to plain vector (#2551), thanks @whyman
  • add missing moves (#2561), thanks @neheb
  • Autoscan: fix out of range issue (#2556), thanks @KarlStraussberger
  • get rid of make_pair (#2559), thanks @neheb
  • Minimal: fix test (#2555), thanks @KarlStraussberger
  • Change ResourceContentType to Resource::purpose (#2553), thanks @KarlStraussberger
  • Revert "fix bad URL" (#2550), thanks @KarlStraussberger
  • fix bad URL (#2549), thanks @neheb
  • Remove DB field from autoscan list (#2546), thanks @whyman
  • ContentHandler to enum (#2545), thanks @KarlStraussberger
  • Autoscan: Tidy validation logic, nest enum (#2543), thanks @whyman
  • Fix Bitrate formatting, populate bitsPerSample (#2544), thanks @whyman
  • move make_shared into function (#2541), thanks @neheb
  • Add MetaData 'dc:data' to all Item and container (Issue #2531) (#2538), thanks @TaniGit
  • Add Quirk to block filename in item uri (#2540), thanks @KarlStraussberger
  • Improve readability of attributes (#2532), thanks @KarlStraussberger
  • clang-tidy: member function const (#2534), thanks @neheb
  • pass shared_ptr by value (#2533), thanks @neheb
  • add throw_fmt_system_error define (#2332), thanks @neheb
  • clang-tidy (#2529), thanks @neheb
  • README: Bump required npupnp version (#2526), thanks @whyman
  • Try to fix paths-ignore (#2530), thanks @KarlStraussberger
  • Find DNLA profiles by resource attributes (#2528), thanks @KarlStraussberger
  • Restore friendly name in UI (#2525), thanks @whyman
  • WavPack: Get metadata with original library (#2521), thanks @KarlStraussberger
  • ResourceAttribute new style enum (#2512), thanks @whyman
  • Bump minimist from 1.2.5 to 1.2.6 in /gerbera-web (#2520), thanks @dependabot
  • Allow agent to not exist if profile is disabled. (#2518), thanks @KarlStraussberger
  • Support filtering transcoding profiles (#2513), thanks @KarlStraussberger
  • Refactor handling of network addresses (#2510), thanks @KarlStraussberger
  • Split out URL handling methods to UrlUtils namespace (#2509), thanks @whyman
  • Fix: Repair broken Mysql statements (#2508), thanks @KarlStraussberger
  • Sort containers first (#2505), thanks @KarlStraussberger
  • use to_integer (#2502), thanks @neheb
  • string to string_view conversion (#2503), thanks @neheb
  • Rework file access (#2500), thanks @KarlStraussberger
  • replace bzero with {} (#2504), thanks @neheb
  • Support searching playlists containers (#2495), thanks @KarlStraussberger
  • clang-tidy: use move (#2498), thanks @neheb
  • remove reference parameter (#2497), thanks @neheb
  • clang-tidy: replace push with emplace_back (#2499), thanks @neheb
  • convert function to static (#2496), thanks @neheb
  • UI Prettier Modals, badges (#2494), thanks @whyman
  • WebTests: Update node packages (#2491), thanks @KarlStraussberger
  • Playlist: Handle end of file properly (#2490), thanks @KarlStraussberger
  • Support parsing function for config values (#2488), thanks @KarlStraussberger
  • Ensure search sort by title (#2486), thanks @KarlStraussberger
  • ThreadRunner: Drop system-threads config (#2484), thanks @whyman
  • Store Playback Status in new table (#2476), thanks @KarlStraussberger
  • Fix sorting by composed keys (#2481), thanks @KarlStraussberger
  • Update Duktape version for bookworm (#2478), thanks @KarlStraussberger
  • Fix tag matches with ffmpeg_handler (#2477), thanks @whyman
  • CI: build-deb: Pass API key to docker env, again (#2473), thanks @whyman
  • CI: build-deb: Pass API key to docker env (#2472), thanks @whyman
  • Add Clients to database (#2471), thanks @KarlStraussberger
  • doc/install.rst: drop Entware (#2470), thanks @ffontaine
  • doc/install.rst: add Buildroot (#2469), thanks @ffontaine
  • bool simplifications (#2465), thanks @neheb
  • unused parameter for throw (#2466), thanks @neheb
  • remove pointless parentheses (#2467), thanks @neheb
  • Fix playlist parser error (#2464), thanks @KarlStraussberger
  • simplify some bools (#2462), thanks @neheb
  • Increase DukTape version (#2460), thanks @KarlStraussberger
  • Bump master (#2456), thanks @KarlStraussberger

Please see our Documentation for how to install the latest Gerbera version on your system.

v1.10.0

2 years ago

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.

v1.9.2

2 years ago

We are happy to announce that Gerbera Media Server 1.9.2 is now available.

Next to a lot of minor issues which have been fixed, this release contains some noteworthy improvements

  • Titles of search results can be configured
  • Containers in virtual layout can be defined as search result, so, e.g. albums, located in several places are only found once
  • Metadata, like artist, appearing multiple times are now stored in that way and can be sent to UPnP clients as separate entries as well or addressed in layout scripts. If you have a custom js import script which updates metadata you have to modify it using the new properties (see doc on scripting)
  • DLNA profile can be configured using video and audio codec, allow devices to pick supported streams
  • DLNA profile can be set for transcoding

Changes

  • Set DLNA profile for transcoding (#1972), thanks @KarlStraussberger
  • replace POSIX remove with fs::remove (#1975), thanks @neheb
  • Don't erase from empty vector (#1970), thanks @KarlStraussberger
  • replace some {} with () (#1974), thanks @neheb
  • Make title of search result configurable + set searchable container flag (#1963), thanks @KarlStraussberger
  • fix lastfm compilation (#1967), thanks @neheb
  • small fmt::format conversion (#1966), thanks @neheb
  • clang-tidy (#1965), thanks @neheb
  • Handle multi-valued meta data (#1958), thanks @KarlStraussberger
  • Refactor TranscodeExternalHandler (#1962), thanks @KarlStraussberger
  • Modernize parts of the request handling with C++17 and add UTs (#1959), thanks @matthiasstraka
  • std::find conversion (#1948), thanks @neheb
  • static_cast conversions (#1961), thanks @neheb
  • Canonicalize path from playlist file (#1960), thanks @KarlStraussberger
  • Rewrite split string (#1957), thanks @matthiasstraka
  • Update command generator method (#1956), thanks @matthiasstraka
  • std mem conversions (#1954), thanks @neheb
  • Unify simple SQL queries (#1952), thanks @matthiasstraka
  • std file conversions (#1953), thanks @neheb
  • capture several lambda refs by value (#1935), thanks @neheb
  • Replace stdio with fmt calls (#1951), thanks @matthiasstraka
  • Simplify AddUpdateTable vectors without shared_ptr (#1934), thanks @matthiasstraka
  • replace several substr calls with startswith (#1949), thanks @neheb
  • use std::int32_t (#1950), thanks @neheb
  • Allow adding metadata from media file tags (#1939), thanks @KarlStraussberger
  • replace substr with startswith (#1947), thanks @neheb
  • use std::exit (#1945), thanks @neheb
  • use std::abort (#1946), thanks @neheb
  • Fix regressions of 1.9.1 (#1929), thanks @KarlStraussberger
  • Downgrade libspdlog dependency to 1.8.1 (#1944), thanks @matthiasstraka
  • Update instructions to match CMake requirements (#1943), thanks @matthiasstraka
  • use std::system (#1940), thanks @neheb
  • use std::strlen (#1942), thanks @neheb
  • change size_t to std (#1941), thanks @neheb
  • const ref conversion (#1936), thanks @neheb
  • more emplace conversions (#1938), thanks @neheb
  • taglib: demote warning to debug (#1933), thanks @neheb
  • rvalue conversions (#1930), thanks @neheb
  • move variables down (#1932), thanks @neheb
  • clang-tidy: remove redundant c_str (#1931), thanks @neheb
  • simplify it loop slightly (#1924), thanks @neheb
  • remove dead assignments (#1914), thanks @neheb
  • clang-tidy: performance fixes (#1928), thanks @neheb
  • fix wrong value being assigned (#1926), thanks @neheb
  • remove std::insert (#1916), thanks @neheb
  • replace loop with std::find (#1918), thanks @neheb
  • simplify loop (#1913), thanks @neheb
  • Only count items with distinct IDs in TotalMatches search result. (#1902), thanks @mill1000
  • Optimize CdsObject creation/updates (#1921), thanks @matthiasstraka
  • Ensure Root dir teminates with / (#1920), thanks @KarlStraussberger
  • Update build scripts to run on Raspbian (#1919), thanks @KarlStraussberger
  • fix some weird memory leak (#1895), thanks @neheb
  • remove last std::list (#1884), thanks @neheb
  • remove some lambdas (#1917), thanks @neheb
  • std::shared_ptr<Executor> value conversions (#1893), thanks @neheb
  • add std::move for some maps (#1912), thanks @neheb
  • use auto for Timer constructors (#1911), thanks @neheb
  • rename several shadowed variables (#1909), thanks @neheb
  • use auto (#1908), thanks @neheb
  • splitUrl: use std::string (#1910), thanks @neheb
  • remove sort of redundant std::move (#1907), thanks @neheb
  • use string::npos (#1906), thanks @neheb
  • use C++ macro to check for starts_with (#1905), thanks @neheb
  • trimString changes (#1904), thanks @neheb
  • use C++ macro to check for to_underlying (#1903), thanks @neheb
  • Add Composer Tag to Metacontent Handler (#1901), thanks @mayanez
  • Use lambda in UpnpXMLBuilder::renderObject to trim strings (#1899), thanks @mill1000
  • gitignore: Add buildconfig (#1896), thanks @neheb
  • use auto with constexpr (#1897), thanks @neheb
  • remove unused variables (#1898), thanks @neheb
  • replace pointers with references (#1900), thanks @neheb
  • remove unique_ptr casts to base class (#1890), thanks @neheb
  • some matroska cleanups (#1892), thanks @neheb
  • remove return after throw (#1889), thanks @neheb
  • remove pointless size_t casts (#1887), thanks @neheb
  • add maybe_unused for builds without DEBUG (#1888), thanks @neheb
  • Refactor database schema to remove unused indices (#1886), thanks @matthiasstraka
  • Remove unique_ptr objects where stack memory is sufficient (#1876), thanks @matthiasstraka
  • Ensure EnumMapper creates its own copies (#1885), thanks @KarlStraussberger
  • don't pass string_view by reference (#1883), thanks @neheb
  • default init mode (#1882), thanks @neheb
  • don't assign nullptr to std::string (#1880), thanks @neheb
  • replace find_if with any_of (#1879), thanks @neheb
  • move getLocation call down (#1881), thanks @neheb
  • Batch inserts to metadata table (#1862), thanks @matthiasstraka
  • Revert "use targets for libmatroska and libebml" (#1871), thanks @whyman
  • Update README.md (#1870), thanks @whyman
  • update FindFilesystem.cmake (#1869), thanks @neheb
  • convert reference to value (#1865), thanks @neheb
  • use targets for libmatroska and libebml (#1861), thanks @neheb
  • remove optional check (#1859), thanks @neheb
  • use updated FindLibExiv2 (#1858), thanks @neheb
  • use normal libcurl search (#1860), thanks @neheb
  • CamelCase changes (#1854), thanks @neheb
  • Conan: Require CMake >=3.18 (#1857), thanks @whyman
  • Fix FreeBSD with libinotify, add to CI (#1856), thanks @whyman
  • use updated FindTagLib.cmake (#1855), thanks @neheb
  • const ref conversion (#1850), thanks @neheb
  • Simplify or remove unnecessary fmt::format calls (#1834), thanks @matthiasstraka
  • remove unused assigned values (#1849), thanks @neheb
  • remove unused variable (#1844), thanks @neheb
  • cppcheck: add const (#1841), thanks @neheb
  • default init some members (#1843), thanks @neheb
  • cppcheck: fix inconsistent declarations (#1840), thanks @neheb
  • avoid nullptr assignment (#1836), thanks @neheb

Please see our Documentation for how to install the latest Gerbera version on your system.

v1.9.1

2 years ago

We are happy to announce that Gerbera Media Server 1.9.1 is now available.

This is a typical maintenance release with lots of issues fixed and even more minor enhancements. So, check the list of changes yourself whether something can improve your gerbera experience.

Changes

  • use const auto& (#1835), thanks @neheb
  • replace for_each with copy_if (#1833), thanks @neheb
  • avoid default nullptr initialization (#1832), thanks @neheb
  • remove some string calls (#1829), thanks @neheb
  • make shared_ptr reference const (#1831), thanks @neheb
  • remove pointless empty line (#1830), thanks @neheb
  • get rid of auto&& with structured bindings (#1828), thanks @neheb
  • simplify bool (#1827), thanks @neheb
  • some auto&& removals (#1799), thanks @neheb
  • add missing std::vector (#1824), thanks @neheb
  • string_view should not be taken by reference (#1825), thanks @neheb
  • Build debian with arguments (#1822), thanks @KarlStraussberger
  • libfmt formatters for quoted SQL identifiers (#1760), thanks @matthiasstraka
  • Read flac audio properties even if image does not exist (#1821), thanks @KarlStraussberger
  • Split CI validation jobs (#1819), thanks @KarlStraussberger
  • Fix linkage error in on aarch64 with g++-10 (#1818), thanks @KarlStraussberger
  • match return type (#1817), thanks @neheb
  • Add support for default values in config UI (#1807), thanks @KarlStraussberger
  • improve debian script (#1810), thanks @KarlStraussberger
  • Use correct codename for unstable debian (#1809), thanks @KarlStraussberger
  • debian::unstable uses libduktape206 (#1808), thanks @KarlStraussberger
  • add PathBase constructor (#1800), thanks @neheb
  • use some auto (#1805), thanks @neheb
  • simplify while loop slightly (#1804), thanks @neheb
  • avoid doing work in if statements (#1803), thanks @neheb
  • manual const conversions (#1802), thanks @neheb
  • clang-tidy: make member function const (#1801), thanks @neheb
  • more move with push_back (#1787), thanks @neheb
  • use more auto in taglib (#1794), thanks @neheb
  • get rid of unused variable (#1795), thanks @neheb
  • pass std::string by const reference (#1793), thanks @neheb
  • add variout maybe_unused (#1796), thanks @neheb
  • change to auto&& (#1792), thanks @neheb
  • Add validation for DynamicContent::location (#1789), thanks @KarlStraussberger
  • pass ClientInfo by unique_ptr (#1784), thanks @neheb
  • add ClientCacheEntry constructor (#1788), thanks @neheb
  • use some auto and CTAD (#1785), thanks @neheb
  • remove pointless to_string (#1786), thanks @neheb
  • remove single argument std::string (#1773), thanks @neheb
  • convert vector to deque (#1781), thanks @neheb
  • replace several emplace_back with push_back (#1778), thanks @neheb
  • convert Quirks to unique_ptr (#1772), thanks @neheb
  • Refresh Clients config in ClientList after change of config in UI (#1782), thanks @KarlStraussberger
  • Code refactoring and performance enhancements in sql_database (#1747), thanks @matthiasstraka
  • convert vector to deque (#1775), thanks @neheb
  • rvalue reference conversions (#1776), thanks @neheb
  • several auto conversions (#1774), thanks @neheb
  • Add M3U8 support (#1771), thanks @FlashSystems
  • remove shared_ptr from vector (#1767), thanks @neheb
  • test cleanups (#1768), thanks @neheb
  • get rid of ClientCacheEntry pointer (#1763), thanks @neheb
  • fix bad unique_ptr usage (#1764), thanks @neheb
  • Make UpnpXMLBuilder::orderedHandler nonstatic (#1762), thanks @KarlStraussberger
  • Fix mapConfigOption return (#1759), thanks @KarlStraussberger
  • {} conversions (#1758), thanks @neheb
  • prefer xml-node children over xpath (#1755), thanks @matthiasstraka
  • add missing move (#1756), thanks @neheb
  • basic clang tidy (#1753), thanks @neheb
  • replace several inserts with std::copy (#1754), thanks @neheb
  • clang-tidy: use emplace_back (#1757), thanks @neheb
  • use std::string_view in if statements (#1751), thanks @neheb
  • remove const char version of quote (#1749), thanks @neheb
  • use auto and CTAD (#1752), thanks @neheb
  • Update required versions for spdlog and libfmt (#1746), thanks @KarlStraussberger
  • Use fixed spdlog and fmt in all debian systems (#1745), thanks @KarlStraussberger
  • use newer spdlog and fmt for debian (#1744), thanks @KarlStraussberger
  • Add dynamic containers setup (#1743), thanks @KarlStraussberger
  • fmt disallows string_view as format specifier (#1742), thanks @KarlStraussberger
  • Change generation of SQL statements to format (#1712), thanks @KarlStraussberger
  • final unique_ptr removals (#1734), thanks @neheb
  • Fix broken upgrade script (#1737), thanks @KarlStraussberger
  • const ref conversions (#1733), thanks @neheb
  • move unique_ptr removals (#1729), thanks @neheb
  • emplace_back conversions (#1732), thanks @neheb
  • const ref conversions (#1730), thanks @neheb
  • replace temp variable with returns (#1728), thanks @neheb
  • Update Dockerfile (#1727), thanks @KarlStraussberger
  • return string instead of const char (#1722), thanks @neheb
  • Bump master (#1721), thanks @KarlStraussberger

Please see our Documentation for how to install the latest Gerbera version on your system.

v1.9.0

2 years ago

We are happy to announce that Gerbera Media Server 1.9.0 is now available.

Since release of the last version many issues have been fixed. We are also making several new features available. The full the list of changes can be found below, here is the extract:

New or Improved Features

  • Many more things have been added to configuration (order of resources for album art, DLNA profiles, upnp properties). Please consult https://docs.gerbera.io/en/stable/config-overview.html for the exact usage
  • Gerbera now can display dynamic containers, i.e. its contents are calculated as you click. This may show you recently add or changed media
  • Gerbera now supports client specific transcoding, i.e. video is only transcode for your older devices, newer can stream it as it is
  • The compatibility with Samsung TV sets was increase again
  • Minor media and upnp additions in search allow you to make the most out of your files

Refactoring of Code in Database Layer

We worked hard to remove legacy code from the database layer to make it even faster and easier to maintain. As a consequence, support for older columns was dropped which means after upgrading to 1.9.0 the database is migrated and cannot be used with older versions anymore. Based on this a resources table was created to contain all the details on media, like subtitles, thumbnails etc.

If not sure backup your database before upgrading or start with a completely new database and let gerbera rebuild it.

Changes

  • fix wrong define (#1717), thanks @neheb
  • use auto instead of const char* (#1718), thanks @neheb
  • move several variables down (#1719), thanks @neheb
  • unique_ptr removals (#1711), thanks @neheb
  • getTimespecAfterMillis: return ret instead of void (#1710), thanks @neheb
  • Generate namespace attributes required for properties (#1707), thanks @KarlStraussberger
  • replace reference parameter with std::pair (#1708), thanks @neheb
  • clang-tidy 8 fixes (#1709), thanks @neheb
  • Allow setting resource order (#1701), thanks @KarlStraussberger
  • remove pointless {} (#1706), thanks @neheb
  • use map.emplace (#1705), thanks @neheb
  • remove some = {} (#1699), thanks @neheb
  • use thread constructor (#1698), thanks @neheb
  • Re-add CI check with clang (#1696), thanks @KarlStraussberger
  • Send container updates (#1692), thanks @KarlStraussberger
  • fixup lambda for C++20 compatibility (#1693), thanks @neheb
  • lastfm: switch to C++ API (#1694), thanks @neheb
  • move make_unique down (#1689), thanks @neheb
  • use move with shared_ptr (#1691), thanks @neheb
  • make uiUpdateIDs a unique_ptr (#1690), thanks @neheb
  • remove pointless const_cast (#1688), thanks @neheb
  • Factor out transactions to reduce overhead when disabled (#1682), thanks @KarlStraussberger
  • Fix X_GetFeatureList (Samsung) (#1681), thanks @KarlStraussberger
  • some move (#1685), thanks @neheb
  • move make_shared outside of initializer list (#1675), thanks @neheb
  • switch xmlDoc to unique_ptr (#1684), thanks @neheb
  • remove ret variable (#1683), thanks @neheb
  • lambda conversion (#1679), thanks @neheb
  • more unique_ptr (#1677), thanks @neheb
  • some CTAD (#1678), thanks @neheb
  • remove pointless temporary (#1676), thanks @neheb
  • small cleanups (#1673), thanks @neheb
  • Add more documentation and cleanup SQL init code (#1669), thanks @KarlStraussberger
  • remove wrong static (#1671), thanks @neheb
  • Move resources to separate table. (#1667), thanks @KarlStraussberger
  • several string_view conversions (#1665), thanks @neheb
  • convert expandName to string_view (#1664), thanks @neheb
  • Add link to database doc (#1663), thanks @KarlStraussberger
  • Add migration hook to version update (#1662), thanks @KarlStraussberger
  • Automatically load options (#1658), thanks @KarlStraussberger
  • use make_pair in std::array (#1652), thanks @neheb
  • remove std from std::next (#1657), thanks @neheb
  • remove aslowercase (#1659), thanks @neheb
  • pass by value (#1654), thanks @neheb
  • Add DLNA profiles strings and visible file system directories to configuration (#1651), thanks @KarlStraussberger
  • don't default assign nullptr to smart pointers (#1656), thanks @neheb
  • add missing const (#1653), thanks @neheb
  • remove == nullptr (#1649), thanks @neheb
  • Add ProductCap to please Samsung TVs (#1650), thanks @KarlStraussberger
  • simplify pidfile write (#1647), thanks @neheb
  • Move db upgrade commands to config file (#1644), thanks @KarlStraussberger
  • clang-tidy: remove implicit bool conversions (#1640), thanks @neheb
  • Add codec info to resource data (#1641), thanks @KarlStraussberger
  • Subtitle: Add resouce and CaptionInfoEx (#1634), thanks @KarlStraussberger
  • remove pointless constructor (#1639), thanks @neheb
  • clang-tidy: don't use else after return (#1638), thanks @neheb
  • several constructor changes (#1637), thanks @neheb
  • static (#1631), thanks @neheb
  • change length parameter to size_t (#1636), thanks @neheb
  • add missing header (#1635), thanks @neheb
  • Implement EnumIterator (#1610), thanks @KarlStraussberger
  • SQLDatabase: Refactor init and upgrade (#1633), thanks @KarlStraussberger
  • const member function conversions (#1629), thanks @neheb
  • clang-tidy: add missing functions (#1630), thanks @neheb
  • add a missing this-> (#1627), thanks @neheb
  • pass 0 to std::unordered_ (#1626), thanks @neheb
  • replace std::list with std::vector (#1623), thanks @neheb
  • remove manual loop (#1624), thanks @neheb
  • remove pointless find (#1625), thanks @neheb
  • small lambda conversion (#1615), thanks @neheb
  • Regression: Samsung Compatibility (#1620), thanks @KarlStraussberger
  • switch to C++ ffmpegthumbnailer API (#1619), thanks @neheb
  • cosmetic map changes (#1616), thanks @neheb
  • remove two pointless unique_ptrs (#1617), thanks @neheb
  • declare AVFormatContext as struct (#1618), thanks @neheb
  • default init some members (#1614), thanks @neheb
  • Fix MySQL migration (#1611), thanks @KarlStraussberger
  • switch several for loops to use size_t (#1602), thanks @neheb
  • replace POSIX file stuff with C (#1608), thanks @neheb
  • Implemement dynamic containers (#1601), thanks @KarlStraussberger
  • small error handle (#1598), thanks @neheb
  • replace several usages of format with to_string (#1604), thanks @neheb
  • remove several {} (#1603), thanks @neheb
  • don't throw in noexcept destructors (#1589), thanks @neheb
  • Fix lastfm compilation (#1595), thanks @KarlStraussberger
  • use make_pair (#1593), thanks @neheb
  • use a unique_ptr in lambda (#1594), thanks @neheb
  • nppnp changes (#1592), thanks @neheb
  • Close memory leak by duplicate call to ixmlCloneDOMString (#1590), thanks @KarlStraussberger
  • replace rand with std::random (#1587), thanks @neheb
  • server: default init some variables (#1588), thanks @neheb
  • fix std::accumulate (#1584), thanks @neheb
  • add missing default initialization (#1581), thanks @neheb
  • default initialize some io stuff (#1580), thanks @neheb
  • add missing close (#1578), thanks @neheb
  • add missing nullptr check (#1577), thanks @neheb
  • default initialize members in mysql (#1575), thanks @neheb
  • Simplify and cleanup (#1574), thanks @KarlStraussberger
  • string ref to string_view conversion (#1572), thanks @neheb
  • Cleanup exifhandler (#1570), thanks @KarlStraussberger
  • Assign clientInfo in a default constructor (#1573), thanks @neheb
  • pass by value and std::move (#1568), thanks @neheb
  • use sizeof for snprintf (#1562), thanks @neheb
  • Add configuration option for SopCast mimetypes (#1567), thanks @KarlStraussberger
  • fix replace string functions (#1565), thanks @neheb
  • lambda conversion (#1560), thanks @neheb
  • clang-tidy: remove redundant specifiers (#1563), thanks @neheb
  • clang-tidy: use auto (#1561), thanks @neheb
  • clang-tidy: simplify boolean expression (#1564), thanks @neheb
  • Configuration of folders for resources (#1549), thanks @KarlStraussberger
  • remove const so move can be used (#1557), thanks @neheb
  • replace const static with static const (#1558), thanks @neheb
  • default member init (#1559), thanks @neheb
  • use std::replace instead of replaceAllString (#1553), thanks @neheb
  • replace stringHash with single accumulate call (#1552), thanks @neheb
  • remove pointless blank lines (#1555), thanks @neheb
  • match else and if blocks (#1551), thanks @neheb
  • remove duplicate include (#1550), thanks @neheb
  • use raw strings for multi line ones (#1548), thanks @neheb
  • Dockerfile: add tzdata (#1546), thanks @neheb
  • more make_unique changes (#1542), thanks @neheb
  • make bultinClientInfo constexpr (#1538), thanks @neheb
  • add m4a support for taglib (#1540), thanks @neheb
  • add back several defaulted destructors (#1541), thanks @neheb
  • avoid unused template warning (#1537), thanks @neheb
  • clang: add missing move (#1539), thanks @neheb
  • default init some members (#1536), thanks @neheb
  • Cleanup legacy code (#1535), thanks @KarlStraussberger
  • Clean up a bit (#1534), thanks @KarlStraussberger
  • Cppcheck (#1532), thanks @neheb
  • Add documentation and template for Apache/NGinx as reverse proxy (#1531), thanks @KarlStraussberger
  • Fix script syntax (#1533), thanks @KarlStraussberger
  • clang-tidy applied to tests (#1527), thanks @neheb
  • Add build for ubuntu 21.04 hirsute hippo (#1530), thanks @KarlStraussberger
  • create-config: Reset config dir to empty if not in command line (#1529), thanks @KarlStraussberger
  • TagLib: Add support for aux data to all supported media types (#1526), thanks @KarlStraussberger
  • Haiku patches (#1523), thanks @extrowerk
  • clangh-tidy: non const reference removal (#1525), thanks @neheb
  • manual structured binding conversions (#1522), thanks @neheb
  • clang-tidy: pass unique_ptr by value (#1518), thanks @neheb
  • clang-tidy: get rid of some long and short (#1521), thanks @neheb
  • clang-tidy: fix some narrowing conversions (#1516), thanks @neheb
  • clang-tidy: use auto&& to avoid warning (#1517), thanks @neheb
  • clang-tidy: C to C++ headers (#1513), thanks @neheb
  • clang-tidy: initialize some members (#1515), thanks @neheb
  • Refactor SearchHandler to use ColumnMapper instead of hard coded texts. (#1510), thanks @KarlStraussberger
  • mostly unique_ptr changes (#1500), thanks @neheb
  • move some initializations up (#1493), thanks @neheb
  • Revert "initialize several unique_ptrs" (#1494), thanks @KarlStraussberger
  • initialize several unique_ptrs (#1483), thanks @neheb
  • Bump main branch after release (#1492), thanks @KarlStraussberger

Please see our Documentation for how to install the latest Gerbera version on your system.

v1.8.2

2 years ago

We are happy to announce that Gerbera Media Server 1.8.2 is now available.

After release of 1.8.1 several issues with transactions have been reported, which are fixed by this release. In order to gain a little bit more testing time, transactions are disabled by default now. If you want to contribute in stabilizing that part of gerbera feel free to turn transactions on in config.xml and report your issues. There are a lot more smaller improvements:

  • configuration for structured layout (a.k.a. abcBox)
  • access to metadata in database (been broken for a really long)
  • Code improvements

Changes

  • Enhance structured layout with configuration (#1482), thanks @KarlStraussberger
  • initialize several unique_ptrs (#1488), thanks @neheb
  • move resize option to constructor (#1489), thanks @neheb
  • string_view to string conversions (#1487), thanks @neheb
  • pass SearchLexer by value (#1485), thanks @neheb
  • return std::nullopt for std::optional (#1486), thanks @neheb
  • remove pointless const_cast (#1484), thanks @neheb
  • Improve handling of default config values (#1453), thanks @KarlStraussberger
  • several clang-tidy and manual cleanups (#1479), thanks @neheb
  • Fix parseSortStatement (#1478), thanks @KarlStraussberger
  • mostly pass by value changes (#1472), thanks @neheb
  • Revert last_write_time to seconds since 1970 (#1474), thanks @KarlStraussberger
  • Encoding of web editor arguments (#1473), thanks @KarlStraussberger
  • clang-analyzer and misc (#1471), thanks @neheb
  • Search query sign from beginning (#1469), thanks @KarlStraussberger
  • use C++ cast (#1466), thanks @neheb
  • manual destructor changes (#1465), thanks @neheb
  • Fix double truncation of playlist name (#1461), thanks @KarlStraussberger
  • clang: add missing moves (#1459), thanks @neheb
  • clang: remove CTAD in some places (#1460), thanks @neheb
  • Generate correct statement for metadata table (#1457), thanks @KarlStraussberger
  • clang fixes (#1450), thanks @neheb
  • Make transactions for SQLite thread safe (#1448), thanks @KarlStraussberger
  • CI: Bump Clang version (#1452), thanks @whyman
  • random stuff (#1438), thanks @neheb
  • add support for Cygwin (#1436), thanks @neheb
  • Enable tests for non-git-builds (#1445), thanks @KarlStraussberger

Please see our Documentation for how to install the latest Gerbera version on your system.