Opened 10 years ago Last modified 9 years ago #1336 new defectIncorrect NoOutputOfPriorPicsFlag flushing behaviour after EOS
Description
This ticket is related to #1335.
In TAppDecTop::decode() there is the following section of code: // write reconstruction to file if( bNewPicture ) { xWriteOutput( pcListPic, nalu.m_temporalId ); } if ( (bNewPicture || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_CRA) && m_cTDecTop.getNoOutputPriorPicsFlag() ) { m_cTDecTop.checkNoOutputPriorPics( pcListPic ); m_cTDecTop.setNoOutputPriorPicsFlag (false); }
There are two bugs here which happen when an EOS is followed by a new CVS beginning with a CRA NAL unit. When the EOS is encountered, xWriteOutput() gets called by this piece of code from further down the function: if (nalu.m_nalUnitType == NAL_UNIT_EOS) { xWriteOutput( pcListPic, nalu.m_temporalId ); m_cTDecTop.setFirstSliceInPicture (false); }
xWriteOutput thus gets called twice before the flush in this case, where it would otherwise be called once, causing incorrect extra output. The call to xWriteOutput when an EOS NUT is encountered should therefore be removed.
The other bug is that asserts validating the state of the RPS (in TComSlice::checkLeadingPictureRestrictions()) can fire on the prior pictures whilst they are still in the buffer after the call to checkNoOutputPriorPics(). To fix this, a call to xFlushOutput() should be added after the call to checkNoOutputPriorPics().
A patch for these changes is attached. Attachments (1)Change History (9)comment:1 Changed 10 years ago by DefaultCC Plugin
Changed 10 years ago by jackhcomment:2 Changed 10 years ago by ksuehring
comment:3 Changed 10 years ago by ksuehring
comment:4 Changed 10 years ago by ksuehring
comment:5 Changed 10 years ago by ksuehring
comment:6 Changed 10 years ago by ksuehring
comment:7 Changed 10 years ago by ksuehring
comment:8 Changed 9 years ago by ksuehring
Note: See
TracTickets for help on using
tickets. | This list contains all users that will be notified about changes made to this ticket. These roles will be notified: Reporter, Owner, Subscriber, Participant
|