Changeset 1245 in SHVCSoftware


Ignore:
Timestamp:
13 Jul 2015, 22:59:28 (9 years ago)
Author:
seregin
Message:

port rev 4237

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecSlice.cpp

    r1235 r1245  
    228228    }
    229229
    230     // Should the sub-stream/stream be terminated after this CTU?
    231     // (end of slice-segment, end of tile, end of wavefront-CTU-row)
    232     if (isLastCtuOfSliceSegment ||
    233          (  ctuXPosInCtus + 1 == tileXPosInCtus + currentTile.getTileWidthInCtus() &&
    234           ( ctuYPosInCtus + 1 == tileYPosInCtus + currentTile.getTileHeightInCtus() || wavefrontsEnabled)
    235          )
    236        )
    237     {
     230    if (isLastCtuOfSliceSegment)
     231    {
     232#if DECODER_CHECK_SUBSTREAM_AND_SLICE_TRAILING_BYTES
     233      pcSbacDecoder->parseRemainingBytes(false);
     234#endif
     235      if(!pcSlice->getDependentSliceSegmentFlag())
     236      {
     237        pcSlice->setSliceCurEndCtuTsAddr( ctuTsAddr+1 );
     238      }
     239      pcSlice->setSliceSegmentCurEndCtuTsAddr( ctuTsAddr+1 );
     240    }
     241    else if (  ctuXPosInCtus + 1 == tileXPosInCtus + currentTile.getTileWidthInCtus() &&
     242             ( ctuYPosInCtus + 1 == tileYPosInCtus + currentTile.getTileHeightInCtus() || wavefrontsEnabled)
     243            )
     244    {
     245      // The sub-stream/stream should be terminated after this CTU.
     246      // (end of slice-segment, end of tile, end of wavefront-CTU-row)
    238247      UInt binVal;
    239248      pcSbacDecoder->parseTerminatingBit( binVal );
    240249      assert( binVal );
    241250#if DECODER_CHECK_SUBSTREAM_AND_SLICE_TRAILING_BYTES
    242       pcSbacDecoder->parseRemainingBytes(!isLastCtuOfSliceSegment);
    243 #endif
    244 
    245       if (isLastCtuOfSliceSegment)
    246       {
    247         if(!pcSlice->getDependentSliceSegmentFlag())
    248         {
    249           pcSlice->setSliceCurEndCtuTsAddr( ctuTsAddr+1 );
    250         }
    251         pcSlice->setSliceSegmentCurEndCtuTsAddr( ctuTsAddr+1 );
    252         break;
    253       }
    254     }
     251      pcSbacDecoder->parseRemainingBytes(true);
     252#endif
     253    }
     254
    255255  }
    256256
Note: See TracChangeset for help on using the changeset viewer.