OpenTok C SDK
Loading...
Searching...
No Matches
subscriber.h
Go to the documentation of this file.
1
7#ifndef SUBSCRIBER_H
8#define SUBSCRIBER_H
9
10#include "audio_data.h"
11#include "base.h"
12#include "config.h"
13#include "error.h"
14#include "media_utils.h"
15#include "stream.h"
16#include "video_frame.h"
17
18OTC_BEGIN_DECL
19
20#ifndef OTC_SESSION_FWD_DECL
21#define OTC_SESSION_FWD_DECL
22typedef struct otc_session otc_session;
23#endif
24
31
64
70 uint64_t packets_lost;
74 uint64_t bytes_received;
77 double timestamp;
79 OPENTOK_DEPRECATED("Use otc_subscriber_media_link_stats instead")
91 OPENTOK_DEPRECATED("Use otc_subscriber_media_link_stats instead")
104};
105
115 uint64_t packets_lost;
119 uint64_t bytes_received;
121 double timestamp;
123 OPENTOK_DEPRECATED("Use otc_subscriber_media_link_stats instead")
135 OPENTOK_DEPRECATED("Use otc_subscriber_media_link_stats instead")
147 int32_t width;
148 int32_t height;
150 int64_t bitrate;
152 int64_t pause_count;
155 int64_t freeze_count;
158 const char* codec;
166};
167
184
195
253 void* user_data,
254 const char* json_array_of_reports);
255
256 void* reserved;
257};
258
278 void (*on_connected)(otc_subscriber* subscriber,
279 void* user_data,
280 const otc_stream* stream);
281
291 void (*on_disconnected)(otc_subscriber* subscriber, void* user_data);
292
299 void (*on_reconnected)(otc_subscriber* subscriber, void* user_data);
300
313 void (*on_render_frame)(otc_subscriber* subscriber,
314 void* user_data,
315 const otc_video_frame* frame);
316
325 void* user_data,
326 enum otc_video_reason reason);
327
335 void (*on_video_enabled)(otc_subscriber* subscriber,
336 void* user_data,
337 enum otc_video_reason reason);
338
345 void (*on_audio_disabled)(otc_subscriber* subscriber, void* user_data);
346
353 void (*on_audio_enabled)(otc_subscriber* subscriber, void* user_data);
354
362
372
381 void (*on_caption_text)(otc_subscriber* subscriber,
382 void* user_data,
383 const char* text,
384 otc_bool is_final);
385
395 void* user_data);
396
404 void (*on_audio_stats)(otc_subscriber* subscriber,
405 void* user_data,
406 struct otc_subscriber_audio_stats audio_stats);
407
415 void (*on_video_stats)(otc_subscriber* subscriber,
416 void* user_data,
417 struct otc_subscriber_video_stats video_stats);
418
427 void* user_data,
428 float audio_level);
429
442 void (*on_error)(otc_subscriber* subscriber,
443 void* user_data,
444 const char* error_string,
445 enum otc_subscriber_error_code error);
446
458 void (*on_audio_data)(otc_subscriber* subscriber,
459 void* user_data,
460 const struct otc_audio_data* audio_data);
461
493 void (*on_video_quality_changed)(otc_subscriber* subscriber,
494 void* user_data,
495 const struct otc_subscriber_video_stats* stats,
496 enum otc_video_reason reason);
497
520 void* user_data,
521 const struct otc_subscriber_media_link_stats* media_link_stats,
522 enum otc_network_reason reason);
523
535 void* user_data,
536 const struct otc_subscriber_media_link_stats* media_link_stats);
537
543
548 void* reserved;
549};
550
560OTC_DECL(otc_subscriber*)
562 const struct otc_subscriber_callbacks* callbacks);
563
571OTC_DECL(otc_status) otc_subscriber_delete(otc_subscriber* subscriber);
572
580OTC_DECL(otc_stream*)
582
590OTC_DECL(otc_status)
592 otc_bool subscribe_to_video);
593
601OTC_DECL(otc_status)
603 otc_bool subscribe_to_audio);
604
612OTC_DECL(otc_status)
614 otc_bool subscribe_to_captions);
615
623OTC_DECL(otc_status)
625
632OTC_DECL(const char*)
634
641OTC_DECL(otc_bool) otc_subscriber_get_subscribe_to_video(const otc_subscriber* subscriber);
642
649OTC_DECL(otc_bool)
651
660OTC_DECL(otc_bool)
662
670OTC_DECL(otc_session*)
672
682OTC_DECL(otc_status)
684 uint32_t preferred_width,
685 uint32_t preferred_height);
695OTC_DECL(otc_status)
697 uint32_t* preferred_width,
698 uint32_t* preferred_height);
699
709OTC_DECL(otc_status)
711
722OTC_DECL(otc_status)
724 double* volume);
725
736OTC_DECL(otc_status)
738 float preferred_framerate);
739
749OTC_DECL(otc_status)
751 float* preferred_framerate);
752
760OTC_DECL(const char*)
762
769OTC_DECL(void*) otc_subscriber_get_user_data(const otc_subscriber* subscriber);
770
785OTC_DECL(otc_status)
787
797OTC_DECL(otc_status)
799 otc_subscriber* subscriber,
801
802OTC_END_DECL
803
804#endif // SUBSCRIBER_H
Audio Data.
Base functions.
otc_quality_restriction
Definition base.h:213
int otc_bool
Definition base.h:167
otc_video_reason
Definition base.h:17
int otc_status
Definition base.h:262
otc_network_reason
Definition base.h:46
otc_network_degradation_source
Definition base.h:228
Media utility functions.
struct otc_session otc_session
Definition session.h:21
Audio/Video stream.
struct otc_stream otc_stream
Definition stream.h:18
Definition audio_data.h:19
Definition subscriber.h:69
int64_t sender_connection_max_allocated_bitrate
Definition subscriber.h:80
int64_t sender_connection_estimated_bandwidth
Definition subscriber.h:92
double timestamp
Definition subscriber.h:77
uint64_t packets_lost
Definition subscriber.h:70
uint64_t bytes_received
Definition subscriber.h:74
float audio_level
Definition subscriber.h:76
uint64_t packets_received
Definition subscriber.h:72
Definition subscriber.h:268
void * user_data
Definition subscriber.h:542
void(* on_audio_level_updated)(otc_subscriber *subscriber, void *user_data, float audio_level)
Definition subscriber.h:426
void * reserved
Definition subscriber.h:548
void(* on_audio_stats)(otc_subscriber *subscriber, void *user_data, struct otc_subscriber_audio_stats audio_stats)
Definition subscriber.h:404
void(* on_audio_data)(otc_subscriber *subscriber, void *user_data, const struct otc_audio_data *audio_data)
Definition subscriber.h:458
void(* on_error)(otc_subscriber *subscriber, void *user_data, const char *error_string, enum otc_subscriber_error_code error)
Definition subscriber.h:442
void(* on_render_frame)(otc_subscriber *subscriber, void *user_data, const otc_video_frame *frame)
Definition subscriber.h:313
void(* on_video_data_received)(otc_subscriber *subscriber, void *user_data)
Definition subscriber.h:361
void(* on_audio_disabled)(otc_subscriber *subscriber, void *user_data)
Definition subscriber.h:345
void(* on_audio_enabled)(otc_subscriber *subscriber, void *user_data)
Definition subscriber.h:353
void(* on_video_disabled)(otc_subscriber *subscriber, void *user_data, enum otc_video_reason reason)
Definition subscriber.h:324
void(* on_video_disable_warning_lifted)(otc_subscriber *subscriber, void *user_data)
Definition subscriber.h:394
void(* on_connected)(otc_subscriber *subscriber, void *user_data, const otc_stream *stream)
Definition subscriber.h:278
void(* on_reconnected)(otc_subscriber *subscriber, void *user_data)
Definition subscriber.h:299
void(* on_video_enabled)(otc_subscriber *subscriber, void *user_data, enum otc_video_reason reason)
Definition subscriber.h:335
void(* on_media_link_stats)(otc_subscriber *subscriber, void *user_data, const struct otc_subscriber_media_link_stats *media_link_stats)
Definition subscriber.h:534
void(* on_video_disable_warning)(otc_subscriber *subscriber, void *user_data)
Definition subscriber.h:371
void(* on_caption_text)(otc_subscriber *subscriber, void *user_data, const char *text, otc_bool is_final)
Definition subscriber.h:381
void(* on_disconnected)(otc_subscriber *subscriber, void *user_data)
Definition subscriber.h:291
void(* on_network_condition_changed)(otc_subscriber *subscriber, void *user_data, const struct otc_subscriber_media_link_stats *media_link_stats, enum otc_network_reason reason)
Definition subscriber.h:519
void(* on_video_stats)(otc_subscriber *subscriber, void *user_data, struct otc_subscriber_video_stats video_stats)
Definition subscriber.h:415
Definition subscriber.h:190
void * user_data
Definition subscriber.h:194
void(* on_rtc_stats_report)(otc_subscriber *subscriber, void *user_data, const char *json_array_of_reports)
Definition subscriber.h:252
Definition subscriber.h:114
int64_t sender_connection_max_allocated_bitrate
Definition subscriber.h:124
int64_t sender_connection_estimated_bandwidth
Definition subscriber.h:136
double timestamp
Definition subscriber.h:121
int32_t width
Definition subscriber.h:147
uint64_t packets_lost
Definition subscriber.h:115
int64_t total_freezes_duration
Definition subscriber.h:157
int32_t height
Definition subscriber.h:148
int64_t total_bitrate
Definition subscriber.h:151
double decoded_frame_rate
Definition subscriber.h:149
int64_t bitrate
Definition subscriber.h:150
int64_t freeze_count
Definition subscriber.h:155
enum otc_quality_restriction remote_publisher_quality_restriction
Definition subscriber.h:163
int64_t pause_count
Definition subscriber.h:152
uint64_t bytes_received
Definition subscriber.h:119
enum otc_quality_restriction sender_quality_restriction
Definition subscriber.h:159
int64_t total_pauses_duration
Definition subscriber.h:154
const char * codec
Definition subscriber.h:158
uint64_t packets_received
Definition subscriber.h:117
Definition base.h:244
otc_status otc_subscriber_get_preferred_framerate(const otc_subscriber *subscriber, float *preferred_framerate)
otc_subscriber_error_code
Definition subscriber.h:36
@ OTC_SUBSCRIBER_ENCRYPTION_SECRET_MISMATCH
Definition subscriber.h:57
@ OTC_SUBSCRIBER_SERVER_CANNOT_FIND_STREAM
Definition subscriber.h:40
@ OTC_SUBSCRIBER_STREAM_LIMIT_EXCEEDED
Definition subscriber.h:43
@ OTC_SUBSCRIBER_PEER_CONNECTION_NOT_CONNECTED
Definition subscriber.h:49
@ OTC_SUBSCRIBER_ENCRYPTION_NOT_ENABLED
Definition subscriber.h:60
@ OTC_SUBSCRIBER_CAPTIONS_CHANGE_RATE_LIMIT_ERROR
Definition subscriber.h:51
@ OTC_SUBSCRIBER_INTERNAL_ERROR
Definition subscriber.h:37
@ OTC_SUBSCRIBER_SESSION_DISCONNECTED
Definition subscriber.h:38
@ OTC_SUBSCRIBER_WEBRTC_ERROR
Definition subscriber.h:48
@ OTC_SUBSCRIBER_DECRYPTION_UNSUPPORTED_CODEC
Definition subscriber.h:59
@ OTC_SUBSCRIBER_TIMED_OUT
Definition subscriber.h:46
@ OTC_SUBSCRIBER_DECRYPTION_INTERNAL_ERROR
Definition subscriber.h:55
otc_stream * otc_subscriber_get_stream(const otc_subscriber *subscriber)
otc_status otc_subscriber_set_preferred_resolution(otc_subscriber *subscriber, uint32_t preferred_width, uint32_t preferred_height)
otc_bool otc_subscriber_get_subscribe_to_audio(const otc_subscriber *subscriber)
otc_status otc_subscriber_set_subscribe_to_audio(otc_subscriber *subscriber, otc_bool subscribe_to_audio)
void * otc_subscriber_get_user_data(const otc_subscriber *subscriber)
otc_status otc_subscriber_set_rtc_stats_report_cb(otc_subscriber *subscriber, struct otc_subscriber_rtc_stats_report_cb cb)
const char * otc_subscriber_get_subscriber_id(const otc_subscriber *subscriber)
otc_status otc_subscriber_set_audio_volume(otc_subscriber *subscriber, double volume)
otc_status otc_subscriber_set_subscribe_to_video(otc_subscriber *subscriber, otc_bool subscribe_to_video)
struct otc_subscriber otc_subscriber
Definition subscriber.h:30
otc_status otc_subscriber_get_rtc_stats_report(otc_subscriber *subscriber)
otc_status otc_subscriber_get_preferred_resolution(const otc_subscriber *subscriber, uint32_t *preferred_width, uint32_t *preferred_height)
otc_status otc_subscriber_get_audio_volume(const otc_subscriber *subscriber, double *volume)
otc_status otc_subscriber_set_subscribe_to_captions(otc_subscriber *subscriber, otc_bool subscribe_to_captions)
otc_subscriber * otc_subscriber_new(const otc_stream *stream, const struct otc_subscriber_callbacks *callbacks)
otc_status otc_subscriber_set_captions_translation_language(otc_subscriber *subscriber, const char *language)
otc_bool otc_subscriber_get_subscribe_to_captions(const otc_subscriber *subscriber)
const char * otc_subscriber_get_captions_translation_language(const otc_subscriber *subscriber)
otc_session * otc_subscriber_get_session(const otc_subscriber *subscriber)
otc_status otc_subscriber_set_preferred_framerate(otc_subscriber *subscriber, float preferred_framerate)
Video frame.
struct otc_video_frame otc_video_frame
Definition video_frame.h:21