Issue Visual Studio Remote Mode

  • Issue category: ARDK Virtual Studio Tools
  • Device type & OS version: Android Oppo Reno
  • Host machine & OS version: Windows - Intel Core I5
  • Issue Environment : Unity Remote
  • Xcode version:
  • ARDK version: 1.31
  • Unity version: 2020.3.19

Description of the issue:

Hello,

I am trying to use the remote mode of the virtual studio,
Everything seems to work, I have built the scene “ARDK Remote Feed App”, I selected in the editor the name of my device, and in remote mode I selected USB.
When I give play in another Scene example. The camera is activated, but I am getting an error in the Unity Editor.

Exception: This platform does not support decompressing images
Niantic.ARDK.AR._VideoStreamHelper._DecompressForVideo (Niantic.ARDK.AR.CompressedImage compressedImage) (at Assets/ARDK/AR/_VideoStreamHelper.cs:81)
Niantic.ARDK.AR.Image._SerializableImageBufferSerializer.DoDeserialize (Niantic.ARDK.Utilities.BinarySerialization.BinaryDeserializer deserializer) (at Assets/ARDK/AR/Image/_SerializableImageBufferSerializer.cs:50)
Niantic.ARDK.Utilities.BinarySerialization.ItemSerializers.BaseItemSerializer`1[T].Deserialize (Niantic.ARDK.Utilities.BinarySerialization.BinaryDeserializer deserializer) (at Assets/ARDK/Utilities/BinarySerialization/ItemSerializers/BaseItemSerializer.cs:41)
Niantic.ARDK.Utilities.BinarySerialization.ItemSerializers.BaseItemSerializer`1[T].Niantic.ARDK.Utilities.BinarySerialization.IItemSerializer.Deserialize (Niantic.ARDK.Utilities.BinarySerialization.BinaryDeserializer deserializer) (at Assets/ARDK/Utilities/BinarySerialization/ItemSerializers/BaseItemSerializer.cs:75)
Niantic.ARDK.Utilities.BinarySerialization.BinaryDeserializer.Deserialize () (at Assets/ARDK/Utilities/BinarySerialization/BinaryDeserializer.cs:50)
Niantic.ARDK.Utilities.BinarySerialization.ItemSerializers.ArrayOfUnsealedSerializer`1[T].DoDeserialize (Niantic.ARDK.Utilities.BinarySerialization.BinaryDeserializer deserializer) (at Assets/ARDK/Utilities/BinarySerialization/ItemSerializers/ArrayOfUnsealedSerializer.cs:55)
Niantic.ARDK.Utilities.BinarySerialization.ItemSerializers.BaseItemSerializer`1[T].Deserialize (Niantic.ARDK.Utilities.BinarySerialization.BinaryDeserializer deserializer) (at Assets/ARDK/Utilities/BinarySerialization/ItemSerializers/BaseItemSerializer.cs:41)
Niantic.ARDK.Utilities.BinarySerialization.ItemSerializers.SimpleSerializableSerializer.Deserialize (Niantic.ARDK.Utilities.BinarySerialization.BinaryDeserializer deserializer) (at Assets/ARDK/Utilities/BinarySerialization/ItemSerializers/SimpleSerializableSerializer.cs:154)
Niantic.ARDK.Utilities.BinarySerialization.BinaryDeserializer.Deserialize () (at Assets/ARDK/Utilities/BinarySerialization/BinaryDeserializer.cs:50)
Niantic.ARDK.Utilities.BinarySerialization.ItemSerializers.ArrayOfUnsealedSerializer`1[T].DoDeserialize (Niantic.ARDK.Utilities.BinarySerialization.BinaryDeserializer deserializer) (at Assets/ARDK/Utilities/BinarySerialization/ItemSerializers/ArrayOfUnsealedSerializer.cs:55)
Niantic.ARDK.Utilities.BinarySerialization.ItemSerializers.BaseItemSerializer`1[T].Deserialize (Niantic.ARDK.Utilities.BinarySerialization.BinaryDeserializer deserializer) (at Assets/ARDK/Utilities/BinarySerialization/ItemSerializers/BaseItemSerializer.cs:41)
Niantic.ARDK.Utilities.BinarySerialization.ItemSerializers.SimpleSerializableSerializer.Deserialize (Niantic.ARDK.Utilities.BinarySerialization.BinaryDeserializer deserializer) (at Assets/ARDK/Utilities/BinarySerialization/ItemSerializers/SimpleSerializableSerializer.cs:154)
Niantic.ARDK.Utilities.BinarySerialization.BinaryDeserializer.Deserialize () (at Assets/ARDK/Utilities/BinarySerialization/BinaryDeserializer.cs:50)
Niantic.ARDK.Utilities.BinarySerialization.GlobalSerializer.Deserialize (System.IO.Stream stream) (at Assets/ARDK/Utilities/BinarySerialization/GlobalSerializer.cs:412)
Niantic.ARDK.Utilities.Extensions._ObjectSerializationExtensions.DeserializeFromArray[T] (System.Byte[] byteArray) (at Assets/ARDK/Utilities/Extensions/_ObjectSerializationExtensions.cs:32)
Niantic.ARDK.VirtualStudio.Remote._EasyConnection._MessageReceived (UnityEngine.Networking.PlayerConnection.MessageEventArgs args) (at Assets/ARDK/VirtualStudio/Remote/_EasyConnection.cs:109)
Niantic.ARDK.VirtualStudio.Remote.RemoteMessageHandler.Callback (UnityEngine.Networking.PlayerConnection.MessageEventArgs e) (at Assets/ARDK/VirtualStudio/Remote/_UsbRemoteConnection.cs:184)
UnityEngine.Events.InvokableCall`1[T1].Invoke (T1 args0) (at <ca496b8c93454b2f9b9924292c19379f>:0)
UnityEngine.Events.UnityEvent`1[T0].Invoke (T0 arg0) (at <ca496b8c93454b2f9b9924292c19379f>:0)
UnityEngine.Networking.PlayerConnection.PlayerEditorConnectionEvents.InvokeMessageIdSubscribers (System.Guid messageId, System.Byte[] data, System.Int32 playerId) (at <ca496b8c93454b2f9b9924292c19379f>:0)
UnityEditor.Networking.PlayerConnection.EditorConnection.MessageCallbackInternal (System.IntPtr data, System.UInt64 size, System.UInt64 guid, System.String messageId) (at <97ba64834c8f4edc84e3d8e30b04f122>:0)

Struggeled with that also for a while now. The problem seems to be, that it is hard-coded, that only RuntimePlatform.OSXEditor as platform supports decompression. So, testing on Windows seems simply not to be supported unfortunately.

Tried to set the hardcoded check to returning true always. And also the similar check for the compression-support (which per default also works only on Mac and native devices). But then it leads to a similar problem, which was discussed already here: https://community.lightship.dev/t/no-camera-feed-with-ardk-remote-dllnotfound-error/1887

Hope there will be a fix soon… also for Windows :crossed_fingers:

Thanks for the report @Sergio_Camilo_Medina , @BBIT-Solutions is correct in pointing out that this issue is due to lack of native support in ARDK for image decompression on M1 Macs and Windows. I’ve logged a new feature request for the ARDK remote feed app in regard to support for those platforms, and will make sure that the issue gets some attention.