[x265] [PATCH 2 of 7] frameEncoder: copy param state for each FE and worker thread from input frame
Steve Borho
steve at borho.org
Tue May 5 18:05:31 CEST 2015
On Tue, May 5, 2015 at 10:51 AM, <aarthi at multicorewareinc.com> wrote:
> # HG changeset patch
> # User Aarthi Thirumalai
> # Date 1427281243 -19800
> # Wed Mar 25 16:30:43 2015 +0530
> # Node ID 084e7ed97059873201ccb4762eeb9d3a55dd3238
> # Parent fc12a89d17cbf231f63e7eeba4a9112d1cf0fe17
> frameEncoder: copy param state for each FE and worker thread from input frame
>
> Each FrameEncoder gets the param from the current frame it is processing and all the worker threads
> /bondedgrp worker threads sets the param to it's parent FrameEncoder instance.
>
> diff -r fc12a89d17cb -r 084e7ed97059 source/encoder/analysis.cpp
> --- a/source/encoder/analysis.cpp Wed Mar 25 16:28:53 2015 +0530
> +++ b/source/encoder/analysis.cpp Wed Mar 25 16:30:43 2015 +0530
> @@ -348,6 +348,7 @@
> ScopedElapsedTime pmodeTime(master.m_stats[fe].pmodeTime);
> #endif
> ProfileScopeEvent(pmode);
> + master.m_tld[workerThreadId].analysis.m_param = master.m_param;
this belongs with the other slave setup in processPmode()
> master.processPmode(*this, master.m_tld[workerThreadId].analysis);
> }
>
> diff -r fc12a89d17cb -r 084e7ed97059 source/encoder/frameencoder.cpp
> --- a/source/encoder/frameencoder.cpp Wed Mar 25 16:28:53 2015 +0530
> +++ b/source/encoder/frameencoder.cpp Wed Mar 25 16:30:43 2015 +0530
> @@ -217,6 +217,7 @@
> curFrame->m_encData->m_frameEncoderID = m_jpId;
> curFrame->m_encData->m_jobProvider = this;
> curFrame->m_encData->m_slice->m_mref = m_mref;
> + this->m_param = curFrame->m_param;
I don't think we use 'this->' anywhere in the libx265 code.
> if (!m_cuGeoms)
> {
> @@ -793,7 +794,7 @@
> {
> uint32_t row = (uint32_t)intRow;
> CTURow& curRow = m_rows[row];
> -
> + tld.analysis.m_param = m_param;
> if (m_param->bEnableWavefront)
> {
> ScopedLock self(curRow.lock);
> @@ -1092,7 +1093,7 @@
> tryWakeOne();
> }
> }
> -
> + tld.analysis.m_param = NULL;
> curRow.busy = false;
>
> if (ATOMIC_INC(&m_completionCount) == 2 * (int)m_numRows)
> diff -r fc12a89d17cb -r 084e7ed97059 source/encoder/search.cpp
> --- a/source/encoder/search.cpp Wed Mar 25 16:28:53 2015 +0530
> +++ b/source/encoder/search.cpp Wed Mar 25 16:30:43 2015 +0530
> @@ -1897,6 +1897,7 @@
> ScopedElapsedTime pmeTime(master.m_stats[fe].pmeTime);
> #endif
> ProfileScopeEvent(pme);
> + master.m_tld[workerThreadId].analysis.m_param = master.m_param;
ditto for processPME
> master.processPME(*this, master.m_tld[workerThreadId].analysis);
> }
>
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
--
Steve Borho
More information about the x265-devel
mailing list