- From: Brendan Long <B.Long@cablelabs.com>
- Date: Mon, 19 May 2014 15:36:41 +0000
- To: Bob Lund <B.Lund@CableLabs.com>, Silvia Pfeiffer <silviapfeiffer1@gmail.com>
- CC: "public-inbandtracks@w3.org" <public-inbandtracks@w3.org>, "Mark Vickers @ Comcast" <mark_vickers@cable.comcast.com>, Giuseppe Pascale <giuseppep@opera.com>, Glenn Adams <glenn@skynav.com>
Individual descriptor cues would make sense if we don't need anything else in the PMT. They're conveniently name-value pairs, so whatever works for ID3 will probably work for MPEG-TS descriptors. We would probably want some way to differentiate between program-level descriptors and track-level descriptors (and the transport-stream-level descriptors in the "Transport Stream Description Table"). ________________________________________ From: Bob Lund Sent: Monday, May 19, 2014 10:12 AM To: Silvia Pfeiffer; Brendan Long Cc: public-inbandtracks@w3.org; Mark Vickers @ Comcast; Giuseppe Pascale; Glenn Adams Subject: Re: MPEG-2 TS Metadata Cue On 5/18/14, 11:47 PM, "Silvia Pfeiffer" <silviapfeiffer1@gmail.com> wrote: >On Tue, Apr 29, 2014 at 8:00 AM, Bob Lund <B.Lund@cablelabs.com> wrote: >> Hi All, >> >> Given the direction of the discussion around DataCue, I put together a >> proposal for an MPEG-2 TS specific metadata cue interface. I¹m no WebIDL >> expert (or even novice) so comments/suggestions are welcome. >> >> The approach is fairly straightforward. There are three types of >>metadata >> script can use: program map table, transport stream descriptors and >>private >> sections. All of these are tables that have a common set of attributes, >> including tableId, and table specific attributes. tableId is used to >> determine the type of table. So, the Cue exposes the tableId and the >>rest of >> the table data. The tableId is used to determine the format of the rest >>of >> the table data. > > >IIUC the Program Map Table is a data structure that describes the >composition of the full stream, i.e. its elementary streams. It is >therefore not timed data (as in: there are chuncks of data coming up >frequently during a program) and therefore exposing it in a TextTrack >in DataCue objects to JS is not appropriate. The PMT can change over time because a) elementary streams are added or removed or b)program level descriptors (content_advisory_descriptor [1]) changes. Case Œa¹ above will be handled by track add/remove events. Case Œb¹ could be handled by on exposing the PMT program level descriptor array, if it changes. This alternative would be OK by me. I know Brendan felt exposing the PMT as metadata would have some advantages but he can weigh in if he wants to. >It's a DataCue, not a MetadataCue. The information of a PMT should >already be available from the HTMLMediaElement and its attributes. No the program level stuff [2] (see below). So, at least the descriptor() list needs to be exposed. table_id section_syntax_indicator reserved section_length program_number reserved version_number current_next_indicator section_number last_section_number reserved PCR_PID reserved program_info_length 12 uimsbf for (i = 0; i < N; i++) { descriptor() } > I >wouldn't advocate exposing Ogg Skeleton to HTML either. > >I am trying to understand what use cases you are trying to get to and >what (semantic) information you are trying to expose. Any program level descriptor, e.g. content_advisory_descriptor [1]. >Exposing the structure of the headers of a MPEG file simply doesn't >seem useful . >What semantic information is contained in a MPEG transport stream >program map table that you need access to from JS? > >I'll make some guesses: > >1. I can see a need for name-value metadata information. Is that what >you're after? >This would be part of an orthogonal discussion to DataCue. >In fact, it's part of the discussion where we don't expose in-band >metadata for any file format to JavaScript, see for example that we >also don't expose EXIF metadata on images. > >However, there is always >https://www.w3.org/Bugs/Public/show_bug.cgi?id=5755 (just like there >is https://www.w3.org/Bugs/Public/show_bug.cgi?id=23511). > > >2. Then there is always timed metadata, i.e. the name-value pairs, but >changing over time >I assume it is possible to have something like that, e.g. to signal >hooks for advertisements, or changing information about copyright or >content advisory. >I think such fields could always be represented as JSON, so maybe we >should start defining a JSONCue ? We actually discussed this and I know Graham Clift @ Sony was in favor of this approach. However, the challenge with MPEG-2 TS is that there are a lot of descriptor types and content providers can describe their own. So, in some cases, the JSON name/value won¹t be very descriptive, e.g. descriptor id = some_arbitrary_number, value = binary_data_of_unknown_format. I¹m not opposed to a JSONCue. > >3. Is there any other use case that I missed? Nope. Bob [1] http://www.atsc.org/cms/standards/A65_2013.pdf section 6.9.3 [2] ISO/IEC 13818-1 Table 2-28 > >Thanks, >Silvia.
Received on Monday, 19 May 2014 15:38:29 UTC