BitstreamExtractor: fixes for running the extractor on single layer streams and streams with no partitioning
1 unresolved thread
Some indentation change was required for the single layer case.
- When trying to extract OLS=0 from a single layer stream, the same bitstream should now be written to the output.
- A crash for non-partioned streams was fixed (requires tile layout to be initialized)
Edited by Karsten Suehring
Merge request reports
Activity
mentioned in commit 414b68a8
437 438 { 438 // Remove NAL units with nal_unit_type not equal to any of VPS_NUT, DPS_NUT, and EOB_NUT and with nuh_layer_id not included in the list LayerIdInOls[targetOlsIdx]. 439 NalUnitType t = nalu.m_nalUnitType; 440 bool isSpecialNalTypes = t == NAL_UNIT_VPS || t == NAL_UNIT_DCI || t == NAL_UNIT_EOB; 441 vps = m_parameterSetManager.getVPS(m_vpsId); 442 uint32_t numOlss = vps->getNumOutputLayerSets(); 443 CHECK(m_targetOlsIdx <0 || m_targetOlsIdx >= numOlss, "target Ols shall be in the range of OLSs specified by the VPS"); 444 std::vector<int> LayerIdInOls = vps->getLayerIdsInOls(m_targetOlsIdx); 445 bool isIncludedInTargetOls = std::find(LayerIdInOls.begin(), LayerIdInOls.end(), nalu.m_nuhLayerId) != LayerIdInOls.end(); 446 writeInpuNalUnitToStream &= (isSpecialNalTypes || isIncludedInTargetOls); 439 // this initialization can be removed once the dummy VPS is properly initialized in the parameter set manager 440 vps->deriveOutputLayerSets(); 441 } 442 uint32_t numOlss = vps->getNumOutputLayerSets(); 443 CHECK(m_targetOlsIdx <0 || m_targetOlsIdx >= numOlss, "target Ols shall be in the range of OLSs specified by the VPS"); 444 std::vector<int> LayerIdInOls = vps->getLayerIdsInOls(m_targetOlsIdx); mentioned in merge request !1644 (merged)
Please register or sign in to reply