Migration Guides
To version 1.9.0
BanubaSDK introduces the Player
API for iOS and Android, which implements the most popular use cases and is highly customizable.
We continue to support the old API, but starting from this version it is marked as deprecated.
The main changes are described below.
iOS & Android
- The class
BanubaSdkManager
deprecated now. Static methods for initialization/deinitialization of the Banuba SDK with the client token and resources path still work. But we are suggest to switch toBNBUtilityManager
for the SDK initialization instead. - The class
Player
introduced as a replacement for theBanubaSdkManager
. Now it is the only way to process frames from theInput
, manage effect playback and present them to theOutput
. - The protocol
Input
with basic use cases implementations:Camera
,Photo
,Stream
; provides frames to thePlayer
for further processing and rendering. - The protocol
Output
implements endpoint of the presentation surface, which may beView
,PixelBuffer
,Video
, or any other surface, implemented by own. You can have several outputs in use at a time! - All the three main protocols can be connected between each other through the
player.use(input, outputs)
method call.
More details about new Player
API you can find in our github examples.
To version 1.5.0
WebAR
-
Starting from this version, Banuba WebAR is delivered as an @banuba/webar npm package. It also brings the ability to try out the Banuba WebAR SDK from a CDN of your choosing, please, see the CDN section of the @banuba/webar npm package.
-
From now on, the Player does not include any AR feature-modules like FaceTracker, Background, Hair, or Lips by default. These modules should be connected separately:
const frx = new Module("https://cdn.jsdelivr.net/npm/@banuba/webar/dist/modules/face_tracker.zip")
const bg = new Module("https://cdn.jsdelivr.net/npm/@banuba/webar/dist/modules/background.zip")
await player.addModule(frx, bg)See the Player.addModule() reference for details. See the Module reference for the list of available modules.
This change reduced the size of
BanubaSDK.data
from 31Mb+ to a little more then 100Kb and now allows to load only the AR modules required by the application.
iOS & Android
- The enum
(BNB)NnMode
was removed. The Banuba SDK now sets this automatically. - The enum
(BNB)FaceSearchMode
was removed. The Banuba SDK now sets this automatically. EffectPlayerConfiguration
doesn't have constructor withrenderMode
anymore. Use constructor without parameters instead.EffectPlayerConfiguration
doesn't contain auxiliary classDefault
with default values anymore.- Now the
EffectPlayerConfiguration
does not have a constructor. To create an instance of this class, use the staticcreate
method. - Now the
EffectPlayer
doesn't have static methodsversionMajor()
andversionMinor()
. The functionality was removed because it was not used. - Now the
EffectPlayer
doesn't have methodssetRenderTransform()
andrecognizerProcessFromBuffer()
. The functionality was removed because it was not used. - Now the
EffectPlayer
doesn't have methodsisDeviceNnCompatible()
andsetFaceSearchMode()
. Due to the fact that all operations with neural networks the Banuba SDK automatically accepts. CameraSessionType
contains onlyFrontCameraSession
andBackCameraSession
values now.
Windows
- The enum
nn_mode
was removed. The Banuba SDK now sets this automatically. - The enum
face_search_mode
was removed. The Banuba SDK now sets this automatically. - Now the
effect_player_configuration
is not a struct. To create an instance of this class, use the staticcreate
method. - Now the
effect_player
doesn't have static methodsversion_major()
andversion_minor()
. The functionality was removed because it was not used. - Now the
effect_player
doesn't have methodsset_render_transform()
andrecognizer_process_from_buffer()
. The functionality was removed because it was not used. - Now the
effect_player
doesn't have methodsis_device_nn_compatible()
andset_face_search_mode()
. Due to the fact that all operations with neural networks the Banuba SDK automatically accepts.
To version 1.0.x
Starting from version 1.0.x and higher, we provide a new rendering engine. Effects from the previous version will not work. Please, contact Banuba to convert your effect for the new engine.
iOS
BanubaSdkMnager.setRenderTarget
now acceptsEffectPlayerView
(for on-screen rendering) orCAMetalLayer
(for off-screen rendering) instead ofCAEAGLLayer
.EffectPlayerView.effectPlayer
property was made private, don't use it anymore.