This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 26314 - [MSE] Coded Frame Removal algorithm leaves in place decoding dependencies
Summary: [MSE] Coded Frame Removal algorithm leaves in place decoding dependencies
Status: RESOLVED FIXED
Alias: None
Product: HTML WG
Classification: Unclassified
Component: Media Source Extensions (show other bugs)
Version: unspecified
Hardware: PC All
: P2 normal
Target Milestone: CR
Assignee: Aaron Colwell
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-07-12 00:12 UTC by Jer Noble
Modified: 2014-07-24 21:20 UTC (History)
3 users (show)

See Also:


Attachments

Description Jer Noble 2014-07-12 00:12:21 UTC
3.5.10 Coded Frame Processing

"1.15 Remove existing coded frames in track buffer:
↪︎ If highest presentation timestamp for track buffer is not set:
  Remove all coded frames from track buffer that have a presentation timestamp greater than or equal to presentation timestamp and less than frame end timestamp.
↪︎ If highest presentation timestamp for track buffer is set and less than or equal to presentation timestamp:
  Remove all coded frames from track buffer that have a presentation timestamp greater than or equal to highest presentation timestamp and less than frame end timestamp."

"1.16 Remove decoding dependencies of the coded frames removed in the previous step:
↪︎ If detailed information about decoding dependencies is available:
  Remove all coded frames from track buffer that have decoding dependencies on the coded frames removed in the previous step.
↪︎ Otherwise:
  Remove all coded frames between the coded frames removed in the previous step and the next random access point after those removed frames."

vs.

3.5.11 Coded Frame Removal Algorithm

"3.3. Remove all media data, from this track buffer, that contain starting timestamps greater than or equal to start and less than the remove end timestamp."

While "remove end timestamp" is guaranteed to be either a sync-sample or the end of the frames, "start" is not guaranteed to be a sync-sample. If decoding dependencies are not removed, decoding errors can result, particularly if a removed sample is a sync sample.

I propose adding the same language as found in section 3.5.10 after section 3.5.11 step 3.3:

"Remove decoding dependencies of the coded frames removed in the previous step:
↪︎ If detailed information about decoding dependencies is available:
  Remove all coded frames from track buffer that have decoding dependencies on the coded frames removed in the previous step.
↪︎ Otherwise:
  Remove all coded frames between the coded frames removed in the previous step and the next random access point after those removed frames."

This would eliminate decoding errors, if there exist frames with presentation timestamps which occur before /start/, but whose decode timestamps occur after frames within the range define in step 3.3.
Comment 1 Aaron Colwell 2014-07-24 21:20:59 UTC
Change committed.
https://dvcs.w3.org/hg/html-media/rev/c63fe313d13a