diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 149545fe88306c39b3b7e7322fbb9ef0ac4389e2..95fe1df1afc670ccdc64adce18d4258cc33e4314 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -1537,6 +1537,12 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, ParameterSetManager *para { READ_CODE(sps->getBitsForPOC(), uiCode, "slice_pic_order_cnt_lsb"); pcSlice->setPOC(uiCode); + ReferencePictureList* rpl0 = pcSlice->getLocalRPL0(); + (*rpl0) = ReferencePictureList(); + pcSlice->setRPL0(rpl0); + ReferencePictureList* rpl1 = pcSlice->getLocalRPL1(); + (*rpl1) = ReferencePictureList(); + pcSlice->setRPL1(rpl1); } else { @@ -1588,6 +1594,11 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, ParameterSetManager *para pcSlice->setRPL0idx(uiCode); pcSlice->setRPL0(sps->getRPLList0()->getReferencePictureList(uiCode)); } + else + { + pcSlice->setRPL0idx(0); + pcSlice->setRPL0(sps->getRPLList0()->getReferencePictureList(0)); + } } //Deal POC Msb cycle signalling for LTRP for (int i = 0; i < pcSlice->getRPL0()->getNumberOfLongtermPictures() + pcSlice->getRPL0()->getNumberOfShorttermPictures(); i++) @@ -1621,7 +1632,7 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, ParameterSetManager *para } else { - if (sps->getNumRPL0() > 0) + if (sps->getNumRPL1() > 0) { READ_FLAG(uiCode, "ref_pic_list_sps_flag[1]"); }