Opened 10 years ago Last modified 9 years ago #1333 new defectLeading pictures are sometimes skipped or not skipped incorrectly
Description
The rules governing the skipping of leading pictures as I understand them are:
The reference decoder handles this by means of the function TDecTop::isRandomAccessSkipPicture(), which returns true to skip the picture. It determines whether pictures should be skipped by means of the variable m_pocRandomAccess, which takes the following values:
The current implementation doesn't handle the case where a subsequent CRA IRAP is encoded within a CVS. So if you had a BLA IRAP followed by a CRA IRAP with no EOS NAL unit between them, the following would happen:
As m_pocRandomAccess is only ever changed if m_pocRandomAccess==MAX_INT, and is only ever reset to MAX_INT when an EOS is encountered, it is possible to end up checking the POCs of RASLs against pictures that occurred many CVSs ago.
The attached patch addresses this issue by setting m_pocRandomAccess correctly for mid-CVS CRA pictures. Attachments (1)Change History (11)comment:1 Changed 10 years ago by DefaultCC Plugin
Changed 10 years ago by jackhcomment:2 Changed 10 years ago by ksuehringcomment:3 Changed 10 years ago by jackh
Yes, it covers that case. 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 10 years ago by ksuehring
comment:9 Changed 10 years ago by ksuehring
comment:10 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
|
Thanks for the patch. I have not checked the code yet. Could you clarify if this also covers the case that the new CVS starts with EOS before CRA?