|
Vonage Video API Linux SDK
|
OpenTok Publisher. More...
#include "config.h"#include ""#include ""#include ""#include ""#include ""#include ""Data Structures | |
| struct | otc_publisher_audio_stats |
| struct | otc_publisher_video_stats |
| struct | otc_publisher_callbacks |
| struct | otc_publisher_rtc_stats |
| struct | otc_publisher_rtc_stats_report_cb |
Typedefs | |
| typedef struct otc_publisher | otc_publisher |
| typedef struct otc_publisher_settings | otc_publisher_settings |
Enumerations | |
| enum | otc_publisher_error_code { OTC_PUBLISHER_INTERNAL_ERROR = 2000 , OTC_PUBLISHER_SESSION_DISCONNECTED , OTC_PUBLISHER_TIMED_OUT = 1541 , OTC_PUBLISHER_UNABLE_TO_PUBLISH = 1500 , OTC_PUBLISHER_WEBRTC_ERROR = 1610 , OTC_PUBLISHER_ENCRYPTION_INTERNAL_ERROR , OTC_PUBLISHER_ENCRYPTION_UNSUPPORTED_CODEC = 6005 } |
| enum | otc_publisher_video_type { OTC_PUBLISHER_VIDEO_TYPE_CAMERA = 1 , OTC_PUBLISHER_VIDEO_TYPE_SCREEN = 2 } |
| enum | otc_media_type { OTC_MEDIA_TYPE_VIDEO = 0 , OTC_MEDIA_TYPE_AUDIO } |
| Media type. | |
| enum | otc_video_bitrate_preset { OTC_VIDEO_BITRATE_PRESET_DEFAULT , OTC_VIDEO_BITRATE_PRESET_BW_SAVER , OTC_VIDEO_BITRATE_PRESET_EXTRA_BW_SAVER , OTC_VIDEO_BITRATE_PRESET_CUSTOM } |
| Preset strategies for controlling video bitrate in a publisher's stream. More... | |
OpenTok Publisher.
This file includes the type definition for an OpenTok publisher along with several function declarations.
| typedef struct otc_publisher otc_publisher |
OpenTok publisher type definition.
A type representing a publisher of an audio-video stream to an OpenTok session.
| typedef struct otc_publisher_settings otc_publisher_settings |
OpenTok publisher settings type definition.
Error code enumeration for OpenTok publishers.
This enumeration represents several error codes associated with a publisher.
Preset strategies for controlling video bitrate in a publisher's stream.
These presets allow developers to apply bandwidth strategies without manually specifying bitrates. Presets are mutually exclusive with manual bitrate configuration.
For details, see Publisher Max Bitrate.
| Enumerator | |
|---|---|
| OTC_VIDEO_BITRATE_PRESET_DEFAULT | Default preset. No extra restrictions are applied. This is the default mode. |
| OTC_VIDEO_BITRATE_PRESET_BW_SAVER | Bandwidth saver preset. Applies moderate constraints to reduce bandwidth usage while maintaining reasonable video quality. |
| OTC_VIDEO_BITRATE_PRESET_EXTRA_BW_SAVER | Extra bandwidth saver preset. Applies aggressive constraints to minimize bandwidth usage. |
| OTC_VIDEO_BITRATE_PRESET_CUSTOM | Custom bitrate. Represents a manually configured bitrate using |
| otc_status otc_publisher_delete | ( | otc_publisher * | publisher | ) |
Releases a publisher instance, including all hardware resources bound to it.
| publisher | The publisher instance to be deleted. |
| otc_bool otc_publisher_get_audio_fallback_enabled | ( | const otc_publisher * | publisher | ) |
Returns whether the publisher audio-fallback feature is enabled or not. See the otc_publisher_set_audio_fallback_enabled function.
This function is deprecated.
| publisher | The publisher instance. |
| int otc_publisher_get_max_video_bitrate | ( | const otc_publisher * | publisher | ) |
Gets the maximum video bitrate set for this publisher's video stream.
Returns the currently configured maximum video bitrate in bits per second (bps). If no manual bitrate has been set via otc_publisher_set_max_video_bitrate(), or if a preset is active (including the default), this function returns 0.
Note: A return value of 0 indicates that no explicit bitrate limit is applied and the stream is using preset-based behavior instead.
| [in] | publisher | The publisher instance. |
| const char * otc_publisher_get_name | ( | const struct otc_publisher * | publisher | ) |
Gets the name for a given publisher.
| publisher | The publisher instance. |
| otc_bool otc_publisher_get_publish_audio | ( | const otc_publisher * | publisher | ) |
Returns whether the Publisher is publishing audio or not.
| publisher | The publisher instance. |
| otc_bool otc_publisher_get_publish_captions | ( | const otc_publisher * | publisher | ) |
Returns whether the Publisher has captions active.
| publisher | The publisher instance. |
| otc_bool otc_publisher_get_publish_video | ( | const otc_publisher * | publisher | ) |
Returns whether the publisher is publishing video or not.
| publisher | The publisher instance. |
| const char * otc_publisher_get_publisher_id | ( | const otc_publisher * | publisher | ) |
Gets a unique identifier for a publisher.
| publisher | The publisher instance. |
| otc_status otc_publisher_get_rtc_stats_report | ( | const otc_publisher * | publisher | ) |
Gets the RTC stats report for the publisher. This is an asynchronous operation. create an otc_publisher_rtc_stats_report_cb struct and pass it into the otc_publisher_set_rtc_stats_report_cb function prior to calling this function. When the stats are available, the otc_publisher_set_rtc_stats_report_cb callback function is called.
Also see otc_publisher_callbacks.on_audio_stats, otc_publisher_callbacks.on_video_stats, and otc_subscriber_get_rtc_stats_report.
| publisher | The publisher. |
| otc_session * otc_publisher_get_session | ( | const otc_publisher * | publisher | ) |
Returns the otc_session associated this publisher instance.
| publisher | The publisher instance. |
otc_session associated this instance. If there is an error, this is null. | otc_stream * otc_publisher_get_stream | ( | otc_publisher * | publisher | ) |
Returns the stream associated with the publisher.
| publisher | The publisher instance to get the stream from. |
| void * otc_publisher_get_user_data | ( | const struct otc_publisher * | publisher | ) |
Gets user data for a given publisher.
| publisher | The publisher instance. |
| enum otc_video_bitrate_preset otc_publisher_get_video_bitrate_preset | ( | const otc_publisher * | publisher | ) |
Gets the currently active video bitrate preset for this publisher's stream.
If a custom bitrate was previously set using otc_publisher_set_max_video_bitrate(), this method returns OTC_VIDEO_BITRATE_PRESET_CUSTOM.
| [in] | publisher | The publisher instance. |
| enum otc_publisher_video_type otc_publisher_get_video_type | ( | const struct otc_publisher * | publisher | ) |
Gets the publisher video type. See the otc_publisher_set_video_type function.
| publisher | The publisher instance. |
| otc_publisher * otc_publisher_new | ( | const char * | name, |
| const struct otc_video_capturer_callbacks * | capturer, | ||
| const struct otc_publisher_callbacks * | callbacks | ||
| ) |
Creates a new otc_publisher instance.
| name | The name of the publisher. Other clients can get the names for streams in the session. |
| capturer | Use this parameter if you want to provide a custom video capturer. If it is set to null, the publisher uses a default video capturer using the system's camera. |
| callbacks | A pointer to the structure with the publisher callback function pointers. |
| otc_publisher * otc_publisher_new_with_settings | ( | const struct otc_publisher_callbacks * | callbacks, |
| otc_publisher_settings * | settings | ||
| ) |
Creates a new otc_publisher instance.
| callbacks | A pointer to the struct with publisher callback function pointers. |
| settings | The settings struct containing the desired settings for the publisher. |
| otc_status otc_publisher_set_audio_fallback_enabled | ( | otc_publisher * | publisher, |
| otc_bool | enabled | ||
| ) |
Enables or disables the subscriber audio-fallback feature.
The audio-fallback feature is available in sessions that use the OpenTok Media Router. With the audio-fallback feature enabled (the default), when the OpenTok Media Router determines that a stream's quality has degraded significantly for a specific subscriber to the stream, it disables the video in that subscriber in order to preserve audio quality.
To turn off the audio-fallback feature, call the otc_publisher_set_audio_fallback_enabled function (and pass in OTC_FALSE) before calling the otc_session_publish function.
This function is deprecated. See otc_publisher_settings_set_subscriber_audio_fallback_enabled.
| publisher | The publisher to be affected. |
| enabled | Whether we want to enable the audio-fallback feature or not. |
| otc_status otc_publisher_set_audio_transformers | ( | otc_publisher * | publisher, |
| otc_audio_transformer ** | transformers, | ||
| uint8_t | size | ||
| ) |
Sets an array of audio transformers to this publisher's audio stream. If null resets transformers.
The array can be composed by vonage audio transformers provided by ml-library and/or custom transfomers. Transformers contain a pointer to callback invoked on each audio frame.
Note: This function only applies to the Vonage Video API macOS SDK. It does not work in the Vonage Video API Linux SDK.
| [in] | publisher | The publisher instance. |
| [in] | transformers | Array of opaque pointers otc_audio_transformer in the order to be applied to the stream. |
| [in] | size | size of the array. |
| otc_status otc_publisher_set_max_audio_bitrate | ( | otc_publisher * | publisher, |
| uint32_t | bitrate | ||
| ) |
Sets the max audio bitrate for the publisher.
| publisher | The publisher to be affected. |
| bitrate | The desired bitrate in kbps. |
| otc_status otc_publisher_set_max_video_bitrate | ( | otc_publisher * | publisher, |
| int | bitrate_bps | ||
| ) |
Gets the maximum video bitrate set for this publisher's video stream.
Returns the current maximum video bitrate in bits per second (bps). If no bitrate has been explicitly set via otc_publisher_set_max_video_bitrate(), or if a bitrate preset is active (including the default preset), this function returns 0.
Note: A return value of 0 indicates that no manual bitrate cap is in effect, and the stream is operating under a preset configuration.
| [in] | publisher | The publisher instance. |
| otc_status otc_publisher_set_publish_audio | ( | otc_publisher * | publisher, |
| otc_bool | publish_audio | ||
| ) |
Whether to publish audio or not. By default, streams publish both audio and video.
| publisher | The publisher to be affected. |
| publish_audio | Whether to publish audio or not. |
| otc_status otc_publisher_set_publish_captions | ( | otc_publisher * | publisher, |
| otc_bool | publish_captions | ||
| ) |
Whether to make captions active or not. By default, it is off.
| publisher | The publisher to be affected. |
| publish_captions | Whether to enable captioning or not. |
| otc_status otc_publisher_set_publish_video | ( | otc_publisher * | publisher, |
| otc_bool | publish_video | ||
| ) |
Whether to publish video or not. By default, streams publish both audio and video.
| publisher | The publisher to be affected. |
| publish_video | Whether to publish video or not. |
| otc_status otc_publisher_set_rtc_stats_report_cb | ( | otc_publisher * | publisher, |
| const struct otc_publisher_rtc_stats_report_cb | cb | ||
| ) |
Sets the RTC stats report callback the publisher.
| publisher | The publisher instance. |
| cb | The otc_publisher_rtc_stats_report_cb struct that includes the callback function for the RTC stats report. |
| otc_status otc_publisher_set_video_bitrate_preset | ( | otc_publisher * | publisher, |
| enum otc_video_bitrate_preset | preset | ||
| ) |
Sets a video bitrate preset for this publisher's video stream.
Applies a predefined video bitrate strategy to control encoder behavior. These presets are intended to balance video quality with bandwidth usage, depending on the needs of the application.
Note: The preset OTC_VIDEO_BITRATE_PRESET_CUSTOM cannot be set directly. Calling otc_publisher_set_max_video_bitrate() will override the preset and cause the preset getter to return OTC_VIDEO_BITRATE_PRESET_CUSTOM.
| [in] | publisher | The publisher instance. |
| [in] | preset | A value from otc_video_bitrate_preset to apply. |
| otc_status otc_publisher_set_video_transformers | ( | otc_publisher * | publisher, |
| otc_video_transformer ** | transformers, | ||
| uint8_t | size | ||
| ) |
Sets an array of video transformers to this publisher's video stream. If null resets transformers.
The array can be composed by vonage video transformers provided by ml-library and/or custom transfomers. Transformers contain a pointer to callback invoked on each video frame.
Note: This function only applies to the Vonage Video API macOS SDK. It does not work in the Vonage Video API Linux SDK.
| [in] | publisher | The publisher instance. |
| [in] | transformers | Array of opaque pointers otc_video_transformer in the order to be applied to the stream. |
| [in] | size | size of the array. |
| otc_status otc_publisher_set_video_type | ( | struct otc_publisher * | publisher, |
| enum otc_publisher_video_type | video_type | ||
| ) |
Sets the publisher video type. By default, videos have the video type set to OTC_PUBLISHER_VIDEO_TYPE_CAMERA (indicating the source of the video is a camera). Set this to OTC_PUBLISHER_VIDEO_TYPE_SCREEN to indicate that the video source is screen sharing. Other clients can detect the video type for streams in the session (to determine the video source type).
| publisher | The publisher to be affected. |
| video_type | The video type for the publisher. |
| otc_status otc_publisher_settings_delete | ( | otc_publisher_settings * | settings | ) |
Deletes an otc_publisher_settings instance.
| settings | The otc_publisher_settings instance to be deleted. |
| otc_publisher_settings * otc_publisher_settings_new | ( | ) |
Creates a new otc_publisher_settings instance.
| otc_status otc_publisher_settings_set_allow_audio_capture_while_muted | ( | otc_publisher_settings * | settings, |
| const otc_bool | enabled | ||
| ) |
When otc_publisher_settings_set_allow_audio_capture_while_muted is set to false, the microphone will be automatically switched off when all publishers have muted their audio. Mic will be automatically switched on again when at least one publisher unmutes their audio. If set to true, mic will always remain switched on even when all publishers have muted their audio. Be aware that when the mic is switched off, callbacks like audio_level or audio_data will no longer be invoked for the publishers. The default value is true. See otc_session_new_with_settings.
| settings | Pointer to the session settings object. |
| enable | Boolean flag to disable (OTC_FALSE, the default value) or enable (OTC_TRUE) this flag. |
| otc_status otc_publisher_settings_set_audio_track | ( | otc_publisher_settings * | settings, |
| otc_bool | enabled | ||
| ) |
Enables an audio track for a publisher to be constructed with otc_publisher_new_with_settings.
| settings | The otc_publisher_settings instance to be affected. |
| enabled | Enable/disable the existence of an audio track for a publisher to be constructed with otc_publisher_new_with_settings. |
| otc_status otc_publisher_settings_set_auto_gain_control | ( | otc_publisher_settings * | settings, |
| otc_bool | enabled | ||
| ) |
Enables audio automatic gain control for a publisher to be constructed with otc_publisher_new_with_settings.
It does not work in the Vonage Video API Linux SDK.
| settings | The otc_publisher_settings instance to be affected. |
| enabled | Whether to enable (true, the default) or disable (false) automatic gain control. |
| otc_status otc_publisher_settings_set_default_camera_capture_resolution | ( | otc_publisher_settings * | settings, |
| const enum otc_camera_capture_resolution | camera_capture_resolution | ||
| ) |
Sets a camera capture resolution for default video capturers.
Custom video capturers should not honor the capturing resolution set by otc_publisher_settings_set_default_camera_capture_resolution, the use of this is only for default video capturers.
| camera_capture_resolution | The camera capture resolution for default video capturers. |
| settings | The otc_publisher_settings instance to be affected. |
| otc_status otc_publisher_settings_set_disable_audio_processing | ( | otc_publisher_settings * | settings, |
| otc_bool | disabled | ||
| ) |
When otc_publisher_settings_set_disable_audio_processing is set to true, the individual settings for acoustic echo cancellation, automatic gain control, and noise-suppression will be ignored and audio will not be processed at all. The default value is false. See otc_publisher_new_with_settings.
| settings | The otc_publisher_settings instance to be affected. |
| enabled | Whether to enable (true) or disable (false, the default) audio processing support. |
| otc_status otc_publisher_settings_set_echo_cancellation | ( | otc_publisher_settings * | settings, |
| otc_bool | enabled | ||
| ) |
Enables acoustic echo cancellation for a publisher to be constructed with otc_publisher_new_with_settings.
Note: This function only applies to the Vonage Video API macOS SDK. It does not work in the Vonage Video API Linux SDK.
| settings | The otc_publisher_settings instance to be affected. |
| enabled | Whether to enable (true, the default) or disable (false) acoustic echo cancellation support. |
| otc_status otc_publisher_settings_set_name | ( | otc_publisher_settings * | settings, |
| const char * | name | ||
| ) |
Sets the desired name for a publisher to be constructed with otc_publisher_new_with_settings.
| settings | The otc_publisher_settings instance to be affected. |
| name | The name for the publisher. Other clients can get the names for streams in the session. |
| otc_status otc_publisher_settings_set_noise_suppression | ( | otc_publisher_settings * | settings, |
| otc_bool | enabled | ||
| ) |
Enables noise suppression for a publisher to be constructed with otc_publisher_new_with_settings.
Note: This function only applies to the Vonage Video API macOS SDK. It does not work in the Vonage Video API Linux SDK.
| settings | The otc_publisher_settings instance to be affected. |
| enabled | Whether to enable (true, the default) or disable (false) noise suppression. |
| otc_status otc_publisher_settings_set_opus_dtx | ( | otc_publisher_settings * | settings, |
| otc_bool | enabled | ||
| ) |
Enables Opus DTX for a publisher to be constructed with otc_publisher_new_with_settings. Enabling Opus DTX can reduce bandwidth usage in streams that have long periods of silence.
| settings | The otc_publisher_settings instance to be affected. |
| enabled | Whether to enable (true) or disable (false, the default) Opus DTX support. |
| otc_status otc_publisher_settings_set_publisher_audio_fallback_enabled | ( | otc_publisher_settings * | settings, |
| const otc_bool | enabled | ||
| ) |
Enables or disables the publisher audio-fallback feature.
With the publisher audio-fallback feature enabled, when the Publisher determines that a stream's quality has degraded significantly, it disables the video stream in order to preserve audio quality and continues to send the audio stream. The capturer corresponding to this publisher will not be disabled, and the captured frames will still be seen on the publisher side.
The default setting is OTC_FALSE (the audio-fallback feature is disabled). When using the screen video type in a session that uses the OpenTok Media Server, the publisher audio-fallback setting is set to OTC_FALSE by default, so that the video does not drop out in subscribers.
| settings | The publisher settings to be affected. |
| enabled | Whether we want to enable the audio-fallback feature or not. |
| otc_status otc_publisher_settings_set_scalable_screenshare | ( | otc_publisher_settings * | settings, |
| const otc_bool | enabled | ||
| ) |
Allow use of scalable video scalable video for a publisher that has the otc_publisher_video_type set to OTC_PUBLISHER_VIDEO_TYPE_SCREEN with otc_publisher_new_with_settings.
| settings | The otc_publisher_settings instance to be affected. |
| enabled | Enable/disable the use of scalable video for screen-sharing streams. |
| otc_status otc_publisher_settings_set_stereo | ( | otc_publisher_settings * | settings, |
| otc_bool | enabled | ||
| ) |
Enables stereo audio for a publisher to be constructed with otc_publisher_new_with_settings.
| settings | The otc_publisher_settings instance to be affected. |
| enabled | Enable/disable stereo audio support for a publisher to be constructed with otc_publisher_new_with_settings. |
| otc_status otc_publisher_settings_set_subscriber_audio_fallback_enabled | ( | otc_publisher_settings * | settings, |
| const otc_bool | enabled | ||
| ) |
Enables or disables the subscriber audio-fallback feature (for subscribers to the published stream)
The subscriber audio-fallback feature is available in sessions that use the OpenTok Media Router. With the audio-fallback feature enabled (the default), when the OpenTok Media Router determines that a stream's quality has degraded significantly for a specific subscriber to the stream, it disables the video in that subscriber in order to preserve audio quality.
The default setting is OTC_TRUE (the audio-fallback feature is enabled). When using the screen video type, the subscriber audio-fallback setting is set to OTC_FALSE by default, so that the video does not drop out in subscribers.
| settings | The publisher settings to be affected. |
| enabled | Whether we want to enable the audio-fallback feature or not. |
| otc_status otc_publisher_settings_set_video_capturer | ( | otc_publisher_settings * | settings, |
| const struct otc_video_capturer_callbacks * | capturer | ||
| ) |
Sets the video capturer for a publisher to be constructed with otc_publisher_new_with_settings.
| settings | The otc_publisher_settings instance to be affected. |
| capturer | The video capturer. |
| otc_status otc_publisher_settings_set_video_track | ( | otc_publisher_settings * | settings, |
| otc_bool | enabled | ||
| ) |
Enables a video track for a publisher to be constructed with otc_publisher_new_with_settings.
| settings | The otc_publisher_settings instance to be affected. |
| enabled | Enable/disable the existence of an video track for a publisher to be constructed with otc_publisher_new_with_settings. |