Changeset 1009 in SHVCSoftware


Ignore:
Timestamp:
3 Feb 2015, 23:11:03 (10 years ago)
Author:
seregin
Message:

fix for the ticket #56

Location:
branches/SHM-dev/source/Lib
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/Lib/TLibCommon/TComSlice.h

    r1005 r1009  
    864864
    865865#if P0182_VPS_VUI_PS_FLAG
    866   UInt       m_SPSId[MAX_LAYERS];
    867   UInt       m_PPSId[MAX_LAYERS];
    868866  UInt       m_baseLayerPSCompatibilityFlag[MAX_LAYERS];
    869867#endif
     
    13161314#endif
    13171315#if P0182_VPS_VUI_PS_FLAG
    1318   Int    getSPSId       (Int layer)                   { return m_SPSId[layer];       }
    1319   Void   setSPSId       (Int layer, Int val)          { m_SPSId[layer] = val;        }
    1320   Int    getPPSId       (Int layer)                   { return m_PPSId[layer];       }
    1321   Void   setPPSId       (Int layer, Int val)          { m_PPSId[layer] = val;        }
    13221316  Void   setBaseLayerPSCompatibilityFlag (Int layer, int val)        { m_baseLayerPSCompatibilityFlag[layer] = val; }
    13231317  Int    getBaseLayerPSCompatibilityFlag (Int layer)   { return m_baseLayerPSCompatibilityFlag[layer];}
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r1007 r1009  
    934934#endif
    935935    }
     936   
     937#if P0182_VPS_VUI_PS_FLAG
     938    UInt layerIdx = activeVPS->getLayerIdInVps( m_layerId );
     939
     940    if( activeVPS->getBaseLayerPSCompatibilityFlag(layerIdx) )
     941    {
     942      RepFormat* repFormat = activeVPS->getVpsRepFormat(activeVPS->getVpsRepFormatIdx(layerIdx));
     943
     944      assert( pps->getLayerId() == 0 );
     945      assert( sps->getLayerId() == 0 );
     946      assert( repFormat->getChromaFormatVpsIdc() == sps->getChromaFormatIdc() );
     947      assert( repFormat->getSeparateColourPlaneVpsFlag() == 0 );
     948      assert( repFormat->getPicHeightVpsInLumaSamples() == sps->getPicHeightInLumaSamples() );
     949      assert( repFormat->getPicWidthVpsInLumaSamples()  == sps->getPicWidthInLumaSamples() );
     950      assert( repFormat->getBitDepthVpsLuma()   == sps->getBitDepthY() );
     951      assert( repFormat->getBitDepthVpsChroma() == sps->getBitDepthC() );
     952      assert( repFormat->getConformanceWindowVps().getWindowLeftOffset()   == sps->getConformanceWindow().getWindowLeftOffset() );
     953      assert( repFormat->getConformanceWindowVps().getWindowRightOffset()  == sps->getConformanceWindow().getWindowRightOffset() );
     954      assert( repFormat->getConformanceWindowVps().getWindowTopOffset()    == sps->getConformanceWindow().getWindowTopOffset() );
     955      assert( repFormat->getConformanceWindowVps().getWindowBottomOffset() == sps->getConformanceWindow().getWindowBottomOffset() );
     956    }   
     957#endif
    936958  }
    937959#endif
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r980 r1009  
    20922092      if( vps->getNumRefLayers(vps->getLayerIdInNuh(i)) == 0 )
    20932093      {
    2094         if( (vps->getSPSId(i) == 0) && (vps->getPPSId(i) == 0) )
    2095         {
    2096           vps->setBaseLayerPSCompatibilityFlag(i, 1);
    2097         }
    2098         else
    2099         {
    2100           vps->setBaseLayerPSCompatibilityFlag(i, 0);
    2101         }
    21022094        WRITE_FLAG(vps->getBaseLayerPSCompatibilityFlag(i), "base_layer_parameter_set_compatibility_flag" );
    21032095      }
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncTop.cpp

    r999 r1009  
    17921792      }
    17931793    }
     1794
     1795#if P0182_VPS_VUI_PS_FLAG
     1796    if( m_cVPS.getNumRefLayers( m_layerId ) == 0 )
     1797    {
     1798      UInt layerIdx = m_cVPS.getLayerIdInVps( m_layerId );
     1799      RepFormat* repFormat = m_cVPS.getVpsRepFormat(m_cVPS.getVpsRepFormatIdx(layerIdx));
     1800     
     1801      if( m_cPPS.getLayerId() == 0 &&
     1802          m_cSPS.getLayerId() == 0 &&
     1803          repFormat->getChromaFormatVpsIdc() == m_cSPS.getChromaFormatIdc() &&
     1804          repFormat->getSeparateColourPlaneVpsFlag() == 0 &&
     1805          repFormat->getPicHeightVpsInLumaSamples() == m_cSPS.getPicHeightInLumaSamples() &&
     1806          repFormat->getPicWidthVpsInLumaSamples()  == m_cSPS.getPicWidthInLumaSamples() &&
     1807          repFormat->getBitDepthVpsLuma()   == m_cSPS.getBitDepthY() &&
     1808          repFormat->getBitDepthVpsChroma() == m_cSPS.getBitDepthC() &&
     1809          repFormat->getConformanceWindowVps().getWindowLeftOffset()   == m_cSPS.getConformanceWindow().getWindowLeftOffset() &&
     1810          repFormat->getConformanceWindowVps().getWindowRightOffset()  == m_cSPS.getConformanceWindow().getWindowRightOffset() &&
     1811          repFormat->getConformanceWindowVps().getWindowTopOffset()    == m_cSPS.getConformanceWindow().getWindowTopOffset() &&
     1812          repFormat->getConformanceWindowVps().getWindowBottomOffset() == m_cSPS.getConformanceWindow().getWindowBottomOffset() )
     1813      {
     1814        m_cVPS.setBaseLayerPSCompatibilityFlag(layerIdx, 1);
     1815      }
     1816      else
     1817      {
     1818        m_cVPS.setBaseLayerPSCompatibilityFlag(layerIdx, 0);
     1819      }
     1820    }
     1821#endif
    17941822  }
    17951823}
Note: See TracChangeset for help on using the changeset viewer.