| Declared in | OTVideoEventReason.h |
OTSubscriberVideoEventReason
Video enabled and disabled events are accompanied with a reason code, for determining why the video track was enabled/disabled.
Definition
typedef NS_ENUM(int32_t, OTSubscriberVideoEventReason ) { OTSubscriberVideoEventNone = 0, OTSubscriberVideoEventPublisherPropertyChanged = 1, OTSubscriberVideoEventSubscriberPropertyChanged = 2, OTSubscriberVideoEventQualityChanged = 3, OTSubscriberVideoEventCodecNotSupported = 4, OTSubscriberVideoEventCodecChange = 8, OTSubscriberVideoEventResolutionChange = 9, OTSubscriberVideoEventVideoInterruption = 10, };
Constants
OTSubscriberVideoEventNone
: No notable video event or quality degradation. Default or unknown reason.
Declared In `OTVideoEventReason.h`.
OTSubscriberVideoEventPublisherPropertyChanged
: The video event was caused by the stream’s publisher changing the value
for OTPublisherKit.publishVideo.
Declared In `OTVideoEventReason.h`.
OTSubscriberVideoEventSubscriberPropertyChanged
: The video event was caused by a change to this subscriber’s
OTSubscriberKit.subscribeToVideo property.
Declared In `OTVideoEventReason.h`.
OTSubscriberVideoEventQualityChanged
: The video event was caused by a change to the video stream quality.
Stream quality may change due to network conditions or CPU usage
on either the subscriber or publisher.
When enabled, audio fallback provides an event when the subscriber
drops the video stream due to degraded video quality, resulting
[[OTSubscriberKitDelegate subscriberVideoDisabled:reason:]](../protocols/otsubscriberkitdelegate#//api/name/subscriberVideoDisabled:reason:) message
is sent. When conditions improve, the video stream resumes, and the
[[OTSubscriberKitDelegate subscriberVideoEnabled:reason:]](../protocols/otsubscriberkitdelegate#//api/name/subscriberVideoEnabled:reason:) message is
sent.
When the video stream is dropped, the subscriber continues to receive
the audio stream, if there is one.
When the Subscriber’s stream quality deteriorates to a level that
is low enough that the video stream is at risk of being disabled, the
[[OTSubscriberKitDelegate subscriberVideoDisableWarning:]](../protocols/otsubscriberkitdelegate#//api/name/subscriberVideoDisableWarning:) message is
sent. The [[OTSubscriberKitDelegate subscriberVideoDisableWarning:]](../protocols/otsubscriberkitdelegate#//api/name/subscriberVideoDisableWarning:)
message is sent before the
[[OTSubscriberKitDelegate subscriberVideoDisabled:reason:]](../protocols/otsubscriberkitdelegate#//api/name/subscriberVideoDisabled:reason:) message is
sent.
In routed sessions, the source of this video event can be either the Vonage
Video Media Router (Subscriber Audio Fallback) or the publishing
client (Publisher Audio Fallback). When the publishing client is the
source, the corresponding stream for that subscriber will have its
[[OTStream hasVideo]](../classes/otstream#//api/name/hasVideo) property updated to `NO` as
an additional change alongside the video disabled message. Although
this typically indicates network degradation on the publisher’s side,
subscriber-reported metrics can influence fallback decisions, which may
make the exact source of the degradation less clear.
In relayed sessions, audio-only fallback is applied exclusively due to the
publisher’s internal audio-fallback logic (Publisher Audio Fallback).
In this case, the subscriber may stop receiving video due to network
degradation, but the associated stream object will not have its
[[OTStream hasVideo]](../classes/otstream#//api/name/hasVideo) property updated, since the stream may still
include video data for other subscribers with better network conditions.
Note that although fallback originates from the publisher in relayed sessions,
degradation may occur on either the publisher or subscriber side.
You can control audio-only fallback behavior by setting the corresponding
properties when creating the publisher. By
default, [[OTPublisherKitSettings subscriberAudioFallbackEnabled]](../classes/otpublisherkitsettings#//api/name/subscriberAudioFallbackEnabled) is set
to `YES` (except for screen-sharing publishers in routed
sessions, where it is `NO`), and
[[OTPublisherKitSettings publisherAudioFallbackEnabled]](../classes/otpublisherkitsettings#//api/name/publisherAudioFallbackEnabled) is set to
`NO`. To change this, set
[[OTPublisherKitSettings subscriberAudioFallbackEnabled]](../classes/otpublisherkitsettings#//api/name/subscriberAudioFallbackEnabled) to
`NO` to disable subscriber fallback, or set
[[OTPublisherKitSettings publisherAudioFallbackEnabled]](../classes/otpublisherkitsettings#//api/name/publisherAudioFallbackEnabled) to `YES`
to enable publisher fallback. See [OTPublisherKitSettings](../classes/otpublisherkitsettings).
Declared In `OTVideoEventReason.h`.
OTSubscriberVideoEventCodecNotSupported
: The video event was caused when video in the the subscriber stream
was disabled because the stream uses a video codec (such as H.264)
that is not supported on the device.
Declared In `OTVideoEventReason.h`.
OTSubscriberVideoEventCodecChange
: The video codec for the stream has changed.
Declared In `OTVideoEventReason.h`.
OTSubscriberVideoEventResolutionChange
: Change in video resolution.
Declared In `OTVideoEventReason.h`.
OTSubscriberVideoEventVideoInterruption
: The video stream was interrupted.
Declared In `OTVideoEventReason.h`.
Declared In
OTVideoEventReason.h