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
594 stars 288 forks source link

atlcomcli.h error in ElgatoFrameProvider.h #188

Open BenRacicot opened 7 years ago

BenRacicot commented 7 years ago

I'm having an issue where when I try to build the calibration.sln project I get this error:

errors

I assume other have built the project with Elgato selected in the dependencies.props

Is there anything I need to do to run the calibration.sln file out of the box?

fieldsJacksonG commented 7 years ago

This looks like you might be missing some dependencies in Visual Studio.

Did you install VS 2017 with the "Desktop development with C++" workload? This will install ATL. You also need "Universal Windows Platform development" and "Game development with C++"

see here: https://github.com/Microsoft/MixedRealityCompanionKit/tree/master/SpectatorView#software

You can check what you have installed by doing this:

  1. Open "Add or remove programs"
  2. Find "Microsoft Visual Studio 2017"
  3. Click on "Modify"
  4. Under the version of VS you are using, you will see buttons for "Update" and "Launch" with a dropdown menu on the right.
  5. click on the dropdown menu
  6. Select "Modify" from the dropdown options.
  7. Select the three workloads listed above.
  8. Click "Modify" in the bottom right
BenRacicot commented 7 years ago

Excellent! Thank you @fieldsJacksonG for the help. I had installed them but was running a different instance of VS2017.

Now that I can build the calibration.sln how do I start using it? The readme does not go into detail about how to run the program after building it.

fieldsJacksonG commented 7 years ago

usage is documented here: https://github.com/Microsoft/MixedRealityCompanionKit/blob/master/SpectatorView/Calibration/README.md#application

Put your calibration card in view of the camera, wait until the white light on the front of your HoloLens flashes, then move to another pose. Move the calibration card around in a scanline pattern until you have a picture taken at every possible spot in the frame.

Once you've taken enough pictures, give focus to the app and press "Enter". This will take a few minutes to create a txt file CalibrationData.txt in "Documents\CalibrationFiles". Overwrite the CalibrationData.txt file in your Unity project (start with the sample) with this one.

Make sure you are also building "Release, x64". The Elgato SDK runs a bit slower in debug which causes dropped frames.

BenRacicot commented 7 years ago

@fieldsJacksonG We've been at this for some time and we have had the feed from our Elgato display within the Calibration app twice in a row. After a restart we have not been able to replicate a working calibration app. We only see a blue screen that flashes white occasionally. Maybe you have some insight into that or troubleshooting ideas?

Would you say the Elgato method is less reliable than the BlackMagic PCIe?

fieldsJacksonG commented 7 years ago

The Elgato SDK does not always terminate gracefully. Try killing the "Elgato Game Capture HD" process before starting the calibration app.

Also make sure you build a Release build (not Debug)

BenRacicot commented 6 years ago

Hey @fieldsJacksonG thanks so much for helping out so much here. We've temporarily moved to the BlackMagic PCIe card and have the calibration app running with the camera feed displaying!

But I'm having an issue during calibration where the camera takes pictures of the checkerboard but the Hololens images are blank files.

Maybe you can help me: What state should the Hololens be in when running the calibration? We've tried with the Hololens connected via USB as well as over wifi (cradle point access device).

fieldsJacksonG commented 6 years ago

I would connect your device over USB

Make sure your developer portal credentials are set here: https://github.com/Microsoft/MixedRealityCompanionKit/blob/master/SpectatorView/Calibration/Calibration/stdafx.h#L15

Also make sure you have the developer portal enabled on your device, you should be able to access it with http://127.0.0.1:10080 If the device portal is not enabled, you can do that on your device by going to "Settings > Update and Security > For developers" Then turn developer mode and the device portal both on.

Once you're in the device portal (127.0.0.1:10080) you should also disable SSL encryption: On the top of the page, find the security tab. Then uncheck the "Required" checkbox under "SSL Encryption"

Then you should see a white light on your HoloLens' visor light up every time a photo is taken.

You should also make sure you are not running MRC or any app that is using your HoloLens' camera while calibrating.

SabinMG commented 6 years ago

I have tried everything mentioned above, still having the blue screen error with Elgato. Anything else I would have to do? And I also see the following log in the console "Failed connecting filters" "Failed connecting grabber to null renderer" "Failed adding elgato filter