From 9ecea4bd39c0e85fb8b216300f3570a7859a2aab Mon Sep 17 00:00:00 2001 From: Alberto Gonzalez Date: Fri, 3 Mar 2023 20:27:28 +0100 Subject: [PATCH] =?UTF-8?q?Commit=20n=C2=BA=202=20(03-03-2023)=20---------?= =?UTF-8?q?------------------------------------------------------=20Comien?= =?UTF-8?q?zo=20del=20m=C3=A9todo=20copia=20de=20EncCu=20para=20EncSlice.c?= =?UTF-8?q?pp.=20Se=20han=20copiado=20los=20atributos:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - m_bestModeUpdated - m_ctxBuffer - m_CurrCtx - m_ctxPool - m_cuChromaQpOffsetIdxPlus1 - m_unitPool --------------------------------------------------------------- Queda continuar en la lĂ­nea 6120 de EncCu.cpp con el resto de atributos de EncCu. --- source/Lib/EncoderLib/EncCu.cpp | 20 ++++++++++++++++---- source/Lib/EncoderLib/EncCu.h | 6 +++--- source/Lib/EncoderLib/EncSlice.cpp | 2 ++ 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/source/Lib/EncoderLib/EncCu.cpp b/source/Lib/EncoderLib/EncCu.cpp index 793147b..82baa81 100644 --- a/source/Lib/EncoderLib/EncCu.cpp +++ b/source/Lib/EncoderLib/EncCu.cpp @@ -6099,13 +6099,25 @@ EncCu EncCu::copy(EncCu& original) { EncCu copy = *(new EncCu); copy.m_bestModeUpdated = original.m_bestModeUpdated; - std::vector m_ctxBufferCopia(original.m_ctxBuffer); - copy.m_ctxBuffer = m_ctxBufferCopia; + std::vector m_ctxBufferCopy(original.m_ctxBuffer); + copy.m_ctxBuffer = m_ctxBufferCopy; if (original.m_CurrCtx != NULL) /*Puede ser nulo*/ { - copy.m_CurrCtx = new CtxPair(*original.m_CurrCtx); + CtxPair m_CurrCtxCopy(*original.m_CurrCtx); + copy.m_CurrCtx = &m_CurrCtxCopy; } - copy.m_ctxPool = new CtxPool(*original.m_ctxPool); + else { + copy.m_CurrCtx = NULL; + } + CtxPool m_ctxPoolCopy(*original.m_ctxPool); + copy.m_ctxPool = &m_ctxPoolCopy; + + copy.m_cuChromaQpOffsetIdxPlus1 = original.m_cuChromaQpOffsetIdxPlus1; + + XuPool m_unitPoolCopy(original.m_unitPool); + copy.m_unitPool = m_unitPoolCopy; + + //@TODO return copy; } diff --git a/source/Lib/EncoderLib/EncCu.h b/source/Lib/EncoderLib/EncCu.h index 6908dc7..189e757 100644 --- a/source/Lib/EncoderLib/EncCu.h +++ b/source/Lib/EncoderLib/EncCu.h @@ -235,12 +235,12 @@ public: std::vector m_ctxBuffer; //copy checked CtxPair* m_CurrCtx; //copy not checked because null - CtxPool *m_ctxPool; + CtxPool *m_ctxPool; //copy checked // Data : encoder control - int m_cuChromaQpOffsetIdxPlus1; // if 0, then cu_chroma_qp_offset_flag will be 0, otherwise cu_chroma_qp_offset_flag will be 1. + int m_cuChromaQpOffsetIdxPlus1; // if 0, then cu_chroma_qp_offset_flag will be 0, otherwise cu_chroma_qp_offset_flag will be 1. copy checked - XuPool m_unitPool; + XuPool m_unitPool; //copy not PelUnitBufPool m_pelUnitBufPool; CodingStructure ***m_pTempCS; diff --git a/source/Lib/EncoderLib/EncSlice.cpp b/source/Lib/EncoderLib/EncSlice.cpp index 052138d..5a00bf3 100644 --- a/source/Lib/EncoderLib/EncSlice.cpp +++ b/source/Lib/EncoderLib/EncSlice.cpp @@ -1897,6 +1897,8 @@ void EncSlice::encodeCtus( Picture* pcPic, const bool bCompressEntireSlice, cons EncCu m_pcCuEncoder_copy = m_pcCuEncoder->copy(*m_pcCuEncoder); //END ALBERTO m_pcCuEncoder->compressCtu(cs, ctuArea, ctuRsAddr, prevQP, currQP); + + bool stopDebugger = true; #if GREEN_METADATA_SEI_ENABLED FeatureCounterStruct m_featureCounter = pcPic->getFeatureCounter(); countFeatures(m_featureCounter, cs,ctuArea); -- 2.24.1