- From: Philip Jägenstedt <philipj@opera.com>
- Date: Tue, 07 Jun 2011 11:04:18 +0200
On Sat, 04 Jun 2011 03:39:58 +0200, Silvia Pfeiffer <silviapfeiffer1 at gmail.com> wrote: > On Fri, Jun 3, 2011 at 9:28 AM, Ian Hickson <ian at hixie.ch> wrote: >> On Thu, 16 Dec 2010, Silvia Pfeiffer wrote: >>> >>> I do not know how technically the change of stream composition works in >>> MPEG, but in Ogg we have to end a current stream and start a new one to >>> switch compositions. This has been called "sequential multiplexing" or >>> "chaining". In this case, stream setup information is repeated, which >>> would probably lead to creating a new steam handler and possibly a new >>> firing of "loadedmetadata". I am not sure how chaining is implemented >>> in >>> browsers. >> >> Per spec, chaining isn't currently supported. The closest thing I can >> find >> in the spec to this situation is handling a non-fatal error, which >> causes >> the unexpected content to be ignored. >> >> >> On Fri, 17 Dec 2010, Eric Winkelman wrote: >>> >>> The short answer for changing stream composition is that there is a >>> Program Map Table (PMT) that is repeated every 100 milliseconds and >>> describes the content of the stream. Depending on the programming, the >>> stream's composition could change entering/exiting every advertisement. >> >> If this is something that browser vendors want to support, I can specify >> how to handle it. Anyone? > > Icecast streams have chained files, so streaming Ogg to an audio > element would hit this problem. There is a bug in FF for this: > https://bugzilla.mozilla.org/show_bug.cgi?id=455165 (and a duplicate > bug at https://bugzilla.mozilla.org/show_bug.cgi?id=611519). There's > also a webkit bug for icecast streaming, which is probably related > https://bugs.webkit.org/show_bug.cgi?id=42750 . I'm not sure how Opera > is able to deal with icecast streams, but it seems to deal with it. > > The thing is: you can implement playback and seeking without any > further changes to the spec. But then the browser-internal metadata > states will change depending on the chunk you're on. Should that also > update the exposed metadata in the API then? Probably yes, because > otherwise the JS developer may deal with contradictory information. > Maybe we need a "metadatachange" event for this? An Icecast stream is conceptually just one infinite audio stream, even though at the container level it is several chained Ogg streams. duration will be Infinity and currentTime will be constantly increasing. This doesn't seem to be a case where any spec change is needed. Am I missing something? -- Philip J?genstedt Core Developer Opera Software
Received on Tuesday, 7 June 2011 02:04:18 UTC