New issue
Advanced search Search tips

Issue 737190 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

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

Project Member Reported by wolenetz@chromium.org, Jun 27 2017

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.
 
Pasting 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 ...]"
(that's T_PTF in type 2)
Project Member

Comment 3 by sheriffbot@chromium.org, Jun 28 2018

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
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
Status: Assigned (was: Untriaged)

Sign in to add a comment