Opened 3 months ago

Last modified 3 months ago

#1396 reopened request

Video problem in meetecho

Reported by: fluffy@… Owned by: alex@…
Priority: tbd Milestone: ietf-108
Component: incoming Keywords:
Cc: My Current Location:
My MAC Address: My OS:

Description

It will not list all my cameras in pre-flight. Only first is listed. It was working fine before, and has permissions

Added by email2trac

Attachments (1)

Screen Shot 2020-07-28 at 8.10.01 AM.png (617.7 KB) - added by fluffy@… 3 months ago.
Added by email2trac

Download all attachments as: .zip

Change history (5)

Changed 3 months ago by fluffy@…

Added by email2trac

comment:1 Changed 3 months ago by Rick Alfvin

Owner: changed from < default > to alex@…
Status: newassigned

comment:2 Changed 3 months ago by alex@…

Resolution: not broken
Status: assignedclosed

Hi Cullen,

that's weird as we just call enumerateDevices() and then it's up to the browser returning the cameras and mics it has available. Don't think there's anything we can do here, sorry.

comment:3 in reply to:  4 Changed 3 months ago by fluffy@…

Resolution: not broken
Status: closedreopened
I don’t think that is the case. This is the normal mainline chome browser. I use it daily with other WebRTC products and if works fine. The camera that is not there is built into the computer (mac) so it’s not like it is unplugged or something. 


> On Jul 28, 2020, at 9:11 AM, IETF Tickets/NOC <tickets@meeting.ietf.org> wrote:
> 
> #1396: Video problem in meetecho
> ---------------------------+----------------------------------
>      Reporter:  fluffy@…  |                Owner:  alex@…
>          Type:  request   |               Status:  closed
>      Priority:  tbd       |            Milestone:  ietf-108
>     Component:  incoming  |           Resolution:  not broken
>      Keywords:            |  My Current Location:
> My MAC  Address:           |                My OS:
> ---------------------------+----------------------------------
> Changes (by alex@…):
> 
> * status:  assigned => closed
> * resolution:   => not broken
> 
> 
> Comment:
> 
> Hi Cullen,
> 
> that's weird as we just call enumerateDevices() and then it's up to the
> browser returning the cameras and mics it has available. Don't think
> there's anything we can do here, sorry.
> 
> -- 
> Ticket URL: <https://tickets.meeting.ietf.org/ticket/1396#comment:2>
> IETF Tickets/NOC <https://tickets.meeting.ietf.org>
> IETF Meeting Tickets - NOC pages

comment:4 Changed 3 months ago by alex@…

But that IS how our application woks: we can't make devices up :-)

We do use navigator.mediaDevices.enumerateDevices() to list the available devices, and then filter on 'audioinput' and 'videoinput' as we only display capture devices. The JavaScript? code for that is not obfuscated, so it's not hard to find if you want to double check and don't trust us. The demo I linked in the other ticket implements pretty much the same behaviour.

As such, we explicitly rely on the result of the navigator.mediaDevices.enumerateDevices() call to see what we can add to the select options: if the browser decides (for any reason out of our control) that the device is not available, then we don't get it in the results and can't display it as an option. This might happen if the device is in use somewhere else (in the past, on MacOS there was a service that could cause this issue, something that AFAIK is not an issue anymore). At the same time, if the browser lists it, but then when we try to access it we get an error back (possibly because, again, it's busy or unavailable), nothing we can do either. As an active and key contributor to the RTCWEB/WebRTC efforts, you definitely know the limitatations of what JavaScript? applications can get access to, and how some low level functionality are deeply rooted in the browser internals.

The enumerateDevices feature may have some additional limitations, depending on os/browser settings. Recently, for instance, changes have been advertised on enumerateDevices that would change how it behaves, which should only take place starting M86 though: https://groups.google.com/forum/#!topic/discuss-webrtc/qGdSM-Cs3bc
As such, I don't think it's what's happening to you, since you're on M84.

That said, we have made several tests ourselves (as we all own multiple devices for our work), and this now seems to work consistently for us, so we can't replicate it ourselves. Of course, there's only so much we can replicate on our own: we do have Linux, Windows, Mac machines, but system and OS settings can vary wildly from user to user, and so we can't possibly cover every single setup out there on our own: this week so far has been helpful, as we've had diagnostic sessions with a few users having weird issues, which in most cases we fixed as soon as we had more details. Unfortunately we don't have a huge test team as those you or some of your colleagues may be used to, but we try to do our best with what we have available, and are always willing to help.

At any rate, there really isn't anything we can do right now I believe. Again, enumerateDevices() is very much a browser thing, which can be impacted by several different things at the OS/system level. None of those things are under our control, unfortunately. You may want to double check if you get the same behaviour with other browsers as well, which might implement the enumeration/access process differently.

Note: See TracTickets for help on using tickets.