RPi: add kodi patch to fix SW decoded video deinterlace

This is more correct and needed with latest ffmpeg patches from jc

Signed-off-by: Matthias Reichl <hias@horus.com>
This commit is contained in:
Matthias Reichl 2022-09-30 22:24:35 +02:00
parent f3165aae56
commit 7d2935acb6
4 changed files with 45 additions and 3 deletions

View File

@ -1,7 +1,7 @@
From 886f9ddb2fbdf8e4528d7c6b6513a9f762f0b109 Mon Sep 17 00:00:00 2001 From 886f9ddb2fbdf8e4528d7c6b6513a9f762f0b109 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com> From: popcornmix <popcornmix@gmail.com>
Date: Sat, 11 Sep 2021 14:03:05 +0100 Date: Sat, 11 Sep 2021 14:03:05 +0100
Subject: [PATCH 1/3] CDVDVideoCodecDRMPRIME: Also support YUV420 buffers Subject: [PATCH 1/4] CDVDVideoCodecDRMPRIME: Also support YUV420 buffers
CDVDVideoCodecDRMPRIME: Add support for deinterlace of sw decoded buffers CDVDVideoCodecDRMPRIME: Add support for deinterlace of sw decoded buffers

View File

@ -1,7 +1,7 @@
From 55303f4a214d80af24d75a93f102edbe02000423 Mon Sep 17 00:00:00 2001 From 55303f4a214d80af24d75a93f102edbe02000423 Mon Sep 17 00:00:00 2001
From: Dom Cobley <popcornmix@gmail.com> From: Dom Cobley <popcornmix@gmail.com>
Date: Fri, 3 Dec 2021 16:00:50 +0000 Date: Fri, 3 Dec 2021 16:00:50 +0000
Subject: [PATCH 2/3] gbm: Set max bpc for high bit depth videos Subject: [PATCH 2/4] gbm: Set max bpc for high bit depth videos
--- ---
.../HwDecRender/VideoLayerBridgeDRMPRIME.cpp | 16 ++++++++++++++++ .../HwDecRender/VideoLayerBridgeDRMPRIME.cpp | 16 ++++++++++++++++

View File

@ -1,7 +1,7 @@
From e93a6bc009e660db2746b529149bac8d2e3ae122 Mon Sep 17 00:00:00 2001 From e93a6bc009e660db2746b529149bac8d2e3ae122 Mon Sep 17 00:00:00 2001
From: Lukas Rusak <lorusak@gmail.com> From: Lukas Rusak <lorusak@gmail.com>
Date: Mon, 29 Apr 2019 18:48:45 -0700 Date: Mon, 29 Apr 2019 18:48:45 -0700
Subject: [PATCH 3/3] CVideoLayerBridgeDRMPRIME add colourspace connector Subject: [PATCH 3/4] CVideoLayerBridgeDRMPRIME add colourspace connector
property property
--- ---

View File

@ -0,0 +1,42 @@
From 8d00033fc98dd0c2570b6b933b4313e7b238b6d0 Mon Sep 17 00:00:00 2001
From: Dom Cobley <popcornmix@gmail.com>
Date: Fri, 30 Sep 2022 17:59:55 +0100
Subject: [PATCH 4/4] DVDVideoCodecDRMPRIME: use AV_PIX_FMT_DRM_PRIME for
frames input to ffmpeg
This is more correct and necessary with more recent trees from jc
---
.../VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp
index a36107c515..63233cdbdd 100644
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp
@@ -660,13 +660,13 @@ bool CDVDVideoCodecDRMPRIME::FilterOpen(const std::string& filters, bool test)
const AVFilter* srcFilter = avfilter_get_by_name("buffer");
const AVFilter* outFilter = avfilter_get_by_name("buffersink");
- enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_DRM_PRIME, AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE };
+ enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_DRM_PRIME, AV_PIX_FMT_NONE };
std::string args = StringUtils::Format("video_size={}x{}:pix_fmt={}:time_base={}/{}:"
"pixel_aspect={}/{}",
m_pCodecContext->width,
m_pCodecContext->height,
- m_pCodecContext->pix_fmt,
+ AV_PIX_FMT_DRM_PRIME,
m_pCodecContext->time_base.num ?
m_pCodecContext->time_base.num : 1,
m_pCodecContext->time_base.num ?
@@ -818,6 +818,7 @@ CDVDVideoCodec::VCReturn CDVDVideoCodecDRMPRIME::ProcessFilterIn()
m_pFrame->data[0] = reinterpret_cast<uint8_t*>(descriptor);
}
+ m_pFrame->format = AV_PIX_FMT_DRM_PRIME;
int ret = av_buffersrc_add_frame(m_pFilterIn, m_pFrame);
if (ret < 0)
{
--
2.34.1