Browse Source

gerbera: update to 1.10.0

Backport some bug fixes.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
lilik-openwrt-22.03
Rosen Penev 2 years ago
parent
commit
e7a2bddbb7
5 changed files with 91 additions and 41 deletions
  1. +2
    -2
      multimedia/gerbera/Makefile
  2. +0
    -39
      multimedia/gerbera/patches/010-fmt.patch
  3. +21
    -0
      multimedia/gerbera/patches/010-matroska-memory-leak.patch
  4. +22
    -0
      multimedia/gerbera/patches/020-m3u.patch
  5. +46
    -0
      multimedia/gerbera/patches/030-ffmpeg.patch

+ 2
- 2
multimedia/gerbera/Makefile View File

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=gerbera
PKG_VERSION:=1.9.1
PKG_VERSION:=1.10.0
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/gerbera/gerbera/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=5d323c6cb4150e3454b8c6e0012f41648441799ba44cb59436b124b54d3fc82b
PKG_HASH:=bd6c7b2c6380e2e265a998bbc0df9eec14b9c6a65bc91e7f2c0ae0b67fd0c9cf
PKG_MAINTAINER:=
PKG_LICENSE:=GPL-2.0-or-later


+ 0
- 39
multimedia/gerbera/patches/010-fmt.patch View File

@ -1,39 +0,0 @@
From 82d84ac5e62c23e717198fc7b2ef190ff95e70d1 Mon Sep 17 00:00:00 2001
From: kyak <bas@bmail.ru>
Date: Wed, 12 Jan 2022 19:41:37 +0300
Subject: [PATCH] Fix for fmt > 8.0
---
src/util/logger.h | 15 +++++++++++++++
1 file changed, 15 insertions(+)
--- a/src/util/logger.h
+++ b/src/util/logger.h
@@ -32,7 +32,9 @@
#ifndef __LOGGER_H__
#define __LOGGER_H__
+#include <fmt/format.h>
#include <spdlog/spdlog.h>
+#include <type_traits>
#define log_debug SPDLOG_DEBUG
#define log_info SPDLOG_INFO
@@ -40,4 +42,17 @@
#define log_error SPDLOG_ERROR
#define log_js SPDLOG_INFO
+#if FMT_VERSION >= 80100
+template <typename T>
+struct fmt::formatter<T, std::enable_if_t<std::is_enum_v<T>, char>>
+ : formatter<std::underlying_type_t<T>> {
+ template <typename FormatContext>
+ auto format(const T& value, FormatContext& ctx) -> decltype(ctx.out())
+ {
+ return fmt::formatter<std::underlying_type_t<T>>::format(
+ static_cast<std::underlying_type_t<T>>(value), ctx);
+ }
+};
+#endif
+
#endif // __LOGGER_H__

+ 21
- 0
multimedia/gerbera/patches/010-matroska-memory-leak.patch View File

@ -0,0 +1,21 @@
From c479fba2f0f478e828cd08dde3c3b5e8ae7908d4 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Mon, 29 Nov 2021 18:31:14 -0800
Subject: [PATCH] fix matroska memory leaks
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
src/metadata/matroska_handler.cc | 2 --
1 file changed, 2 deletions(-)
--- a/src/metadata/matroska_handler.cc
+++ b/src/metadata/matroska_handler.cc
@@ -137,8 +137,6 @@ void MatroskaHandler::parseMKV(const std
delete (elL1->SkipData(ebmlStream, elL1->Generic().Context));
delete elL1;
- if (activeFlag == 0) // terminate search
- break;
} // while elementLevel1
delete (elL0->SkipData(ebmlStream, LIBMATROSKA_NAMESPACE::KaxSegment_Context));

+ 22
- 0
multimedia/gerbera/patches/020-m3u.patch View File

@ -0,0 +1,22 @@
From 97c5a5fbc27452ee5970f9c7be946d3819a79d05 Mon Sep 17 00:00:00 2001
From: Karlchen <k_straussberger@netzland.net>
Date: Sat, 26 Feb 2022 23:32:42 +0100
Subject: [PATCH] Fix playlist parser error
closes #2463
---
src/content/scripting/playlist_parser_script.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/src/content/scripting/playlist_parser_script.cc
+++ b/src/content/scripting/playlist_parser_script.cc
@@ -218,8 +218,8 @@ void PlaylistParserScript::processPlayli
auto item = std::static_pointer_cast<CdsItem>(obj);
log_debug("Checking playlist {} ...", obj->getLocation().string());
+ GrbFile file(item->getLocation());
if (item->getMimeType() != MIME_TYPE_ASX_PLAYLIST) {
- GrbFile file(item->getLocation());
currentHandle = file.open("r");
} else {
pugi::xml_parse_result result = xmlDoc->load_file(item->getLocation().c_str());

+ 46
- 0
multimedia/gerbera/patches/030-ffmpeg.patch View File

@ -0,0 +1,46 @@
From 1ee40116ece90a5504cd33a23d6bc7002d00b68a Mon Sep 17 00:00:00 2001
From: Ian Whyman <ian.whyman@spin.pm>
Date: Tue, 8 Mar 2022 17:36:37 +0000
Subject: [PATCH] Fix default tag matches with ffmpeg_handler
Some of the keys were uppercase e.g. ARTIST when returned from the FLAC
parser, so lowercase the keys first.
Fixes: https://github.com/gerbera/gerbera/issues/2176
---
src/metadata/ffmpeg_handler.cc | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
--- a/src/metadata/ffmpeg_handler.cc
+++ b/src/metadata/ffmpeg_handler.cc
@@ -93,8 +93,9 @@ void FfmpegHandler::addFfmpegMetadataFie
auto sc = StringConverter::m2i(CFG_IMPORT_LIBOPTS_FFMPEG_CHARSET, item->getLocation(), config);
while ((e = av_dict_get(pFormatCtx->metadata, "", e, AV_DICT_IGNORE_SUFFIX))) {
- std::string key = e->key;
+ std::string key = toLower(e->key);
std::string value = e->value;
+ log_debug("FFMpeg tag: {}: {}", key, value);
auto it = specialPropertyMap.find(e->key);
if (it != specialPropertyMap.end()) {
// only use ffmpeg meta data if not found by other handler
@@ -105,7 +106,9 @@ void FfmpegHandler::addFfmpegMetadataFie
}
}
auto pIt = std::find_if(propertyMap.begin(), propertyMap.end(),
- [&](auto&& p) { return p.second == key && item->getMetaData(p.first).empty(); });
+ [&](auto&& p) {
+ return p.second == key && item->getMetaData(p.first).empty();
+ });
if (pIt != propertyMap.end()) {
log_debug("Identified default metadata '{}': {}", pIt->second, value);
const auto field = pIt->first;
@@ -128,7 +131,7 @@ void FfmpegHandler::addFfmpegMetadataFie
constexpr auto field = M_CREATION_DATE;
if (item->getMetaData(field).empty()) {
log_debug("Identified metadata 'creation_time': {}", e->value);
- std::tm tmWork;
+ std::tm tmWork {};
if (strptime(e->value, "%Y-%m-%dT%T.000000%Z", &tmWork)) {
// convert creation_time to local time
auto utcTime = timegm(&tmWork);

Loading…
Cancel
Save