19:43:01 RRSAgent has joined #mediacap 19:43:01 logging to http://www.w3.org/2012/05/09-mediacap-irc 19:43:03 RRSAgent, make logs 175 19:43:05 Zakim, this will be 19:43:05 I don't understand 'this will be', trackbot 19:43:06 Meeting: Media Capture Task Force Teleconference 19:43:06 Date: 09 May 2012 19:44:10 RRSAgent, make log public 19:46:16 Zakim, this will be MCAP 19:46:16 ok, dom; I see UW_MdCap()4:00PM scheduled to start in 14 minutes 19:49:48 stefanh has joined #mediacap 19:51:01 UW_MdCap()4:00PM has now started 19:51:08 +Josh_Soref 19:53:11 anant_ has joined #mediacap 19:54:14 +[Mozilla] 19:54:18 burn has joined #mediacap 19:54:52 fjh has joined #mediacap 19:54:54 Zakim: Mozilla is anant 19:55:50 +Dan_Burnett 19:56:10 zakim, I am Dan_Burnett 19:56:10 ok, burn, I now associate you with Dan_Burnett 19:56:18 anant has joined #mediacap 19:57:26 adambe has joined #mediacap 19:58:15 +adambe 19:59:22 +Stefan_Hakansson 19:59:35 +bryan 19:59:46 zakim, nick stefanh is Stefan_Hakansson 19:59:46 ok, burn, I now associate stefanh with Stefan_Hakansson 19:59:59 +Jim_Barnett 19:59:59 Zakim, code? 19:59:59 Cathy has joined #mediacap 20:00:00 the conference code is 6227 (tel:+1.617.761.6200 sip:zakim@voip.w3.org), dom 20:00:17 +??P15 20:00:20 Zakim, ??P15 is me 20:00:20 +dom; got it 20:00:46 Scribe: Josh_Soref 20:00:49 zakim, who is noisy? 20:01:03 Zakim, who is making noise? 20:01:04 burn, listening for 10 seconds I heard sound from the following: Josh_Soref (90%) 20:01:12 Zakim, mute me 20:01:12 Josh_Soref should now be muted 20:01:14 Josh_Soref, listening for 10 seconds I heard sound from the following: Josh_Soref (30%) 20:01:50 Agenda: http://lists.w3.org/Archives/Public/public-media-capture/2012May/0005.html 20:01:53 RRSAgent, draft minutes 20:01:53 I have made the request to generate http://www.w3.org/2012/05/09-mediacap-minutes.html Josh_Soref 20:02:06 +??P0 20:02:11 zakim, ??P0 is me 20:02:11 +fjh; got it 20:02:37 -[Mozilla] 20:02:48 +Cathy 20:02:53 Chair: Stefan_Hakansson, Harald_Alvestrand 20:03:06 +[Mozilla] 20:03:23 Zakim, anant has entered [Mozilla] 20:03:23 +anant; got it 20:03:24 Zakim: [Mozilla] contains derf 20:03:34 Zakim, [Mozilla] contains derf 20:03:34 +derf; got it 20:03:36 +[Mozilla.a] 20:03:51 Zakim: [Mozilla.a] contains anant 20:03:56 Zakim, who is on the call? 20:03:56 On the phone I see Josh_Soref (muted), Dan_Burnett, adambe, Stefan_Hakansson, bryan, Jim_Barnett, dom, fjh, Cathy, [Mozilla], [Mozilla.a] 20:03:58 [Mozilla] has derf 20:04:14 Topic: Scribe Selection 20:04:18 stefanh: Josh_Soref, will you scribe? 20:04:20 Josh_Soref: yes 20:04:31 Topic: Agenda Adjustments 20:04:34 bryan_ has joined #mediacap 20:04:43 stefanh: I'd like to add a slot for burn to talk about Constraints 20:04:52 Topic: Minutes Approval 20:05:11 burn: I sent a minor correction to Josh_Soref just now 20:05:19 Josh_Soref: I'll update that and send out new minutes 20:05:25 Zakim, [Mozilla.a] contains anant 20:05:25 +anant; got it 20:05:28 stefanh: is it ok to approve the minutes with that correction? 20:05:46 RESOLUTION: Minutes from 24 April are approved with burn's correction 20:05:59 stefanh: there were 2 actions from the minutes 20:06:17 ... burn to write a proposal 20:06:24 ... and myself to contact travis 20:06:27 ... i haven't done that yet 20:06:42 Topic: Audio/Video Mandatory Syntax Proposal 20:06:51 burn: i sent an email, about an hour ago 20:06:53 ... to the list 20:07:04 ... I promised to provide an email with some of the syntax alternatives 20:07:13 ... these two, I think represent as much of the consensus 20:07:17 ... and interest as I heard 20:07:23 ... there were minor variations on these 20:07:32 ... I think overall, if we could choose one of the three approaches 20:07:38 ... the original, alternative 1, and alternative 2 20:07:43 ... but it'll be clear what we're discussing 20:07:54 ... the original is copied directly out of the constraints proposal 20:08:31 -> http://lists.w3.org/Archives/Public/public-media-capture/2012May/0011.html Syntax options for constraints structure Dan Burnett 20:08:48 [ Alternative 1 ] 20:09:07 burn: here, i restructured it 20:09:16 ... instead of mandatory and optional being the top-level keys 20:09:22 ... the top level are video and audio 20:09:30 ... with mandatory/optional underneath them 20:09:37 ... or for the value of the video key to be "true" 20:09:55 ... I had to come up with a value of "optional" 20:10:03 q+ to note that "optional" would need to be a string 20:10:11 ... video is a struture 20:10:20 ... with mandatory and optional parameters 20:10:26 q+ 20:10:27 ... mandatory is an object (dictionary) 20:10:34 ... and optional is still a list (array) 20:10:39 ... ordered 20:10:45 ... the ones that come first have a higher priority 20:10:56 [ Example 2] 20:10:59 s/]/ ]/ 20:11:13 burn: this uses the syntax shortcut for optional 20:11:17 [ Example 3 ] 20:11:27 burn: this uses the syntax shortcut for mandatory 20:11:29 ack Josh_Soref 20:11:31 Josh_Soref, you wanted to note that "optional" would need to be a string 20:11:35 Zakim, mute me 20:11:35 Josh_Soref should now be muted 20:11:48 anant: Josh_Soref noted that optional would need to be a string 20:12:04 ... we could make them be boolean or dictionary 20:12:22 ... and for optional you could not specify the property 20:12:26 burn: that wouldn't be the same 20:12:38 ... {audio:optional} means, I'm ok with audio, but i don't need it 20:12:49 ... if you say {}, audio means you don't want audio 20:12:57 anant: we'll have to think about this a bit more 20:13:03 ... from an implementation perspective 20:13:09 ... they could be Boolean, String, or Dictionary 20:13:15 ... we might just have String or Dictionary 20:13:19 ... that's just a minor detail 20:13:22 bryan has joined #mediacap 20:13:27 ... overall, it looks reasonable 20:13:36 present+ Bryan_Sullivan 20:13:44 adambe: perhaps, instead of making all three stirngs 20:13:49 ... could we use an enumeration type? 20:13:57 q+ to note that "enum" is being deprecated 20:14:24 burn: we could use {video:{mandatatory:{}} 20:14:30 s/}/}}/ 20:14:48 ... Dict + Enum 20:14:53 ack Josh_Soref 20:14:54 Josh_Soref, you wanted to note that "enum" is being deprecated 20:15:00 Zakim, mute me 20:15:00 Josh_Soref should now be muted 20:15:07 anant: we're trying to move away from enums 20:15:13 ... enums become messy things 20:15:21 ... navigator.media.ALLOW... 20:15:24 q- 20:15:25 ... so strings are better 20:15:36 ... we're moving away from them for XX 20:15:48 burn: any other questions about alternative 1? 20:15:51 [ None ] 20:15:54 s/XX/PeerConnection/ 20:16:11 [ Alternative 2 ] 20:16:15 burn: same 3 examples 20:16:36 ... video and audio have been added to the dictionary 20:16:40 Josh_Soref: enums are too verbose and require a prefix everytime (like navigator.media) that adds unnecessary characters 20:17:12 burn: we could still do... 20:17:29 ... the key difference is that we have {mandatory:{}, optional:{}} at the top 20:17:40 ... In the second example of alternative 2, we could modify optional: 20:17:49 ... to be an optional value for audio/video as in alternative 1 20:17:59 (enum is actually a construct in WebIDL to build list of acceptable strings) 20:18:07 q? 20:18:13 adambe: a key difference here 20:18:29 ... is that we don't have to prefix the constraints w/ video/audio in Alternative 1 20:18:35 ... but they're necessary in Alternative 2 20:18:46 ... in A2E1 20:19:01 ... is video mandatory in this example, because there's a mandatory Video named constraint 20:19:12 in Example 1 20:19:13 ... 20:19:18 s/in/... in/ 20:19:21 burn: it isn't needed 20:19:26 ... if you look at the algorithm 20:19:38 ... it walks through to determine if video is requested 20:19:53 ... The fact that any video constraint exists under mandatory means that video is required 20:20:06 ... if it was only requested in optional, then it was optional 20:20:14 XZ: wouldn't there be a way to say 20:20:24 ... "if i get video, i need video with this properties" 20:20:35 burn: i'm not sure if there's a way to optionally request audio with constraints 20:20:41 anant: is there a UC for this? 20:20:54 burn: I can't think of one 20:21:09 ... i can't think of a case where you'd say "i'd like audio, and have it optional" 20:21:16 s/,/",/ 20:21:22 s/optional"/optional/ 20:21:30 anant: we need a bit more thought over there 20:21:38 burn: i could live with that 20:21:45 + +1.650.241.aaaa 20:21:47 ... i can think of optional constraints 20:21:56 ... but not on getting/not getting the stream 20:22:04 burn has joined #mediacap 20:22:05 is the optionality in at least some use cases intended to allow UI to enable the user to decide? 20:22:06 anant: between example 1 and 2, it seems inconsistent 20:22:25 ... are the top level keys {mandatory:{}, optional:{}, video:{}, audio:{}} 20:22:34 burn: in Alternative 2, but not Alternative 1 20:22:46 bryan: it seems one UC for optionality is to let the User choose 20:22:53 ... the app could work just as well w/ no audio 20:23:01 ... you don't know if the user is a Signing user or a Speaking user 20:23:02 zakim, I am Dan_Burnett 20:23:02 ok, burn, I now associate you with Dan_Burnett 20:23:09 XA: you're right 20:23:14 ... you could start with Video for Video chart 20:23:17 s/chart/chat/ 20:23:18 hta has joined #mediacap 20:23:21 ... and add audio later 20:23:26 burn: this is interesting 20:23:34 s/XA/anant/ 20:23:37 ... because none of these syntaxes support audio optional, but with constraints 20:23:42 or, more likely, start audoo and "upgrade" to video :) 20:23:48 s/audoo/audio 20:23:52 ... or video optional but with constraints 20:24:02 burn: the fact that you have the object 20:24:09 ... is essentially saying... you expect to get the stream 20:24:09 I'm not sure about the constraints importance in an optional context 20:24:17 ... however, if they want an optional audio stream 20:24:24 ... the reason it's optional is so the user can say "no" 20:24:37 ... that doesn't change the desire of the application to request parameters for a stream it receives 20:24:39 Josh_Soref: +1 20:24:52 ok, understand better now... +1 20:25:02 XB: perhaps you could have 20:25:12 burn: so Audio + Video keys 20:25:21 ... indicate mandatory / optionality of the stream itself 20:25:29 s/XB/adambe/ 20:25:30 XB: then you can have the same constraint set 20:25:35 s/XB/adambe/ 20:25:56 burn: one disadvantage is that you go back to the longer constraint names 20:26:06 ... for a moment, i thought we were about to agree on the approach of alternative one 20:26:11 adambe: sorry for that 20:26:26 burn: i never intended to provide an opportunity for a stream to be optional 20:26:31 ... only for constraints to be optional 20:26:38 ... i'll probably have to go back and think about this some more 20:26:46 ... in order to have it work in the ways we've discussed 20:26:52 ... to support optional streams 20:26:56 ... i'm not saying it couldn't be done 20:27:03 ... but it's non-trivial to address 20:27:10 ... so, i'm asking: how important is that? 20:27:19 ... i don't think we've ever discussed optional streams 20:27:26 anant: because before we had hints 20:27:30 ... and everything was optional 20:27:34 RRSAgent, draft minutes 20:27:34 I have made the request to generate http://www.w3.org/2012/05/09-mediacap-minutes.html Josh_Soref 20:27:48 ... i think you're fine for deferring this for now 20:27:55 ... and maybe we discuss it further on the ML 20:28:03 stefanh: the chairs sent a message last week 20:28:08 ... saying we thought it was time to 20:28:13 ... BBB 20:28:21 ... but maybe we need more thinking time 20:28:36 adambe: we could put it in the draft 20:28:46 ... and if we pick alternative 1 or 2 20:28:56 ... and we could discuss optional streams later 20:29:07 stefanh: in this meeting, is alternative 1 or 2 preferred 20:29:08 I prefer alternative 1 20:29:17 burn: without optional streams, i'd prefer alternative 1 20:29:25 ... with optional streams, i think alternative 2 20:29:45 anant: i think we could put alternative 1 in now 20:29:51 ... and when we rethink things, we could change it 20:29:57 adambe: i think optional streams is written in the notes 20:30:04 ... shouldn't it be optional TRACKs? 20:30:07 burn: yes 20:30:14 ... you're correct 20:30:18 ... i wrote this when we weren't clear 20:30:30 ... what will go into the document will very quickly need to change to Track 20:30:35 ... if i say Stream, i mean Track 20:30:45 ... i guess we could do a quick check 20:30:50 ... anant, i see you prefer alternative 1 20:30:57 anant: yep 20:31:01 burn: i'm fine iwth that 20:31:12 Josh_Soref: I think I favor alternative 1 20:31:34 burn: I also favor alternative 1 20:31:44 stefanh: i think we have consensus to put alternative 1 in the draft 20:31:53 ... i will adjust the enums to strings 20:31:58 s/stefanh/hta/ 20:32:22 PROPOSED ACTION burn to write alternative 1 into the draft 20:32:41 stefanh: dom, Actions will go into another tracker? 20:32:44 ... for media capture? 20:32:46 dom: yes 20:32:55 ACTION burn to write alternative 1 into the draft 20:32:55 Created ACTION-1 - Write alternative 1 into the draft [on Daniel Burnett - due 2012-05-16]. 20:33:03 Topic: Resource reservation 20:33:10 s/reservation/Reservation/ 20:33:16 stefanh: i sent an email about this 20:33:44 ... about whether it would reserve 20:33:53 ... initially or when it's used 20:33:55 q+ 20:33:57 ... there was some discussion on the list 20:34:19 ... there's some argument for an application to ask at load time for permission 20:34:24 ... but there's a drawback 20:34:36 ... "what does a media stream with an enabled track mean?" 20:34:44 ... another web/native application could use it 20:34:55 hta: that's not a very clear item 20:35:07 ... we don't know if a camera/microphone has exclusive access 20:35:16 ... in Chrome today, any number can have the camera open 20:35:21 ... so far we haven't implemented constraints 20:35:41 ... my assumption, is ideal 20:35:46 ... we'd take the 20:36:05 zakim, who is here? 20:36:05 On the phone I see Josh_Soref (muted), Dan_Burnett, adambe, Stefan_Hakansson, bryan, Jim_Barnett, dom, fjh, Cathy, [Mozilla], [Mozilla.a], +1.650.241.aaaa 20:36:08 [Mozilla.a] has anant 20:36:08 [Mozilla] has derf 20:36:08 On IRC I see hta, burn, bryan, Cathy, adambe, anant, fjh, stefanh, RRSAgent, Zakim, Josh_Soref, derf, dom, trackbot 20:36:13 zakim, aaaa is me 20:36:13 +hta; got it 20:36:16 derf: there's of course the possibility that an app other than chrome takes control of the camera 20:36:28 ... between request, and attaching to a destination 20:36:33 anant: one thing we're experimenting with 20:36:40 ... is having getUserMedia reserve the device 20:36:43 ... but not activate it 20:36:52 ... if we can't reserve the device, the call fails 20:36:57 ... if video was mandatory 20:37:02 ... we don't activate the device 20:37:05 ... the camera isn't turned on 20:37:10 ... and no data is sent 20:37:22 ... but when the stream is tied to a canvas/MediaStream 20:37:25 ... it is turned on 20:37:40 ... we haven't tackled the question of allowing more than one application to have access to the camera 20:37:47 Android does not support multiple app access to camera AFAIK 20:37:50 ... it might have unintended user consequences 20:38:04 derf 20:38:14 derf: the thing that concerns me, is that the user could forget the app that asked for permission 20:38:24 anant: the way i planned to address that 20:38:44 +jesup 20:38:44 reservation is an interesting feature but needs to be clear to the user in the permissions UI 20:38:51 ... is that we'd tell the user that a second thing is asking 20:39:04 ... indicating which is using it currently 20:39:10 derf: i'm less concerned with that case 20:39:17 ... than with the case of a single page asking 20:39:20 ... and not using it for a while 20:39:26 ... and the user forgetting 20:39:29 the error callback would need to clarify that a reservation error occured 20:39:30 jesup has joined #mediacap 20:39:32 ... and then the app later turning it on 20:39:40 I'm on the 610 number 20:39:42 hta: we're thinking of tray notification 20:39:58 s/I'm on the 610 number// 20:40:16 anant: we could show the video active in the tab notice 20:40:24 ... and disband when the tab close 20:40:36 adambe: i don't care about copying video buffers around 20:40:43 derf again 20:40:49 s/adambe/derf/ 20:40:52 s/derf again// 20:40:59 hta: the distinction is that when you call gUM 20:41:04 ... the tray icon appears 20:41:12 ... and when you connect to a sink, the light turns on 20:41:20 jesup: not every camera has a light to turn on 20:41:29 hta: right, and some of them are under software control 20:41:40 bryan: if we give the requesting app some indication 20:41:44 ... that it failed because it was reserved 20:41:51 ... that would let it give some UI to the user 20:42:04 ... and the UI for the user on a reservation would need to be clear 20:42:07 anant: i agree 20:42:10 ... especially for incoming calls 20:42:17 ... if you're on a page, and aren't currently using the call 20:42:23 s/call/camera/ 20:42:31 ... but if you get a call, 20:42:42 ... you may want to accept the call and drop the camera 20:42:49 anant: if the Browser can't get access 20:42:56 ... then it'll fail 20:43:05 ... but if the Browser has two apps 20:43:12 ... then it can switch internally 20:43:18 bryan: if i'm using a code-scanning 20:43:23 ... and i get a call 20:43:27 ... i wouldn't want the app to fail 20:43:36 anant: i'm describing getting a case which lets the user 20:43:47 ... transfer the video from one browser app to another 20:43:58 adambe: if we can't tell the User that the app is currently using it 20:44:09 ... in Windows, you always get this frustrating thing 20:44:10 q? 20:44:13 ack anant 20:44:15 q- 20:44:19 ... "the file is in use" 20:44:31 q+ to note that modern Windows says which app and has a "switch to" 20:44:49 ... we have a request, a reservation, and a start reading phase 20:45:00 ... talking about reservation 20:45:03 ... you don't get the benefits 20:45:10 ... the stream can't monitor the underlying source 20:45:15 ... if you only reserve 20:45:19 ... you have drawbacks 20:45:25 ... but you can't monitor the stream 20:45:31 Zakim, who is making noise? 20:45:40 anant: i don't fully understand that 20:45:41 Josh_Soref, listening for 10 seconds I heard sound from the following: [Mozilla.a] (90%), hta (35%) 20:45:49 Zakim, mute Mozilla.a 20:45:49 [Mozilla.a] should now be muted 20:45:53 Zakim, unmute Mozilla.a 20:45:53 [Mozilla.a] should no longer be muted 20:45:57 oops 20:46:11 or me 20:46:16 anant: for practical purposes, 20:46:20 ... get ... reservation 20:46:22 ... is made 20:46:25 ... it's an optimization 20:46:33 ... with no sink, we don't need to move frames around 20:46:35 ... you can observe it 20:46:40 ... but we haven't turned on the camera 20:46:55 hta: throwing away frames isn't a good thing 20:47:00 ... on mobile, that's bad for your battery 20:47:07 s/hta/adambe 20:47:22 ... for a long running application 20:47:25 ... (chat) 20:47:30 ... you want to be able to make a reservation 20:47:35 anant: for a gUM 20:47:43 ... the reservation is an internal detail 20:47:50 ... for all practical purposes 20:47:56 ... if gUM succeeds, you will be able to get frames 20:48:04 ... because you have a hold 20:48:13 adambe: it's a bit different than a native app 20:48:30 anant: the incoming call case is different from the chat case 20:48:42 ... we want to discourage pages from eagerly requesting 20:48:46 stefanh: i agree with anant 20:48:52 ... this seems like the cleaner approach 20:48:56 q? 20:48:57 ack Josh_Soref 20:48:58 Josh_Soref, you wanted to note that modern Windows says which app and has a "switch to" 20:49:14 anant: maybe we can write this up and send it to the list 20:49:28 ... and if we get consensus, we can draft it into a document 20:49:35 ... this may be an authoring guide 20:49:45 ... if someone calls eagerly 20:49:48 ... and another app asks 20:49:58 ... the UA can let the User terminate the early request 20:50:09 adambe: talking about the Stream API 20:50:19 ... this would make it more consistent with a network stream 20:50:25 ... you have a natural flow all the time 20:50:28 ... someone is sending data 20:50:37 ... it would make local+remote streams more similar 20:51:01 anant: that seems like a good side-effect 20:51:10 Topic: Several Active Devices 20:51:20 stefanh: we touched on this briefly at the last call 20:51:30 anant: what do we mean by several devices 20:51:37 ... is that several mic's + cameras? 20:51:51 stefanh: if you have 2 cameras and want to use both 20:51:57 ... do you call gUM multiple times 20:52:02 ... or do you get multiple Tracks? 20:52:18 anant: I think we need more UCs in the Scenarios doc 20:52:25 ... and even if we have this UC 20:52:30 ... how important is this UC? 20:52:39 ... we could provide additional Constraint 20:52:52 ... changing gUM depends on how important we think this UC is 20:53:09 ... if we don't change this, we let the App call gUM multiple times 20:53:23 ... where they get 2 MediaStreams, one camera per stream 20:53:33 ... in the first case, you get 1 MediaStream with multiple tracks 20:53:43 ... it depends on how important the UC is 20:53:51 ... and we could just use Constraints 20:54:04 stefanh: you could combine multiple MediaStreams into one 20:54:14 anant: yes, using the MediaStream Constructor 20:54:32 ... it depends on input from developers 20:54:44 XD: how do you determine cameras? 20:54:47 anant: it's user choice 20:55:03 s/XS/jesup/ 20:55:12 s/XD/jesup/ 20:55:18 s|s/XS/jesup/|| 20:55:29 burn: we haven't talked about distinguishing 20:55:36 anant: what is the type of distinction? 20:55:43 burn: user/env front/back 20:56:02 q+ to note that you could have 3 identical cameras that are only distinguishable by the user 20:56:11 anant: you could have "rotatable cameras" 20:56:15 ... that's fuzzy 20:56:17 burn: i agree 20:56:27 ... and that's independent of how you specify it 20:56:33 anant: I'm leaning to have multiple gUM calls 20:56:37 ... one per camera 20:56:44 ... it depends on how important it is 20:56:50 ... how frequent we expect this to be 20:57:01 adambe: i think the specification doesn't say anything about this 20:57:14 ... and the fact that MediaStreams can contain several streams of each type 20:57:28 ... I think we need to specify that the UI should only allow the user to select one of each type 20:57:36 ack me 20:57:36 Josh_Soref, you wanted to note that you could have 3 identical cameras that are only distinguishable by the user 20:57:50 -[Mozilla.a] 20:57:52 burn: at some point we need to make a decision 20:58:07 ... if we decide that gUM can only return one Track of each type 20:58:19 ... then the way you're describing it is how we should be explicit in the spec 20:58:35 adambe: LocalStreams could only have one of each type 20:58:39 ... an empty list is something 20:58:45 ... a list of one thing is something 20:59:07 +[Mozilla.a] 20:59:11 stefanh: i don't know if we should take this to the list 20:59:22 ... at this point i'm leaning toward 20:59:27 ... I guess we should take this to the list again 20:59:36 Zakim, [Mozilla.a] contains anant 20:59:36 +anant; got it 20:59:44 Topic: Stored Permissions 20:59:50 stefanh: hta, you proposed this 21:00:36 hta: "this application can use my camera any time" 21:00:41 ... if you have stored permissions 21:00:46 ... you need a UI for managing them 21:00:52 ... Chrome for picking which camera to use 21:00:58 ... is only invoked at checking permissions 21:01:04 ... then if you've given an app permission 21:01:13 ... how does the app get back to the Camera selection dialog? 21:01:25 jesup: I think you need to be able to have a way to select the selection dialog regardless of this 21:01:36 ... wanting to have a way to flip between front and back on a mobile device 21:01:43 ... that problem has to be addressed anyway 21:01:48 ... possibly another gUM call 21:01:52 ... our thinking on this has been 21:02:06 ... having ongoing permissions tied to app installation 21:02:16 hta: yes, that's one way of managing 21:02:27 ... if you have an app permission mechanism 21:02:38 ... and everything else lives with temporary permissions 21:02:45 jesup: tha'ts our current way of thinking 21:02:57 hta: for getting the dialog when you wouldn't normally need to have them 21:03:01 s/tha'ts/that's/ 21:03:08 ... is to have a constraint "really ask the user" 21:03:14 burn: constraints for asking permissions 21:03:24 ... i don't understand 21:03:33 hta: something in the constraints dictionary that says 21:03:37 ... "ask user to pick device" 21:03:46 ... ask-user-yes 21:03:50 adambe: app has permissions 21:03:53 ... but wants to prompt? 21:04:01 hta: app has permission for front 21:04:05 ... but wants the back camera 21:04:23 adambe: i guess the browser database needs to specify which camera the app has been authorized to use 21:04:32 ... then if you use gUM 21:04:41 ... you can get a prompt for the camera you didn't previously authorize 21:04:54 hta: so a db w/ each camera is its own permission domain? 21:04:58 adambe: it doesn't sound nice 21:05:01 ... but perhaps 21:05:16 ... i wouldn't be comfortable with the application being able to freely swich 21:05:20 ... if i gave permission for one 21:05:31 ... for it to switch from one, to the next, to the next 21:05:42 jesup: if you gave the app permission to all of your cameras? 21:05:49 adambe: i guess so, it'd be a different kind of permission 21:05:57 jesup: the only ones you'd be giving this to 21:06:06 ... are ones you trust at a desktop/plugin install 21:06:13 ... which gives full access 21:06:29 ... i don't know if there's something to be gained for such fine grained control 21:06:37 adambe: i agree with you 21:06:43 ... it's only risky applications on the web 21:06:49 jesup: for stored applications 21:06:56 ... because of the trust you're giving them 21:07:07 ... i think All or None is enough 21:07:12 ... it simplifies the UI 21:07:15 q+ to cry 21:07:29 adambe: that kind of application wouldn't use this UI at all 21:07:35 ... it could put up a self view of all cameras 21:07:41 ... and say "which do you want to use" 21:07:50 ... in gUM, it's selection + permission 21:08:04 jesup: correct, someone with that kind of app might want to do it themselves 21:08:06 q? 21:08:08 ack me 21:08:08 Josh_Soref, you wanted to cry 21:09:02 fjh has joined #mediacap 21:10:32 Josh_Soref: ... 21:10:40 Zakim, mute me 21:10:40 Josh_Soref should now be muted 21:10:51 ... there are cases where a user wants to use a "Camera" app 21:11:07 ... but doesn't realize it's going to randomly snoop on the other camera 21:11:44 q+ to note that users don't read permissions dialogs - ever 21:11:55 ... There's also the fact that the App wants to use the system picker 21:12:02 ... because it doesn't want to build the UI itself 21:12:13 ... or because it wants to have the standard system look and feel for the camera picker 21:12:20 jesup: I agree with the second case 21:12:33 ... I don't think there are many env- only camera applications 21:12:41 ... that would never want to access the other camera 21:12:55 ... e.g. instagram would probably want to be able to use either camera 21:13:07 ... there might be a UC for a native UI to toggle cameras 21:13:20 adambe: do you think there might be a UC for 21:13:23 ... a toggle button 21:13:33 jesup: I think for a dedicated app, like skype 21:13:43 ... an in App button is pretty common 21:13:51 adambe: in the other case 21:13:56 ... toggling from an external ui 21:14:01 ... wouldn't it be problematic 21:14:07 ... if you send a stream with a resolution/framerate 21:14:10 ... and you toggle 21:14:24 ... and the JS application gets a different frame-rate/resolution 21:14:34 ... do you think that should be invisible for the app 21:14:47 jesup: i would have no problem with the application getting an event notification 21:14:56 ... i think the system needs to be able to deal with those changes anyway 21:15:07 ... and applications need to be able to deal with them anyway 21:15:13 ... if need be, changing resolutions on streams 21:15:18 ... i don't see a problem there 21:15:34 ... there could be ways where it happens now 21:15:44 ... if the user supplies a Video file instead of a Camera 21:15:51 ... the file may have resolution/framerate changes in it 21:15:59 ... you have no ability to change it, you have to adapt to it 21:16:09 adambe: it's quite important to be able to mute the camera from the browser ui 21:16:13 jesup: absolutely, critical 21:16:19 ... because you can't trust the app to do it 21:16:25 adambe: that would also be a stream change 21:16:31 jesup: the camera may stop sending video 21:16:35 ... change its frame rate 21:16:50 ... you can't count on the camera to keep a constant frame-rate 21:16:56 q? 21:16:58 ack me 21:16:58 Josh_Soref, you wanted to note that users don't read permissions dialogs - ever 21:17:02 Zakim, mute me 21:17:02 Josh_Soref should now be muted 21:17:12 hta: i think we have gotten a good handling of the issues 21:17:19 ... i don't see a concrete suggestion about language 21:17:30 ... anyone else want to speak on this topic? 21:17:43 ... stefanh: any other topics? 21:17:50 stefanh: there is quite a long list of open items 21:18:00 ... i think we need to start addressing them 21:18:08 ... any input would be valuable 21:18:18 http://www.w3.org/wiki/Media_Capture#Open_Items 21:18:26 hta: the WebRTC meeting is coming up 21:18:34 ... June 11 in Stockholm 21:18:41 ... and 2 days of RTCWeb meetings 21:18:48 s/and/followed by/ 21:19:54 -> http://www.w3.org/2011/04/webrtc/wiki/June_11_2012 WebRTC Meeting June 11 21:19:54 Josh_Soref: there was some mention of MediaStream in the HTML WG F2F last week, I hope to send minutes for it later this week 21:20:19 Link: http://www.w3.org/2011/04/webrtc/wiki/June_11_2012 21:20:23 Zakim, unmute me 21:20:23 Josh_Soref should no longer be muted 21:20:53 s/Link: http://www.w3.org/2011/04/webrtc/wiki/June_11_2012// 21:20:58 s|s/Link: http://www.w3.org/2011/04/webrtc/wiki/June_11_2012//|| 21:21:01 s|Link: http://www.w3.org/2011/04/webrtc/wiki/June_11_2012|| 21:22:21 ACTION anant to describe that getUserMedia reserves the devices, causing the "camera to appear busy" 21:22:21 Created ACTION-2 - Describe that getUserMedia reserves the devices, causing the "camera to appear busy" [on Anant Narayanan - due 2012-05-16]. 21:22:39 ACTION anant to add a UI guidelines about "camera is busy because of X" when another request is made 21:22:39 Created ACTION-3 - Add a UI guidelines about "camera is busy because of X" when another request is made [on Anant Narayanan - due 2012-05-16]. 21:23:27 Josh_Soref: if app 1 calls getUserMedia 21:23:31 ... and gets a camera 21:23:36 ... and app 2 calls getUserMedia 21:23:51 ... then the user can be shown a dialog with both camera 21:23:55 s/camera/cameras/ 21:24:07 ... the in use one could appear in use but with a preview 21:24:14 ... if the user selects that in use camera 21:25:09 ... then the UA can indicate the other Web App that is using it 21:25:14 ... allowing the user to steal it 21:25:20 anant: For Desktop cases, 21:25:37 ... where the Camera is in use by another app running as the same user on the system 21:25:40 ... we could steal it 21:26:06 ... but we couldn't if it runs as another user (or more privileged user) 21:26:16 stefanh: I'd like to thanks Josh_Soref for scribing every meeting 21:26:16 -bryan 21:26:18 Josh_Soref++ 21:26:20 ... really grateful 21:26:21 -fjh 21:26:25 [ Adjourned ] 21:26:31 trackbot, end meeting 21:26:31 Zakim, list attendees 21:26:31 As of this point the attendees have been Josh_Soref, [Mozilla], Dan_Burnett, adambe, Stefan_Hakansson, bryan, Jim_Barnett, dom, fjh, Cathy, anant, derf, +1.650.241.aaaa, hta, jesup 21:26:35 -dom 21:26:35 -[Mozilla.a] 21:26:36 -Jim_Barnett 21:26:36 -adambe 21:26:36 -jesup 21:26:37 -[Mozilla] 21:26:38 -hta 21:26:39 RRSAgent, please draft minutes 21:26:39 I have made the request to generate http://www.w3.org/2012/05/09-mediacap-minutes.html trackbot 21:26:39 -Stefan_Hakansson 21:26:40 RRSAgent, bye 21:26:40 I see no action items 21:26:41 -Cathy