The source project of this merge request has been removed.
Fix: avoid redundant coding of RPL in both SPS and SH in multilayer
Compare changes
- Fabrice URBAN authored
+ 116
− 91
@@ -1953,22 +1953,56 @@ void EncLib::xInitAPS(APS &aps)
@@ -1977,9 +2011,42 @@ void EncLib::xInitRPL(SPS &sps)
@@ -1989,8 +2056,8 @@ void EncLib::xInitRPL(SPS &sps)
@@ -2001,7 +2068,7 @@ void EncLib::xInitRPL(SPS &sps)
@@ -2022,15 +2089,14 @@ void EncLib::xInitRPL(SPS &sps)
@@ -2054,11 +2120,10 @@ void EncLib::xInitRPL(SPS &sps)
@@ -2084,57 +2149,6 @@ void EncLib::xInitRPL(SPS &sps)
@@ -2144,8 +2158,21 @@ void EncLib::selectReferencePictureList(Slice* slice, int POCCurr, int GOPid, in
@@ -2154,7 +2181,7 @@ void EncLib::selectReferencePictureList(Slice* slice, int POCCurr, int GOPid, in
@@ -2166,13 +2193,11 @@ void EncLib::selectReferencePictureList(Slice* slice, int POCCurr, int GOPid, in
@@ -2187,8 +2212,7 @@ void EncLib::selectReferencePictureList(Slice* slice, int POCCurr, int GOPid, in
@@ -2208,34 +2232,35 @@ void EncLib::selectReferencePictureList(Slice* slice, int POCCurr, int GOPid, in
m_layerId can't be used as an argument here, the function declaration is
getInterLayerRefIdc( uint32_t layerIdx, uint32_t refLayerIdx )
and m_layerId is not necessarily equal to layerIdx. This code crashes VTM encoder when m_layerId is not equal to layerIdx.m_layerId argument should be replaced with m_vps->getGeneralLayerIdx( m_layerId ), which produces the correct layerIdx for a given m_layerId
Thank for pointing that out. I fixed this in MR !2496 (merged)