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 
15 OTC_BEGIN_DECL
16 
17 #ifndef OTC_SESSION_FWD_DECL
18 #define OTC_SESSION_FWD_DECL
19 typedef struct otc_session otc_session;
20 #endif
21 
27 
37 };
38 
54 };
55 
61  uint64_t packets_lost;
62  uint64_t packets_received;
63  uint64_t bytes_received;
64  float audio_level;
65  double timestamp;
66 };
67 
77  uint64_t packets_lost;
78  uint64_t packets_received;
79  uint64_t bytes_received;
80  double timestamp;
81 };
82 
100  void (*on_connected)(otc_subscriber *subscriber,
101  void *user_data,
102  const otc_stream *stream);
103 
110  void (*on_disconnected)(otc_subscriber *subscriber,
111  void *user_data);
112 
119  void (*on_reconnected)(otc_subscriber *subscriber,
120  void *user_data);
121 
129  void (*on_render_frame)(otc_subscriber *subscriber,
130  void *user_data,
131  const otc_video_frame *frame);
132 
140  void (*on_video_disabled)(otc_subscriber* subscriber,
141  void *user_data,
142  enum otc_video_reason reason);
143 
151  void (*on_video_enabled)(otc_subscriber* subscriber,
152  void *user_data,
153  enum otc_video_reason reason);
154 
161  void (*on_audio_disabled)(otc_subscriber* subscriber,
162  void *user_data);
163 
170  void (*on_audio_enabled)(otc_subscriber* subscriber,
171  void *user_data);
172 
179  void(*on_video_data_received)(otc_subscriber* subscriber, void *user_data);
180 
189  void (*on_video_disable_warning)(otc_subscriber* subscriber,
190  void *user_data);
191 
200  void (*on_video_disable_warning_lifted)(otc_subscriber* subscriber,
201  void *user_data);
202 
210  void(*on_audio_stats)(otc_subscriber* subscriber,
211  void *user_data,
212  struct otc_subscriber_audio_stats audio_stats);
213 
221  void(*on_video_stats)(otc_subscriber* subscriber,
222  void *user_data,
223  struct otc_subscriber_video_stats video_stats);
224 
232  void(*on_audio_level_updated)(otc_subscriber* subscriber, void *user_data, float audio_level);
233 
242  void (*on_error)(otc_subscriber* subscriber,
243  void *user_data,
244  const char* error_string,
245  enum otc_subscriber_error_code error);
246 
251  void *user_data;
252 
257  void *reserved;
258 };
259 
267 OTC_DECL(otc_subscriber *) otc_subscriber_new(const otc_stream *stream,
268  const struct otc_subscriber_callbacks *callbacks);
269 
276 OTC_DECL(otc_status) otc_subscriber_delete(otc_subscriber *subscriber);
277 
278 
285 OTC_DECL(otc_stream *) otc_subscriber_get_stream(const otc_subscriber *subscriber);
286 
295  otc_bool subscribe_to_video);
296 
305  otc_bool subscribe_to_audio);
306 
314 
322 
329 OTC_DECL(otc_session *) otc_subscriber_get_session(const otc_subscriber *subscriber);
330 
341  uint32_t preferred_width,
342  uint32_t preferred_height);
353  uint32_t *preferred_width,
354  uint32_t *preferred_height);
355 
365  float preferred_framerate);
366 
376  float *preferred_framerate);
377 
384 OTC_DECL(const char *) otc_subscriber_get_subscriber_id(const otc_subscriber* subscriber);
385 
392 OTC_DECL(void *) otc_subscriber_get_user_data(const otc_subscriber* subscriber);
393 
394 OTC_END_DECL
395 
396 #endif // SUBSCRIBER_H
Definition: subscriber.h:53
Definition: subscriber.h:76
int otc_status
Definition: base.h:114
uint64_t bytes_received
Definition: subscriber.h:63
struct otc_video_frame otc_video_frame
Definition: video_frame.h:25
struct otc_subscriber otc_subscriber
Definition: subscriber.h:26
Definition: subscriber.h:92
otc_status otc_subscriber_set_preferred_framerate(otc_subscriber *subscriber, float preferred_framerate)
otc_status otc_subscriber_set_subscribe_to_audio(otc_subscriber *subscriber, otc_bool subscribe_to_audio)
otc_status otc_subscriber_set_subscribe_to_video(otc_subscriber *subscriber, otc_bool subscribe_to_video)
Definition: subscriber.h:47
double timestamp
Definition: subscriber.h:65
float audio_level
Definition: subscriber.h:64
Audio/Video stream.
uint64_t packets_received
Definition: subscriber.h:62
struct otc_session otc_session
Definition: session.h:21
Definition: subscriber.h:60
otc_video_reason
Definition: subscriber.h:30
otc_status otc_subscriber_get_preferred_resolution(const otc_subscriber *subscriber, uint32_t *preferred_width, uint32_t *preferred_height)
otc_status otc_subscriber_get_preferred_framerate(const otc_subscriber *subscriber, float *preferred_framerate)
otc_status otc_subscriber_delete(otc_subscriber *subscriber)
uint64_t packets_received
Definition: subscriber.h:78
struct otc_stream otc_stream
Definition: stream.h:18
Definition: subscriber.h:33
uint64_t bytes_received
Definition: subscriber.h:79
otc_subscriber_error_code
Definition: subscriber.h:43
otc_status otc_subscriber_set_preferred_resolution(otc_subscriber *subscriber, uint32_t preferred_width, uint32_t preferred_height)
Definition: subscriber.h:50
void * otc_subscriber_get_user_data(const otc_subscriber *subscriber)
otc_bool otc_subscriber_get_subscribe_to_video(const otc_subscriber *subscriber)
double timestamp
Definition: subscriber.h:80
void * reserved
Definition: subscriber.h:257
Definition: subscriber.h:52
Definition: subscriber.h:31
uint64_t packets_lost
Definition: subscriber.h:77
void * user_data
Definition: subscriber.h:251
otc_stream * otc_subscriber_get_stream(const otc_subscriber *subscriber)
uint64_t packets_lost
Definition: subscriber.h:61
int otc_bool
Definition: base.h:100
Definition: subscriber.h:45
otc_bool otc_subscriber_get_subscribe_to_audio(const otc_subscriber *subscriber)
otc_subscriber * otc_subscriber_new(const otc_stream *stream, const struct otc_subscriber_callbacks *callbacks)
Video frame.
Definition: subscriber.h:44
otc_session * otc_subscriber_get_session(const otc_subscriber *subscriber)
Definition: subscriber.h:34
const char * otc_subscriber_get_subscriber_id(const otc_subscriber *subscriber)
Definition: subscriber.h:32