Bug 18601 - Contradictory requirements for initialization segments
Summary: Contradictory requirements for initialization segments
Status: RESOLVED FIXED
Alias: None
Product: HTML WG
Classification: Unclassified
Component: Media Source Extensions (show other bugs)
Version: unspecified
Hardware: PC Linux
: P2 normal
Target Milestone: ---
Assignee: Aaron Colwell (c)
QA Contact: HTML WG Bugzilla archive list
URL:
Whiteboard: tpac2012
Keywords:
Depends on:
Blocks:
 
Reported: 2012-08-17 13:07 UTC by Philip Jägenstedt
Modified: 2012-11-28 18:40 UTC (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philip Jägenstedt 2012-08-17 13:07:23 UTC
The spec seems confused about whether or not initialization segments are mandatory or not.

http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#source-buffer-basic-append

"The first segment appended MUST be an initialization segment."

(IMHO, this entire section should be non-normative, but currently it isn't.)

http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#dom-append

A bunch of steps here are triggered by the first initialization segment.

http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#byte-stream-formats

"A byte stream format specification MAY define initialization segments and MUST define media segments."
Comment 1 Philip Jägenstedt 2012-08-17 13:08:12 UTC
I don't have a strong opinion on the fix, but if no one is planning to support a format without initialization segments, then it doesn't make sense to spend too much time on it at this point.
Comment 2 Philip Jägenstedt 2012-08-17 13:17:03 UTC
Further down, there's also this paragraph: "Initialization segments are an optimization. They allow a byte stream format to avoid duplication of information in Media Segments that is the same for many Media Segments. Byte stream format specifications need not specify Initialization Segment formats, however. They may instead require that such information is duplicated in every Media Segment."
Comment 3 Aaron Colwell (c) 2012-08-17 20:41:37 UTC
(In reply to comment #0)
> The spec seems confused about whether or not initialization segments are
> mandatory or not.
> 
> http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#source-buffer-basic-append
> 
> "The first segment appended MUST be an initialization segment."

I could soften this to the following:
"If the format defines an initialization segment format, the first segment appended must be an initialization segment."

> 
> (IMHO, this entire section should be non-normative, but currently it isn't.)
> 
> http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#dom-append
> 
> A bunch of steps here are triggered by the first initialization segment.
> 
> http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#byte-stream-formats
> 
> "A byte stream format specification MAY define initialization segments and MUST
> define media segments."

I'm CC'ing Mark Watson because I believe he is the one that wanted to make initialization segments optional. All the formats we currently support have initialization segments so I'd be fine with dropping the "init segments are optional" text until we have a more concrete idea of how a format w/o init segments would work.
Comment 4 Adrian Bateman [MSFT] 2012-10-22 01:14:05 UTC
Discussed during call: http://www.w3.org/2012/09/25-html-media-minutes.html#item06

Current proposal is to remove the text making initialization segments optional. Even "self initializing" media formats will likely be indistinguishable from formats that have distinct initialization and media segments. The main goal is to avoid appending media data without initialization for those formats where this might otherwise be possible.
Comment 5 Aaron Colwell (c) 2012-11-28 18:40:41 UTC
Changes committed.
http://dvcs.w3.org/hg/html-media/rev/0c638da9a67a

Based on TPAC decisions, I've removed the text that says initialization segments are optional.