microsoft / MixedRealityCompanionKit

This is a MixedRealityToolkit style repository for code bits and components that may not run directly on Microsoft HoloLens or immersive headsets but instead pair with them to build experiences.
MIT License
596 stars 288 forks source link

Cannot retrieve BlackMagic video stream in compositor window from Canon Camera #296

Open benjamincoven opened 6 years ago

benjamincoven commented 6 years ago

Overview

The compositor window shows the Holograms corectly according to the Hololens on Camera, however the background is black and the video live is not working.

There is no error in the console beside "Failed to call static function Reset because an object was provided" when opening compositor window.

The video live is working well on the BlackMagic Media Express software.

I am using a Canon 5D Mark IV

I have not installed the Canon SDK with the Compositor project as it is indicated as optionnal on SV documentation.

When the camera is plugged in, and after stopping the play mode in editor, Unity crashes 50% of the time (doesn't happen when camera is unplugged)

I have tried some debuging on ShaderManager file, when the camera is plugged in, the methods SetXXXFrame are executed twice instead of one time.

I didn't change any code in Compositor project before building DLL.

Expected Behavior

The compositor window shows camera live instead of black background and Unity doesn't crash half of the time when stopping play mode.

Unity Editor Version

2018.1.2f1

Mixed Reality Toolkit Release Version

2017.4.0.0

Mixed Reality Toolkit Companion Kit Release Version

Master branch up to date on July 23 2018

benjamincoven commented 6 years ago

I successfully found a workaround but I have no idea from where the problem is coming:

I took a very old project from my company that was working, and I copied the dll to my project. then I comented the call to UpdateSpectatorView in SpectatorViewManager because it doesn't exist in former dll. I will test this with Hololens.

Edit: Full setup works with former Compositor dll