本文整理汇总了C++中TComPic::destroy方法的典型用法代码示例。如果您正苦于以下问题:C++ TComPic::destroy方法的具体用法?C++ TComPic::destroy怎么用?C++ TComPic::destroy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TComPic
的用法示例。
在下文中一共展示了TComPic::destroy方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: deletePicBuffer
Void TDecTop::deletePicBuffer ( )
{
TComList<TComPic*>::iterator iterPic = m_cListPic.begin();
Int iSize = Int( m_cListPic.size() );
for (Int i = 0; i < iSize; i++ )
{
TComPic* pcPic = *(iterPic++);
pcPic->destroy();
delete pcPic;
pcPic = NULL;
}
// destroy ALF temporary buffers
m_cAdaptiveLoopFilter.destroy();
#if MTK_SAO
m_cSAO.destroy();
#endif
m_cLoopFilter. destroy();
// destroy ROM
destroyROM();
}
示例2: xWriteOutput
/** \param pcListPic list of pictures to be written to file
\todo DYN_REF_FREE should be revised
*/
Void TAppDecTop::xWriteOutput( TComList<TComPic*>* pcListPic, UInt tId )
{
TComList<TComPic*>::iterator iterPic = pcListPic->begin();
Int not_displayed = 0;
while (iterPic != pcListPic->end())
{
TComPic* pcPic = *(iterPic);
if(pcPic->getOutputMark() && pcPic->getPOC() > m_iPOCLastDisplay)
{
not_displayed++;
}
iterPic++;
}
iterPic = pcListPic->begin();
while (iterPic != pcListPic->end())
{
TComPic* pcPic = *(iterPic);
if ( pcPic->getOutputMark() && (not_displayed > pcPic->getNumReorderPics(tId) && pcPic->getPOC() > m_iPOCLastDisplay))
{
// write to file
not_displayed--;
if ( m_pchReconFile )
{
const Window &conf = pcPic->getConformanceWindow();
const Window &defDisp = m_respectDefDispWindow ? pcPic->getDefDisplayWindow() : Window();
m_cTVideoIOYuvReconFile.write( pcPic->getPicYuvRec(),
conf.getWindowLeftOffset() + defDisp.getWindowLeftOffset(),
conf.getWindowRightOffset() + defDisp.getWindowRightOffset(),
conf.getWindowTopOffset() + defDisp.getWindowTopOffset(),
conf.getWindowBottomOffset() + defDisp.getWindowBottomOffset() );
}
// update POC of display order
m_iPOCLastDisplay = pcPic->getPOC();
// erase non-referenced picture in the reference picture list after display
if ( !pcPic->getSlice(0)->isReferenced() && pcPic->getReconMark() == true )
{
#if !DYN_REF_FREE
pcPic->setReconMark(false);
// mark it should be extended later
pcPic->getPicYuvRec()->setBorderExtension( false );
#else
pcPic->destroy();
pcListPic->erase( iterPic );
iterPic = pcListPic->begin(); // to the beginning, non-efficient way, have to be revised!
continue;
#endif
}
pcPic->setOutputMark(false);
}
iterPic++;
}
}
示例3: while
DPB::~DPB()
{
while (!m_picList.empty())
{
TComPic* pic = m_picList.popFront();
pic->destroy();
delete pic;
}
}
示例4: while
DPB::~DPB()
{
while (!m_picList.empty())
{
TComPic* pic = m_picList.popFront();
pic->destroy(m_cfg->param.bframes);
delete pic;
}
}
示例5: xWriteOutput
Void TAppDecTop::xWriteOutput( TComList<TComPic*>* pcListPic, Int viewDepthId, UInt tId )
{
TComList<TComPic*>::iterator iterPic = pcListPic->begin();
Int not_displayed = 0;
while (iterPic != pcListPic->end())
{
TComPic* pcPic = *(iterPic);
if(pcPic->getOutputMark() && pcPic->getPOC() > m_pocLastDisplay[viewDepthId])
{
not_displayed++;
}
iterPic++;
}
iterPic = pcListPic->begin();
while (iterPic != pcListPic->end())
{
TComPic* pcPic = *(iterPic);
TComSPS *sps = pcPic->getSlice(0)->getSPS();
if ( pcPic->getOutputMark() && (not_displayed > pcPic->getSlice(0)->getSPS()->getNumReorderPics(tId) && pcPic->getPOC() > m_pocLastDisplay[viewDepthId]))
{
// write to file
not_displayed--;
if ( m_pchReconFile )
{
m_tVideoIOYuvReconFile[viewDepthId]->write( pcPic->getPicYuvRec(), sps->getPicCropLeftOffset(), sps->getPicCropRightOffset(), sps->getPicCropTopOffset(), sps->getPicCropBottomOffset() );
}
// update POC of display order
m_pocLastDisplay[viewDepthId] = pcPic->getPOC();
// erase non-referenced picture in the reference picture list after display
if ( !pcPic->getSlice(0)->isReferenced() && pcPic->getReconMark() == true )
{
#if !DYN_REF_FREE
pcPic->setReconMark(false);
// mark it should be extended later
pcPic->getPicYuvRec()->setBorderExtension( false );
#else
pcPic->destroy();
pcListPic->erase( iterPic );
iterPic = pcListPic->begin(); // to the beginning, non-efficient way, have to be revised!
continue;
#endif
}
pcPic->setOutputMark(false);
}
iterPic++;
}
}
示例6: deletePicBuffer
Void TEncTop::deletePicBuffer()
{
TComList<TComPic*>::iterator iterPic = m_cListPic.begin();
Int iSize = Int( m_cListPic.size() );
for ( Int i = 0; i < iSize; i++ )
{
TComPic* pcPic = *(iterPic++);
pcPic->destroy();
delete pcPic;
pcPic = NULL;
}
}
示例7: deletePicBuffer
Void TDecTop::deletePicBuffer ( )
{
TComList<TComPic*>::iterator iterPic = m_cListPic.begin();
Int iSize = Int( m_cListPic.size() );
for (Int i = 0; i < iSize; i++ )
{
TComPic* pcPic = *(iterPic++);
pcPic->destroy();
delete pcPic;
pcPic = NULL;
}
m_cSAO.destroy();
m_cLoopFilter. destroy();
// destroy ROM
destroyROM();
}
示例8: xWriteOutput
/** \param pcListPic list of pictures to be written to file
\param bFirst first picture?
\todo DYN_REF_FREE should be revised
*/
Void TAppDecTop::xWriteOutput( TComList<TComPic*>* pcListPic )
{
TComList<TComPic*>::iterator iterPic = pcListPic->begin();
while (iterPic != pcListPic->end())
{
TComPic* pcPic = *(iterPic);
if ( pcPic->getReconMark() && pcPic->getPOC() == (m_iPOCLastDisplay + 1) )
{
// write to file
if ( m_pchReconFile )
{
m_cTVideoIOYuvReconFile.write( pcPic->getPicYuvRec(), pcPic->getSlice(0)->getSPS()->getPad() );
}
// update POC of display order
m_iPOCLastDisplay = pcPic->getPOC();
// erase non-referenced picture in the reference picture list after display
if ( !pcPic->getSlice(0)->isReferenced() && pcPic->getReconMark() == true )
{
#if !DYN_REF_FREE
pcPic->setReconMark(false);
// mark it should be extended later
pcPic->getPicYuvRec()->setBorderExtension( false );
#else
pcPic->destroy();
pcListPic->erase( iterPic );
iterPic = pcListPic->begin(); // to the beginning, non-efficient way, have to be revised!
continue;
#endif
}
}
iterPic++;
}
}
示例9: xFlushOutput
/** \param pcListPic list of pictures to be written to file
\todo DYN_REF_FREE should be revised
*/
Void TAppDecTop::xFlushOutput( TComList<TComPic*>* pcListPic )
{
if(!pcListPic || pcListPic->empty())
{
return;
}
TComList<TComPic*>::iterator iterPic = pcListPic->begin();
iterPic = pcListPic->begin();
TComPic* pcPic = *(iterPic);
if (pcPic->isField()) //Field Decoding
{
TComList<TComPic*>::iterator endPic = pcListPic->end();
endPic--;
TComPic *pcPicTop, *pcPicBottom = NULL;
while (iterPic != endPic)
{
pcPicTop = *(iterPic);
iterPic++;
pcPicBottom = *(iterPic);
if ( pcPicTop->getOutputMark() && pcPicBottom->getOutputMark() && !(pcPicTop->getPOC()%2) && (pcPicBottom->getPOC() == pcPicTop->getPOC()+1) )
{
// write to file
if ( m_pchReconFile )
{
const Window &conf = pcPicTop->getConformanceWindow();
const Window &defDisp = m_respectDefDispWindow ? pcPicTop->getDefDisplayWindow() : Window();
const Bool isTff = pcPicTop->isTopField();
m_cTVideoIOYuvReconFile.write( pcPicTop->getPicYuvRec(), pcPicBottom->getPicYuvRec(),
m_outputColourSpaceConvert,
conf.getWindowLeftOffset() + defDisp.getWindowLeftOffset(),
conf.getWindowRightOffset() + defDisp.getWindowRightOffset(),
conf.getWindowTopOffset() + defDisp.getWindowTopOffset(),
conf.getWindowBottomOffset() + defDisp.getWindowBottomOffset(), NUM_CHROMA_FORMAT, isTff );
}
// update POC of display order
m_iPOCLastDisplay = pcPicBottom->getPOC();
// erase non-referenced picture in the reference picture list after display
if ( !pcPicTop->getSlice(0)->isReferenced() && pcPicTop->getReconMark() == true )
{
#if !DYN_REF_FREE
pcPicTop->setReconMark(false);
// mark it should be extended later
pcPicTop->getPicYuvRec()->setBorderExtension( false );
#else
pcPicTop->destroy();
pcListPic->erase( iterPic );
iterPic = pcListPic->begin(); // to the beginning, non-efficient way, have to be revised!
continue;
#endif
}
if ( !pcPicBottom->getSlice(0)->isReferenced() && pcPicBottom->getReconMark() == true )
{
#if !DYN_REF_FREE
pcPicBottom->setReconMark(false);
// mark it should be extended later
pcPicBottom->getPicYuvRec()->setBorderExtension( false );
#else
pcPicBottom->destroy();
pcListPic->erase( iterPic );
iterPic = pcListPic->begin(); // to the beginning, non-efficient way, have to be revised!
continue;
#endif
}
pcPicTop->setOutputMark(false);
pcPicBottom->setOutputMark(false);
#if !DYN_REF_FREE
if(pcPicTop)
{
pcPicTop->destroy();
delete pcPicTop;
pcPicTop = NULL;
}
#endif
}
}
if(pcPicBottom)
{
pcPicBottom->destroy();
delete pcPicBottom;
pcPicBottom = NULL;
}
}
else //Frame decoding
{
while (iterPic != pcListPic->end())
{
pcPic = *(iterPic);
//.........这里部分代码省略.........
示例10: xWriteOutput
//.........这里部分代码省略.........
{
SEIMessages noDisplay = getSeisByType(pcPic->getSEIs(), SEI::NO_DISPLAY );
const SEINoDisplay *nd = ( noDisplay.size() > 0 ) ? (SEINoDisplay*) *(noDisplay.begin()) : NULL;
if( (nd != NULL) && nd->m_noDisplay )
{
display = false;
}
}
if (display)
{
m_cTVideoIOYuvReconFile.write( pcPicTop->getPicYuvRec(), pcPicBottom->getPicYuvRec(),
m_outputColourSpaceConvert,
conf.getWindowLeftOffset() + defDisp.getWindowLeftOffset(),
conf.getWindowRightOffset() + defDisp.getWindowRightOffset(),
conf.getWindowTopOffset() + defDisp.getWindowTopOffset(),
conf.getWindowBottomOffset() + defDisp.getWindowBottomOffset(), NUM_CHROMA_FORMAT, isTff );
}
}
// update POC of display order
m_iPOCLastDisplay = pcPicBottom->getPOC();
// erase non-referenced picture in the reference picture list after display
if ( !pcPicTop->getSlice(0)->isReferenced() && pcPicTop->getReconMark() == true )
{
#if !DYN_REF_FREE
pcPicTop->setReconMark(false);
// mark it should be extended later
pcPicTop->getPicYuvRec()->setBorderExtension( false );
#else
pcPicTop->destroy();
pcListPic->erase( iterPic );
iterPic = pcListPic->begin(); // to the beginning, non-efficient way, have to be revised!
continue;
#endif
}
if ( !pcPicBottom->getSlice(0)->isReferenced() && pcPicBottom->getReconMark() == true )
{
#if !DYN_REF_FREE
pcPicBottom->setReconMark(false);
// mark it should be extended later
pcPicBottom->getPicYuvRec()->setBorderExtension( false );
#else
pcPicBottom->destroy();
pcListPic->erase( iterPic );
iterPic = pcListPic->begin(); // to the beginning, non-efficient way, have to be revised!
continue;
#endif
}
pcPicTop->setOutputMark(false);
pcPicBottom->setOutputMark(false);
}
}
}
else if (!pcPic->isField()) //Frame Decoding
{
iterPic = pcListPic->begin();
while (iterPic != pcListPic->end())
{
pcPic = *(iterPic);
示例11: xWriteOutput
/** \param pcListPic list of pictures to be written to file
\todo DYN_REF_FREE should be revised
*/
Void TAppDecTop::xWriteOutput( TComList<TComPic*>* pcListPic )
{
TComList<TComPic*>::iterator iterPic = pcListPic->begin();
#if G1002_RPS
Int not_displayed = 0;
while (iterPic != pcListPic->end())
{
TComPic* pcPic = *(iterPic);
#if G1002_IDR_POC_ZERO_BUGFIX
if(pcPic->getOutputMark() && pcPic->getPOC() > m_iPOCLastDisplay)
{
not_displayed++;
}
#else
if(pcPic->getReconMark() && pcPic->getPOC() > m_iPOCLastDisplay)
not_displayed++;
#endif
iterPic++;
}
iterPic = pcListPic->begin();
#endif
while (iterPic != pcListPic->end())
{
TComPic* pcPic = *(iterPic);
#if G1002_RPS
#if G1002_IDR_POC_ZERO_BUGFIX
if ( pcPic->getOutputMark() && (not_displayed > m_cTDecTop.getSPS()->getNumReorderFrames() && pcPic->getPOC() > m_iPOCLastDisplay))
#else
if ( pcPic->getReconMark() && not_displayed > m_cTDecTop.getSPS()->getMaxNumberOfReorderPictures() && pcPic->getPOC() > m_iPOCLastDisplay)
#endif
{
// write to file
not_displayed--;
#else
if ( pcPic->getReconMark() && pcPic->getPOC() == (m_iPOCLastDisplay + 1) )
{
// write to file
#endif
if ( m_pchReconFile )
{
m_cTVideoIOYuvReconFile.write( pcPic->getPicYuvRec(), pcPic->getSlice(0)->getSPS()->getPad() );
}
// update POC of display order
m_iPOCLastDisplay = pcPic->getPOC();
// erase non-referenced picture in the reference picture list after display
if ( !pcPic->getSlice(0)->isReferenced() && pcPic->getReconMark() == true )
{
#if !DYN_REF_FREE
pcPic->setReconMark(false);
// mark it should be extended later
pcPic->getPicYuvRec()->setBorderExtension( false );
#else
pcPic->destroy();
pcListPic->erase( iterPic );
iterPic = pcListPic->begin(); // to the beginning, non-efficient way, have to be revised!
continue;
#endif
}
#if G1002_IDR_POC_ZERO_BUGFIX
pcPic->setOutputMark(false);
#endif
}
iterPic++;
}
}
#if G1002_RPS
/** \param pcListPic list of pictures to be written to file
\todo DYN_REF_FREE should be revised
*/
Void TAppDecTop::xFlushOutput( TComList<TComPic*>* pcListPic )
{
#if G1002_IDR_POC_ZERO_BUGFIX
if(!pcListPic)
{
return;
}
#endif
TComList<TComPic*>::iterator iterPic = pcListPic->begin();
iterPic = pcListPic->begin();
while (iterPic != pcListPic->end())
{
TComPic* pcPic = *(iterPic);
#if G1002_IDR_POC_ZERO_BUGFIX
if ( pcPic->getOutputMark() )
#else
//.........这里部分代码省略.........