Skip to content
This repository was archived by the owner on Mar 22, 2022. It is now read-only.

Merge dev into master#6

Merged
jehumb-havok merged 27 commits intomasterfrom
dev
Jun 24, 2019
Merged

Merge dev into master#6
jehumb-havok merged 27 commits intomasterfrom
dev

Conversation

@jehumb-havok
Copy link
Copy Markdown
Member

Merge latest changes and fixes to master:

  • Various fixes for the UWP test app
  • Add video track added/removed signals
  • Fix some threading issue with Unity events
  • Restore statistics in media player
  • Fix double free in GetVideoCaptureDevicesAsync()
  • Fix Mixed Reality Capture in VideoChatDemo by changing to exclusive mode app

After injecting the `Signaler` dependency into `PeerConnection`, ensure
that `PeerConnection` uses `Signaler` directly to send messages to the
remote peer, and listens to incoming ones. This allows sharing the logic
between the Unity intergration and any other C# app like the WPF test
app.

NB: This temporarily injects some dependency to node-dss, which shall be
removed later.
Signaler is now notified by the PeerConnection directly when messages need to be sent,
so stop listening to the PeerConnection events and react to them.
Ensure that calls to `SendMessageAsync()` enqueue an action to be executed in the main
UI thread, and ensure that the `Task` object returned will wait for the coroutine to finish.
Unity objects can only be accessed from the main Unity thread where
scripts are running. Fire Unity events from this thread so that the
listener's handler can directly access Unity objects.
Change all interop calls to use the `stdcall` calling convention,
because Unity's IL2CPP does not understand the `CallingConvention` C#
attribute and will unconditionally transpile delegates to C functions
with `stdcall` calling convention.

Note that this is only an issue for x86.
Mixed Reality Capture (MRC) is only available in 2 contexts:
- In exclusive-mode apps, the application has access to its own
  rendering only. This is always available.
- In shared-mode apps (2D slate), the application requires a restricted
  capability `screenDuplication`, which is not available to third-party
  apps.

Therefore in order to allow using MRC from the sample app in a general
context, using exclusive mode is required. This is achieved by enabling
VR support (Windows Mixed Reality) in the Unity player settings.
@jehumb-havok jehumb-havok added this to the Initial public preview milestone Jun 20, 2019
@jehumb-havok jehumb-havok self-assigned this Jun 20, 2019
@jehumb-havok jehumb-havok requested a review from a team June 20, 2019 16:06
Comment thread README.md
Comment thread libs/Microsoft.MixedReality.WebRTC/VideoFrameQueue.cs Outdated
Avoid scanning the individual C# files in addition of the .csproj, which
already references the same files. This prevents warnings about
duplicate types found in the C# file and [empty-string], which is in
addition very confusing as an error message for the user.
@jehumb-havok jehumb-havok added bug Something isn't working enhancement New feature or request labels Jun 24, 2019
Add an `Ms` prefix to time variables storing milliseconds for clarity.
Fix the implementation of `Enqueue(ARGB)` after the I420 variant.
Add comments where they're missing.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants