Changeset 1486 in SHVCSoftware


Ignore:
Timestamp:
20 Nov 2015, 17:22:56 (9 years ago)
Author:
seregin
Message:

fix for poc reset ticket #82, patch-by Usman Hakeem <usman.hakeem@…> and Hendry <fhendry@…>

Location:
branches/SHM-dev/source
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/App/TAppDecoder/TAppDecTop.cpp

    r1485 r1486  
    19611961  }
    19621962
     1963#if CONFORMANCE_BITSTREAM_FIX
     1964  if (!vps) return;
     1965#else
    19631966  assert( vps != NULL );    // No picture in any DPB?
     1967#endif
    19641968  std::sort( listOfPocs.begin(), listOfPocs.end() );    // Sort in increasing order of POC
    19651969  Int targetLsIdx = vps->getOutputLayerSetIdx( getCommonDecoderParams()->getTargetOutputLayerSetIdx() );
  • branches/SHM-dev/source/Lib/TLibCommon/TypeDef.h

    r1475 r1486  
    6868#define NO_CLRAS_OUTPUT_FLAG             1
    6969
     70#define CONFORMANCE_BITSTREAM_FIX        1
    7071/// scalability types
    7172enum ScalabilityType
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r1485 r1486  
    847847  }
    848848
     849#if !CONFORMANCE_BITSTREAM_FIX  //This update previous Tid0 POC is moved down and invoke only after the POC derivation has been finalized
    849850  xUpdatePreviousTid0POC(m_apcSlicePilot);
     851#endif
    850852
    851853  m_apcSlicePilot->setAssociatedIRAPPOC(m_pocCRA);
     
    908910    Int iMaxPOClsb = 1 << sps->getBitsForPOC();
    909911    m_apcSlicePilot->setPOC( m_apcSlicePilot->getPOC() & (iMaxPOClsb - 1) );
     912#if !CONFORMANCE_BITSTREAM_FIX  //This update previous Tid0 POC is moved down and invoke only after the POC derivation has been finalized
    910913    xUpdatePreviousTid0POC(m_apcSlicePilot);
     914#endif
    911915  }
    912916
     
    10351039    }
    10361040
     1041#if CONFORMANCE_BITSTREAM_FIX
     1042    if( m_apcSlicePilot->getPocResetIdc() && m_apcSlicePilot->getFirstSliceInPic() )
     1043#else
    10371044    if( m_apcSlicePilot->getPocResetIdc() && m_apcSlicePilot->getSliceIdx() == 0 )
     1045#endif
    10381046    {
    10391047      Int pocResetPeriodId = m_apcSlicePilot->getPocResetPeriodId();
     
    12371245  }
    12381246
     1247#if CONFORMANCE_BITSTREAM_FIX
     1248  xUpdatePreviousTid0POC(m_apcSlicePilot);
     1249#endif
     1250
    12391251  if( m_parseIdc == 1 || m_parseIdc == 3)
    12401252  {
     
    12421254    if(    !m_apcSlicePilot->getRaslPicFlag()
    12431255      && !m_apcSlicePilot->getRadlPicFlag()
    1244       && (m_apcSlicePilot->getNalUnitType() % 2 == 1)
     1256      && (m_apcSlicePilot->getNalUnitType() % 2 == 1
     1257#if CONFORMANCE_BITSTREAM_FIX
     1258        || (m_apcSlicePilot->getNalUnitType() > 15 && m_apcSlicePilot->getNalUnitType() < 24))
     1259#else
     1260        )
     1261#endif
    12451262      && ( nalu.m_temporalId == 0 )
    12461263      && !m_apcSlicePilot->getDiscardableFlag() )
Note: See TracChangeset for help on using the changeset viewer.