- From: Glenn Adams <glenn@skynav.com>
- Date: Wed, 18 Sep 2013 08:39:40 -0600
- To: Philip Jägenstedt <philipj@opera.com>
- Cc: Silvia Pfeiffer <silviapfeiffer1@gmail.com>, Simon Pieters <simonp@opera.com>, Brendan Long <self@brendanlong.com>, "HTML WG (public-html@w3.org)" <public-html@w3.org>, Eric Carlson <eric.carlson@apple.com>
- Message-ID: <CACQ=j+dsmbvcq6EwLK8jK7TpOLB_KLVZLK2wKS1P-n9uSmqPeQ@mail.gmail.com>
On Wed, Sep 18, 2013 at 8:11 AM, Philip Jägenstedt <philipj@opera.com>wrote: > On Wed, Sep 18, 2013 at 4:05 PM, Glenn Adams <glenn@skynav.com> wrote: > > > > On Wed, Sep 18, 2013 at 2:42 AM, Philip Jägenstedt <philipj@opera.com> > > wrote: > >> > >> On Wed, Sep 18, 2013 at 9:59 AM, Silvia Pfeiffer > >> <silviapfeiffer1@gmail.com> wrote: > >> > On Tue, Sep 17, 2013 at 10:15 PM, Philip Jägenstedt < > philipj@opera.com> > >> > wrote: > >> >> On Tue, Sep 17, 2013 at 2:11 PM, Silvia Pfeiffer > >> >> <silviapfeiffer1@gmail.com> wrote: > >> >>> On Tue, Sep 17, 2013 at 6:01 PM, Philip Jägenstedt < > philipj@opera.com> > >> >>> wrote: > >> >>>> On Tue, Sep 17, 2013 at 12:52 AM, Silvia Pfeiffer > >> >>>> <silviapfeiffer1@gmail.com> wrote: > >> >>>> > >> >>>>> UnparsedCue can be created by JS and the JS could try to add it > to a > >> >>>>> track that has a @kind=captions. > >> >>>> > >> >>>> Why do we need to allow scripts to create UnparsedCue at all? That > >> >>>> will require some new API surface that isn't needed to solve the > >> >>>> original use case -- in-band metadata tracks which aren't just a > >> >>>> special-case of a captioning format. > >> >>> > >> >>> It also allows JS devs to create @kind=metadata cues without having > to > >> >>> decide to use a more specific format such as WebVTT. > >> >> > >> >> Given that UnparsedCue would be a strict subset of VTTCue, that > >> >> doesn't sound at all worth adding APIs for. > >> > > >> > It avoids developer confusion, which is sufficient reason for me. > >> > > >> > Here's another use case: when a browser exposes in-band text tracks > >> > through a @kind=metadata TextTrack, this allows developers to make > >> > corrections to the list of cues - add cues if necessary to e.g. fill > >> > gaps. > >> > >> It turns out I'm not up to date with what the spec says. addCue and > >> removeCue are now on the TextTrack interface and take a TextTrackCue, > >> whereas there used to be a function which created *and* added a cue. I > >> thought we'd need a new such function, but it's only a question of > >> whether or not UnparsedCue has a constructor. > >> > >> I would prefer if UnparsedCue was only ever used for in-band metadata > >> tracks of an unknown kind, but if browsers are going to expose the > >> UnparsedCue interface anyway, then exposing a constructor by that same > >> makes no difference, and would indeed be more consistent. > > > > > > Would it be better to call this interface RawCue or RawTextCue, so that > it > > doesn't necessarily imply that it is not parsed? This would be useful to > > permit a rendered cue interface type (that exposes getCueAsHTML) to > inherit > > from Raw{Text}Cue in order to provide the text attribute. > > > > I have specified a RawTTMLCue to serve this function (as a base interface > > for TTMLCue) in [1]. > > Hmm, this makes we wonder what the property for accessing the data is > supposed to be. If it's a string, then it requires that the UA at > least know what the encoding of the text is, which seems like it might > not be true. RawCue and exposing the data as a typed array .data > property seems OK to me. The other option is to base64-encode cues > which are of an unknown encoding, I guess? > In the case of RawTTMLCue, it is defined as: attribute DOMString text so, yes, the UA would need to at least detect the encoding (of TTML) and transcode to an ECMAScript String representation (i.e., an array of 16-bit UTF-16 encoding units). For a generic RawCue, it would be useful to specify language such as: If user agent is able to expose the content of a cue in raw text form, and then that content MUST be serialized as a DOMString (with or without transcoding). In the case that the native raw format is binary or is otherwise not able to be serialized as a DOMString, then it SHOULD be serialized as a BASE64 representation of the raw cue content.
Received on Wednesday, 18 September 2013 14:40:29 UTC