diff options
author | Bradley Sepos <[email protected]> | 2020-01-02 17:59:26 -0500 |
---|---|---|
committer | Bradley Sepos <[email protected]> | 2020-01-02 17:59:26 -0500 |
commit | 9b9a4fc27478c7e0a9fdc4094116b8a338433f66 (patch) | |
tree | 771b228c9633339acc7e217d609f3349fa101027 | |
parent | 638558a6a37adf684f0370559a0bc10e2e835a2e (diff) |
contrib: Add x265 patch to prevent VBV macroblocking at end.
-rw-r--r-- | contrib/x265/A03-vbv-macroblocking.patch | 24 | ||||
-rw-r--r-- | contrib/x265_10bit/A03-vbv-macroblocking.patch | 24 | ||||
-rw-r--r-- | contrib/x265_12bit/A03-vbv-macroblocking.patch | 24 | ||||
-rw-r--r-- | contrib/x265_8bit/A03-vbv-macroblocking.patch | 24 |
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) |