VidyoPlatform
  • Getting Started
  • Building custom client web application using Connector SDK
  • Android Integration
  • Resources
  • Use-Cases
    • Closed Captioning
    • Virtual Background - Banuba SDK
    • Calls Recording
    • Automatic Reconnection
    • Call Moderation
      • UnlockRoom API
      • Lock Room API
      • SetRoomPIN API
      • Remove RoomPIN API
      • Request Moderator Role API
      • Remove Moderator Role
      • Soft Mute
        • Soft Mute Audio
        • Soft Mute Video
      • Hard Mute
        • Hard Mute Audio
        • Hard Mute Video
      • Recording
      • Drop Participant
    • Custom noise suppression in web applications
    • Android: Picture-in-picture Mode
    • New Generation Renderer
    • Integrating with Epic
  • Twilio to Vidyo Migration
    • Twilio JavaScript SDK to VidyoClient JavaScript SDK
    • Twilio Android SDK to VidyoClient Android SDK
Powered by GitBook
On this page
  • What is the New Generation Renderer?
  • Key Features and Benefits
  • Layout Details
  • Tile Types
  • Swift Code Integration
  1. Use-Cases

New Generation Renderer

This article provides a high-level overview of this new feature, designed to help developers understand and utilize its capabilities.

What is the New Generation Renderer?

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.

Key Features and Benefits

  • 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.

Layout Details

  • 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.

Tile Types

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.

Swift Code Integration

  1. 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)"
    )
    
  2. 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
    
  3. 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:

    isEnabled: DefaultValuesManager.shared.renderer != .tile // layout is enabled when the renderer is not .tile
    

These code changes ensure that your iOS application leverages the new generation renderer, providing an enhanced video conferencing experience.

PreviousAndroid: Picture-in-picture ModeNextIntegrating with Epic

Last updated 23 days ago

We have enabled new generation renderer in our classic iOS application sample: . This commit is actually what has been changed: .

https://github.com/VidyoAPI-SDK/Swift-Sample
https://github.com/VidyoAPI-SDK/Swift-Sample/commit/8ccad2479b0a9afcf1341780af770c77cc09474c