Skip to content

v3.6.0

Choose a tag to compare

@twinsbox89 twinsbox89 released this 21 Nov 07:00
· 10 commits to main since this release

Improved Beautification (aka “Touch Up My Appearance”)

  • Increased the base strength of the effect, so the result is now more noticeable out of the box.
  • Updated the algorithm that determines where beautification should be applied for more natural, face-aware results.
  • Made beautification intensity control more linear and predictable at runtime, so UI sliders feel smoother and more intuitive.

Frame-by-Frame Video Processing (VideoFrame → VideoFrame)

You can now process video frame by frame using VideoFrame input and VideoFrame output:

  • Designed for advanced integrations where the video provider SDK exposes direct VideoFrame access (e.g., Zoom Web SDK–style APIs).
  • Can also be used for offline / post-processing pipelines (denoising, enhancement, effects on pre-recorded video).

This unlocks deeper integrations and more flexible video processing workflows.

Explicit Resource Cleanup with sdk.destroy()

Added sdk.destroy() to explicitly free all GPU and CPU resources used by an SDK instance.

Use this when:

  • Your pipeline requires recreating the SDK instance during the same browser session.
  • You want to fully destroy the SDK instance and clean up GPU state.

Note:
Simply nulling the SDK instance reference is not sufficient. Internal resources and GPU contexts (WebGL / WebGPU) may stay alive and, after multiple re-initializations, can cause:

  • Video blinking or flickering
  • Gradual GPU memory growth
  • WebGL context limit warnings / errors
  • Other GPU-related issues

Calling await sdk.destroy() ensures a clean shutdown and proper release of GPU resources.

Bug Fixes & Stability Improvements

  • Various internal fixes to make GPU resource management more robust.
  • Improved error handling in edge cases during stream initialization and teardown.
  • General stability improvements across the video processing pipeline.