Skip to content

0.26.0

Compare
Choose a tag to compare
@Nihav-Jain Nihav-Jain released this 21 Jul 20:50

New Features

  • New "Magic Leap → Zero Iteration" menu that contains functionality that was previously contained in the Magic Leap XR Plugin.
    • Note that the "Magic Leap → ML Remote" menu from the Magic Leap XR Plugin will be deprecated in a future release
  • Exposed APIs to optionally set/get the Ids for WebRTC media tracks. Ids can be specified when creating the tracks and the MLWebRTC.MediaStream.Track.Id property is already set upon receiving a track from the remote peer.
  • Exposed callbacks in MLWebRTC.AudioSink to provide the app with the incoming audio buffers. Pass in the appropriate BufferNotifyMode to MLWebRTC.AudioSink.Create() to set whether the app will receive the audio buffers or not and whether the underlying WebRTC platform will play the audio or leave it to the app to do so.
  • Exposed functions in MLWebRTC.AudioSink to set various soundfield parameters (position, orientation, direct send levels, room send levels, distance & radiation properties and sound volume). These properties should only be set after MLWebRTC.AudioSink.CurrentServiceStatus is ServiceStatus.Started or MLWebRTC.AudioSink.OnAudioServiceStatusChanged delegate is fired with ServiceStatus.Started.
  • Updated MLWebRTCAudioSinkBehavior to playback the received audio via Unity if the "Sink Buffer Notify Mode" is set to "Notify Only" and an AudioSource component reference has been provided. This, combined with a spatialization plugin, can be used to achieve much more granular control over the spatialization than currently offered via the soundfield parameters in the MLWebRTC.AudioSink class.

Updates

  • Added extensions for MLPlanes.QueryFlags enum. You can now check which flags are set by calling convenience functions like IsCeiling(), IsFloor() etc to check which planes the flag represents.
  • Image capture now uses memory from a circular buffer to avoid over-allocations in case of multiple capture requests.
  • Added OnTrackAddedMultipleStreams & OnTrackRemovedMultipleStreams delegates to the MLWebRTC.PeerConnection class. These delegates are similar to the old OnTrackAdded & OnTrackRemoved delegates but report a full list of streams that added/removed track belongs to.
  • Upgraded Magic Leap XR Plugin support to 6.2.2.
  • Clarified the usage of MLEyes.Timestamp property that it won't automatically initialize the eye tracking api and returns 0 in that case.
  • Added ability to change MTU size in MLBluetoothLE.

Bug Fixes

  • Fixed a crash in MLWebRTC when the remote peer does not provide a stream ID for its media tracks. Use a default stream ID of "unknown_remote" in such cases.
  • Fixed the string returned from the scanned QR-code. The string had a null-terminator in the end.
  • Fixed MLWebRTCVideoSinkBehavior to scale the game object according to dyamic changes in video resolution.
  • Fixed errors thrown by pending MLPlanes queries when a new scene is loaded before they're completed.
  • Fixed an error in MLPlanes where polygons were always requested, regardless of the provided query flags.
  • Fixed the OnBluetoothGattRemoteCharacteristicChanged callback in MLBluetoothLE.
  • Fixed the OnBluetoothCharacteristicRead callback in MLBluetoothLE.

Deprecations & Removals

  • OnTrackAdded & OnTrackRemoved delegates in the MLWebRTC.PeerConnection class have been deprecated in favor of OnTrackAddedMultipleStreams & OnTrackRemovedMultipleStreams delegates.

Known Issues

  • When playing WebRTC audio via Unity, while the playback is expected to be smooth, the audio buffers play at a much larger latency than when played directly via the underlying WebRTC platform if the sample rate of the incoming audio stream does not match that of Unity (48000 Hz).