Changeset 1043 in SHVCSoftware for branches/SHM-dev/source/App


Ignore:
Timestamp:
2 Mar 2015, 21:08:06 (10 years ago)
Author:
seregin
Message:

fix layerId/layerIdx mismatch at decoder, including fixes for the tickets 66 and 68

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncTop.cpp

    r1037 r1043  
    12631263  vps->setNuhLayerIdPresentFlag(false);
    12641264  vps->setLayerIdInNuh(0, 0);
    1265   vps->setLayerIdInVps(0, 0);
     1265  vps->setLayerIdxInVps(0, 0);
    12661266  for(i = 1; i < vps->getMaxLayers(); i++)
    12671267  {
    12681268    vps->setLayerIdInNuh(i, i);
    1269     vps->setLayerIdInVps(vps->getLayerIdInNuh(i), i);
     1269    vps->setLayerIdxInVps(vps->getLayerIdInNuh(i), i);
    12701270    vps->setDimensionId(i, 0, i);
    12711271  }
     
    15291529  for (UInt layerCtr = 1; layerCtr <= vps->getMaxLayers() - 1; layerCtr++)
    15301530  {
    1531     vps->setNumDirectRefLayers(layerCtr, m_acTEncTop[layerCtr].getNumDirectRefLayers());
     1531    UInt layerId = vps->getLayerIdInNuh(layerCtr);
     1532    vps->setNumDirectRefLayers(layerId, m_acTEncTop[layerCtr].getNumDirectRefLayers());
    15321533    maxDirectRefLayers = max<UInt>(maxDirectRefLayers, vps->getNumDirectRefLayers(layerCtr));
    15331534
    15341535    for (i = 0; i < vps->getNumDirectRefLayers(layerCtr); i++)
    15351536    {
    1536       vps->setRefLayerId(layerCtr, i, m_acTEncTop[layerCtr].getRefLayerId(i));
     1537      vps->setRefLayerId(layerId, i, m_acTEncTop[layerCtr].getRefLayerId(i));
    15371538    }
    15381539    // Set direct dependency flag
     
    15441545    for (i = 0; i < vps->getNumDirectRefLayers(layerCtr); i++)
    15451546    {
    1546       vps->setDirectDependencyFlag(layerCtr, vps->getLayerIdInVps(m_acTEncTop[layerCtr].getRefLayerId(i)), true);
     1547      vps->setDirectDependencyFlag(layerCtr, vps->getLayerIdxInVps(m_acTEncTop[layerCtr].getRefLayerId(i)), true);
    15471548    }
    15481549    // prediction indications
     
    17391740    for(Int j = 0; j < numLayerInLayerSet; j++)
    17401741    {
    1741       Int layerIdxInVps = vps->getLayerIdInVps( vps->getLayerSetLayerIdList(layerSetIdxForOutputLayerSet, j) );
     1742      Int layerIdxInVps = vps->getLayerIdxInVps( vps->getLayerSetLayerIdList(layerSetIdxForOutputLayerSet, j) );
    17421743      if( vps->getNecessaryLayerFlag(i, j) )
    17431744      {
     
    19471948                // Only for the default partition
    19481949                Int nuhlayerId = vps->getLayerSetLayerIdList( lsIdx, k);
    1949                 Int layerIdxInVps = vps->getLayerIdInVps( nuhlayerId );
     1950                Int layerIdxInVps = vps->getLayerIdxInVps( nuhlayerId );
    19501951                vps->setBspHrdIdx(h, i, t, j, k, layerIdxInVps + vps->getNumHrdParameters());
    19511952
Note: See TracChangeset for help on using the changeset viewer.