Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use DirectShow filter instead MF custom media source for the VD #7944

Closed
12 tasks done
yuyoyuppe opened this issue Nov 9, 2020 · 4 comments
Closed
12 tasks done

Use DirectShow filter instead MF custom media source for the VD #7944

yuyoyuppe opened this issue Nov 9, 2020 · 4 comments
Assignees
Labels
Cost-Large Large work item - 3+ days worth of work (chances are needs to be broken down) Issue-Feature A planned feature addition to a product Product-Video Conference Mute Refers to the Video Conference muting tool Resolution-Fix Committed Fix is checked in, but it might be 3-4 weeks until a release.

Comments

@yuyoyuppe
Copy link
Collaborator

yuyoyuppe commented Nov 9, 2020

We're currently using MF framework for the Video Conference web camera muting functionality, however it proved to be a nonoptimal approach mainly due to the following things:

DirectShow provides us another way of creating a virtual web camera which we can supply the frames for, i.e. overlay image/black square during muting. Implementation consists of the following steps:

  • implement DS-based virtual camera filter, so it's visible in 3rd party apps
  • stream frames from a real webcam to it
  • allow substituting frames from a real webcam stream with an image
  • integrate it with VCM

Remaining tasks:

  • add a diagnostic tool to report detailed media formats supported by the webcam. This will allow to have statistic on the most common formats and also to warn the users if their webcam is already fully supported or not.
  • rebase on current stable branch.
  • turning off the VCM in the Settings: this requires admin privileges, we need to implement something similar to what we already do for the File Explorer addons where we alert the users that they need admin privileges.
    • update the Settings panel to disable the on/off switch if not running elevated
    • add support in the module interface implementation to register/unregister the DSFilter
  • we have a good logging in place, we need to make sure we are collecting all needed information in case of bugs.
    • add logging to VideoConferenceModule project
    • log all errors in VideoConferenceProxyFilter
    • log all errors in VideoConferenceShared
    • log toolbar visibility status
    • add logs to the BugReportTool
  • Shortcut for Video Conference Mute bubbles up actual keypress #9866 suppress key pressed bubble up
@yuyoyuppe yuyoyuppe added Status-In progress This issue or work-item is under development Cost-Large Large work item - 3+ days worth of work (chances are needs to be broken down) Issue-Feature A planned feature addition to a product Product-Video Conference Mute Refers to the Video Conference muting tool labels Nov 9, 2020
@yuyoyuppe yuyoyuppe self-assigned this Nov 9, 2020
@enricogior enricogior added this to To do in 0.33 Release via automation Dec 30, 2020
@crutkas crutkas moved this from To do to In progress in 0.33 Release Feb 16, 2021
@crutkas crutkas added this to To do in 0.35 Release via automation Mar 4, 2021
@crutkas crutkas removed this from In progress in 0.33 Release Mar 4, 2021
@enricogior
Copy link
Contributor

enricogior commented Mar 15, 2021

Supporting more media types https://docs.microsoft.com/en-us/windows/win32/wmformat/media-type-identifiers has been postponed after the release.
At present we have tested cameras that have 4 different media types, three seems to work consistently, one has some issues with the overlay image being corrupted.

After the release, we should consider if we want to expose a list of media types for the user to choose from.

@crutkas crutkas moved this from To do to In progress in 0.35 Release Mar 16, 2021
@enricogior
Copy link
Contributor

This is an example of WebcamReport generated by #10502

Report started
Webcam Logitech HD Webcam C270
Supported formats:
MEDIASUBTYPE_RGB24	640x480 - 30fps
MEDIASUBTYPE_RGB24	160x120 - 30fps
MEDIASUBTYPE_RGB24	176x144 - 30fps
MEDIASUBTYPE_RGB24	320x176 - 30fps
MEDIASUBTYPE_RGB24	320x240 - 30fps
MEDIASUBTYPE_RGB24	352x288 - 30fps
MEDIASUBTYPE_RGB24	432x240 - 30fps
MEDIASUBTYPE_RGB24	544x288 - 30fps
MEDIASUBTYPE_RGB24	640x360 - 30fps
MEDIASUBTYPE_RGB24	752x416 - 30fps
MEDIASUBTYPE_RGB24	800x448 - 30fps
MEDIASUBTYPE_RGB24	800x600 - 30fps
MEDIASUBTYPE_RGB24	864x480 - 30fps
MEDIASUBTYPE_RGB24	960x544 - 30fps
MEDIASUBTYPE_RGB24	960x720 - 30fps
MEDIASUBTYPE_RGB24	1024x576 - 30fps
MEDIASUBTYPE_RGB24	1184x656 - 30fps
MEDIASUBTYPE_RGB24	1280x720 - 30fps
MEDIASUBTYPE_RGB24	1280x960 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	640x480 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	160x120 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	176x144 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	320x176 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	320x240 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	352x288 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	432x240 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	544x288 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	640x360 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	752x416 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	800x448 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	800x600 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	864x480 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	960x544 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	960x720 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	1024x576 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	1184x656 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	1280x720 - 30fps
{30323449-0000-0010-8000-00AA00389B71}	1280x960 - 30fps

We should investigate if the current logic to choose the default media format is robust enough.

@crutkas crutkas added this to To do in 0.37 Release via automation Apr 15, 2021
@crutkas crutkas removed this from In progress in 0.35 Release Apr 15, 2021
@enricogior enricogior added Resolution-Fix Committed Fix is checked in, but it might be 3-4 weeks until a release. and removed Status-In progress This issue or work-item is under development labels Apr 16, 2021
0.37 Release automation moved this from To do to Done Apr 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Cost-Large Large work item - 3+ days worth of work (chances are needs to be broken down) Issue-Feature A planned feature addition to a product Product-Video Conference Mute Refers to the Video Conference muting tool Resolution-Fix Committed Fix is checked in, but it might be 3-4 weeks until a release.
Projects
No open projects
Development

No branches or pull requests

3 participants
@yuyoyuppe @enricogior and others