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

Merge dev into master #6

Merged
merged 27 commits into from
Jun 24, 2019
Merged

Merge dev into master #6

merged 27 commits into from
Jun 24, 2019

Conversation

djee-ms
Copy link
Member

@djee-ms djee-ms commented Jun 20, 2019

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

djee-ms added 17 commits June 17, 2019 14:16
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.
@djee-ms djee-ms added this to the Initial public preview milestone Jun 20, 2019
@djee-ms djee-ms self-assigned this Jun 20, 2019
@djee-ms djee-ms requested a review from a team June 20, 2019 16:06
djee-ms added 6 commits June 21, 2019 16:23
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.
@djee-ms djee-ms added bug Something isn't working enhancement New feature or request labels Jun 24, 2019
djee-ms added 2 commits June 24, 2019 13:47
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