- From: Philip Jägenstedt <philipj@opera.com>
- Date: Thu, 17 Mar 2011 20:50:44 +0100
On Thu, 17 Mar 2011 17:51:08 +0100, Olli Pettay <Olli.Pettay at helsinki.fi> wrote: > On 03/17/2011 06:31 PM, Philip J?genstedt wrote: >> On Thu, 17 Mar 2011 16:48:40 +0100, Olli Pettay >> <Olli.Pettay at helsinki.fi> wrote: >> >>> On 03/17/2011 03:11 PM, Lachlan Hunt wrote: >>>> On 2011-03-16 19:29, Olli Pettay wrote: >>>>> Perhaps navigator.getUserMedia("audio,video", success, error); >>>>> could return an url to the device in the success callback, and that >>>>> url >>>>> could be then set to video.src. >>>> >>>> The creation of a URL is unnecessary indirection. It's easier to avoid >>>> creating special URLs entirely, and instead assign the the Stream >>>> object >>>> directly to video.src. >>> >>> >>> The type of .src is string. >>> Assigning a different type of object to it >>> is quite strange. >>> >>> Also, if getUserMedia would return just an URL, browser wouldn't need >>> to create any stream object (unless someone then want to stream >>> from <video> to PeerConnection). >> >> Sure, but instead one would have to mint URLs and keep a mapping between >> those URLs and the streams that they actually represent. If people copy >> those URLs around, how long are they supposed to work for? Consider this >> scenario: >> >> function getStreamURL() { >> var s; >> // code that sets s to a new Stream object for the default camera or >> something >> return s.url; >> } >> var url = getStreamURL(); >> /* garbage collector? */ >> document.querySelector('video').src = url; > > I'd assume stream url would be handled like > urls created using createObjectURL. > It could be then revoked. I wasn't aware of this API, it's in http://www.w3.org/TR/FileAPI/#dfn-createObjectURL for reference. That API has an explicit revokeObjectURL to solve the lifetime issue, but there's no such thing for the Stream API. -- Philip J?genstedt Core Developer Opera Software
Received on Thursday, 17 March 2011 12:50:44 UTC