From 3856784971bfb3c7485a79cce0853b846159150e Mon Sep 17 00:00:00 2001 From: Nomis101 Date: Mon, 25 Nov 2019 23:00:32 +0100 Subject: x265: Fix limit-tu bug in loading co-located CU's TU depth (cherry picked from commit e6478f079c5b0ed09378a882019b0b75cfa473b3) --- contrib/x265/A01-limit-tu_fix.patch | 26 ++++++++++++++++++++++++++ contrib/x265_10bit/A01-limit-tu_fix.patch | 26 ++++++++++++++++++++++++++ contrib/x265_12bit/A01-limit-tu_fix.patch | 26 ++++++++++++++++++++++++++ contrib/x265_8bit/A01-limit-tu_fix.patch | 26 ++++++++++++++++++++++++++ 4 files changed, 104 insertions(+) create mode 100644 contrib/x265/A01-limit-tu_fix.patch create mode 100644 contrib/x265_10bit/A01-limit-tu_fix.patch create mode 100644 contrib/x265_12bit/A01-limit-tu_fix.patch create mode 100644 contrib/x265_8bit/A01-limit-tu_fix.patch diff --git a/contrib/x265/A01-limit-tu_fix.patch b/contrib/x265/A01-limit-tu_fix.patch new file mode 100644 index 000000000..435e3bda7 --- /dev/null +++ b/contrib/x265/A01-limit-tu_fix.patch @@ -0,0 +1,26 @@ +# HG changeset patch +# User Aruna Matheswaran +# Date 1573207250 -19800 +# Branch Release_3.2 +# Node ID 09f3b1d9349ac84d74f14f99297f9418bc8b2b02 +# Parent b5c86a64bbbede216b25092def72272ecde5523a +limit-tu: Fix bug in loading co-located CU's TU depth + +diff --git a/source/encoder/analysis.cpp b/source/encoder/analysis.cpp +--- a/source/encoder/analysis.cpp ++++ b/source/encoder/analysis.cpp +@@ -375,12 +375,12 @@ + CUData* neighbourCU; + uint8_t count = 0; + int32_t maxTUDepth = -1; +- neighbourCU = m_slice->m_refFrameList[0][0]->m_encData->m_picCTU; ++ neighbourCU = &m_slice->m_refFrameList[0][0]->m_encData->m_picCTU[parentCTU.m_cuAddr]; + predDepth += neighbourCU->m_refTuDepth[cuGeom.geomRecurId]; + count++; + if (m_slice->isInterB()) + { +- neighbourCU = m_slice->m_refFrameList[1][0]->m_encData->m_picCTU; ++ neighbourCU = &m_slice->m_refFrameList[1][0]->m_encData->m_picCTU[parentCTU.m_cuAddr]; + predDepth += neighbourCU->m_refTuDepth[cuGeom.geomRecurId]; + count++; + } diff --git a/contrib/x265_10bit/A01-limit-tu_fix.patch b/contrib/x265_10bit/A01-limit-tu_fix.patch new file mode 100644 index 000000000..435e3bda7 --- /dev/null +++ b/contrib/x265_10bit/A01-limit-tu_fix.patch @@ -0,0 +1,26 @@ +# HG changeset patch +# User Aruna Matheswaran +# Date 1573207250 -19800 +# Branch Release_3.2 +# Node ID 09f3b1d9349ac84d74f14f99297f9418bc8b2b02 +# Parent b5c86a64bbbede216b25092def72272ecde5523a +limit-tu: Fix bug in loading co-located CU's TU depth + +diff --git a/source/encoder/analysis.cpp b/source/encoder/analysis.cpp +--- a/source/encoder/analysis.cpp ++++ b/source/encoder/analysis.cpp +@@ -375,12 +375,12 @@ + CUData* neighbourCU; + uint8_t count = 0; + int32_t maxTUDepth = -1; +- neighbourCU = m_slice->m_refFrameList[0][0]->m_encData->m_picCTU; ++ neighbourCU = &m_slice->m_refFrameList[0][0]->m_encData->m_picCTU[parentCTU.m_cuAddr]; + predDepth += neighbourCU->m_refTuDepth[cuGeom.geomRecurId]; + count++; + if (m_slice->isInterB()) + { +- neighbourCU = m_slice->m_refFrameList[1][0]->m_encData->m_picCTU; ++ neighbourCU = &m_slice->m_refFrameList[1][0]->m_encData->m_picCTU[parentCTU.m_cuAddr]; + predDepth += neighbourCU->m_refTuDepth[cuGeom.geomRecurId]; + count++; + } diff --git a/contrib/x265_12bit/A01-limit-tu_fix.patch b/contrib/x265_12bit/A01-limit-tu_fix.patch new file mode 100644 index 000000000..435e3bda7 --- /dev/null +++ b/contrib/x265_12bit/A01-limit-tu_fix.patch @@ -0,0 +1,26 @@ +# HG changeset patch +# User Aruna Matheswaran +# Date 1573207250 -19800 +# Branch Release_3.2 +# Node ID 09f3b1d9349ac84d74f14f99297f9418bc8b2b02 +# Parent b5c86a64bbbede216b25092def72272ecde5523a +limit-tu: Fix bug in loading co-located CU's TU depth + +diff --git a/source/encoder/analysis.cpp b/source/encoder/analysis.cpp +--- a/source/encoder/analysis.cpp ++++ b/source/encoder/analysis.cpp +@@ -375,12 +375,12 @@ + CUData* neighbourCU; + uint8_t count = 0; + int32_t maxTUDepth = -1; +- neighbourCU = m_slice->m_refFrameList[0][0]->m_encData->m_picCTU; ++ neighbourCU = &m_slice->m_refFrameList[0][0]->m_encData->m_picCTU[parentCTU.m_cuAddr]; + predDepth += neighbourCU->m_refTuDepth[cuGeom.geomRecurId]; + count++; + if (m_slice->isInterB()) + { +- neighbourCU = m_slice->m_refFrameList[1][0]->m_encData->m_picCTU; ++ neighbourCU = &m_slice->m_refFrameList[1][0]->m_encData->m_picCTU[parentCTU.m_cuAddr]; + predDepth += neighbourCU->m_refTuDepth[cuGeom.geomRecurId]; + count++; + } diff --git a/contrib/x265_8bit/A01-limit-tu_fix.patch b/contrib/x265_8bit/A01-limit-tu_fix.patch new file mode 100644 index 000000000..435e3bda7 --- /dev/null +++ b/contrib/x265_8bit/A01-limit-tu_fix.patch @@ -0,0 +1,26 @@ +# HG changeset patch +# User Aruna Matheswaran +# Date 1573207250 -19800 +# Branch Release_3.2 +# Node ID 09f3b1d9349ac84d74f14f99297f9418bc8b2b02 +# Parent b5c86a64bbbede216b25092def72272ecde5523a +limit-tu: Fix bug in loading co-located CU's TU depth + +diff --git a/source/encoder/analysis.cpp b/source/encoder/analysis.cpp +--- a/source/encoder/analysis.cpp ++++ b/source/encoder/analysis.cpp +@@ -375,12 +375,12 @@ + CUData* neighbourCU; + uint8_t count = 0; + int32_t maxTUDepth = -1; +- neighbourCU = m_slice->m_refFrameList[0][0]->m_encData->m_picCTU; ++ neighbourCU = &m_slice->m_refFrameList[0][0]->m_encData->m_picCTU[parentCTU.m_cuAddr]; + predDepth += neighbourCU->m_refTuDepth[cuGeom.geomRecurId]; + count++; + if (m_slice->isInterB()) + { +- neighbourCU = m_slice->m_refFrameList[1][0]->m_encData->m_picCTU; ++ neighbourCU = &m_slice->m_refFrameList[1][0]->m_encData->m_picCTU[parentCTU.m_cuAddr]; + predDepth += neighbourCU->m_refTuDepth[cuGeom.geomRecurId]; + count++; + } -- cgit v1.2.3