github gerbera/gerbera v1.5.0
Gerbera v1.5.0

latest releases: v2.1.0, v2.0.0, v1.12.1...
3 years ago

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

This is a major release, with a huge amount of great enhancements provided by the Gerbera community.

There were an astounding 189 pull requests merged since 1.4.0, by far the largest amount since Gerberas creation and a great sign for the future of the project.

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

Client Auto detection and DLNA quirks always enabled.

"Protocol-Extensions" and manufacturer specific work arounds are now on by default. This means more devices should work out of the box with no config.xml changes. Thanks to @pampa for contributing this work.

We are expecting to ship some nice enhancements in this area in the next release.

C++ Standardisation

This release brings about the long awaited removal of Gerbera own implementations of various code features and structures. This includes replacing of our custom string with std::string and similar replacements for maps, arrays and smart pointers.

Any developer with some C++ experience will be more easily able to contribute to the codebase and should
make maintenance going forward much more easy.

A huge thanks to @pamapa, it was no easy task.

It also means we can rely on tools like clang-tidy to spot issues and a number where found and reported by @neheb.

UI Enhancements

The UI will now filter out system folders by default and has a darker default look.
You can now edit the mimetype of external URL items, which can help with picky renderers.

Transcoding Enhancements

Transcoding processes will now be passed the title of the Gerbera library item.

Dependency Changes

These large changes also meant there was the opportunity to modernise our underlying libraries.

  • Expat has been replaced with pugixml
  • Spdlog is now used for logging
  • libfmt is now used for string formatting
  • The latest 1.12.1 version of libupnp is now required.

And More

Lots of bug fixes and improvements all around.

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

All Changes

  • Add title param to external transcoder (#831), thanks @runderwo
  • Check the other dynamic_casts in matroska_handler (#830), thanks @runderwo
  • avoid exceptions (#828), thanks @KarlStraussberger
  • Add search result to correct container (#827), thanks @KarlStraussberger
  • Avoid server abort when tracknumber starts with non-digit character (#824), thanks @KarlStraussberger
  • fix: #754 (#822), thanks @pamapa
  • Ensure all xml-namespaces are declared (fixes #819) (#820), thanks @KarlStraussberger
  • Always scan inotify autoscan locations after startup (#817), thanks @runderwo
  • make sure outer throw is used in error case (#816), thanks @pamapa
  • correctly handle upnp:artist@role[AlbumArtist] (#815), thanks @pamapa
  • fix: #807 add missing UTF-8 encoding (#813), thanks @pamapa
  • Feature/simplify upnp xml (#811), thanks @pamapa
  • Don't override interface flags for spdlog. (#804), thanks @ytimenkov
  • introduce Config interface, which will allow easier Mocking in unit-tests (#810), thanks @pamapa
  • fix #806: bug was introduced when using std::filesystem (#809), thanks @pamapa
  • fix #805 nullptr in sockAddrGetNameInfo (#808), thanks @pamapa
  • clang warnings (#782), thanks @neheb
  • improve libupnp info (#803), thanks @pamapa
  • shortten virtual path to videos (#714), thanks @pamapa
  • fix wrong enable (#802), thanks @pamapa
  • Feature/drop xml help comment for old device (#801), thanks @pamapa
  • make use of client detection code (#800), thanks @pamapa
  • fix #778 remove ScanLevel, only do what was done in full (#798), thanks @pamapa
  • part of #776 start to consolidate quirks (#777), thanks @pamapa
  • part of #752 improve client detection (#774), thanks @pamapa
  • Screenshots for documentation 1.5 (fixes #779) (#797), thanks @KarlStraussberger
  • Enable editing mime-type for externalUrl (fixes #790) (#796), thanks @KarlStraussberger
  • gerbera-web: Fix security vulnerability in dependencies (#785), thanks @whyman
  • install-pupnp: bump to 1.12.1 (#786), thanks @whyman
  • Replaced snprintf which caused a warning with fmt (#788), thanks @ytimenkov
  • Set creator on musicAlbum (again) (#787), thanks @whyman
  • Change several other functions to const manually (#773), thanks @neheb
  • Fix lastfm build (#772), thanks @whyman
  • gerbera-web: NPM Update (#771), thanks @whyman
  • log when client type changes too (#770), thanks @pamapa
  • fix assert (#769), thanks @pamapa
  • feat: #752 add client detection code (#768), thanks @pamapa
  • Minor doc update. (#767), thanks @ytimenkov
  • add more info to std runtime error (#764), thanks @pamapa
  • fix #760 (#765), thanks @pamapa
  • align unit-test folder structure to src (#762), thanks @pamapa
  • imitate same behaviour as std::filesystem::is_regular_file (#761), thanks @pamapa
  • Warnings-free build with gcc 9. (#756), thanks @ytimenkov
  • add missing cleanups with non-default options (#753), thanks @neheb
  • improve util upnp headers (#750), thanks @pamapa
  • part of #730 small cleanup (#748), thanks @pamapa
  • workaround fs::file_size issue with ARM 32bit (#746), thanks @pamapa
  • Return full URL of the subtitle (#744) (#745), thanks @ytimenkov
  • Bump acorn from 6.4.0 to 6.4.1 in /gerbera-web (#739), thanks @dependabot
  • workaround is_regular_file for file > 2GB on 32bit systems (#743), thanks @pamapa
  • cleanup header includes (#741), thanks @pamapa
  • improve log warning (#740), thanks @pamapa
  • [cppcheck] move the same condition out of if statement (#735), thanks @neheb
  • [cppcheck] add explicit to single argument constructors (#734), thanks @neheb
  • [cppcheck] change several functions to const (#731), thanks @neheb
  • fix compilation error (#732), thanks @Rogach
  • fix issue when extracting query results (#733), thanks @astylos
  • fix autoscan timed (#721), thanks @pamapa
  • replace stringtokenizer with split_string (#725), thanks @pamapa
  • [cppcheck] change several strings to references (#728), thanks @neheb
  • [cppcheck] do not check unsigned for negative (#729), thanks @neheb
  • fix sqlite3 storage shutdown properly (#722), thanks @pamapa
  • Fix config parsing for parameters (#723), thanks @wesleycoakley
  • fix clang lint errors (#727), thanks @pamapa
  • spdlog build path improvement, fanart semantic and exception fix, and spdlog flushing (#718), thanks @whorfin
  • replace memory.cc/h with malloc/free, we can use valgrind for debug (#726), thanks @pamapa
  • remove virtual from overriden functions (#724), thanks @neheb
  • fix #717: allow /media again (#720), thanks @pamapa
  • remove extra semicolons elsewhere (#716), thanks @neheb
  • fix std::string with nullptr in MySQL code (#719), thanks @wesleycoakley
  • cleanup various small stuff 2 (#713), thanks @pamapa
  • fix #692: fix virtual path for photos too (#715), thanks @pamapa
  • Features/misc fixes (#712), thanks @pamapa
  • switch order of ebml and matroska to fix linking issue (#711), thanks @astylos
  • import script variable lost in copy&paste (#708), thanks @KarlStraussberger
  • remove unreachable returns and breaks (#704), thanks @neheb
  • add suggested noreturn (#703), thanks @neheb
  • add missing static (#701), thanks @neheb
  • remove extra semicolon in statements (#706), thanks @neheb
  • switch from virtual to override (#700), thanks @neheb
  • replace NULL with nullptr (#705), thanks @neheb
  • fix #692: missing parts of std::filesystem move (#695), thanks @pamapa
  • [clang-tidy] convert get_time to std::chrono (#699), thanks @neheb
  • [clang-tidy] add explicit to single argument constructors (#698), thanks @neheb
  • [clang-tidy] use newer single argument C++17 static_assert (#697), thanks @neheb
  • [clang-tidy] convert member functions to static (#689), thanks @neheb
  • fix #693: allow symbol link for scripts used in configuration (#696), thanks @pamapa
  • Feature/cleanup various small stuff (#694), thanks @pamapa
  • [clang-tidy] fix remaining cast issues (#690), thanks @neheb
  • Update Apple trailer XML urls (#688), thanks @whyman
  • [clang-tidy] replace C casts with C++ ones (#685), thanks @neheb
  • [clang-tidy] fix function defenitions (#684), thanks @neheb
  • [clang-tidy] use dynamic_cast instead of static_cast (#686), thanks @neheb
  • [clang-tidy] fix last performance issue (#687), thanks @neheb
  • Clang Format (#677), thanks @whyman
  • [clang-tidy] remove redundant member initializations (#679), thanks @neheb
  • [clang-tidy] don't use else after return (#680), thanks @neheb
  • [clang-tidy] remove unused using declarations (#681), thanks @neheb
  • [clang-tidy] fix function defenitions (#678), thanks @neheb
  • [clang-tidy] remove redundant c_str method (#669), thanks @neheb
  • [clang-tidy] performance improvements (#667), thanks @neheb
  • [clang-tidy] fix wrong strncmp usage (#671), thanks @neheb
  • [clang-tidy] remove pointless void argument (#668), thanks @neheb
  • [clang-tidy] use .append for strings (#666), thanks @neheb
  • [clang-tidy] remove continue statement at end of loop (#670), thanks @neheb
  • [clang-tidy] add parentheses to macro (#672), thanks @neheb
  • [clang-tidy] call proper overriden method (#673), thanks @neheb
  • [clang-tidy] replace assert with static_assert (#674), thanks @neheb
  • [clang-tidy] fix namespace comments (#675), thanks @neheb
  • [clang-tidy] use nullptr (#654), thanks @neheb
  • [clang-tidy] remove redundant string initializations (#656), thanks @neheb
  • [clang-tidy] use using insead of typedef (#659), thanks @neheb
  • [clang-tidy] use emplace_back (#655), thanks @neheb
  • [clang-tidy] use empty instead of comparing size (#657), thanks @neheb
  • [clang-tidy] use bool literals (#653), thanks @neheb
  • tools: fix compilation with newer clang. (#652), thanks @neheb
  • [clang-tidy] use '' with single character (#660), thanks @neheb
  • [clang-tidy] use auto (#662), thanks @neheb
  • [clang-tidy] simplify boolean expressions (#658), thanks @neheb
  • [clang-tidy] use raw string literals (#661), thanks @neheb
  • [clang-tidy] use = default (#663), thanks @neheb
  • [clang-tidy] use range based loops (#665), thanks @neheb
  • Support libupnp 1.12.0 (#650), thanks @whyman
  • scripts: install-pupnp.sh - backport C++ fix (#651), thanks @whyman
  • ConfigManager: Warn about bad autoscans, not exit (#648), thanks @whyman
  • Feature/use std filesystem more (#647), thanks @pamapa
  • cmake/FindLibMagic.cmake: fix static linking (#646), thanks @ffontaine
  • Add fmtlib (#644), thanks @whyman
  • Make fmtlib dependency explicit (#643), thanks @whyman
  • Switch to Alpine based docker image (#641), thanks @whyman
  • make call to ConfigManager same as configGenerator.generate (#639), thanks @pamapa
  • Build with libupnp-1.12.0 (#636), thanks @KarlStraussberger
  • Fix basic_string::_M_construct null not valid in autoscan (#637), thanks @whyman
  • Swap expat for pugixml, fixes #629 (#635), thanks @whyman
  • Drop libc++ with clang (#627), thanks @whyman
  • fix: #528 std::bad_optional_access (#634), thanks @pamapa
  • link test binaries against libgerbera (#633), thanks @pamapa
  • #628 fix std::string with return nullptr (#630), thanks @pamapa
  • Feature/replace zmm ref mxml (#607), thanks @pamapa
  • CI: Update GCC to 8/9, clang-8 (#625), thanks @whyman
  • fix compilation after #620 (#621), thanks @pamapa
  • allow to build with -DWITH_CURL=0 and/or -DWITH_JS=0 (#620), thanks @pamapa
  • Misc fixes (#617), thanks @whyman
  • Feature/replace zmm ref 4 (#618), thanks @pamapa
  • Only output copyright message if we are not creating gerbera config (#619), thanks @1rover1
  • Docs: Tidy, add deb-multimedia.org (#616), thanks @whyman
  • README: Add docker hub page, link to install docs instead (#615), thanks @whyman
  • Adding 'char' to a string does not append to the string (#614), thanks @whyman
  • Dockerfile: install newer spdlog (#613), thanks @whyman
  • spdlog package on openSuSE is outdated (#611), thanks @KarlStraussberger
  • Feature/replace zmm ref 3 (#600), thanks @pamapa
  • Fix transcoding (#609), thanks @whyman
  • cleanup generated directory in tearDown (#608), thanks @pamapa
  • Docs: Update playlist example (#606), thanks @whyman
  • Logging: Switch to spdlog (#604), thanks @whyman
  • CMakeLists.txt: check for atomic library (#603), thanks @ffontaine
  • CI: Enable optional deps (#598), thanks @whyman
  • Initial clang fixes (#601), thanks @whyman
  • gerbera-web: Update dev deps (#599), thanks @whyman
  • LastFM: Make it build (#597), thanks @whyman
  • Feature/replace zmm ref 2 (#596), thanks @pamapa
  • Feature/replace zmm ref (#592), thanks @pamapa
  • Feature/fix mysql storage cc 2 (#593), thanks @pamapa
  • move lastfm_scrobbler.h/cc to src/onlineservice (#586), thanks @pamapa
  • simpliy search_handler.h/cc: replace std::make_sharedstd::string with std::string (#587), thanks @pamapa
  • Feature/replace zmm ref in storage (#590), thanks @pamapa
  • fix part of #562: mysql_storage.cc (#591), thanks @pamapa
  • fix part of #562: mysql_storage.h (#589), thanks @pamapa
  • std::unique is good enough here (#588), thanks @pamapa
  • #567: replace zmm:Ref in action_request.h/cc (#584), thanks @pamapa
  • #567: add const in subscription_request too (#585), thanks @pamapa
  • #567: replace zmm:Ref in request_handler.h/cc (#582), thanks @pamapa
  • #567: replace zmm:Ref in subscription_request.h/cc (#583), thanks @pamapa
  • replace some malloc with std::ostringstream (#581), thanks @pamapa
  • part of #567: replace zmm::Ref in iohandler/* (#580), thanks @pamapa
  • make valgrind happy (#579), thanks @pamapa
  • fix web ui (#578), thanks @pamapa
  • CMake: LibUPnP: Prefer non -1.8 suffixed (#577), thanks @whyman
  • part of #567: remove singleton.h/cc (#573), thanks @pamapa
  • fix exceptions that use std::string + integer (#571), thanks @pamapa
  • fix std::string assigned with nullptr (#572), thanks @pamapa
  • fix other part of #562 (#574), thanks @pamapa
  • part of #562: include was not adapted when moving config (#570), thanks @pamapa
  • Feature/polish file structure (#569), thanks @pamapa
  • replace zmm::String with std::string (#563), thanks @pamapa
  • fix #561 (#564), thanks @pamapa
  • introduce io-handler tell (#542), thanks @pamapa
  • fix mkv on 32bit (#560), thanks @pamapa
  • cmake/FindMatroska: fix static linking (#559), thanks @ffontaine
  • fix matroska build without js, taglib or atrailers (#558), thanks @ffontaine

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

Don't miss a new gerbera release

NewReleases is sending notifications on new releases.