diff --git a/source/Lib/DecoderLib/DecLib.cpp b/source/Lib/DecoderLib/DecLib.cpp index 9ec856ab7100e16baa16c039052f8be6bd59d7a9..95e7efab246ba7969297de20adaa67512ab9b195 100644 --- a/source/Lib/DecoderLib/DecLib.cpp +++ b/source/Lib/DecoderLib/DecLib.cpp @@ -991,6 +991,10 @@ bool DecLib::xDecodeSlice(InputNALUnit &nalu, int &iSkipFrame, int iPOCLastDispl m_apcSlicePilot->copySliceInfo( m_pcPic->slices[m_uiSliceSegmentIdx-1] ); } + m_apcSlicePilot->setSliceCurStartCtuTsAddr(0); + m_apcSlicePilot->setSliceCurEndCtuTsAddr(0); + m_apcSlicePilot->setSliceCurStartBrickIdx(0); + m_apcSlicePilot->setSliceCurEndBrickIdx(0); m_apcSlicePilot->setNalUnitType(nalu.m_nalUnitType); m_apcSlicePilot->setTLayer(nalu.m_temporalId); diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 95fe1df1afc670ccdc64adce18d4258cc33e4314..1186a3830a56872cf6a6da724233504d34ed731e 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -1889,6 +1889,21 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, ParameterSetManager *para parsePredWeightTable(pcSlice, sps); pcSlice->initWpScaling(sps); } + else + { + WPScalingParam *wp; + for ( int iNumRef=0 ; iNumRef<((pcSlice->getSliceType() == B_SLICE )?2:1); iNumRef++ ) + { + RefPicList eRefPicList = ( iNumRef ? REF_PIC_LIST_1 : REF_PIC_LIST_0 ); + for ( int iRefIdx=0 ; iRefIdx<pcSlice->getNumRefIdx(eRefPicList) ; iRefIdx++ ) + { + pcSlice->getWpScaling(eRefPicList, iRefIdx, wp); + wp[0].bPresentFlag = false; + wp[1].bPresentFlag = false; + wp[2].bPresentFlag = false; + } + } + } READ_FLAG( uiCode, "dep_quant_enabled_flag" ); pcSlice->setDepQuantEnabledFlag( uiCode != 0 ); if( !pcSlice->getDepQuantEnabledFlag() )