*** TEncTop_orig.cpp 2013-08-20 09:46:04.000000000 +0100 --- TEncTop.cpp 2013-08-20 09:51:26.000000000 +0100 *************** *** 441,452 **** Pel * pcTopFieldU = pcTopField->getPicYuvOrg()->getCbAddr(); Pel * pcTopFieldV = pcTopField->getPicYuvOrg()->getCrAddr(); - // compute image characteristics - if ( getUseAdaptiveQP() ) - { - m_cPreanalyzer.xPreanalyze( dynamic_cast( pcTopField ) ); - } - /* -- Defield -- */ bool isTop = isTff; --- 441,446 ---- *************** *** 455,460 **** --- 449,460 ---- separateFields(PicBufU + nPadChroma + (nStride >> 1)*nPadChroma, pcTopFieldU, nStride >> 1, nWidth >> 1, nHeight >> 1, isTop); separateFields(PicBufV + nPadChroma + (nStride >> 1)*nPadChroma, pcTopFieldV, nStride >> 1, nWidth >> 1, nHeight >> 1, isTop); + // compute image characteristics + if ( getUseAdaptiveQP() ) + { + m_cPreanalyzer.xPreanalyze( dynamic_cast( pcTopField ) ); + } + } if (m_iPOCLast == 0) // compress field 0 *************** *** 504,515 **** Pel * pcBottomFieldU = pcBottomField->getPicYuvOrg()->getCbAddr(); Pel * pcBottomFieldV = pcBottomField->getPicYuvOrg()->getCrAddr(); - // Compute image characteristics - if ( getUseAdaptiveQP() ) - { - m_cPreanalyzer.xPreanalyze( dynamic_cast( pcBottomField ) ); - } - /* -- Defield -- */ bool isTop = !isTff; --- 504,509 ---- *************** *** 517,523 **** --- 511,524 ---- separateFields(PicBufY + nPadLuma + nStride*nPadLuma, pcBottomFieldY, nStride, nWidth, nHeight, isTop); separateFields(PicBufU + nPadChroma + (nStride >> 1)*nPadChroma, pcBottomFieldU, nStride >> 1, nWidth >> 1, nHeight >> 1, isTop); separateFields(PicBufV + nPadChroma + (nStride >> 1)*nPadChroma, pcBottomFieldV, nStride >> 1, nWidth >> 1, nHeight >> 1, isTop); + + // Compute image characteristics + if ( getUseAdaptiveQP() ) + { + m_cPreanalyzer.xPreanalyze( dynamic_cast( pcBottomField ) ); + } + } if ( ( !(m_iNumPicRcvd) || (!flush && m_iPOCLast != 1 && m_iNumPicRcvd != m_iGOPSize && m_iGOPSize)) )