From 64747249e73b01ea118b095522ea8500f3335695 Mon Sep 17 00:00:00 2001 From: Brian Heng <brian.heng@broadcom.com> Date: Fri, 19 Jul 2019 10:41:30 -0700 Subject: [PATCH] Fix for Ticket #368 Slice Initialization Issues - Initialize some weighted prediction and slice address variables in case they are not set during slice header parsing. --- source/Lib/DecoderLib/DecLib.cpp | 4 ++++ source/Lib/DecoderLib/VLCReader.cpp | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/source/Lib/DecoderLib/DecLib.cpp b/source/Lib/DecoderLib/DecLib.cpp index 9ec856ab71..95e7efab24 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 95fe1df1af..1186a3830a 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() ) -- GitLab