|
Vonage Video API Linux SDK
|
#include <>
Publisher callback functions.
This structure is a set of function pointers to callback functions that can be called in response to events related to an OpenTok publisher.
All callbacks will not be made on the application or main thread but on an internal thread. The application should return the callback as quickly as possible to avoid blocking the internal thread.
Data passed into a callback function (other than publisher and user_data) will be released after the callback is called. Make a copy of the data if you need to retain it.
| void(* on_audio_level_updated) (otc_publisher *publisher, void *user_data, float audio_level) |
Called periodically to report the audio level of the publisher.
| publisher | A pointer to the publisher. |
| user_data | A pointer to the user_data you set for the publisher. |
| audio_level | The audio level value, from 0 to 1.0. |
| void(* on_audio_stats) (otc_publisher *publisher, void *user_data, struct otc_publisher_audio_stats audio_stats[], size_t number_of_stats) |
Called periodically to report audio statistics for the publisher.
| publisher | A pointer to the publisher. |
| user_data | A pointer to the user_data you set for the publisher. |
| audio_stats | An array of publisher audio stats. |
| number_of_stats | The number of audio stats in the array. |
| void(* on_error) (otc_publisher *publisher, void *user_data, const char *error_string, enum otc_publisher_error_code error_code) |
Called when the publisher fails.
| publisher | A pointer to the publisher. |
| user_data | A pointer to the user_data you set for the publisher. |
| error_string | A string containing the error message. |
| error_code | An error code enum value. |
| void(* on_publisher_mute_forced) (otc_publisher *publisher, void *user_data) |
Called when a moderator has forced this publisher to mute audio.
| publisher | A pointer to the publisher. |
| user_data | A pointer to the user_data you set for the publisher. |
| void(* on_render_frame) (otc_publisher *publisher, void *user_data, const otc_video_frame *frame) |
Called when there is a new frame ready to be rendered by the publisher. Do not call any OpenTok API functions (except those in video_frame.h) on the same thread that invokes this callback. If you need to call an OpenTok API function (for example, functions in publisher.h or subscriber.h), reschedule its execution to a different thread.
| publisher | A pointer to the publisher. |
| user_data | A pointer to the user_data you set for the publisher. |
| frame | A pointer to the new video frame. |
| void(* on_stream_created) (otc_publisher *publisher, void *user_data, const otc_stream *stream) |
Called when the publisher's stream is created.
| publisher | A pointer to the publisher. |
| user_data | A pointer to the user_data you set for the publisher. |
| stream | A pointer to the stream. |
| void(* on_stream_destroyed) (otc_publisher *publisher, void *user_data, const otc_stream *stream) |
Called when the publisher's stream is destroyed.
| publisher | A pointer to the publisher. |
| user_data | A pointer to the user_data you set for the publisher. |
| stream | A pointer to the stream. |
| void(* on_video_disable_warning) (otc_publisher *publisher, void *user_data) |
Called when the publisher determines that the network congestion level has degraded and the video will be disabled if the quality degrades further.
| publisher | The instance invoking this call. |
| user_data | Pointer to user custom data bound to this struct. |
| void(* on_video_disable_warning_lifted) (otc_publisher *publisher, void *user_data) |
Called when the publisher determines that the network congestion level has improved to the point at which the video being disabled is not an immediate risk.
| publisher | The instance invoking this call. |
| user_data | Pointer to user custom data bound to this struct. |
| void(* on_video_disabled) (otc_publisher *publisher, void *user_data, enum otc_video_reason reason) |
Called when the publisher's video is disabled.
| publisher | The instance invoking this call. |
| user_data | Pointer to user custom data bound to this struct. |
| reason | Gives more details about why the video has been disabled. |
| void(* on_video_enabled) (otc_publisher *publisher, void *user_data, enum otc_video_reason reason) |
Called when the publisher's video is enabled.
| publisher | The instance invoking this call. |
| user_data | Pointer to user custom data bound to this struct. |
| reason | Gives more details about why the video has been enabled. |
| void(* on_video_quality_changed) (struct otc_publisher *publisher, void *user_data, const struct otc_publisher_video_stats *stats, enum otc_video_reason reason) |
This callback is invoked whenever there is a change in the quality state of the publisher's video stream. It provides information about the event, updated statistics and a reason code indicating why the event occurred.
The reason parameter indicates the cause of the event and is considered with the following priority order: bandwidth degradation, CPU degradation, other quality degradation reasons, codec changes, resolution or layer changes.
This event differs from on_video_disabled and on_video_enabled callbacks in that it reports video quality relevant changes. on_video_disabled and `on_video_enabled only indicate that the subscriber’s video track has been turned on or off (for example, due to a stream property update or audio-fallback). In contrast, this event provides diagnostic information about quality degradation causes—such as CPU or bandwidth limitations—and is also triggered when the video remains enabled.
Applications can use this callback to monitor quality changes and react accordingly, such as adjusting UI elements or triggering alerts.
| publisher | The instance invoking this call. |
| stats | Updated statistics including details about resolution or video layers change |
| user_data | Optional user data pointer passed when registering the callback. |
| reason | The reason code for the quality event, based on otc_video_reason enum. |
| void(* on_video_stats) (otc_publisher *publisher, void *user_data, struct otc_publisher_video_stats video_stats[], size_t number_of_stats) |
Called periodically to report video statistics for the publisher.
| publisher | A pointer to the publisher. |
| user_data | A pointer to the user_data you set for the publisher. |
| video_stats | An array of publisher video stats. |
| number_of_stats | The number of video stats in the array. |
| void* reserved |
A void pointer to a memory area holding reserved resources used for the internal implementation.
| void* user_data |
A pointer to data you set related to the publisher.