OpenTok C SDK
publisher.h
Go to the documentation of this file.
1 
7 #ifndef PUBLISHER_H
8 #define PUBLISHER_H
9 
10 #include "config.h"
11 #include "stream.h"
12 #include "video_frame.h"
13 
14 OTC_BEGIN_DECL
15 
16 #ifndef OTC_SESSION_FWD_DECL
17 #define OTC_SESSION_FWD_DECL
18 typedef struct otc_session otc_session;
19 #endif
20 
26 
30 
41 };
42 
50 };
51 
60  const char* connection_id;
61  const char* subscriber_id;
62  int64_t packets_lost;
63  int64_t packets_sent;
64  int64_t bytes_sent;
65  float audio_level;
66  double timestamp;
67  double start_time;
68 };
69 
78  const char* connection_id;
79  const char* subscriber_id;
80  int64_t packets_lost;
81  int64_t packets_sent;
82  int64_t bytes_sent;
83  double timestamp;
84  double start_time;
85 };
86 
108  void (*on_stream_created)(otc_publisher *publisher,
109  void *user_data,
110  const otc_stream *stream);
111 
119  void (*on_stream_destroyed)(otc_publisher *publisher,
120  void *user_data,
121  const otc_stream *stream);
122 
130  void (*on_render_frame)(otc_publisher *publisher,
131  void *user_data,
132  const otc_video_frame *frame);
133 
141  void (*on_audio_level_updated)(otc_publisher * publisher,
142  void *user_data,
143  float audio_level);
144 
153  void(*on_audio_stats)(otc_publisher* publisher,
154  void *user_data,
155  struct otc_publisher_audio_stats audio_stats[],
156  size_t number_of_stats);
157 
166  void(*on_video_stats)(otc_publisher* publisher,
167  void *user_data,
168  struct otc_publisher_video_stats video_stats[],
169  size_t number_of_stats);
170 
179  void (*on_error)(otc_publisher *publisher,
180  void *user_data,
181  const char* error_string,
182  enum otc_publisher_error_code error_code);
183 
187  void *user_data;
188 
193  void *reserved;
194 };
195 
207 OTC_DECL(otc_publisher *) otc_publisher_new(const char *name,
208  const struct otc_video_capturer_callbacks *capturer,
209  const struct otc_publisher_callbacks *callbacks);
210 
217 
225 
236  const char *name);
237 
247  const struct otc_video_capturer_callbacks *capturer);
248 
259  otc_bool enabled);
260 
271  otc_bool enabled);
272 
283  otc_bool enabled);
284 
292 OTC_DECL(otc_publisher *) otc_publisher_new_with_settings(const struct otc_publisher_callbacks *callbacks,
293  otc_publisher_settings *settings);
294 
301 OTC_DECL(otc_status) otc_publisher_delete(otc_publisher *publisher);
302 
309 OTC_DECL(otc_stream *) otc_publisher_get_stream(otc_publisher *publisher);
310 
319  otc_bool publish_video);
320 
329  otc_bool publish_audio);
330 
337 OTC_DECL(otc_bool) otc_publisher_get_publish_video(const otc_publisher *publisher);
338 
345 OTC_DECL(otc_bool) otc_publisher_get_publish_audio(const otc_publisher *publisher);
346 
353 OTC_DECL(otc_session *) otc_publisher_get_session(const otc_publisher *publisher);
354 
363  uint32_t bitrate);
364 
383  otc_publisher* publisher,
384  otc_bool enabled);
385 
394 
401 OTC_DECL(const char *) otc_publisher_get_publisher_id(const otc_publisher* publisher);
402 
414 OTC_DECL(otc_status) otc_publisher_set_video_type(struct otc_publisher* publisher,
415  enum otc_publisher_video_type video_type);
423 OTC_DECL(enum otc_publisher_video_type) otc_publisher_get_video_type(const struct otc_publisher* publisher);
424 
431 OTC_DECL(void *) otc_publisher_get_user_data(const struct otc_publisher* publisher);
432 
439 OTC_DECL(const char *) otc_publisher_get_name(const struct otc_publisher* publisher);
440 
441 OTC_END_DECL
442 
443 #endif // PUBLISHER_H
int64_t packets_lost
Definition: publisher.h:80
Definition: publisher.h:48
int otc_status
Definition: base.h:114
struct otc_publisher otc_publisher
Definition: publisher.h:25
Definition: publisher.h:38
struct otc_video_frame otc_video_frame
Definition: video_frame.h:25
double start_time
Definition: publisher.h:84
otc_status otc_publisher_set_publish_video(otc_publisher *publisher, otc_bool publish_video)
void * otc_publisher_get_user_data(const struct otc_publisher *publisher)
otc_status otc_publisher_settings_set_name(otc_publisher_settings *settings, const char *name)
enum otc_publisher_video_type otc_publisher_get_video_type(const struct otc_publisher *publisher)
float audio_level
Definition: publisher.h:65
double start_time
Definition: publisher.h:67
Definition: publisher.h:100
Definition: video_capturer.h:41
const char * otc_publisher_get_name(const struct otc_publisher *publisher)
otc_bool otc_publisher_get_publish_video(const otc_publisher *publisher)
Definition: publisher.h:49
Definition: publisher.h:59
otc_status otc_publisher_settings_set_audio_track(otc_publisher_settings *settings, otc_bool enabled)
otc_status otc_publisher_delete(otc_publisher *publisher)
int64_t bytes_sent
Definition: publisher.h:64
otc_bool otc_publisher_get_audio_fallback_enabled(const otc_publisher *publisher)
Audio/Video stream.
otc_status otc_publisher_settings_set_stereo(otc_publisher_settings *settings, otc_bool enabled)
otc_publisher_video_type
Definition: publisher.h:47
struct otc_session otc_session
Definition: session.h:21
otc_session * otc_publisher_get_session(const otc_publisher *publisher)
Definition: publisher.h:40
otc_status otc_publisher_set_video_type(struct otc_publisher *publisher, enum otc_publisher_video_type video_type)
otc_status otc_publisher_set_publish_audio(otc_publisher *publisher, otc_bool publish_audio)
double timestamp
Definition: publisher.h:83
Definition: publisher.h:77
struct otc_stream otc_stream
Definition: stream.h:18
const char * subscriber_id
Definition: publisher.h:61
double timestamp
Definition: publisher.h:66
otc_publisher_settings * otc_publisher_settings_new()
const char * connection_id
Definition: publisher.h:78
otc_publisher * otc_publisher_new(const char *name, const struct otc_video_capturer_callbacks *capturer, const struct otc_publisher_callbacks *callbacks)
void * reserved
Definition: publisher.h:193
Definition: publisher.h:37
otc_status otc_publisher_settings_delete(otc_publisher_settings *settings)
int64_t packets_lost
Definition: publisher.h:62
int otc_bool
Definition: base.h:100
void * user_data
Definition: publisher.h:187
int64_t bytes_sent
Definition: publisher.h:82
otc_stream * otc_publisher_get_stream(otc_publisher *publisher)
const char * connection_id
Definition: publisher.h:60
int64_t packets_sent
Definition: publisher.h:81
Definition: publisher.h:39
otc_status otc_publisher_settings_set_video_capturer(otc_publisher_settings *settings, const struct otc_video_capturer_callbacks *capturer)
otc_publisher_error_code
Definition: publisher.h:35
otc_status otc_publisher_settings_set_video_track(otc_publisher_settings *settings, otc_bool enabled)
otc_status otc_publisher_set_audio_fallback_enabled(otc_publisher *publisher, otc_bool enabled)
struct otc_publisher_settings otc_publisher_settings
Definition: publisher.h:29
otc_publisher * otc_publisher_new_with_settings(const struct otc_publisher_callbacks *callbacks, otc_publisher_settings *settings)
Definition: publisher.h:36
Video frame.
const char * otc_publisher_get_publisher_id(const otc_publisher *publisher)
otc_status otc_publisher_set_max_audio_bitrate(otc_publisher *publisher, uint32_t bitrate)
int64_t packets_sent
Definition: publisher.h:63
otc_bool otc_publisher_get_publish_audio(const otc_publisher *publisher)
const char * subscriber_id
Definition: publisher.h:79