New Generation Renderer
This article provides a high-level overview of this new feature, designed to help developers understand and utilize its capabilities.
Last updated
This article provides a high-level overview of this new feature, designed to help developers understand and utilize its capabilities.
Last updated
The new generation renderer enhances how video layouts are handled, providing a more efficient and flexible way to manage and display video streams, especially in complex conferencing scenarios. This technology improves the user experience across devices, including mobile phones, tablets, and desktop computers.
Enhanced Layouts: The new renderer supports speaker and grid layouts for optimal viewing.
Improved Tile Management: Video streams are presented as tiles with smarter screen utilization and more intuitive arrangement.
Content Sharing Priority: The renderer prioritizes content sharing by automatically adjusting layouts.
Flexible Orientation Support: The renderer adapts to both landscape and portrait orientations on mobile and tablet devices.
Pinned Tile Feature: Users can now "pin" a participant's video feed to ensure its visibility.
Speaker Layout: The active speaker is dynamically highlighted, occupying most of the screen.
Grid Layout: Provides equal screen space to each participant. The number and size of tiles adjust automatically based on participant count and device orientation.
The new renderer supports several tile types:
Preview Tile: Displays the user's own video feed.
Loudest Participant Tile: Highlights the current speaker in Speaker Layout.
Content Share Tile: Maximizes visibility of shared content.
Remote Participant Tile: Displays video feeds from other participants.
Remote Participant Tile with Camera Control: Provides users controls to adjust remote PTZ camera focus.
Pinned Tile: Allows users to prioritize a participant's video feed.
We have enabled new generation renderer in our classic iOS application sample: https://github.com/VidyoAPI-SDK/Swift-Sample. This commit is actually what has been changed: https://github.com/VidyoAPI-SDK/Swift-Sample/commit/8ccad2479b0a9afcf1341780af770c77cc09474c.
Connector Initialization: When initializing the VCConnector
, the viewStyle
parameter should be set to .ngrSpeaker
. This activates the new generation renderer.
connector = VCConnector(
nil,
viewStyle: .ngrSpeaker, // Enable new gen renderer
remoteParticipants: participantsNumber,
logFileFilter: "".cString(using: .utf8),
logFileName: "\(Constants.LogsFile.pathString)/\(Constants.LogsFile.name)"
)
Default Values: In DefaultValuesManager.swift
, update the renderer
and layout
properties to use the new generation renderer's default settings:
public var renderer = RendererType.ngr // Use new gen renderer
public var layout = LayoutType.speaker // Use speaker layout as default for new renderer
Settings Management: Within SettingsManager.swift
, adjust the isEnabled
property for the layout settings option. This ensures that the layout options are correctly enabled or disabled based on the selected renderer:
These code changes ensure that your iOS application leverages the new generation renderer, providing an enhanced video conferencing experience.
isEnabled: DefaultValuesManager.shared.renderer != .tile // layout is enabled when the renderer is not .tile