xConfirmPara( (m_MSBExtendedBitDepth[CHANNEL_TYPE_LUMA ] < m_inputBitDepth[CHANNEL_TYPE_LUMA ]), "MSB-extended bit depth for luma channel (--MSBExtendedBitDepth) must be greater than or equal to input bit depth for luma channel (--InputBitDepth)" );
xConfirmPara( (m_MSBExtendedBitDepth[CHANNEL_TYPE_CHROMA] < m_inputBitDepth[CHANNEL_TYPE_CHROMA]), "MSB-extended bit depth for chroma channel (--MSBExtendedBitDepthC) must be greater than or equal to input bit depth for chroma channel (--InputBitDepthC)" );
xConfirmPara( m_uiDeltaQpRD > 0, "Rate control cannot be used together with slice level multiple-QP optimization!\n" );
#if DPB_ENCODER_USAGE_CHECK
if ((m_RCCpbSaturationEnabled) && profileLevelTierFeatures.getCpbSizeInBits()!=0)
{
xConfirmPara(m_RCCpbSize > profileLevelTierFeatures.getCpbSizeInBits(), "RCCpbSize should be smaller than or equal to Max CPB size according to tier and level");
#else
if ((m_RCCpbSaturationEnabled) && (m_level!=Level::NONE) && (m_profile!=Profile::NONE))
xConfirmPara(m_RCCpbSize > g_uiMaxCpbSize[m_levelTier][uiLevelIdx], "RCCpbSize should be smaller than or equal to Max CPB size according to tier and level");
#endif
xConfirmPara(m_RCInitialCpbFullness > 1, "RCInitialCpbFullness should be smaller than or equal to 1");
Int rplPoc=m_GOPList[gopEntry].m_referencePics[i]+m_GOPList[gopEntry].m_POC;
(*pOs) << " r" << std::setw(3) << rplPoc;
}
}
Int numInDPB=m_GOPList[gopEntry].m_numRefPics + 1; // 1 additional one required for the frame currently being decoded.
// When decoding gopEntry N, the decoder will be outputing POC N-minimumOffset, and we must make sure all POCs in the range (POC N-minimumOffset to POC N) are allocated space in the DPB.
// When decoding gopEntry N+minimumOffset, the decoder will be outputing POC N
{Profile::MAIN10,"Main10 Still Picture",10,CHROMA_420,false,true,ProfileFeatures::ENABLED,ProfileFeatures::DISABLED,ProfileFeatures::DISABLED,ProfileFeatures::DISABLED,ProfileFeatures::DISABLED,HBR_1,false,256,64,true,1000,1100,1875,10,mainLevelTierInfo},
{Profile::MAINSTILLPICTURE,"Main Still Picture",8,CHROMA_420,false,false,ProfileFeatures::ENABLED,ProfileFeatures::DISABLED,ProfileFeatures::DISABLED,ProfileFeatures::DISABLED,ProfileFeatures::DISABLED,HBR_1,false,256,64,true,1000,1100,1500,10,mainLevelTierInfo},
{Profile::MAINREXT,"Main 4:4:4 Still Picture",8,CHROMA_444,true,true,ProfileFeatures::OPTIONAL,ProfileFeatures::OPTIONAL,ProfileFeatures::DISABLED,ProfileFeatures::OPTIONAL,ProfileFeatures::DISABLED,HBR_1_OR_2,false,256,64,true,2000,2200,3000,5,mainLevelTierInfo},
{Profile::MAINREXT,"Main 4:4:4 16 Still Picture",16,CHROMA_444,true,true,ProfileFeatures::OPTIONAL,ProfileFeatures::OPTIONAL,ProfileFeatures::OPTIONAL,ProfileFeatures::OPTIONAL,ProfileFeatures::DISABLED,HBR_1_OR_2,false,256,64,true,4000,4400,6000,5,mainLevelTierInfo},
DoublegetMinCr()const{return(m_pLevelTier!=0&&m_pProfile!=0)?(m_pProfile->minCrScaleFactorx10*m_pLevelTier->minCrBase[m_tier?1:0])/10.0:0.0;}// currently not used for checking
#define FIXSAORESETAFTERIRAP 1 // Fix the reset mechanism for SAO after an IRAP for the case of IRAP period equal to gop size.
#define ADD_RESET_ENCODER_DECISIONS_AFTER_IRAP 1 // Add support to reseting encoder decisions after IRAP, to enable independent/parallel coding of randomaccess configuration intra-periods.