ortclib / ortclib-sdk

C# / C++ ORTC Lib SDK for UWP, iOS, and Android
BSD 2-Clause "Simplified" License
100 stars 36 forks source link

Unable to build C++/WinRT client app #18

Closed Holo-Krzysztof closed 6 years ago

Holo-Krzysztof commented 6 years ago

This applies to both, the currently published package on nuget.org as well as a locally built package from the Robin/m66-msidl branch.

When I create a new project in VS with the C++/WinRT Blank App template, I get these errors first:

error : Designtime build failed for project 'OrtcSampleClientCppWinRT.vcxproj' configuration 'Debug|Win32'. IntelliSense might be unavailable.
    Set environment variable TRACEDESIGNTIME = true and restart Visual Studio to investigate.
error : Designtime build failed for project 'OrtcSampleClientCppWinRT.vcxproj' configuration 'Debug|Win32'. IntelliSense might be unavailable.
    Set environment variable TRACEDESIGNTIME = true and restart Visual Studio to investigate.

When compiling the app I get the following MIDL errors:

error MIDL5092: [msg]this type or member is attempting to use the 'deprecated' attribute, but the construct it is being used on is not available on the version or platform specified. [context]: get_SdpMLineIndex [ Procedure 'get_SdpMLineIndex' ( Interface 'Org.Ortc.Adapter.__IRTCIceCandidatePublicNonVirtuals' ) ]
error MIDL5092: [msg]this type or member is attempting to use the 'deprecated' attribute, but the construct it is being used on is not available on the version or platform specified. [context]: set_SdpMLineIndex [ Procedure 'set_SdpMLineIndex' ( Interface 'Org.Ortc.Adapter.__IRTCIceCandidatePublicNonVirtuals' ) ]
error MIDL5092: [msg]this type or member is attempting to use the 'deprecated' attribute, but the construct it is being used on is not available on the version or platform specified. [context]: FromSdpStringWithMLineIndex [ Procedure 'FromSdpStringWithMLineIndex' ( Interface 'Org.Ortc.Adapter.__IRTCIceCandidateStatics' ) ]
error MIDL5092: [msg]this type or member is attempting to use the 'deprecated' attribute, but the construct it is being used on is not available on the version or platform specified. [context]: FromSdpStringWithMLineIndex [ Procedure 'FromSdpStringWithMLineIndex' ( Interface 'Org.Ortc.Adapter.__IRTCIceCandidateCompleteStatics' ) ]

A C# client works fine, so I guess it's something build system related. The target version I've selected is 1803. Does anybody know what exactly is going wrong?

Holo-Krzysztof commented 6 years ago

I just found out that whenever I call into the DLL I get an error, which could be related to the problem above. It's an Error in the DLL (Exception from HRESULT: 0x800401F9 (CO_E_ERRORINDLL)).

jamescadd commented 6 years ago

Are you able to build WebRTC or is there a specific need for ORTC? The dependencies are a bit messy right now so WebRTC does require that you clone ORTC, but WebRTC does build. This branch is under active development so things should stabilize in the coming weeks.

Holo-Krzysztof commented 6 years ago

I just wanted to try out both to see where they differ and how well they perform. I've read somewhere that ORTC could be easier for adaptive streaming due to not using SDP, which is a use case we care about a lot.

I've reverted back to using the last published nuget package for now.

Is there any rough schedule for m66 going forward? And is there going to be lots of breaking changes in client code?

jamescadd commented 6 years ago

If you want to discuss adaptive streaming or API differences feel free to send me an email at jacadd@microsoft.com, I'd be interested to hear about your use case. I wish we had a more firm date on M66 - rewriting the CX code as C++/WinRT has proven to be time consuming. I would hope within 2 weeks. I believe we'll have the Transceiver/AddTrack methods with this update (have to check) but they may also help you. Regarding breaking client changes, yes that's quite likely unfortunately as its a large update.

jamescadd commented 6 years ago

Hi @Holo-Krzysztof - I believe you've worked through the build error now. Safe to close this?

Holo-Krzysztof commented 6 years ago

Yeah, I've switched to WebRTC now where it works with the latest nuget as well as with an M66 dev branch build. I'm just gonna wait until this repo catches up and try it out every now and then.