Void MbData::switchMotionRefinement() { ROFVS( m_bHasMotionRefinement ); // switch mb_type MbMode eMbModeTemp = m_eMbMode; m_eMbMode = m_eMbModeBase; m_eMbModeBase = eMbModeTemp; // switch sub-mb_type BlkMode aBlkModeTemp[4]; ::memcpy( aBlkModeTemp, m_aBlkMode, sizeof( m_aBlkMode ) ); ::memcpy( m_aBlkMode, m_aBlkModeBase, sizeof( m_aBlkMode ) ); ::memcpy( m_aBlkModeBase, aBlkModeTemp, sizeof( m_aBlkMode ) ); // switch motion vectors for( UInt ui = 0; ui < 2; ui++ ) { MbMotionData cMbMotionDataTemp; cMbMotionDataTemp.copyFrom( *m_apcMbMotionData[ui] ); m_apcMbMotionData[ui]->copyFrom( *m_apcMbMotionDataBase[ui] ); m_apcMbMotionDataBase[ui]->copyFrom( cMbMotionDataTemp ); } }
Void MbDataStruct::clearIntraPredictionModes( Bool bAll ) { ::memset( m_ascIPredMode, DC_PRED, sizeof(UChar)* 16 ); ROFVS( bAll ); m_ucChromaPredMode = 0; }