id summary reporter owner description type status priority milestone component version resolution keywords cc 1333 Leading pictures are sometimes skipped or not skipped incorrectly jackh "The rules governing the skipping of leading pictures as I understand them are: * RASLs should be skipped (not output) in the first IRAP of a new CVS. * RADLs are never skipped. * RASLs following a subsequent IRAP inside a CVS should not be skipped. 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: * m_pocRandomAccess==MAX_INT: waiting to be set * m_pocRandomAccess==-MAX_INT: inside an IDR IRAP, no RASLs should be skipped. * Other values: contains POC of IRAP picture. RASLs should be skipped. 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: 1. Start. m_pocRandomAccess==MAX_INT. 2. Decode BLA. m_pocRandomAccess=. 3. Decode leading and trailing pictures. RASLs are skipped if their POCs are less than the POC of the BLA picture. 3. Decode CRA. m_pocRandomAccess is not changed as m_pocRandomAccess!=MAX_INT. RASLs are arbitrarily skipped if their POCS are less than the POC of the BLA picture. 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. " defect new minor HM HM-16.1 ksuehring davidf karlsharman jct-vc@…