On Thu, May 18, 2017 at 6:54 PM, <[email protected]> wrote:
> # HG changeset patch > # User Gopi Satykrishna Akisetty <[email protected]> > # Date 1495026531 -19800 > # Wed May 17 18:38:51 2017 +0530 > # Node ID afdca6b5f90d1e4708466671871d378952e95fbc > # Parent 4b846d3bac97134b8a91e3569bcb9f981b47ccc0 > rc: Use RcStats information if available from pic_in > Pushed along with previous patch to default branch. > > diff -r 4b846d3bac97 -r afdca6b5f90d source/CMakeLists.txt > --- a/source/CMakeLists.txt Wed May 17 17:27:41 2017 +0530 > +++ b/source/CMakeLists.txt Wed May 17 18:38:51 2017 +0530 > @@ -29,7 +29,7 @@ > option(STATIC_LINK_CRT "Statically link C runtime for release builds" OFF) > mark_as_advanced(FPROFILE_USE FPROFILE_GENERATE NATIVE_BUILD) > # X265_BUILD must be incremented each time the public API is changed > -set(X265_BUILD 117) > +set(X265_BUILD 118) > configure_file("${PROJECT_SOURCE_DIR}/x265.def.in" > "${PROJECT_BINARY_DIR}/x265.def") > configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in" > diff -r 4b846d3bac97 -r afdca6b5f90d source/common/param.cpp > --- a/source/common/param.cpp Wed May 17 17:27:41 2017 +0530 > +++ b/source/common/param.cpp Wed May 17 18:38:51 2017 +0530 > @@ -276,6 +276,7 @@ > param->toneMapFile = NULL; > param->bDhdr10opt = 0; > param->bCTUInfo = 0; > + param->bUseRcStats = 0; > } > > int x265_param_default_preset(x265_param* param, const char* preset, > const char* tune) > diff -r 4b846d3bac97 -r afdca6b5f90d source/encoder/encoder.cpp > --- a/source/encoder/encoder.cpp Wed May 17 17:27:41 2017 +0530 > +++ b/source/encoder/encoder.cpp Wed May 17 18:38:51 2017 +0530 > @@ -772,6 +772,32 @@ > inFrame->m_lowres.bScenecut = !!inFrame->m_analysisData. > bScenecut; > inFrame->m_lowres.satdCost = inFrame->m_analysisData. > satdCost; > } > + if (m_param->bUseRcStats && pic_in->rcData) > + { > + RcStats* rc = (RcStats*)pic_in->rcData; > + m_rateControl->m_accumPQp = rc->cumulativePQp; > + m_rateControl->m_accumPNorm = rc->cumulativePNorm; > + m_rateControl->m_isNextGop = true; > + for (int j = 0; j < 3; j++) > + m_rateControl->m_lastQScaleFor[j] = rc->lastQScaleFor[j]; > + m_rateControl->m_wantedBitsWindow = rc->wantedBitsWindow; > + m_rateControl->m_cplxrSum = rc->cplxrSum; > + m_rateControl->m_totalBits = rc->totalBits; > + m_rateControl->m_encodedBits = rc->encodedBits; > + m_rateControl->m_shortTermCplxSum = rc->shortTermCplxSum; > + m_rateControl->m_shortTermCplxCount = rc->shortTermCplxCount; > + if (m_rateControl->m_isVbv) > + { > + m_rateControl->m_bufferFillFinal = rc->bufferFillFinal; > + for (int i = 0; i < 4; i++) > + { > + m_rateControl->m_pred[i].coeff = rc->coeff[i]; > + m_rateControl->m_pred[i].count = rc->count[i]; > + m_rateControl->m_pred[i].offset = rc->offset[i]; > + } > + } > + m_param->bUseRcStats = 0; > + } > if (m_reconfigureRc) > inFrame->m_reconfigureRc = true; > > diff -r 4b846d3bac97 -r afdca6b5f90d source/x265.h > --- a/source/x265.h Wed May 17 17:27:41 2017 +0530 > +++ b/source/x265.h Wed May 17 18:38:51 2017 +0530 > @@ -1408,6 +1408,9 @@ > > /* Determine how x265 react to the content information recieved > through the API */ > int bCTUInfo; > + > + /* Use ratecontrol statistics from pic_in, if available*/ > + int bUseRcStats; > } x265_param; > /* x265_param_alloc: > * Allocates an x265_param instance. The returned param structure is not > _______________________________________________ > x265-devel mailing list > [email protected] > https://mailman.videolan.org/listinfo/x265-devel >
_______________________________________________ x265-devel mailing list [email protected] https://mailman.videolan.org/listinfo/x265-devel
