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 
27 
31 
39  1010,
43 };
44 
52 };
53 
62  const char* connection_id;
64  const char* subscriber_id;
66  int64_t
69  int64_t packets_sent;
71  int64_t bytes_sent;
73  float audio_level;
74  double timestamp;
76  double
79 };
80 
89  const char* connection_id;
91  const char* subscriber_id;
93  int64_t
96  int64_t packets_sent;
98  int64_t bytes_sent;
100  double timestamp;
102  double
105 };
106 
128  void (*on_stream_created)(otc_publisher* publisher,
129  void* user_data,
130  const otc_stream* stream);
131 
139  void (*on_stream_destroyed)(otc_publisher* publisher,
140  void* user_data,
141  const otc_stream* stream);
142 
150  void (*on_render_frame)(otc_publisher* publisher,
151  void* user_data,
152  const otc_video_frame* frame);
153 
161  void (*on_audio_level_updated)(otc_publisher* publisher,
162  void* user_data,
163  float audio_level);
164 
171  void (*on_publisher_mute_forced)(otc_publisher *publisher,
172  void *user_data);
173 
182  void (*on_audio_stats)(otc_publisher* publisher,
183  void* user_data,
184  struct otc_publisher_audio_stats audio_stats[],
185  size_t number_of_stats);
186 
195  void (*on_video_stats)(otc_publisher* publisher,
196  void* user_data,
197  struct otc_publisher_video_stats video_stats[],
198  size_t number_of_stats);
207  void (*on_error)(otc_publisher* publisher,
208  void* user_data,
209  const char* error_string,
210  enum otc_publisher_error_code error_code);
211 
215  void* user_data;
216 
221  void* reserved;
222 };
223 
236 OTC_DECL(otc_publisher*)
237 otc_publisher_new(const char* name,
238  const struct otc_video_capturer_callbacks* capturer,
239  const struct otc_publisher_callbacks* callbacks);
240 
247 
254 OTC_DECL(otc_status)
256 
266 OTC_DECL(otc_status)
268  const char* name);
269 
278 OTC_DECL(otc_status)
280  otc_publisher_settings* settings,
281  const struct otc_video_capturer_callbacks* capturer);
282 
293 OTC_DECL(otc_status)
295  otc_bool enabled);
296 
307 OTC_DECL(otc_status)
309  otc_bool enabled);
310 
320 OTC_DECL(otc_status)
322  otc_bool enabled);
323 
334 OTC_DECL(otc_status)
336  otc_bool enabled);
345 OTC_DECL(otc_status)
347  otc_bool enabled);
348 
357 OTC_DECL(otc_status)
359  otc_bool enabled);
360 
370 OTC_DECL(otc_status)
372  otc_bool enabled);
373 
384 OTC_DECL(otc_status)
386  const otc_bool enabled);
387 
397 OTC_DECL(otc_publisher*)
399  otc_publisher_settings* settings);
400 
407 OTC_DECL(otc_status) otc_publisher_delete(otc_publisher* publisher);
408 
416 OTC_DECL(otc_stream*) otc_publisher_get_stream(otc_publisher* publisher);
417 
426 OTC_DECL(otc_status)
428  otc_bool publish_video);
429 
438 OTC_DECL(otc_status)
440  otc_bool publish_audio);
441 
448 OTC_DECL(otc_bool)
450 
457 OTC_DECL(otc_bool)
459 
467 OTC_DECL(otc_session*)
468 otc_publisher_get_session(const otc_publisher* publisher);
469 
477 OTC_DECL(otc_status)
478 otc_publisher_set_max_audio_bitrate(otc_publisher* publisher, uint32_t bitrate);
479 
491  const char* connection_id;
545 };
546 
556  void *user_data;
572  void(*on_rtc_stats_report)(otc_publisher* publisher,
573  void *user_data,
574  const struct otc_publisher_rtc_stats* stats,
575  size_t entries);
576  void *reserved;
577 };
578 
590  const struct otc_publisher_rtc_stats_report_cb cb);
605 
623 OTC_DECL(otc_status)
625  otc_bool enabled);
626 
634 OTC_DECL(otc_bool)
636 
644 OTC_DECL(const char*)
646 
658 OTC_DECL(otc_status)
660  enum otc_publisher_video_type video_type);
668 OTC_DECL(enum otc_publisher_video_type)
669 otc_publisher_get_video_type(const struct otc_publisher* publisher);
670 
677 OTC_DECL(void*)
678 otc_publisher_get_user_data(const struct otc_publisher* publisher);
679 
686 OTC_DECL(const char*)
687 otc_publisher_get_name(const struct otc_publisher* publisher);
688 
689 OTC_END_DECL
690 
691 #endif // PUBLISHER_H
int64_t packets_lost
Definition: publisher.h:94
Definition: publisher.h:50
int otc_status
Definition: base.h:133
struct otc_publisher otc_publisher
Definition: publisher.h:26
Definition: publisher.h:40
struct otc_video_frame otc_video_frame
Definition: video_frame.h:25
otc_status otc_publisher_settings_set_noise_suppression(otc_publisher_settings *settings, otc_bool enabled)
double start_time
Definition: publisher.h:103
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)
Definition: publisher.h:486
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:73
double start_time
Definition: publisher.h:77
Definition: publisher.h:120
Definition: video_capturer.h:43
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:51
Definition: publisher.h:61
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:71
const char * connection_id
Definition: publisher.h:491
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:49
void * user_data
Definition: publisher.h:556
struct otc_session otc_session
Definition: session.h:21
otc_status otc_publisher_settings_set_auto_gain_control(otc_publisher_settings *settings, otc_bool enabled)
Definition: publisher.h:552
otc_session * otc_publisher_get_session(const otc_publisher *publisher)
Definition: publisher.h:42
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)
otc_status otc_publisher_get_rtc_stats_report(const otc_publisher *publisher)
double timestamp
Definition: publisher.h:100
Definition: publisher.h:88
struct otc_stream otc_stream
Definition: stream.h:18
const char * subscriber_id
Definition: publisher.h:64
double timestamp
Definition: publisher.h:74
otc_publisher_settings * otc_publisher_settings_new()
const char * connection_id
Definition: publisher.h:89
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:221
Definition: publisher.h:38
otc_status otc_publisher_settings_delete(otc_publisher_settings *settings)
otc_status otc_publisher_settings_set_opus_dtx(otc_publisher_settings *settings, otc_bool enabled)
int64_t packets_lost
Definition: publisher.h:67
const char * json_array_of_reports
Definition: publisher.h:544
int otc_bool
Definition: base.h:107
void * user_data
Definition: publisher.h:215
int64_t bytes_sent
Definition: publisher.h:98
otc_stream * otc_publisher_get_stream(otc_publisher *publisher)
otc_status otc_publisher_settings_set_scalable_screenshare(otc_publisher_settings *settings, const otc_bool enabled)
const char * connection_id
Definition: publisher.h:62
int64_t packets_sent
Definition: publisher.h:96
Definition: publisher.h:41
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:36
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:30
otc_status otc_publisher_settings_set_echo_cancellation(otc_publisher_settings *settings, otc_bool enabled)
otc_publisher * otc_publisher_new_with_settings(const struct otc_publisher_callbacks *callbacks, otc_publisher_settings *settings)
Definition: publisher.h:37
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:69
otc_status otc_publisher_set_rtc_stats_report_cb(otc_publisher *publisher, const struct otc_publisher_rtc_stats_report_cb cb)
otc_bool otc_publisher_get_publish_audio(const otc_publisher *publisher)
const char * subscriber_id
Definition: publisher.h:91