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 
27 typedef struct otc_publisher otc_publisher;
28 
32 
40  1010,
46  4500,
47 };
48 
56 };
57 
66  const char* connection_id;
68  const char* subscriber_id;
70  int64_t
73  int64_t packets_sent;
75  int64_t bytes_sent;
77  float audio_level;
78  double timestamp;
80  double
83 };
84 
93  const char* connection_id;
95  const char* subscriber_id;
97  int64_t
100  int64_t packets_sent;
102  int64_t bytes_sent;
104  double timestamp;
106  double
109 };
110 
132  void (*on_stream_created)(otc_publisher* publisher,
133  void* user_data,
134  const otc_stream* stream);
135 
143  void (*on_stream_destroyed)(otc_publisher* publisher,
144  void* user_data,
145  const otc_stream* stream);
146 
154  void (*on_render_frame)(otc_publisher* publisher,
155  void* user_data,
156  const otc_video_frame* frame);
157 
166  void* user_data,
167  float audio_level);
168 
176  void *user_data);
177 
186  void (*on_audio_stats)(otc_publisher* publisher,
187  void* user_data,
188  struct otc_publisher_audio_stats audio_stats[],
189  size_t number_of_stats);
190 
199  void (*on_video_stats)(otc_publisher* publisher,
200  void* user_data,
201  struct otc_publisher_video_stats video_stats[],
202  size_t number_of_stats);
211  void (*on_error)(otc_publisher* publisher,
212  void* user_data,
213  const char* error_string,
214  enum otc_publisher_error_code error_code);
215 
219  void* user_data;
220 
225  void* reserved;
226 };
227 
240 OTC_DECL(otc_publisher*)
241 otc_publisher_new(const char* name,
242  const struct otc_video_capturer_callbacks* capturer,
243  const struct otc_publisher_callbacks* callbacks);
244 
251 
258 OTC_DECL(otc_status)
260 
270 OTC_DECL(otc_status)
272  const char* name);
273 
282 OTC_DECL(otc_status)
284  otc_publisher_settings* settings,
285  const struct otc_video_capturer_callbacks* capturer);
286 
297 OTC_DECL(otc_status)
299  otc_bool enabled);
300 
311 OTC_DECL(otc_status)
313  otc_bool enabled);
314 
324 OTC_DECL(otc_status)
326  otc_bool enabled);
327 
338 OTC_DECL(otc_status)
340  otc_bool enabled);
349 OTC_DECL(otc_status)
351  otc_bool enabled);
352 
361 OTC_DECL(otc_status)
363  otc_bool enabled);
364 
374 OTC_DECL(otc_status)
376  otc_bool enabled);
377 
389 OTC_DECL(otc_status)
391  const enum otc_camera_capture_resolution camera_capture_resolution);
392 
403 OTC_DECL(otc_status)
405  const otc_bool enabled);
406 
416 OTC_DECL(otc_publisher*)
418  otc_publisher_settings* settings);
419 
427 
436 
445 OTC_DECL(otc_status)
447  otc_bool publish_video);
448 
457 OTC_DECL(otc_status)
459  otc_bool publish_audio);
460 
470 OTC_DECL(otc_status)
472  otc_bool publish_captions);
473 
480 OTC_DECL(otc_bool)
482 
489 OTC_DECL(otc_bool)
491 
500 OTC_DECL(otc_bool)
502 
510 OTC_DECL(otc_session*)
512 
520 OTC_DECL(otc_status)
522 
534  const char* connection_id;
588 };
589 
599  void *user_data;
616  void *user_data,
617  const struct otc_publisher_rtc_stats* stats,
618  size_t entries);
619  void *reserved;
620 };
621 
633  const struct otc_publisher_rtc_stats_report_cb cb);
648 
666 OTC_DECL(otc_status)
668  otc_bool enabled);
669 
677 OTC_DECL(otc_bool)
679 
687 OTC_DECL(const char*)
689 
701 OTC_DECL(otc_status)
703  enum otc_publisher_video_type video_type);
711 OTC_DECL(enum otc_publisher_video_type)
712 otc_publisher_get_video_type(const struct otc_publisher* publisher);
713 
720 OTC_DECL(void*)
722 
729 OTC_DECL(const char*)
730 otc_publisher_get_name(const struct otc_publisher* publisher);
731 
732 OTC_END_DECL
733 
734 #endif // PUBLISHER_H
int otc_bool
Definition: base.h:127
int otc_status
Definition: base.h:153
OpenTok Camera Capture Resolution on default video capturers.
otc_camera_capture_resolution
Definition: camera_capture_resolution.h:17
otc_publisher_video_type
Definition: publisher.h:53
@ OTC_PUBLISHER_VIDEO_TYPE_CAMERA
Definition: publisher.h:54
@ OTC_PUBLISHER_VIDEO_TYPE_SCREEN
Definition: publisher.h:55
otc_status otc_publisher_settings_set_video_track(otc_publisher_settings *settings, otc_bool enabled)
otc_stream * otc_publisher_get_stream(otc_publisher *publisher)
otc_status otc_publisher_set_max_audio_bitrate(otc_publisher *publisher, uint32_t bitrate)
otc_status otc_publisher_settings_set_default_camera_capture_resolution(otc_publisher_settings *settings, const enum otc_camera_capture_resolution camera_capture_resolution)
otc_bool otc_publisher_get_publish_video(const otc_publisher *publisher)
otc_publisher * otc_publisher_new_with_settings(const struct otc_publisher_callbacks *callbacks, otc_publisher_settings *settings)
otc_bool otc_publisher_get_audio_fallback_enabled(const otc_publisher *publisher)
otc_status otc_publisher_settings_set_stereo(otc_publisher_settings *settings, otc_bool enabled)
const char * otc_publisher_get_name(const struct otc_publisher *publisher)
otc_status otc_publisher_get_rtc_stats_report(const otc_publisher *publisher)
otc_status otc_publisher_delete(otc_publisher *publisher)
otc_status otc_publisher_settings_set_auto_gain_control(otc_publisher_settings *settings, otc_bool enabled)
otc_status otc_publisher_set_video_type(struct otc_publisher *publisher, enum otc_publisher_video_type video_type)
otc_session * otc_publisher_get_session(const otc_publisher *publisher)
otc_status otc_publisher_set_publish_captions(otc_publisher *publisher, otc_bool publish_captions)
otc_status otc_publisher_settings_set_noise_suppression(otc_publisher_settings *settings, otc_bool enabled)
otc_status otc_publisher_set_publish_audio(otc_publisher *publisher, otc_bool publish_audio)
otc_status otc_publisher_set_publish_video(otc_publisher *publisher, otc_bool publish_video)
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 * otc_publisher_get_publisher_id(const otc_publisher *publisher)
struct otc_publisher otc_publisher
Definition: publisher.h:27
enum otc_publisher_video_type otc_publisher_get_video_type(const struct otc_publisher *publisher)
otc_status otc_publisher_settings_delete(otc_publisher_settings *settings)
otc_status otc_publisher_settings_set_echo_cancellation(otc_publisher_settings *settings, otc_bool enabled)
otc_status otc_publisher_settings_set_name(otc_publisher_settings *settings, const char *name)
otc_bool otc_publisher_get_publish_captions(const otc_publisher *publisher)
void * otc_publisher_get_user_data(const struct otc_publisher *publisher)
struct otc_publisher_settings otc_publisher_settings
Definition: publisher.h:31
otc_status otc_publisher_settings_set_scalable_screenshare(otc_publisher_settings *settings, const otc_bool enabled)
otc_status otc_publisher_settings_set_video_capturer(otc_publisher_settings *settings, const struct otc_video_capturer_callbacks *capturer)
otc_publisher_settings * otc_publisher_settings_new()
otc_publisher * otc_publisher_new(const char *name, const struct otc_video_capturer_callbacks *capturer, const struct otc_publisher_callbacks *callbacks)
otc_publisher_error_code
Definition: publisher.h:37
@ OTC_PUBLISHER_SESSION_DISCONNECTED
Definition: publisher.h:39
@ OTC_PUBLISHER_MISSING_AUDIO_TRACK
Definition: publisher.h:45
@ OTC_PUBLISHER_INTERNAL_ERROR
Definition: publisher.h:38
@ OTC_PUBLISHER_WEBRTC_ERROR
Definition: publisher.h:44
@ OTC_PUBLISHER_UNABLE_TO_PUBLISH
Definition: publisher.h:43
@ OTC_PUBLISHER_TIMED_OUT
Definition: publisher.h:42
otc_status otc_publisher_settings_set_audio_track(otc_publisher_settings *settings, otc_bool enabled)
otc_status otc_publisher_settings_set_opus_dtx(otc_publisher_settings *settings, otc_bool enabled)
otc_status otc_publisher_set_audio_fallback_enabled(otc_publisher *publisher, otc_bool enabled)
struct otc_session otc_session
Definition: session.h:21
Audio/Video stream.
struct otc_stream otc_stream
Definition: stream.h:18
Definition: publisher.h:65
double start_time
Definition: publisher.h:81
int64_t packets_lost
Definition: publisher.h:71
double timestamp
Definition: publisher.h:78
int64_t packets_sent
Definition: publisher.h:73
int64_t bytes_sent
Definition: publisher.h:75
const char * subscriber_id
Definition: publisher.h:68
const char * connection_id
Definition: publisher.h:66
float audio_level
Definition: publisher.h:77
Definition: publisher.h:124
void * user_data
Definition: publisher.h:219
void(* on_video_stats)(otc_publisher *publisher, void *user_data, struct otc_publisher_video_stats video_stats[], size_t number_of_stats)
Definition: publisher.h:199
void(* on_render_frame)(otc_publisher *publisher, void *user_data, const otc_video_frame *frame)
Definition: publisher.h:154
void * reserved
Definition: publisher.h:225
void(* on_stream_created)(otc_publisher *publisher, void *user_data, const otc_stream *stream)
Definition: publisher.h:132
void(* on_error)(otc_publisher *publisher, void *user_data, const char *error_string, enum otc_publisher_error_code error_code)
Definition: publisher.h:211
void(* on_stream_destroyed)(otc_publisher *publisher, void *user_data, const otc_stream *stream)
Definition: publisher.h:143
void(* on_audio_stats)(otc_publisher *publisher, void *user_data, struct otc_publisher_audio_stats audio_stats[], size_t number_of_stats)
Definition: publisher.h:186
void(* on_audio_level_updated)(otc_publisher *publisher, void *user_data, float audio_level)
Definition: publisher.h:165
void(* on_publisher_mute_forced)(otc_publisher *publisher, void *user_data)
Definition: publisher.h:175
Definition: publisher.h:595
void * user_data
Definition: publisher.h:599
void(* on_rtc_stats_report)(otc_publisher *publisher, void *user_data, const struct otc_publisher_rtc_stats *stats, size_t entries)
Definition: publisher.h:615
Definition: publisher.h:529
const char * json_array_of_reports
Definition: publisher.h:587
const char * connection_id
Definition: publisher.h:534
Definition: publisher.h:92
double start_time
Definition: publisher.h:107
int64_t packets_lost
Definition: publisher.h:98
double timestamp
Definition: publisher.h:104
int64_t packets_sent
Definition: publisher.h:100
int64_t bytes_sent
Definition: publisher.h:102
const char * subscriber_id
Definition: publisher.h:95
const char * connection_id
Definition: publisher.h:93
Definition: video_capturer.h:43
Video frame.
struct otc_video_frame otc_video_frame
Definition: video_frame.h:25