diff --git a/packages/mediacenter/kodi/patches/drmprime-filter/0001-WIP-DVDVideoCodecDRMPRIME-add-support-for-filters.patch b/packages/mediacenter/kodi/patches/drmprime-filter/0001-WIP-DVDVideoCodecDRMPRIME-add-support-for-filters.patch index d33231871e..ab16847409 100644 --- a/packages/mediacenter/kodi/patches/drmprime-filter/0001-WIP-DVDVideoCodecDRMPRIME-add-support-for-filters.patch +++ b/packages/mediacenter/kodi/patches/drmprime-filter/0001-WIP-DVDVideoCodecDRMPRIME-add-support-for-filters.patch @@ -1,7 +1,7 @@ -From 3f4e5cd94c1ad7e9361f68f04dba23aec06e0e49 Mon Sep 17 00:00:00 2001 +From 24d09f0f92e3afc975f211591c147032f663ed01 Mon Sep 17 00:00:00 2001 From: Jonas Karlman Date: Sun, 20 Oct 2019 17:10:07 +0000 -Subject: [PATCH 1/6] WIP: DVDVideoCodecDRMPRIME: add support for filters +Subject: [PATCH 1/7] WIP: DVDVideoCodecDRMPRIME: add support for filters --- .../DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp | 62 +++++++++++++++++-- @@ -135,5 +135,5 @@ index db49d165e7..b5cacf1a3c 100644 std::shared_ptr m_videoBufferPool; }; -- -2.34.1 +2.39.2 diff --git a/packages/mediacenter/kodi/patches/drmprime-filter/0002-WIP-DRMPRIME-deinterlace-filter.patch b/packages/mediacenter/kodi/patches/drmprime-filter/0002-WIP-DRMPRIME-deinterlace-filter.patch index 9c86d94be0..25c5bcdd43 100644 --- a/packages/mediacenter/kodi/patches/drmprime-filter/0002-WIP-DRMPRIME-deinterlace-filter.patch +++ b/packages/mediacenter/kodi/patches/drmprime-filter/0002-WIP-DRMPRIME-deinterlace-filter.patch @@ -1,7 +1,7 @@ -From a2f57bbd2c63fc0cf89304805e93f3b57ce55b58 Mon Sep 17 00:00:00 2001 +From da88bb2f1dfbb6745406fab1bbece5b71df39b91 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Thu, 26 Dec 2019 11:01:51 +0100 -Subject: [PATCH 2/6] WIP: DRMPRIME deinterlace filter +Subject: [PATCH 2/7] WIP: DRMPRIME deinterlace filter --- .../DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp | 379 +++++++++++++++--- @@ -517,5 +517,5 @@ index b5cacf1a3c..fab3431d40 100644 AVFilterContext* m_pFilterIn = nullptr; AVFilterContext* m_pFilterOut = nullptr; -- -2.34.1 +2.39.2 diff --git a/packages/mediacenter/kodi/patches/drmprime-filter/0003-DVDVideoCodecDRMPRIME-Avoid-exception-with-AV_PIX_FM.patch b/packages/mediacenter/kodi/patches/drmprime-filter/0003-DVDVideoCodecDRMPRIME-Avoid-exception-with-AV_PIX_FM.patch index 42a281b44d..49efc01588 100644 --- a/packages/mediacenter/kodi/patches/drmprime-filter/0003-DVDVideoCodecDRMPRIME-Avoid-exception-with-AV_PIX_FM.patch +++ b/packages/mediacenter/kodi/patches/drmprime-filter/0003-DVDVideoCodecDRMPRIME-Avoid-exception-with-AV_PIX_FM.patch @@ -1,7 +1,7 @@ -From c2b50468de1a8a72a4e00e53492e4e26f2573490 Mon Sep 17 00:00:00 2001 +From cb187a5456d0e992b4875ad965a6b628726c557f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 27 Aug 2021 20:29:50 +0100 -Subject: [PATCH 3/6] DVDVideoCodecDRMPRIME: Avoid exception with +Subject: [PATCH 3/7] DVDVideoCodecDRMPRIME: Avoid exception with AV_PIX_FMT_NONE --- @@ -22,5 +22,5 @@ index 1843e72e55..709311e75f 100644 return false; } -- -2.34.1 +2.39.2 diff --git a/packages/mediacenter/kodi/patches/drmprime-filter/0004-DVDVideoCodecDRMPRIME-Leave-deinterlace-filter-activ.patch b/packages/mediacenter/kodi/patches/drmprime-filter/0004-DVDVideoCodecDRMPRIME-Leave-deinterlace-filter-activ.patch index 42bd40f63b..96c27ca164 100644 --- a/packages/mediacenter/kodi/patches/drmprime-filter/0004-DVDVideoCodecDRMPRIME-Leave-deinterlace-filter-activ.patch +++ b/packages/mediacenter/kodi/patches/drmprime-filter/0004-DVDVideoCodecDRMPRIME-Leave-deinterlace-filter-activ.patch @@ -1,7 +1,7 @@ -From 66833bc8221a9d5a5fbc625c3f0293a261bbd412 Mon Sep 17 00:00:00 2001 +From 7b98c8968c7dd3b5a56f76695515cb59654f8691 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 17 Sep 2021 15:23:16 +0100 -Subject: [PATCH 4/6] DVDVideoCodecDRMPRIME: Leave deinterlace filter active on +Subject: [PATCH 4/7] DVDVideoCodecDRMPRIME: Leave deinterlace filter active on a progressive frame Interlaced content often has strange mixtures of interlace and progressive frames (e.g. IIPPPPIIPPPP) @@ -29,5 +29,5 @@ index 709311e75f..6ba0804904 100644 filterChain += m_deintFilterName; -- -2.34.1 +2.39.2 diff --git a/packages/mediacenter/kodi/patches/drmprime-filter/0005-SetVideoInterlaced-Set-and-unset-deinterlace-method-.patch b/packages/mediacenter/kodi/patches/drmprime-filter/0005-SetVideoInterlaced-Set-and-unset-deinterlace-method-.patch index d6bb95de33..e2f5a4163e 100644 --- a/packages/mediacenter/kodi/patches/drmprime-filter/0005-SetVideoInterlaced-Set-and-unset-deinterlace-method-.patch +++ b/packages/mediacenter/kodi/patches/drmprime-filter/0005-SetVideoInterlaced-Set-and-unset-deinterlace-method-.patch @@ -1,7 +1,7 @@ -From 6d40c431345c8bac66fb1a3bb06e29a0f944ac3d Mon Sep 17 00:00:00 2001 +From c17af60a355973986d9ea5b6baefb96577299b9f Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 30 Nov 2021 16:05:06 +0000 -Subject: [PATCH 5/6] SetVideoInterlaced: Set and unset deinterlace method name +Subject: [PATCH 5/7] SetVideoInterlaced: Set and unset deinterlace method name reported --- @@ -37,5 +37,5 @@ index 6ba0804904..9139233bc4 100644 { CLog::Log(LOGDEBUG, LOGVIDEO, "CDVDVideoCodecDRMPRIME::FilterClose - Freeing filter graph"); -- -2.34.1 +2.39.2 diff --git a/packages/mediacenter/kodi/patches/drmprime-filter/0006-DVDVideoCodecDRMPRIME-Close-deinterlace-filter-on-er.patch b/packages/mediacenter/kodi/patches/drmprime-filter/0006-DVDVideoCodecDRMPRIME-Close-deinterlace-filter-on-er.patch index 849dbf2ad3..3eecb8a1d6 100644 --- a/packages/mediacenter/kodi/patches/drmprime-filter/0006-DVDVideoCodecDRMPRIME-Close-deinterlace-filter-on-er.patch +++ b/packages/mediacenter/kodi/patches/drmprime-filter/0006-DVDVideoCodecDRMPRIME-Close-deinterlace-filter-on-er.patch @@ -1,7 +1,7 @@ -From e014499333c6ca6ef4dca3a15b8c81ec07d80c12 Mon Sep 17 00:00:00 2001 +From 37ee879ee3bdcf8320fe135acc6cae0a8cbdb991 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 24 Nov 2021 20:21:28 +0000 -Subject: [PATCH 6/6] DVDVideoCodecDRMPRIME: Close deinterlace filter on error +Subject: [PATCH 6/7] DVDVideoCodecDRMPRIME: Close deinterlace filter on error Otherwise we crash later with an invalid m_pFilterGraph pointer --- @@ -69,5 +69,5 @@ index 9139233bc4..0b44d90f13 100644 } -- -2.34.1 +2.39.2 diff --git a/packages/mediacenter/kodi/patches/drmprime-filter/0007-DVDVideoCodecDRMPRIME-Fix-missing-flush-after-eof.patch b/packages/mediacenter/kodi/patches/drmprime-filter/0007-DVDVideoCodecDRMPRIME-Fix-missing-flush-after-eof.patch new file mode 100644 index 0000000000..66d149fdd7 --- /dev/null +++ b/packages/mediacenter/kodi/patches/drmprime-filter/0007-DVDVideoCodecDRMPRIME-Fix-missing-flush-after-eof.patch @@ -0,0 +1,32 @@ +From 9996a0027ee8b0149b639fdc1bb7b524a8176bc0 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Mon, 15 May 2023 12:50:16 +0100 +Subject: [PATCH 7/7] DVDVideoCodecDRMPRIME: Fix missing flush after eof + +--- + .../VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp +index 0b44d90f13..a472a06792 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp +@@ -891,7 +891,15 @@ CDVDVideoCodec::VCReturn CDVDVideoCodecDRMPRIME::GetPicture(VideoPicture* pVideo + if (ret == AVERROR(EAGAIN)) + return VC_BUFFER; + else if (ret == AVERROR_EOF) ++ { ++ if (m_codecControlFlags & DVD_CODEC_CTRL_DRAIN) ++ { ++ CLog::Log(LOGDEBUG, "CDVDVideoCodecDRMPRIME::{} - flush buffers", __FUNCTION__); ++ avcodec_flush_buffers(m_pCodecContext); ++ SetCodecControl(m_codecControlFlags & ~DVD_CODEC_CTRL_DRAIN); ++ } + return VC_EOF; ++ } + else if (ret) + { + char err[AV_ERROR_MAX_STRING_SIZE] = {}; +-- +2.39.2 +