本文整理汇总了C++中SliceHeader::getSvcMvcFlag方法的典型用法代码示例。如果您正苦于以下问题:C++ SliceHeader::getSvcMvcFlag方法的具体用法?C++ SliceHeader::getSvcMvcFlag怎么用?C++ SliceHeader::getSvcMvcFlag使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SliceHeader
的用法示例。
在下文中一共展示了SliceHeader::getSvcMvcFlag方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: initSlice
ErrVal MbDataCtrl::initSlice( SliceHeader& rcSH, ProcessingState eProcessingState, Bool bDecoder, MbDataCtrl* pcMbDataCtrl )
{
AOF_DBG( m_bInitDone );
m_eProcessingState = eProcessingState;
m_pcMbDataCtrl0L1 = NULL;
m_iColocatedOffset = 0;
m_bUseTopField = false;
m_bPicCodedField = rcSH.getFieldPicFlag();
if( rcSH.isInterB() )
{
if( ((rcSH.getNalUnitType() != NAL_UNIT_CODED_SLICE_IDR_SCALABLE &&
rcSH.getNalUnitType() != NAL_UNIT_CODED_SLICE_SCALABLE) || (!rcSH.getSvcMvcFlag()) ) && bDecoder
&& rcSH.getRefListSize( LIST_1 )
)
{
const RefPic& rcRefPic0L1 = rcSH.getRefPic( 1, rcSH.getPicType(), LIST_1 );
AOF_DBG( rcRefPic0L1.isAvailable() );
const FrameUnit* pcFU = rcRefPic0L1.getPic().getFrameUnit();
Int iCurrPoc = rcSH.getPoc();
Int iTopDiffPOC = iCurrPoc - pcFU->getTopField().getPOC();
Int iBotDiffPOC = iCurrPoc - pcFU->getBotField().getPOC();
m_bUseTopField = (abs( iTopDiffPOC ) < abs( iBotDiffPOC ) );
m_pcMbDataCtrl0L1 = pcFU->getMbDataCtrl();
if( FRAME != rcSH.getPicType() )
{
if( rcRefPic0L1.getFrame()->getPicType() != rcSH.getPicType() && m_pcMbDataCtrl0L1->isPicCodedField() )
{
m_iColocatedOffset = m_iMbPerLine;
}
}
}
if( pcMbDataCtrl )
{
m_pcMbDataCtrl0L1 = pcMbDataCtrl;
}
if(!bDecoder)
{ // Fix by [email protected] & Dong
if (eProcessingState == ENCODE_PROCESS)
{
if( (rcSH.getNalUnitType() != NAL_UNIT_CODED_SLICE_IDR_SCALABLE &&
rcSH.getNalUnitType() != NAL_UNIT_CODED_SLICE_SCALABLE) || (!rcSH.getSvcMvcFlag()) )
{
PicType picType = rcSH.getPicType();
RefFrameList* pRefFrameList1 = rcSH.getRefFrameList(picType, LIST_1);
Int iCurrPoc = rcSH.getPoc();
Int iTopDiffPOC = iCurrPoc - pRefFrameList1->getEntry( 0 )->getTopFieldPoc();
Int iBotDiffPOC = iCurrPoc - pRefFrameList1->getEntry( 0 )->getBotFieldPoc();
m_bUseTopField = (abs( iTopDiffPOC ) < abs( iBotDiffPOC ) );
if( FRAME != rcSH.getPicType() )
{
if( pRefFrameList1->getEntry( 0 )->getPicType() != rcSH.getPicType() && m_pcMbDataCtrl0L1->isPicCodedField() )
{
m_iColocatedOffset = m_iMbPerLine;
}
}
}
}
else
{
m_bUseTopField = true;//lufeng: default
}
}
}
if( PARSE_PROCESS == m_eProcessingState || ENCODE_PROCESS == m_eProcessingState )
{
m_uiSliceId++;
//[email protected] : memory leak fix
if( m_cpDFPBuffer.get( m_uiSliceId ) )
{
delete m_cpDFPBuffer.get( m_uiSliceId );
m_cpDFPBuffer.set( m_uiSliceId, NULL );
}
//--
m_cpDFPBuffer.set( m_uiSliceId, rcSH.getDeblockingFilterParameter().getCopy() );
m_bDirect8x8InferenceFlag = rcSH.getSPS().getDirect8x8InferenceFlag();
}
m_pcSliceHeader = &rcSH;
Int iMbPerColumn = rcSH.getSPS().getFrameHeightInMbs ();
m_iMbPerLine = rcSH.getSPS().getFrameWidthInMbs ();
m_uiMbOffset = rcSH.getBottomFieldFlag() ? 1 * m_iMbPerLine : 0;
m_uiMbStride = rcSH.getFieldPicFlag() ? 2 * m_iMbPerLine : m_iMbPerLine;
//.........这里部分代码省略.........