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"
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 
28 
32 
40  1010,
44 };
45 
53 };
54 
63  const char* connection_id;
65  const char* subscriber_id;
67  int64_t
70  int64_t packets_sent;
72  int64_t bytes_sent;
74  float audio_level;
75  double timestamp;
77  double
80 };
81 
90  const char* connection_id;
92  const char* subscriber_id;
94  int64_t
97  int64_t packets_sent;
99  int64_t bytes_sent;
101  double timestamp;
103  double
106 };
107 
129  void (*on_stream_created)(otc_publisher* publisher,
130  void* user_data,
131  const otc_stream* stream);
132 
140  void (*on_stream_destroyed)(otc_publisher* publisher,
141  void* user_data,
142  const otc_stream* stream);
143 
151  void (*on_render_frame)(otc_publisher* publisher,
152  void* user_data,
153  const otc_video_frame* frame);
154 
162  void (*on_audio_level_updated)(otc_publisher* publisher,
163  void* user_data,
164  float audio_level);
165 
172  void (*on_publisher_mute_forced)(otc_publisher *publisher,
173  void *user_data);
174 
183  void (*on_audio_stats)(otc_publisher* publisher,
184  void* user_data,
185  struct otc_publisher_audio_stats audio_stats[],
186  size_t number_of_stats);
187 
196  void (*on_video_stats)(otc_publisher* publisher,
197  void* user_data,
198  struct otc_publisher_video_stats video_stats[],
199  size_t number_of_stats);
208  void (*on_error)(otc_publisher* publisher,
209  void* user_data,
210  const char* error_string,
211  enum otc_publisher_error_code error_code);
212 
216  void* user_data;
217 
222  void* reserved;
223 };
224 
237 OTC_DECL(otc_publisher*)
238 otc_publisher_new(const char* name,
239  const struct otc_video_capturer_callbacks* capturer,
240  const struct otc_publisher_callbacks* callbacks);
241 
248 
255 OTC_DECL(otc_status)
257 
267 OTC_DECL(otc_status)
269  const char* name);
270 
279 OTC_DECL(otc_status)
281  otc_publisher_settings* settings,
282  const struct otc_video_capturer_callbacks* capturer);
283 
294 OTC_DECL(otc_status)
296  otc_bool enabled);
297 
308 OTC_DECL(otc_status)
310  otc_bool enabled);
311 
321 OTC_DECL(otc_status)
323  otc_bool enabled);
324 
335 OTC_DECL(otc_status)
337  otc_bool enabled);
346 OTC_DECL(otc_status)
348  otc_bool enabled);
349 
358 OTC_DECL(otc_status)
360  otc_bool enabled);
361 
371 OTC_DECL(otc_status)
373  otc_bool enabled);
374 
386 OTC_DECL(otc_status)
388  const enum otc_camera_capture_resolution camera_capture_resolution);
389 
400 OTC_DECL(otc_status)
402  const otc_bool enabled);
403 
413 OTC_DECL(otc_publisher*)
415  otc_publisher_settings* settings);
416 
423 OTC_DECL(otc_status) otc_publisher_delete(otc_publisher* publisher);
424 
432 OTC_DECL(otc_stream*) otc_publisher_get_stream(otc_publisher* publisher);
433 
442 OTC_DECL(otc_status)
444  otc_bool publish_video);
445 
454 OTC_DECL(otc_status)
456  otc_bool publish_audio);
457 
464 OTC_DECL(otc_bool)
466 
473 OTC_DECL(otc_bool)
475 
483 OTC_DECL(otc_session*)
484 otc_publisher_get_session(const otc_publisher* publisher);
485 
493 OTC_DECL(otc_status)
494 otc_publisher_set_max_audio_bitrate(otc_publisher* publisher, uint32_t bitrate);
495 
507  const char* connection_id;
561 };
562 
572  void *user_data;
588  void(*on_rtc_stats_report)(otc_publisher* publisher,
589  void *user_data,
590  const struct otc_publisher_rtc_stats* stats,
591  size_t entries);
592  void *reserved;
593 };
594 
606  const struct otc_publisher_rtc_stats_report_cb cb);
621 
639 OTC_DECL(otc_status)
641  otc_bool enabled);
642 
650 OTC_DECL(otc_bool)
652 
660 OTC_DECL(const char*)
662 
674 OTC_DECL(otc_status)
676  enum otc_publisher_video_type video_type);
684 OTC_DECL(enum otc_publisher_video_type)
685 otc_publisher_get_video_type(const struct otc_publisher* publisher);
686 
693 OTC_DECL(void*)
694 otc_publisher_get_user_data(const struct otc_publisher* publisher);
695 
702 OTC_DECL(const char*)
703 otc_publisher_get_name(const struct otc_publisher* publisher);
704 
705 OTC_END_DECL
706 
707 #endif // PUBLISHER_H
int64_t packets_lost
Definition: publisher.h:95
Definition: publisher.h:51
int otc_status
Definition: base.h:138
struct otc_publisher otc_publisher
Definition: publisher.h:27
otc_status otc_publisher_settings_set_default_camera_capture_resolution(otc_publisher_settings *settings, const enum otc_camera_capture_resolution camera_capture_resolution)
Definition: publisher.h:41
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:104
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:502
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:74
double start_time
Definition: publisher.h:78
Definition: publisher.h:121
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:52
Definition: publisher.h:62
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:72
const char * connection_id
Definition: publisher.h:507
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:50
void * user_data
Definition: publisher.h:572
struct otc_session otc_session
Definition: session.h:21
OpenTok Camera Capture Resolution on default video capturers.
otc_status otc_publisher_settings_set_auto_gain_control(otc_publisher_settings *settings, otc_bool enabled)
Definition: publisher.h:568
otc_session * otc_publisher_get_session(const otc_publisher *publisher)
Definition: publisher.h:43
otc_status otc_publisher_set_video_type(struct otc_publisher *publisher, enum otc_publisher_video_type video_type)
otc_camera_capture_resolution
Definition: camera_capture_resolution.h:17
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:101
Definition: publisher.h:89
struct otc_stream otc_stream
Definition: stream.h:18
const char * subscriber_id
Definition: publisher.h:65
double timestamp
Definition: publisher.h:75
otc_publisher_settings * otc_publisher_settings_new()
const char * connection_id
Definition: publisher.h:90
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:222
Definition: publisher.h:39
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:68
const char * json_array_of_reports
Definition: publisher.h:560
int otc_bool
Definition: base.h:112
void * user_data
Definition: publisher.h:216
int64_t bytes_sent
Definition: publisher.h:99
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:63
int64_t packets_sent
Definition: publisher.h:97
Definition: publisher.h:42
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:37
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:31
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:38
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:70
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:92