TVIVideoViewRenderer Class Reference

Inherits from NSObject
Conforms to TVIVideoRenderer
Declared in TVIVideoViewRenderer.h

Overview

TVIVideoViewRenderer displays video inside a UIView.

– initWithDelegate:

Creates a video renderer with a delegate.

@discussuion The default video rendering type is determined based upon your device model. For 64-bit devices the Metal APIs will be used otherwise OpenGL ES video rendering APIs will be used.

- (nonnull instancetype)initWithDelegate:(nullable id<TVIVideoViewRendererDelegate>)delegate

Parameters

delegate

An object implementing the TVIVideoViewRendererDelegate protocol (often a UIViewController).

Return Value

A renderer which is appropriate for your device and OS combination.

Declared In

TVIVideoViewRenderer.h

+ rendererWithDelegate:

Creates a video renderer with a delegate.

@discussuion The default video rendering type is determined based upon your device model. For 64-bit devices the Metal APIs will be used otherwise OpenGL ES video rendering APIs will be used.

+ (nonnull TVIVideoViewRenderer *)rendererWithDelegate:(nullable id<TVIVideoViewRendererDelegate>)delegate

Parameters

delegate

An object implementing the TVIVideoViewRendererDelegate protocol (often a UIViewController).

Return Value

A renderer which is appropriate for your device and OS combination.

Declared In

TVIVideoViewRenderer.h

+ rendererWithRenderingType:delegate:

Creates a video renderer with a rendering type and a delegate.

+ (nonnull TVIVideoViewRenderer *)rendererWithRenderingType:(TVIVideoRenderingType)renderingType delegate:(nullable id<TVIVideoViewRendererDelegate>)delegate

Parameters

renderingType

The rendering type.

delegate

An object implementing the TVIVideoViewRendererDelegate protocol (often a UIViewController).

Return Value

A renderer which uses a specific TVIVideoRenderingType. Returns nil if rendering type is not supported on the current device.

Discussion

The OpenGL ES renderer supports zero copy rendering of NV12 sources. However, it currently fails to create textures when the input is an NV12 CVPixelBuffer without kCVPixelBufferOpenGLTextureCacheCompatibilityKey set to true. This is only an issue for custom capturers which produce NV12 buffers without this flag set.

Declared In

TVIVideoViewRenderer.h

  delegate

A delegate which receives callbacks when important renderer events occur.

@property (nonatomic, weak, readonly, nullable) id<TVIVideoViewRendererDelegate> delegate

Discussion

Note: The delegate is always called on the main thread in order to synchronize with UIKit.

Declared In

TVIVideoViewRenderer.h

  videoFrameDimensions

The dimensions of incoming video frames (without rotations applied). Use this to layout the renderer’s view.

@property (nonatomic, assign, readonly) CMVideoDimensions videoFrameDimensions

Declared In

TVIVideoViewRenderer.h

  videoFrameOrientation

The orientation of incoming video frames. Use this to layout the renderer’s view.

@property (nonatomic, assign, readonly) TVIVideoOrientation videoFrameOrientation

Declared In

TVIVideoViewRenderer.h

  hasVideoData

Indicates that at least one frame of video data has been received.

@property (atomic, assign, readonly) BOOL hasVideoData

Declared In

TVIVideoViewRenderer.h

  view

The renderer’s view. Add this to your view hierarchy to display rendered video content.

@property (nonatomic, strong, readonly, nonnull) UIView *view

Discussion

The supported content modes are: UIViewContentModeScaleToFill, UIViewContentModeScaleAspectFit, and UIViewContentModeScaleAspectFill. UIViewContentModeScaleAspectFit is the default content mode.

Declared In

TVIVideoViewRenderer.h