1
0
mirror of https://github.com/dguglielmi/sunny-overlay.git synced 2025-12-06 13:52:40 +01:00

media-tv/kodi: fix crash with pvr.hts

This commit is contained in:
2023-09-26 22:05:52 +02:00
parent db8dd5912c
commit a588a0138a
5 changed files with 1219 additions and 1 deletions

View File

@@ -1,10 +1,13 @@
AUX kodi-20.2-Fix-playback-of-optical-dvds-without-mount-support.patch 2322 BLAKE2B 6064117e9995de379859fed4e8c27a0c233a5ff5e15cc586d9852691493f3bf230fb564512dc40db16ff4e61f7c8907b741a36fb8bcd0493159ba7f0af4e2c06 SHA512 eb855d05368d32582456261c7c98bfa6b5ddae8a74cac52d36c3bf54952e473b8b0254bf3fd9cac4943242a69cc039e42b02b09945cf9ca3ef654649ced6dcce
AUX kodi-20.2-Handle-FFmpeg-extradata-in-dedicated-class.patch 47068 BLAKE2B 2a2ebab22fe209b625122676e96c2c56aee96d3929b831b75b5ed98b4d6fbe65b471ba6dda15ce4eb217032fd5509716ba487ef59fca7e1b58f2e3ff2d4a1871 SHA512 b73f913b9383c01ef3bfe1b411c07cfb44ac51ea72565276db8007d90678db3e3a7a112a72bfa9a9bf2e8fdecdc1e52b02154f0d84aa3133e35244f3ba6cdce2
AUX kodi-20.2-VideoPlayerAudio-invalidate-previous-sync-type-after-Audio.patch 1010 BLAKE2B e623854a71f0b53b90950fbbf71ee4d666a24c3071c6ae8489d476a8407068e01028a69c8ec5cbff909a646dd15efe7a1807aeee214995ae1486281bce309e30 SHA512 3db461ebad0f922fab7727e902beada28b5b43e2b71d9c6e39bdf9b2a7767d214ea6caf3a975649a27ba77b7a9a93d5e7b1df6c1ec0edf61223855e2463d5115
AUX kodi-20.2-ffmpeg5.patch 94498 BLAKE2B f8244260911df037ec6cdf945fe19dae7e71e98c052c0ce3ec4c9bf5459205bef7696af599b00a86d5b554d0cbc674fed6f7835a45dd6df40ae4e83549e55175 SHA512 9dc21d7e41eac956816330e79e826456566a88c5fdc747be234fe873ff3b9e7241d87dcc6ecd804189fff8b61c027ac4e31e1af0da5de0537f91e8f51b3d96c5
AUX kodi-20.2-ffmpeg6.patch 24798 BLAKE2B d9ed0a7e8d0d873f46ffe95e84eefb94ca4f5328da80a447acd3996971b3b913a2ce249ddf8b5c4019db58e5fdb158b2c5d1034cd3962c8ca6d6aab34e9c6f15 SHA512 3e419a882a112bc9c12078f9c8f8c31c6eb5546f12e71e558f31a862ac8119999aa1e63c8e42cc654361534024e0483288da3bec62a45c601ecf7694c04a66c2
AUX kodi-20.2-fix-crash-in-avcodec_parameters_from_context.patch 1351 BLAKE2B 0c1739fbda97c0e5a8064c0242a2d1d2e5db499bf336abc8d0119398aef156128a114f1f8616cee235f09e39752df156d99f3049fd2f13693246526593c5e08f SHA512 34da97b3803b585f90f2e5fced64bc0c7447c36df73384df29f539348bc8d230bbb9fcdfa7a12baf2794d0d0e1493248723e012ebe3ac0862e1d4add06f64b94
AUX kodi-20.2-smart_ptr-and-custom-destructor-for-AVCodecParameters.patch 2113 BLAKE2B 4e6e3401c8b25297f633ff88457eda364de639e915b210d71a5905877c309bc81cf7d6e748307e76e8b9badca76024e313e7d32d88bba626642d4daa91e63357 SHA512 2b1a50e6f7f5eec62f2dc13cf3afb126cb0a05a5db7c87a5dfc9a4962b45c93c12ea71cb77fa007b4fab2a98109c08b1890a78cc5a85c99b658ac7e9648d0bcd
DIST ffmpeg-kodi-5.1.2-Nexus-Alpha3.tar.gz 14416966 BLAKE2B fe35ef6a9aa2d60a2b34432ae8063850003d550208f223ea43af8ebcaa73e6993639e8cfe8a38676bac79e6b1816bd791b75b66ef58ff4d740bc9a5e0e7f9b78 SHA512 ce60852b8456d6f4bfc60de0ceadb33034d9b3eea8c0bc84d8b7199984ecbf334a2c4d9b42eade439d0ef30ce22e3b2ca0a49d4df837a18cd3136b4343ed3113
DIST kodi-20.2-Nexus.tar.gz 54587775 BLAKE2B 05c90cf9559f1e98c58deb5edd51c91d8ce60f75f13669e33c7168913870d13ca0ef68615834d9a6dd47c8f563ed591c1d43ec70e579938fb2f3251725538842 SHA512 ddeaa626f324817f6d038fd1eaeb851d0006156fa9ef96ef475932ec50c64cbdcc7ce8b93ceea0d8bfcd1f24edc1c9d0c4a97a163a615842a9fb698e5393f7ca
DIST libdvdcss-1.4.3-Next-Nexus-Alpha2-2.tar.gz 102124 BLAKE2B 2f503d3ab767094958f7ec10b4ad11ffd02665deee571c8f3c739bef5fc7e2ff84babc5a3fdee638dc095f896b72fe3ce65e6b688674cb5f7b7b77190992688c SHA512 d3be3bfc13c5ea56d8db745c2aab090c99760684fe4c8f62a13d266feb319e9180ceeecf8116bfd2ed90d9accba2c11dbbf93b61ad00f69a40812ebf4eabcdda
DIST libdvdnav-6.1.1-Next-Nexus-Alpha2-2.tar.gz 128547 BLAKE2B db4d05836d8fbb3637ae50bdbfc0e4b612ee6b3be24addfea94ce772c3bf28d58b63a3f252d6f9f016f72f8cbb841cc1820b091226b136f4c4664385a32da73c SHA512 51e6fc033121241354a5f0b3fc9a430577ae3ff6bb7f31445aa548ef4893037fb80eea3b2c6774c81e9ebaf9c45e9b490c98c2c65eb38f9f7daba84b236f7e1d
DIST libdvdread-6.1.3-Next-Nexus-Alpha2-2.tar.gz 110513 BLAKE2B c94feb5a03a12efa5b7767965118d2500a088299ea36f3b82e46d157e45893e6b04503cb50f179ca681bac914457607fab26acfa6e304752b355c407578572d1 SHA512 629a41157d07b8ec0ea1fe89ae5ec48f63047472a862782b805c531ae31a0376fc4dc15175f8280c3ef91d7fa977bacebb1b51232640034a34bab2293210fc5e
EBUILD kodi-20.2-r1.ebuild 10972 BLAKE2B 136660a011e9a98b38cc2f0753a36acdd501cac0d0748cd1d77785b39b918f8756525289d2fcee5bc3d7d4e7ae2fc8696727e948c8cc0d007de31a197ad9d9e8 SHA512 0976494912c9c1050160fff44a415dcdde47cddc50dc77146a2b45155749f4c3a7c208cf926bcf898ded50862b7a630ce81dcaefb1201f69e5c8a1d78599e0dd
EBUILD kodi-20.2-r2.ebuild 11123 BLAKE2B 734f643818c5bfdbfa2149511f20e688b58e00bfe38ee3a23b0117cfefdf360663531edc938baeffb97df27f316c7e85f4edf8ab625467d0252eb912cfc1bf1c SHA512 d6cf0030183a193d7ca4e4303b6a71b6378679c59fb1144f86e65cd6ef925524e3fa59385312e7fd7d625a4781c426334ecfa65ee16e75250bb64791d4cb9528

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,36 @@
From 3ad9588656e30abd421e48147b23aee9fb4b3557 Mon Sep 17 00:00:00 2001
From: Miguel Borges de Freitas <92enen@gmail.com>
Date: Sun, 12 Feb 2023 12:08:36 +0000
Subject: [PATCH] [video] fix crash in avcodec_parameters_from_context
---
xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp
index 9ca07b9a2dd39..26fa9522eea7a 100644
--- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp
+++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp
@@ -162,11 +162,12 @@ bool CDVDDemuxClient::ParsePacket(DemuxPacket* pkt)
avpkt->size = pkt->iSize;
avpkt->dts = avpkt->pts = AV_NOPTS_VALUE;
- AVCodecParameters* codecPar = nullptr;
+ AVCodecParameters* codecPar = avcodec_parameters_alloc();
int ret = avcodec_parameters_from_context(codecPar, stream->m_context);
if (ret < 0)
{
CLog::LogF(LOGERROR, "avcodec_parameters_from_context failed");
+ avcodec_parameters_free(&codecPar);
return false;
}
@@ -188,7 +189,7 @@ bool CDVDDemuxClient::ParsePacket(DemuxPacket* pkt)
avcodec_close(stream->m_context);
}
}
-
+ avcodec_parameters_free(&codecPar);
av_packet_free(&avpkt);
}

View File

@@ -0,0 +1,55 @@
From 456d6557ea570f63dc18831242b9189f96c1097d Mon Sep 17 00:00:00 2001
From: Steve Hartwell <steve.hartwell@gmail.com>
Date: Sun, 12 Feb 2023 18:10:45 +0000
Subject: [PATCH] [video] use smart_ptr and custom destructor for
AVCodecParameters
Co-authored-by: Miguel Borges de Freitas <92enen@gmail.com>
---
.../cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp
index 26fa9522eea7a..2a42244b62b68 100644
--- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp
+++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp
@@ -14,7 +14,9 @@
#include "cores/VideoPlayer/Interface/TimingConstants.h"
#include "utils/log.h"
+#include <memory>
#include <tuple>
+#include <type_traits>
#include <utility>
class CDemuxStreamClientInternal
@@ -162,16 +164,17 @@ bool CDVDDemuxClient::ParsePacket(DemuxPacket* pkt)
avpkt->size = pkt->iSize;
avpkt->dts = avpkt->pts = AV_NOPTS_VALUE;
- AVCodecParameters* codecPar = avcodec_parameters_alloc();
- int ret = avcodec_parameters_from_context(codecPar, stream->m_context);
+ constexpr auto codecParDeleter = [](AVCodecParameters* p) { avcodec_parameters_free(&p); };
+ auto codecPar = std::unique_ptr<AVCodecParameters, decltype(codecParDeleter)>(
+ avcodec_parameters_alloc(), codecParDeleter);
+ int ret = avcodec_parameters_from_context(codecPar.get(), stream->m_context);
if (ret < 0)
{
CLog::LogF(LOGERROR, "avcodec_parameters_from_context failed");
- avcodec_parameters_free(&codecPar);
return false;
}
- auto [retExtraData, len] = GetPacketExtradata(avpkt, codecPar);
+ auto [retExtraData, len] = GetPacketExtradata(avpkt, codecPar.get());
if (len > 0)
{
st->changes++;
@@ -189,7 +192,6 @@ bool CDVDDemuxClient::ParsePacket(DemuxPacket* pkt)
avcodec_close(stream->m_context);
}
}
- avcodec_parameters_free(&codecPar);
av_packet_free(&avpkt);
}

View File

@@ -192,6 +192,8 @@ PATCHES=(
"${FILESDIR}"/${P}-ffmpeg5.patch
"${FILESDIR}"/${P}-ffmpeg6.patch
"${FILESDIR}"/${P}-Fix-playback-of-optical-dvds-without-mount-support.patch
"${FILESDIR}"/${P}-fix-crash-in-avcodec_parameters_from_context.patch
"${FILESDIR}"/${P}-smart_ptr-and-custom-destructor-for-AVCodecParameters.patch
)
pkg_setup() {