Consider updating track_run_iterator to not mark a frame a keyframe if the moof metadata indicates it's not SAP type 1 or 2 |
|||
Issue description"Consider updating track_run_iterator to not mark a frame a keyframe if the moof metadata indicates it's not SAP type 1 or 2": This is a tracking bug; if we start seeing a large number of reports of seek problems in MSE, the problem might be that we're assuming any IDR is a random access point type 1 or 2, when it might not be. Note that the changes to make Chrome MSE buffering compliant with PTS range reporting should be independent (this SAP marking/seek problem potential pre-exists the in-progress work to switch from DTS range reporting to PTS.) Note there could still also be a problem that what looks like a random access point conforming to SAP type 1 or 2 in this moof alone is not a SAP 1 or 2 when seen in context with neighboring moofs. That's a much harder problem to solve in MSE context (when neighboring moofs don't have to be appended in sequence), so much less likely to be solved unless it becomes a very common issue.
,
Jun 27 2017
(that's T_PTF in type 2)
,
Jun 28 2018
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue. Sorry for the inconvenience if the bug really should have been left as Available. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Jul 19
|
|||
►
Sign in to add a comment |
|||
Comment 1 by wolenetz@chromium.org
, Jun 27 2017Pasting sandersd@'s excellent analysis of ISO-BMFF SAP types 1 and 2 (the only types allowed by MSE ISO-BMFF bytestream spec): "(Assuming that I_SAP == I_SAU, which appears to be a triviality.) Let A be an AU. Let I_SAP be the bitstream position where A begins. Let T_PTF be the PTS of A. Let T_EPT be the earliest PTS of any AU that follows I_SAP. Let T_DEC be the earliest PTS of any AU that can be decoded using only data that follows I_SAP. Let T_SAP be the earliest PTS such that all AUs with PTS >= T_SAP can be decoded using only data that follows I_SAP. (So: T_PTF = First Presentation Time, T_EPT = Earliest Presentation Time, T_DEC = Earliest Decodable Presentation Time, T_SAP = Earliest Contiguously Decodable Presentation Time.) Then: Type 1 SAP (T_EPT = T_DEC = T_SAP = T_PTF) implies: - A is the first AU in PTS order. - All AUs can be decoded, and they are contiguous. - Eg. [1 5 2 4 3 ...] Type 2 SAP (T_EPT = T_DEC = T_SAP < T) implies: - A is not the first AU in PTS order. - All AUs can be decoded, and they are contiguous. - Eg. [5 1 2 4 3 ...]"