OpenTok C SDK
subscriber.h
Go to the documentation of this file.
1 
7 #ifndef SUBSCRIBER_H
8 #define SUBSCRIBER_H
9 
10 #include "config.h"
11 #include "stream.h"
12 #include "error.h"
13 #include "video_frame.h"
14 #include "audio_data.h"
15 
16 OTC_BEGIN_DECL
17 
18 #ifndef OTC_SESSION_FWD_DECL
19 #define OTC_SESSION_FWD_DECL
20 typedef struct otc_session otc_session;
21 #endif
22 
28 typedef struct otc_subscriber otc_subscriber;
29 
46  1542,
48 };
49 
55  uint64_t packets_lost;
57  uint64_t packets_received;
59  uint64_t bytes_received;
61  float audio_level;
62  double timestamp;
64 };
65 
75  uint64_t packets_lost;
77  uint64_t packets_received;
79  uint64_t bytes_received;
81  double timestamp;
83 };
84 
94  void* user_data;
95 
152  void (*on_rtc_stats_report)(otc_subscriber* subscriber,
153  void* user_data,
154  const char* json_array_of_reports);
155 
156  void* reserved;
157 };
158 
177  void (*on_connected)(otc_subscriber* subscriber,
178  void* user_data,
179  const otc_stream* stream);
180 
187  void (*on_disconnected)(otc_subscriber* subscriber, void* user_data);
188 
195  void (*on_reconnected)(otc_subscriber* subscriber, void* user_data);
196 
204  void (*on_render_frame)(otc_subscriber* subscriber,
205  void* user_data,
206  const otc_video_frame* frame);
207 
215  void (*on_video_disabled)(otc_subscriber* subscriber,
216  void* user_data,
217  enum otc_video_reason reason);
218 
226  void (*on_video_enabled)(otc_subscriber* subscriber,
227  void* user_data,
228  enum otc_video_reason reason);
229 
236  void (*on_audio_disabled)(otc_subscriber* subscriber, void* user_data);
237 
244  void (*on_audio_enabled)(otc_subscriber* subscriber, void* user_data);
245 
252  void (*on_video_data_received)(otc_subscriber* subscriber, void* user_data);
253 
262  void (*on_video_disable_warning)(otc_subscriber* subscriber, void* user_data);
263 
274  void (*on_caption_text)(otc_subscriber* subscriber,
275  void* user_data,
276  const char* text,
277  otc_bool is_final);
278 
288  void* user_data);
289 
297  void (*on_audio_stats)(otc_subscriber* subscriber,
298  void* user_data,
299  struct otc_subscriber_audio_stats audio_stats);
300 
308  void (*on_video_stats)(otc_subscriber* subscriber,
309  void* user_data,
310  struct otc_subscriber_video_stats video_stats);
311 
320  void* user_data,
321  float audio_level);
322 
331  void (*on_error)(otc_subscriber* subscriber,
332  void* user_data,
333  const char* error_string,
334  enum otc_subscriber_error_code error);
335 
343  void (*on_audio_data)(otc_subscriber* subscriber,
344  void* user_data,
345  const struct otc_audio_data* audio_data);
346 
351  void* user_data;
352 
357  void* reserved;
358 };
359 
369 OTC_DECL(otc_subscriber*)
371  const struct otc_subscriber_callbacks* callbacks);
372 
381 
389 OTC_DECL(otc_stream*)
391 
399 OTC_DECL(otc_status)
401  otc_bool subscribe_to_video);
402 
410 OTC_DECL(otc_status)
412  otc_bool subscribe_to_audio);
413 
423 OTC_DECL(otc_status)
425  otc_bool subscribe_to_captions);
426 
433 OTC_DECL(otc_bool)
435 
442 OTC_DECL(otc_bool)
444 
455 OTC_DECL(otc_bool)
457 
465 OTC_DECL(otc_session*)
467 
477 OTC_DECL(otc_status)
479  uint32_t preferred_width,
480  uint32_t preferred_height);
490 OTC_DECL(otc_status)
492  uint32_t* preferred_width,
493  uint32_t* preferred_height);
494 
504 OTC_DECL(otc_status)
506 
517 OTC_DECL(otc_status)
519  double* volume);
520 
531 OTC_DECL(otc_status)
533  float preferred_framerate);
534 
544 OTC_DECL(otc_status)
546  float* preferred_framerate);
547 
555 OTC_DECL(const char*)
557 
564 OTC_DECL(void*) otc_subscriber_get_user_data(const otc_subscriber* subscriber);
565 
580 OTC_DECL(otc_status)
582 
592 OTC_DECL(otc_status)
594  otc_subscriber* subscriber,
596 
597 OTC_END_DECL
598 
599 #endif // SUBSCRIBER_H
Audio Data.
int otc_bool
Definition: base.h:127
otc_video_reason
Definition: base.h:16
int otc_status
Definition: base.h:153
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:17
Definition: subscriber.h:54
double timestamp
Definition: subscriber.h:62
uint64_t packets_lost
Definition: subscriber.h:55
uint64_t bytes_received
Definition: subscriber.h:59
float audio_level
Definition: subscriber.h:61
uint64_t packets_received
Definition: subscriber.h:57
Definition: subscriber.h:168
void * user_data
Definition: subscriber.h:351
void(* on_audio_level_updated)(otc_subscriber *subscriber, void *user_data, float audio_level)
Definition: subscriber.h:319
void * reserved
Definition: subscriber.h:357
void(* on_audio_stats)(otc_subscriber *subscriber, void *user_data, struct otc_subscriber_audio_stats audio_stats)
Definition: subscriber.h:297
void(* on_audio_data)(otc_subscriber *subscriber, void *user_data, const struct otc_audio_data *audio_data)
Definition: subscriber.h:343
void(* on_error)(otc_subscriber *subscriber, void *user_data, const char *error_string, enum otc_subscriber_error_code error)
Definition: subscriber.h:331
void(* on_render_frame)(otc_subscriber *subscriber, void *user_data, const otc_video_frame *frame)
Definition: subscriber.h:204
void(* on_video_data_received)(otc_subscriber *subscriber, void *user_data)
Definition: subscriber.h:252
void(* on_audio_disabled)(otc_subscriber *subscriber, void *user_data)
Definition: subscriber.h:236
void(* on_audio_enabled)(otc_subscriber *subscriber, void *user_data)
Definition: subscriber.h:244
void(* on_video_disabled)(otc_subscriber *subscriber, void *user_data, enum otc_video_reason reason)
Definition: subscriber.h:215
void(* on_video_disable_warning_lifted)(otc_subscriber *subscriber, void *user_data)
Definition: subscriber.h:287
void(* on_connected)(otc_subscriber *subscriber, void *user_data, const otc_stream *stream)
Definition: subscriber.h:177
void(* on_reconnected)(otc_subscriber *subscriber, void *user_data)
Definition: subscriber.h:195
void(* on_video_enabled)(otc_subscriber *subscriber, void *user_data, enum otc_video_reason reason)
Definition: subscriber.h:226
void(* on_video_disable_warning)(otc_subscriber *subscriber, void *user_data)
Definition: subscriber.h:262
void(* on_caption_text)(otc_subscriber *subscriber, void *user_data, const char *text, otc_bool is_final)
Definition: subscriber.h:274
void(* on_disconnected)(otc_subscriber *subscriber, void *user_data)
Definition: subscriber.h:187
void(* on_video_stats)(otc_subscriber *subscriber, void *user_data, struct otc_subscriber_video_stats video_stats)
Definition: subscriber.h:308
Definition: subscriber.h:90
void * user_data
Definition: subscriber.h:94
void(* on_rtc_stats_report)(otc_subscriber *subscriber, void *user_data, const char *json_array_of_reports)
Definition: subscriber.h:152
Definition: subscriber.h:74
double timestamp
Definition: subscriber.h:81
uint64_t packets_lost
Definition: subscriber.h:75
uint64_t bytes_received
Definition: subscriber.h:79
uint64_t packets_received
Definition: subscriber.h:77
otc_status otc_subscriber_get_preferred_framerate(const otc_subscriber *subscriber, float *preferred_framerate)
otc_subscriber_error_code
Definition: subscriber.h:35
@ OTC_SUBSCRIBER_SERVER_CANNOT_FIND_STREAM
Definition: subscriber.h:39
@ OTC_SUBSCRIBER_STREAM_LIMIT_EXCEEDED
Definition: subscriber.h:42
@ OTC_SUBSCRIBER_INTERNAL_ERROR
Definition: subscriber.h:36
@ OTC_SUBSCRIBER_SESSION_DISCONNECTED
Definition: subscriber.h:37
@ OTC_SUBSCRIBER_WEBRTC_ERROR
Definition: subscriber.h:47
@ OTC_SUBSCRIBER_TIMED_OUT
Definition: subscriber.h:45
otc_session * otc_subscriber_get_session(const otc_subscriber *subscriber)
otc_subscriber * otc_subscriber_new(const otc_stream *stream, const struct otc_subscriber_callbacks *callbacks)
otc_status otc_subscriber_set_preferred_resolution(otc_subscriber *subscriber, uint32_t preferred_width, uint32_t preferred_height)
const char * otc_subscriber_get_subscriber_id(const otc_subscriber *subscriber)
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)
otc_status otc_subscriber_set_rtc_stats_report_cb(otc_subscriber *subscriber, struct otc_subscriber_rtc_stats_report_cb cb)
otc_bool otc_subscriber_get_subscribe_to_video(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:28
otc_status otc_subscriber_get_rtc_stats_report(const otc_subscriber *subscriber)
otc_stream * otc_subscriber_get_stream(const 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_bool otc_subscriber_get_subscribe_to_captions(const otc_subscriber *subscriber)
otc_status otc_subscriber_delete(otc_subscriber *subscriber)
void * otc_subscriber_get_user_data(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:25