Using FMETP STREAM 3.0 with ML2

Hello Dear ML Team,

We are currently facing an issue regarding the compatability of the asset with the ML2. It's a similar problem to a previous post on this magic leap forum about the PDF-Renderer by Paroxe where the
libpdfrenderer.so file had to be modified in order for the screen to display PDF.

This time, however, its regarding the FMETP STREAM 3.0 and its remote control add-on where the same problem seems to be occuring like in the PDF-Renderer example. Our client successfully connects to our server but shows no remote desktop image inside of the magic leap 2 device.

We are thinking that the main cause of the problem is the libturbojpeg.so file, it is able to build on PC / Windows / Linux / Android and they all work as intended, but for the magic leap target architecture (x86_64) there isn't a supported libturbojpeg.so plugin.

We already had contact with the asset developer but so far they could not help us.

Thank you for your help!
We are looking forward to hearing from you soon!

Unity Editor version: 2022.2.3f1
ML2 OS version: 1.2.0
MLSDK version: 1.6.0
Host OS: (Windows/MacOS)

Hi @a.reality, libjpeg-turbo is available on GitHub and provides instructions on how to build the plugin.

If you are using a Mac, Linux, or Windows WSL2 here are the steps I used to build the plugin:

  1. Install the basic tools: sudo apt install build-essential git libtool cmake ninja-build
  2. Install Android NDK: download page
  3. Set environment variable: export ANDROID_NDK_HOME=[path_to_ndk] & export PATH=$PATH:$ANDROID_NDK_HOME
  4. Use readelf to see the version of the plugin used readelf -a /path/to/arm64/file/libturbojpeg.so > libturbojpeg.so.out
  5. Open libturbojpeg.so.out as a text file and scroll to the bottom identify the highest version of the plugin.
  6. Clone the repo: git clone https://github.com/libjpeg-turbo/libjpeg-turbo.git
  7. Enter directory: cd libjpeg-turbo
  8. Checkout the version you want to build git checkout -b x.x.x
  9. create build directory: mkdir build & cd build
  10. Run Cmake: cmake -G"Ninja" -DANDROID_ABI=x86_64 -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-21 ..
  11. Build .so files with Ninja by running: ninja

Here is the untested so file I built: libturbojpeg.zip (1.2 MB) (Licensed by three compatible BSD-style open source licenses)

Note: libjpeg-turbo is a pretty popular image codec, so you should be able to find a precompiled x86_64 version out in the wild

1 Like

Thank you very much @ababilinski you're instructions were very clear we were able to find our problem and your "untested file" works.

Thank you again !