Skip to content
Snippets Groups Projects
Commit dde2b515 authored by Karsten Suehring's avatar Karsten Suehring
Browse files

Merge branch 'fix1449' into 'master'

Fix #1449: output only layers in active OLS

See merge request !2049
parents 05e6a962 2827df88
No related branches found
No related tags found
1 merge request!2049Fix #1449: output only layers in active OLS
Pipeline #6214 passed
......@@ -690,6 +690,34 @@ void DecLib::finishPictureLight(int& poc, PicList*& rpcListPic )
Slice* pcSlice = m_pcPic->cs->slice;
m_pcPic->neededForOutput = (pcSlice->getPicHeader()->getPicOutputFlag() ? true : false);
const VPS *vps = pcSlice->getVPS();
if (vps != nullptr)
{
if (!vps->getEachLayerIsAnOlsFlag())
{
const int layerId = pcSlice->getNalUnitLayerId();
const int generalLayerId = vps->getGeneralLayerIdx(layerId);
bool layerIsOutput = true;
if (vps->getOlsModeIdc() == 0)
{
layerIsOutput = generalLayerId == vps->m_targetOlsIdx;
}
else if (vps->getOlsModeIdc() == 1)
{
layerIsOutput = generalLayerId <= vps->m_targetOlsIdx;
}
else if (vps->getOlsModeIdc() == 2)
{
layerIsOutput = vps->getOlsOutputLayerFlag(vps->m_targetOlsIdx, generalLayerId);
}
if (!layerIsOutput)
{
m_pcPic->neededForOutput = false;
}
}
}
m_pcPic->reconstructed = true;
Slice::sortPicList( m_cListPic ); // sorting for application output
......@@ -822,6 +850,34 @@ void DecLib::finishPicture(int &poc, PicList *&rpcListPic, MsgLevel msgl, bool a
}
}
}
const VPS *vps = pcSlice->getVPS();
if (vps != nullptr)
{
if (!vps->getEachLayerIsAnOlsFlag())
{
const int layerId = pcSlice->getNalUnitLayerId();
const int generalLayerId = vps->getGeneralLayerIdx(layerId);
bool layerIsOutput = true;
if (vps->getOlsModeIdc() == 0)
{
layerIsOutput = generalLayerId == vps->m_targetOlsIdx;
}
else if (vps->getOlsModeIdc() == 1)
{
layerIsOutput = generalLayerId <= vps->m_targetOlsIdx;
}
else if (vps->getOlsModeIdc() == 2)
{
layerIsOutput = vps->getOlsOutputLayerFlag(vps->m_targetOlsIdx, generalLayerId);
}
if (!layerIsOutput)
{
m_pcPic->neededForOutput = false;
}
}
}
m_pcPic->reconstructed = true;
// process buffered suffix APS NALUs
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment