On Wed, Oct 4, 2017 at 1:10 PM, Divya Manivannan <[email protected] > wrote:
> # HG changeset patch > # User Divya Manivannan <[email protected]> > # Date 1506315677 -19800 > # Mon Sep 25 10:31:17 2017 +0530 > # Node ID 623fd118479831744b7b114bdce3f0026c006f68 > # Parent 30998ebc3a3b7503f62e9ed520d7c67acca92b33 > Fix dts calculation when disabling lookahead in analysis load mode > Pushed to default branch > > diff -r 30998ebc3a3b -r 623fd1184798 source/encoder/encoder.cpp > --- a/source/encoder/encoder.cpp Tue Oct 03 19:54:22 2017 +0530 > +++ b/source/encoder/encoder.cpp Mon Sep 25 10:31:17 2017 +0530 > @@ -911,6 +911,7 @@ > if (m_param->scaleFactor) > factor = m_param->scaleFactor * 2; > pic_out->analysisData.numCuInHeight = > outFrame->m_analysisData.numCuInHeight; > + pic_out->analysisData.lookahead.dts = > outFrame->m_dts; > pic_out->analysisData.satdCost *= factor; > pic_out->analysisData.lookahead.keyframe = > outFrame->m_lowres.bKeyframe; > pic_out->analysisData.lookahead.lastMiniGopBFrame > = outFrame->m_lowres.bLastMiniGopBFrame; > @@ -1099,6 +1100,7 @@ > } > if (m_param->analysisReuseMode == X265_ANALYSIS_LOAD && > m_param->bDisableLookahead) > { > + frameEnc->m_dts = frameEnc->m_analysisData.lookahead.dts; > for (uint32_t index = 0; index < > frameEnc->m_analysisData.numCuInHeight; > index++) > { > frameEnc->m_encData->m_rowStat[index].intraSatdForVbv > = frameEnc->m_analysisData.lookahead.intraSatdForVbv[index]; > @@ -1162,16 +1164,19 @@ > frameEnc->m_encData->m_slice->m_iNumRPSInSPS = > m_sps.spsrpsNum; > > curEncoder->m_rce.encodeOrder = frameEnc->m_encodeOrder = > m_encodedFrameNum++; > - if (m_bframeDelay) > + if (m_param->analysisReuseMode != X265_ANALYSIS_LOAD || > !m_param->bDisableLookahead) > { > - int64_t *prevReorderedPts = m_prevReorderedPts; > - frameEnc->m_dts = m_encodedFrameNum > m_bframeDelay > - ? prevReorderedPts[(m_encodedFrameNum - > m_bframeDelay) % m_bframeDelay] > - : frameEnc->m_reorderedPts - m_bframeDelayTime; > - prevReorderedPts[m_encodedFrameNum % m_bframeDelay] = > frameEnc->m_reorderedPts; > + if (m_bframeDelay) > + { > + int64_t *prevReorderedPts = m_prevReorderedPts; > + frameEnc->m_dts = m_encodedFrameNum > m_bframeDelay > + ? prevReorderedPts[(m_encodedFrameNum - > m_bframeDelay) % m_bframeDelay] > + : frameEnc->m_reorderedPts - m_bframeDelayTime; > + prevReorderedPts[m_encodedFrameNum % m_bframeDelay] > = frameEnc->m_reorderedPts; > + } > + else > + frameEnc->m_dts = frameEnc->m_reorderedPts; > } > - else > - frameEnc->m_dts = frameEnc->m_reorderedPts; > > /* Allocate analysis data before encode in save mode. This is > allocated in frameEnc */ > if (m_param->analysisReuseMode == X265_ANALYSIS_SAVE) > diff -r 30998ebc3a3b -r 623fd1184798 source/x265.h > --- a/source/x265.h Tue Oct 03 19:54:22 2017 +0530 > +++ b/source/x265.h Mon Sep 25 10:31:17 2017 +0530 > @@ -100,6 +100,7 @@ > int keyframe; > int lastMiniGopBFrame; > int plannedType[X265_LOOKAHEAD_MAX + 1]; > + int64_t dts; > } x265_lookahead_data; > > /* Stores all analysis data for a single frame */ > > _______________________________________________ > 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
