From 7d2935acb6652c61a38aa3fcdf684b4be14c6f21 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Fri, 30 Sep 2022 22:24:35 +0200 Subject: [PATCH] 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 --- ...DRMPRIME-Also-support-YUV420-buffers.patch | 2 +- ...et-max-bpc-for-high-bit-depth-videos.patch | 2 +- ...eDRMPRIME-add-colourspace-connector-.patch | 2 +- ...PRIME-use-AV_PIX_FMT_DRM_PRIME-for-f.patch | 42 +++++++++++++++++++ 4 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 projects/RPi/patches/kodi/0004-DVDVideoCodecDRMPRIME-use-AV_PIX_FMT_DRM_PRIME-for-f.patch diff --git a/projects/RPi/patches/kodi/0001-CDVDVideoCodecDRMPRIME-Also-support-YUV420-buffers.patch b/projects/RPi/patches/kodi/0001-CDVDVideoCodecDRMPRIME-Also-support-YUV420-buffers.patch index 8c9fc486ad..c6e0129a52 100644 --- a/projects/RPi/patches/kodi/0001-CDVDVideoCodecDRMPRIME-Also-support-YUV420-buffers.patch +++ b/projects/RPi/patches/kodi/0001-CDVDVideoCodecDRMPRIME-Also-support-YUV420-buffers.patch @@ -1,7 +1,7 @@ From 886f9ddb2fbdf8e4528d7c6b6513a9f762f0b109 Mon Sep 17 00:00:00 2001 From: popcornmix 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 diff --git a/projects/RPi/patches/kodi/0002-gbm-Set-max-bpc-for-high-bit-depth-videos.patch b/projects/RPi/patches/kodi/0002-gbm-Set-max-bpc-for-high-bit-depth-videos.patch index e04951452a..591c90e592 100644 --- a/projects/RPi/patches/kodi/0002-gbm-Set-max-bpc-for-high-bit-depth-videos.patch +++ b/projects/RPi/patches/kodi/0002-gbm-Set-max-bpc-for-high-bit-depth-videos.patch @@ -1,7 +1,7 @@ From 55303f4a214d80af24d75a93f102edbe02000423 Mon Sep 17 00:00:00 2001 From: Dom Cobley 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 ++++++++++++++++ diff --git a/projects/RPi/patches/kodi/0003-CVideoLayerBridgeDRMPRIME-add-colourspace-connector-.patch b/projects/RPi/patches/kodi/0003-CVideoLayerBridgeDRMPRIME-add-colourspace-connector-.patch index aee984b49b..a5bd664326 100644 --- a/projects/RPi/patches/kodi/0003-CVideoLayerBridgeDRMPRIME-add-colourspace-connector-.patch +++ b/projects/RPi/patches/kodi/0003-CVideoLayerBridgeDRMPRIME-add-colourspace-connector-.patch @@ -1,7 +1,7 @@ From e93a6bc009e660db2746b529149bac8d2e3ae122 Mon Sep 17 00:00:00 2001 From: Lukas Rusak 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 --- diff --git a/projects/RPi/patches/kodi/0004-DVDVideoCodecDRMPRIME-use-AV_PIX_FMT_DRM_PRIME-for-f.patch b/projects/RPi/patches/kodi/0004-DVDVideoCodecDRMPRIME-use-AV_PIX_FMT_DRM_PRIME-for-f.patch new file mode 100644 index 0000000000..33ebed2e76 --- /dev/null +++ b/projects/RPi/patches/kodi/0004-DVDVideoCodecDRMPRIME-use-AV_PIX_FMT_DRM_PRIME-for-f.patch @@ -0,0 +1,42 @@ +From 8d00033fc98dd0c2570b6b933b4313e7b238b6d0 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +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(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 +