keijiro / KlakNDI

NDI® plugin for Unity

Home Page:https://ndi.video

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Request for Android ARM x86-64 .so build and support for Magic Leap 2

huyqle3 opened this issue · comments

commented

Hi keijiro, I really like the Android version of the plug-in, and I was trying to make KlakNDI work for Magic Leap 2.

Magic Leap 2 uses:

  • Unity 2022 LTS and later
  • ARM-x86-64 (Chrome OS and Magic Leap 2)

I was wondering if the Android plugin could also be built for this ARMx86-64 architecture because I think that the .so build might just work automatically without change if targeting that architecture.

Unity 2022 LTS also which no longer has the Unity Transport SetMulticastLock() network call.

For Unity 2022 LTS, I tried to turn on MulticastLock directly using a AndroidJavaObject and wifi service,, but I think that something else needs to be added because I cannot send any video on Unity 2022 LTS, but it works on Unity 2021 LTS.

For Augmented Reality projects on the Magic Leap 2, NDI would be so useful, but it has a different ARM architecture than the usual ARM64.

commented

Hextaku is helping me with the SetMulticastLock() not being available on Unity 2022 LTS, so my request would be only the part about:

  • An ARM-x86-64 (Chrome OS and Magic Leap 2) compatible target of the KlakNDI .so

Thanks keijiro!

I'd like to clarify the term "ARM-x86-64". My understanding is that Magic Leap 2 doesn't use the ARM architecture but utilizes the Intel x86-64 architecture, so what you'd need is simply x86-64 support. Could you correct me if my understanding is wrong?

commented

Hi keijiro! I think that you're right about the term, "ARM-x86-64"

It's not ARM! My mistake.

It's Android-x86-64, so I think that it requires a build target on Android for that x86-64 architecture target.

I'm not 100% sure because that confuses me too.

Magic Leap 2 uses the Android Build Platform in Unity:

image

In the Target Architectures, underneath the Android Player settings, the Target Architecture in Unity for Magic Leap is: x86-64 (Chrome OS and Magic Leap 2):

image

Thanks for the clarification.

Unfortunately, I don't have any x86-64 Android device. Do you have any recommendations if I try to get one? (Magic Leap 2 is too expensive to justify the expense.)

commented

Hi keijiro! I think that any Chromebook, a cheap one, would be a good development device.

All the Chromebooks should be running ChromeOS, or I think that you could also test or build through an Android emulator as well.

For a different Unity asset store project called ZibraLiquid, the developers also didn't have a x86-64 device, so they sent me a version of the .so with that x86-64 build target, and I tested for them on Magic Leap 2.

If you need me to test or do anything for you like build something or create a recording or work on anything, let me know and I can do it!

commented

Is there a way for me to build the NDI SDK .so file for you?

If so, what is the usual way to build the NDI SDK .so for Android, and then, I can figure out the rest for building on the x86-64 platform for Magic Leap 2? And send it back to you after confirming it works with test results.

Those .so files are parts of the NDI SDK that is a proprietary product of NewTek. I can't remember if it contains a x86-64 Android build. You can download it from their website or ask their technical support contact.

commented

Hi keijiro! Unity 2022 LTS with Hextaku's pull request change worked on Magic Leap 2 to turn on the MulticastLock.

But, big reminder that Unity 2022 LTS users must also install the Unity Transport package because it no longer comes with Unity 2022 LTS.

image

NDI 5 SDK (Android) provides a Android x86_64 version of the .so file that I brought into my test project, and it works on Magic Leap 2. Super cool.

image

image

Thanks for all the help, keijiro! Your comments helped me solve the problem, so you can close this request if you want. Or let me know if you have any questions or need testing.

Sincerely, Huy