summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBradley Sepos <[email protected]>2020-01-02 17:59:26 -0500
committerBradley Sepos <[email protected]>2020-01-02 17:59:26 -0500
commit9b9a4fc27478c7e0a9fdc4094116b8a338433f66 (patch)
tree771b228c9633339acc7e217d609f3349fa101027
parent638558a6a37adf684f0370559a0bc10e2e835a2e (diff)
contrib: Add x265 patch to prevent VBV macroblocking at end.
-rw-r--r--contrib/x265/A03-vbv-macroblocking.patch24
-rw-r--r--contrib/x265_10bit/A03-vbv-macroblocking.patch24
-rw-r--r--contrib/x265_12bit/A03-vbv-macroblocking.patch24
-rw-r--r--contrib/x265_8bit/A03-vbv-macroblocking.patch24
4 files changed, 96 insertions, 0 deletions
diff --git a/contrib/x265/A03-vbv-macroblocking.patch b/contrib/x265/A03-vbv-macroblocking.patch
new file mode 100644
index 000000000..f5a8b8644
--- /dev/null
+++ b/contrib/x265/A03-vbv-macroblocking.patch
@@ -0,0 +1,24 @@
+# HG changeset patch
+# User Kirithika <[email protected]>
+# Date 1577092232 -19800
+# Branch Release_3.2
+# Node ID b4b2ecac21f666af2664b679c4122a930c07475b
+# Parent 09f3b1d9349ac84d74f14f99297f9418bc8b2b02
+Fix VBV macroblocking that comes up with the last Intra frame
+
+This patch enables the VBV Lookahead computation of an I Slice to consider the
+last MiniGop frames available in the lookahead,hence fixing the VBV macroblocking
+issue that comes due to lack of frames in the Lookahead at the end of the video.
+
+diff --git a/source/encoder/slicetype.cpp b/source/encoder/slicetype.cpp
+--- a/source/encoder/slicetype.cpp
++++ b/source/encoder/slicetype.cpp
+@@ -1748,7 +1748,7 @@
+ if (m_param->bBPyramid && curNonB - prevNonB > 1)
+ curBRef = (prevNonB + curNonB + 1) / 2;
+ int miniGopEnd = keyframe ? prevNonB : curNonB;
+- while (curNonB < numFrames + !keyframe)
++ while (curNonB <= numFrames)
+ {
+ /* P/I cost: This shouldn't include the cost of nextNonB */
+ if (nextNonB != curNonB)
diff --git a/contrib/x265_10bit/A03-vbv-macroblocking.patch b/contrib/x265_10bit/A03-vbv-macroblocking.patch
new file mode 100644
index 000000000..f5a8b8644
--- /dev/null
+++ b/contrib/x265_10bit/A03-vbv-macroblocking.patch
@@ -0,0 +1,24 @@
+# HG changeset patch
+# User Kirithika <[email protected]>
+# Date 1577092232 -19800
+# Branch Release_3.2
+# Node ID b4b2ecac21f666af2664b679c4122a930c07475b
+# Parent 09f3b1d9349ac84d74f14f99297f9418bc8b2b02
+Fix VBV macroblocking that comes up with the last Intra frame
+
+This patch enables the VBV Lookahead computation of an I Slice to consider the
+last MiniGop frames available in the lookahead,hence fixing the VBV macroblocking
+issue that comes due to lack of frames in the Lookahead at the end of the video.
+
+diff --git a/source/encoder/slicetype.cpp b/source/encoder/slicetype.cpp
+--- a/source/encoder/slicetype.cpp
++++ b/source/encoder/slicetype.cpp
+@@ -1748,7 +1748,7 @@
+ if (m_param->bBPyramid && curNonB - prevNonB > 1)
+ curBRef = (prevNonB + curNonB + 1) / 2;
+ int miniGopEnd = keyframe ? prevNonB : curNonB;
+- while (curNonB < numFrames + !keyframe)
++ while (curNonB <= numFrames)
+ {
+ /* P/I cost: This shouldn't include the cost of nextNonB */
+ if (nextNonB != curNonB)
diff --git a/contrib/x265_12bit/A03-vbv-macroblocking.patch b/contrib/x265_12bit/A03-vbv-macroblocking.patch
new file mode 100644
index 000000000..f5a8b8644
--- /dev/null
+++ b/contrib/x265_12bit/A03-vbv-macroblocking.patch
@@ -0,0 +1,24 @@
+# HG changeset patch
+# User Kirithika <[email protected]>
+# Date 1577092232 -19800
+# Branch Release_3.2
+# Node ID b4b2ecac21f666af2664b679c4122a930c07475b
+# Parent 09f3b1d9349ac84d74f14f99297f9418bc8b2b02
+Fix VBV macroblocking that comes up with the last Intra frame
+
+This patch enables the VBV Lookahead computation of an I Slice to consider the
+last MiniGop frames available in the lookahead,hence fixing the VBV macroblocking
+issue that comes due to lack of frames in the Lookahead at the end of the video.
+
+diff --git a/source/encoder/slicetype.cpp b/source/encoder/slicetype.cpp
+--- a/source/encoder/slicetype.cpp
++++ b/source/encoder/slicetype.cpp
+@@ -1748,7 +1748,7 @@
+ if (m_param->bBPyramid && curNonB - prevNonB > 1)
+ curBRef = (prevNonB + curNonB + 1) / 2;
+ int miniGopEnd = keyframe ? prevNonB : curNonB;
+- while (curNonB < numFrames + !keyframe)
++ while (curNonB <= numFrames)
+ {
+ /* P/I cost: This shouldn't include the cost of nextNonB */
+ if (nextNonB != curNonB)
diff --git a/contrib/x265_8bit/A03-vbv-macroblocking.patch b/contrib/x265_8bit/A03-vbv-macroblocking.patch
new file mode 100644
index 000000000..f5a8b8644
--- /dev/null
+++ b/contrib/x265_8bit/A03-vbv-macroblocking.patch
@@ -0,0 +1,24 @@
+# HG changeset patch
+# User Kirithika <[email protected]>
+# Date 1577092232 -19800
+# Branch Release_3.2
+# Node ID b4b2ecac21f666af2664b679c4122a930c07475b
+# Parent 09f3b1d9349ac84d74f14f99297f9418bc8b2b02
+Fix VBV macroblocking that comes up with the last Intra frame
+
+This patch enables the VBV Lookahead computation of an I Slice to consider the
+last MiniGop frames available in the lookahead,hence fixing the VBV macroblocking
+issue that comes due to lack of frames in the Lookahead at the end of the video.
+
+diff --git a/source/encoder/slicetype.cpp b/source/encoder/slicetype.cpp
+--- a/source/encoder/slicetype.cpp
++++ b/source/encoder/slicetype.cpp
+@@ -1748,7 +1748,7 @@
+ if (m_param->bBPyramid && curNonB - prevNonB > 1)
+ curBRef = (prevNonB + curNonB + 1) / 2;
+ int miniGopEnd = keyframe ? prevNonB : curNonB;
+- while (curNonB < numFrames + !keyframe)
++ while (curNonB <= numFrames)
+ {
+ /* P/I cost: This shouldn't include the cost of nextNonB */
+ if (nextNonB != curNonB)