[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