Changeset 1295 in SHVCSoftware


Ignore:
Timestamp:
20 Jul 2015, 20:49:33 (9 years ago)
Author:
seregin
Message:

port rev 4327 (TComSlice::m_prevTid0POC)

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

Legend:

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

    r1292 r1295  
    10841084
    10851085
    1086 Int TComSlice::m_prevTid0POC = 0;
    1087 
    10881086/** Function for setting the slice's temporal layer ID and corresponding temporal_layer_switching_point_flag.
    10891087 * \param uiTLayer Temporal layer ID of the current slice
  • branches/SHM-dev/source/Lib/TLibCommon/TComSlice.h

    r1292 r1295  
    19091909  Int                        m_iAssociatedIRAP;
    19101910  NalUnitType                m_iAssociatedIRAPType;
    1911   static Int                 m_prevTid0POC; // TODO: Remove this static member variable.
    19121911  TComReferencePictureSet*   m_pcRPS;
    19131912  TComReferencePictureSet    m_LocalRPS;
     
    20612060  Void                        setRPSidx( Int iBDidx )                                { m_iBDidx = iBDidx;                                            }
    20622061  Int                         getRPSidx() const                                      { return m_iBDidx;                                              }
    2063   Int                         getPrevTid0POC() const                                 { return m_prevTid0POC;                                         }
    20642062  TComRefPicListModification* getRefPicListModification()                            { return &m_RefPicListModification;                             }
    20652063  Void                        setLastIDR(Int iIDRPOC)                                { m_iLastIDR = iIDRPOC;                                         }
     
    21022100  Bool                        isReferenced() const                                   { return m_bRefenced;                                           }
    21032101  Bool                        isReferenceNalu() const                                { return ((getNalUnitType() <= NAL_UNIT_RESERVED_VCL_R15) && (getNalUnitType()%2 != 0)) || ((getNalUnitType() >= NAL_UNIT_CODED_SLICE_BLA_W_LP) && (getNalUnitType() <= NAL_UNIT_RESERVED_IRAP_VCL23) ); }
    2104   Void                        setPOC( Int i )                                        { m_iPOC              = i; if ((getTLayer()==0) && (isReferenceNalu() && (getNalUnitType()!=NAL_UNIT_CODED_SLICE_RASL_R)&& (getNalUnitType()!=NAL_UNIT_CODED_SLICE_RADL_R))) {m_prevTid0POC=i;} }
     2102  Void                        setPOC( Int i )                                        { m_iPOC              = i; }
    21052103  Void                        setNalUnitType( NalUnitType e )                        { m_eNalUnitType      = e;                                      }
    21062104  NalUnitType                 getNalUnitType() const                                 { return m_eNalUnitType;                                        }
     
    21352133
    21362134#if SVC_EXTENSION
    2137   Void                        setPrevTid0POC( Int x )                                { m_prevTid0POC = x;                                            }
    21382135  Void                        setAssociatedIrapPocBeforeReset(Int x)                 { m_associatedIrapPocBeforeReset = x;                           }
    21392136  Int                         getAssociatedIrapPocBeforeReset(     )                 { return m_associatedIrapPocBeforeReset;                        }
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r1290 r1295  
    11681168}
    11691169
    1170 Void TDecCavlc::parseSliceHeader (TComSlice* pcSlice, ParameterSetManager *parameterSetManager)
     1170Void TDecCavlc::parseSliceHeader (TComSlice* pcSlice, ParameterSetManager *parameterSetManager, const Int prevTid0POC)
    11711171{
    11721172  UInt  uiCode;
     
    13241324      Int iPOClsb = uiCode;
    13251325#endif
    1326       Int iPrevPOC = pcSlice->getPrevTid0POC();
     1326      Int iPrevPOC = prevTid0POC;
    13271327      Int iMaxPOClsb = 1<< sps->getBitsForPOC();
    13281328      Int iPrevPOClsb = iPrevPOC & (iMaxPOClsb - 1);
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.h

    r1259 r1295  
    8585  Void  parseProfileTier    (ProfileTierLevel *ptl, const Bool bIsSubLayer);
    8686  Void  parseHrdParameters  (TComHRD *hrd, Bool cprms_present_flag, UInt tempLevelHigh);
    87   Void  parseSliceHeader    ( TComSlice* pcSlice, ParameterSetManager *parameterSetManager);
     87  Void  parseSliceHeader    ( TComSlice* pcSlice, ParameterSetManager *parameterSetManager, const Int prevTid0POC);
    8888  Void  parseTerminatingBit ( UInt& ruiBit );
    8989  Void  parseRemainingBytes ( Bool noTrailingBytesExpected );
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecEntropy.h

    r1263 r1295  
    7777#endif
    7878
    79   virtual Void parseSliceHeader          ( TComSlice* pcSlice, ParameterSetManager *parameterSetManager)       = 0;
     79  virtual Void parseSliceHeader          ( TComSlice* pcSlice, ParameterSetManager *parameterSetManager, const Int prevTid0POC)       = 0;
    8080
    8181  virtual Void parseTerminatingBit       ( UInt& ruilsLast )                                     = 0;
     
    150150  Void    decodePPS                   ( TComPPS* pcPPS ) { m_pcEntropyDecoderIf->parsePPS(pcPPS); }
    151151#endif
    152   Void    decodeSliceHeader           ( TComSlice* pcSlice, ParameterSetManager *parameterSetManager)  { m_pcEntropyDecoderIf->parseSliceHeader(pcSlice, parameterSetManager);         }
     152  Void    decodeSliceHeader           ( TComSlice* pcSlice, ParameterSetManager *parameterSetManager, const Int prevTid0POC)  { m_pcEntropyDecoderIf->parseSliceHeader(pcSlice, parameterSetManager, prevTid0POC);         }
    153153
    154154  Void    decodeTerminatingBit        ( UInt& ruiIsLast )       { m_pcEntropyDecoderIf->parseTerminatingBit(ruiIsLast);     }
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecSbac.h

    r1287 r1295  
    7979  Void  parseVPS                  ( TComVPS* /*pcVPS*/ ) {}
    8080  Void  parseSPS                  ( TComSPS* /*pcSPS*/ ) {}
    81   Void  parsePPS                  ( TComPPS* /*pcPPS*/
    8281#if CGS_3D_ASYMLUT
    83     , TCom3DAsymLUT * /*pc3DAsymLUT*/ , Int /*nLayerID*/
     82  Void  parsePPS                  ( TComPPS* /*pcPPS*/, TCom3DAsymLUT * /*pc3DAsymLUT*/, Int /*nLayerID*/ ) {}
     83#else
     84  Void  parsePPS                  ( TComPPS* /*pcPPS*/ ) {}
    8485#endif
    85     ) {}
    8686
    87   Void  parseSliceHeader          ( TComSlice* /*pcSlice*/, ParameterSetManager* /*parameterSetManager*/) {}
     87  Void  parseSliceHeader          ( TComSlice* /*pcSlice*/, ParameterSetManager* /*parameterSetManager*/, const Int /*prevTid0POC*/) {}
    8888  Void  parseTerminatingBit       ( UInt& ruiBit );
    8989  Void  parseRemainingBytes       ( Bool noTrailingBytesExpected);
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r1292 r1295  
    8282  m_prevPOC                = MAX_INT;
    8383#endif
     84  m_prevTid0POC            = 0;
    8485  m_bFirstSliceInPicture    = true;
    8586#if !SVC_EXTENSION
     
    399400  cFillPic->getSlice(0)->setReferenced(true);
    400401  cFillPic->getSlice(0)->setPOC(iLostPoc);
     402  xUpdatePreviousTid0POC(cFillPic->getSlice(0));
    401403  cFillPic->setReconMark(true);
    402404  cFillPic->setOutputMark(true);
     
    749751#endif
    750752
    751   m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManager);
     753  m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManager, m_prevTid0POC);
    752754
    753755#if SVC_EXTENSION
     
    841843    Int iMaxPOClsb = 1 << sps->getBitsForPOC();
    842844    m_apcSlicePilot->setPOC( m_apcSlicePilot->getPOC() & (iMaxPOClsb - 1) );
     845    xUpdatePreviousTid0POC(m_apcSlicePilot);
    843846  }
    844847
    845848  // Skip pictures due to random access
     849
    846850  if (isRandomAccessSkipPicture(iSkipFrame, iPOCLastDisplay))
    847851  {
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.h

    r1292 r1295  
    106106  Int                     m_prevPOC;
    107107#endif
     108  Int                     m_prevTid0POC;
    108109  Bool                    m_bFirstSliceInPicture;
    109110#if !SVC_EXTENSION
     
    284285#endif
    285286  Void      xDecodeSEI( TComInputBitstream* bs, const NalUnitType nalUnitType );
     287  Void      xUpdatePreviousTid0POC( TComSlice *pSlice ) { if ((pSlice->getTLayer()==0) && (pSlice->isReferenceNalu() && (pSlice->getNalUnitType()!=NAL_UNIT_CODED_SLICE_RASL_R)&& (pSlice->getNalUnitType()!=NAL_UNIT_CODED_SLICE_RADL_R))) { m_prevTid0POC=pSlice->getPOC(); } }
     288
    286289
    287290#if SVC_EXTENSION
Note: See TracChangeset for help on using the changeset viewer.