Open Broadcaster Software
Free, open source software for live streaming and recording
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
obs.h
Go to the documentation of this file.
1 /******************************************************************************
2  Copyright (C) 2013-2014 by Hugh Bailey <jim@obsproject.com>
3 
4  This program is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program. If not, see <http://www.gnu.org/licenses/>.
16 ******************************************************************************/
17 
18 #pragma once
19 
20 #include "util/c99defs.h"
21 #include "util/bmem.h"
22 #include "util/profiler.h"
23 #include "util/text-lookup.h"
24 #include "graphics/graphics.h"
25 #include "graphics/vec2.h"
26 #include "graphics/vec3.h"
27 #include "media-io/audio-io.h"
28 #include "media-io/video-io.h"
29 #include "callback/signal.h"
30 #include "callback/proc.h"
31 
32 #include "obs-config.h"
33 #include "obs-defs.h"
34 #include "obs-data.h"
35 #include "obs-ui.h"
36 #include "obs-properties.h"
37 #include "obs-interaction.h"
38 
39 struct matrix4;
40 
41 /* opaque types */
42 struct obs_display;
43 struct obs_view;
44 struct obs_source;
45 struct obs_scene;
46 struct obs_scene_item;
47 struct obs_output;
48 struct obs_encoder;
49 struct obs_service;
50 struct obs_module;
51 struct obs_fader;
52 struct obs_volmeter;
53 
54 typedef struct obs_display obs_display_t;
55 typedef struct obs_view obs_view_t;
56 typedef struct obs_source obs_source_t;
57 typedef struct obs_scene obs_scene_t;
59 typedef struct obs_output obs_output_t;
60 typedef struct obs_encoder obs_encoder_t;
61 typedef struct obs_service obs_service_t;
62 typedef struct obs_module obs_module_t;
63 typedef struct obs_fader obs_fader_t;
64 typedef struct obs_volmeter obs_volmeter_t;
65 
70 
71 #include "obs-source.h"
72 #include "obs-encoder.h"
73 #include "obs-output.h"
74 #include "obs-service.h"
75 #include "obs-audio-controls.h"
76 #include "obs-hotkey.h"
77 
91 #ifdef __cplusplus
92 extern "C" {
93 #endif
94 
102 };
103 
112 };
113 
120 };
121 
135 };
136 
138  struct vec2 pos;
139  float rot;
140  struct vec2 scale;
142 
145  struct vec2 bounds;
146 };
147 
155  const char *graphics_module;
156 
169 
172 
177 };
178 
185 };
186 
195 };
196 
204 
208 
210 };
211 
227 
229  float color_matrix[16];
231  float color_range_min[3];
232  float color_range_max[3];
233  bool flip;
234 
235  /* used internally by libobs */
236  volatile long refs;
238 };
239 
240 /* ------------------------------------------------------------------------- */
241 /* OBS context */
242 
251 EXPORT bool obs_startup(const char *locale, const char *module_config_path,
252  profiler_name_store_t *store);
253 
255 EXPORT void obs_shutdown(void);
256 
258 EXPORT bool obs_initialized(void);
259 
262 
269 EXPORT void obs_set_locale(const char *locale);
270 
272 EXPORT const char *obs_get_locale(void);
273 
280 
297 EXPORT int obs_reset_video(struct obs_video_info *ovi);
298 
304 EXPORT bool obs_reset_audio(const struct obs_audio_info *oai);
305 
307 EXPORT bool obs_get_video_info(struct obs_video_info *ovi);
308 
310 EXPORT bool obs_get_audio_info(struct obs_audio_info *oai);
311 
333 EXPORT int obs_open_module(obs_module_t **module, const char *path,
334  const char *data_path);
335 
341 EXPORT bool obs_init_module(obs_module_t *module);
342 
344 EXPORT void obs_log_loaded_modules(void);
345 
347 EXPORT const char *obs_get_module_file_name(obs_module_t *module);
348 
350 EXPORT const char *obs_get_module_name(obs_module_t *module);
351 
353 EXPORT const char *obs_get_module_author(obs_module_t *module);
354 
356 EXPORT const char *obs_get_module_description(obs_module_t *module);
357 
359 EXPORT const char *obs_get_module_binary_path(obs_module_t *module);
360 
362 EXPORT const char *obs_get_module_data_path(obs_module_t *module);
363 
372 EXPORT void obs_add_module_path(const char *bin, const char *data);
373 
375 EXPORT void obs_load_all_modules(void);
376 
378  const char *bin_path;
379  const char *data_path;
380 };
381 
382 typedef void (*obs_find_module_callback_t)(void *param,
383  const struct obs_module_info *info);
384 
386 EXPORT void obs_find_modules(obs_find_module_callback_t callback, void *param);
387 
388 typedef void (*obs_enum_module_callback_t)(void *param, obs_module_t *module);
389 
391 EXPORT void obs_enum_modules(obs_enum_module_callback_t callback, void *param);
392 
395  const char *default_locale, const char *locale);
396 
408 EXPORT char *obs_find_module_file(obs_module_t *module, const char *file);
409 
421 EXPORT char *obs_module_get_config_path(obs_module_t *module, const char *file);
422 
424 EXPORT bool obs_enum_source_types(size_t idx, const char **id);
425 
432 EXPORT bool obs_enum_input_types(size_t idx, const char **id);
433 
440 EXPORT bool obs_enum_filter_types(size_t idx, const char **id);
441 
448 EXPORT bool obs_enum_transition_types(size_t idx, const char **id);
449 
451 EXPORT bool obs_enum_output_types(size_t idx, const char **id);
452 
454 EXPORT bool obs_enum_encoder_types(size_t idx, const char **id);
455 
457 EXPORT bool obs_enum_service_types(size_t idx, const char **id);
458 
460 EXPORT void obs_enter_graphics(void);
461 
463 EXPORT void obs_leave_graphics(void);
464 
467 
470 
472 EXPORT void obs_set_output_source(uint32_t channel, obs_source_t *source);
473 
479 
489 EXPORT void obs_enum_sources(bool (*enum_proc)(void*, obs_source_t*),
490  void *param);
491 
493 EXPORT void obs_enum_outputs(bool (*enum_proc)(void*, obs_output_t*),
494  void *param);
495 
497 EXPORT void obs_enum_encoders(bool (*enum_proc)(void*, obs_encoder_t*),
498  void *param);
499 
501 EXPORT void obs_enum_services(bool (*enum_proc)(void*, obs_service_t*),
502  void *param);
503 
510 EXPORT obs_source_t *obs_get_source_by_name(const char *name);
511 
513 EXPORT obs_output_t *obs_get_output_by_name(const char *name);
514 
516 EXPORT obs_encoder_t *obs_get_encoder_by_name(const char *name);
517 
519 EXPORT obs_service_t *obs_get_service_by_name(const char *name);
520 
530 };
531 
534 
535 /* DEPRECATED: gets texture_rect default effect */
538 
541 
544 
546 EXPORT void obs_render_main_view(void);
547 
549 EXPORT void obs_set_master_volume(float volume);
550 
552 EXPORT float obs_get_master_volume(void);
553 
556 
559 
560 typedef void (*obs_load_source_cb)(void *private_data, obs_source_t *source);
561 
564  void *private_data);
565 
568 
569 typedef bool (*obs_save_source_filter_cb)(void *data, obs_source_t *source);
571  void *data);
572 
579 };
580 
581 EXPORT enum obs_obj_type obs_obj_get_type(void *obj);
582 EXPORT const char *obs_obj_get_id(void *obj);
583 EXPORT bool obs_obj_invalid(void *obj);
584 
585 typedef bool (*obs_enum_audio_device_cb)(void *data, const char *name,
586  const char *id);
587 
589  void *data);
590 
591 EXPORT bool obs_set_audio_monitoring_device(const char *name, const char *id);
592 EXPORT void obs_get_audio_monitoring_device(const char **name, const char **id);
593 
594 
595 /* ------------------------------------------------------------------------- */
596 /* View context */
597 
605 
608 
610 EXPORT void obs_view_set_source(obs_view_t *view, uint32_t channel,
611  obs_source_t *source);
612 
615  uint32_t channel);
616 
618 EXPORT void obs_view_render(obs_view_t *view);
619 
621 
622 EXPORT double obs_get_active_fps(void);
623 
624 
625 /* ------------------------------------------------------------------------- */
626 /* Display context */
627 
636  const struct gs_init_data *graphics_data);
637 
640 
643  uint32_t cy);
644 
654  void (*draw)(void *param, uint32_t cx, uint32_t cy),
655  void *param);
656 
659  void (*draw)(void *param, uint32_t cx, uint32_t cy),
660  void *param);
661 
662 EXPORT void obs_display_set_enabled(obs_display_t *display, bool enable);
664 
666  uint32_t color);
667 
668 
669 /* ------------------------------------------------------------------------- */
670 /* Sources */
671 
673 EXPORT const char *obs_source_get_display_name(const char *id);
674 
681 EXPORT obs_source_t *obs_source_create(const char *id, const char *name,
682  obs_data_t *settings, obs_data_t *hotkey_data);
683 
685  const char *name, obs_data_t *settings);
686 
687 /* if source has OBS_SOURCE_DO_NOT_DUPLICATE output flag set, only returns a
688  * reference */
690  const char *desired_name, bool create_private);
697 
700 
704 
706  obs_source_t *source);
707 
710 
712 EXPORT bool obs_source_removed(const obs_source_t *source);
713 
716 
719 
721 EXPORT obs_data_t *obs_get_source_defaults(const char *id);
722 
725 
727 EXPORT bool obs_is_source_configurable(const char *id);
728 
729 EXPORT bool obs_source_configurable(const obs_source_t *source);
730 
736 
738 EXPORT void obs_source_update(obs_source_t *source, obs_data_t *settings);
739 
742 
745 
748 
755 
762 
765 
768  obs_source_t *filter);
769 
772  obs_source_t *filter, enum obs_order_movement movement);
773 
776 
778 EXPORT const char *obs_source_get_name(const obs_source_t *source);
779 
781 EXPORT void obs_source_set_name(obs_source_t *source, const char *name);
782 
785 
787 EXPORT const char *obs_source_get_id(const obs_source_t *source);
788 
791  const obs_source_t *source);
792 
795 
797 EXPORT void obs_source_set_volume(obs_source_t *source, float volume);
798 
800 EXPORT float obs_source_get_volume(const obs_source_t *source);
801 
804 
807 
810  obs_source_enum_proc_t enum_callback,
811  void *param);
812 
815  obs_source_enum_proc_t enum_callback,
816  void *param);
817 
819 EXPORT bool obs_source_active(const obs_source_t *source);
820 
824 EXPORT bool obs_source_showing(const obs_source_t *source);
825 
827 #define OBS_SOURCE_FLAG_UNBUFFERED (1<<0)
828 
829 #define OBS_SOURCE_FLAG_FORCE_MONO (1<<1)
830 
836 EXPORT void obs_source_set_flags(obs_source_t *source, uint32_t flags);
837 
840 
846 
849 
856 
863 
866  obs_source_enum_proc_t callback, void *param);
867 
870  const char *name);
871 
872 EXPORT bool obs_source_enabled(const obs_source_t *source);
873 EXPORT void obs_source_set_enabled(obs_source_t *source, bool enabled);
874 
875 EXPORT bool obs_source_muted(const obs_source_t *source);
876 EXPORT void obs_source_set_muted(obs_source_t *source, bool muted);
877 
879 EXPORT void obs_source_enable_push_to_mute(obs_source_t *source, bool enabled);
880 
883  uint64_t delay);
884 
886 EXPORT void obs_source_enable_push_to_talk(obs_source_t *source, bool enabled);
887 
890  uint64_t delay);
891 
892 typedef void (*obs_source_audio_capture_t)(void *param, obs_source_t *source,
893  const struct audio_data *audio_data, bool muted);
894 
896  obs_source_audio_capture_t callback, void *param);
898  obs_source_audio_capture_t callback, void *param);
899 
910 };
911 
915 };
916 
918  enum obs_deinterlace_mode mode);
920  const obs_source_t *source);
922  enum obs_deinterlace_field_order field_order);
924  const obs_source_t *source);
925 
930 };
931 
933  enum obs_monitoring_type type);
935  const obs_source_t *source);
936 
937 /* ------------------------------------------------------------------------- */
938 /* Functions used by sources */
939 
941 
955  const struct matrix4 *color_matrix,
956  const struct vec3 *color_range_min,
957  const struct vec3 *color_range_max);
958 
970 EXPORT void obs_source_draw(gs_texture_t *image, int x, int y,
971  uint32_t cx, uint32_t cy, bool flip);
972 
975  const struct obs_source_frame *frame);
976 
979  const struct obs_source_audio *audio);
980 
983 
986 
989  struct obs_source_frame *frame);
990 
1003  enum gs_color_format format,
1004  enum obs_allow_direct_render allow_direct);
1005 
1015 
1025  const char *tech_name);
1026 
1029 
1038  obs_source_t *child);
1039 
1046  obs_source_t *child);
1047 
1050  const struct obs_mouse_event *event,
1051  int32_t type, bool mouse_up,
1052  uint32_t click_count);
1053 
1056  const struct obs_mouse_event *event, bool mouse_leave);
1057 
1060  const struct obs_mouse_event *event, int x_delta, int y_delta);
1061 
1063 EXPORT void obs_source_send_focus(obs_source_t *source, bool focus);
1064 
1067  const struct obs_key_event *event, bool key_up);
1068 
1071 
1074 
1077 
1078 EXPORT bool obs_source_audio_pending(const obs_source_t *source);
1080 EXPORT void obs_source_get_audio_mix(const obs_source_t *source,
1081  struct obs_source_audio_mix *audio);
1082 
1083 /* ------------------------------------------------------------------------- */
1084 /* Transition-specific functions */
1088 };
1089 
1091  enum obs_transition_target target);
1092 EXPORT void obs_transition_clear(obs_source_t *transition);
1093 
1095 
1098 };
1099 
1100 EXPORT bool obs_transition_start(obs_source_t *transition,
1101  enum obs_transition_mode mode, uint32_t duration_ms,
1102  obs_source_t *dest);
1103 
1104 EXPORT void obs_transition_set(obs_source_t *transition, obs_source_t *source);
1105 
1110 };
1111 
1113  enum obs_transition_scale_type type);
1115  const obs_source_t *transition);
1116 
1118  uint32_t alignment);
1120 
1122  uint32_t cx, uint32_t cy);
1123 EXPORT void obs_transition_get_size(const obs_source_t *transition,
1124  uint32_t *cx, uint32_t *cy);
1125 
1126 /* function used by transitions */
1127 
1132 EXPORT void obs_transition_enable_fixed(obs_source_t *transition, bool enable,
1133  uint32_t duration_ms);
1134 EXPORT bool obs_transition_fixed(obs_source_t *transition);
1135 
1137  gs_texture_t *a, gs_texture_t *b, float t,
1138  uint32_t cx, uint32_t cy);
1139 typedef float (*obs_transition_audio_mix_callback_t)(void *data, float t);
1140 
1143 
1145  uint64_t *ts_out, struct obs_source_audio_mix *audio,
1146  uint32_t mixers, size_t channels, size_t sample_rate,
1147  obs_transition_audio_mix_callback_t mix_a_callback,
1148  obs_transition_audio_mix_callback_t mix_b_callback);
1149 
1150 /* swaps transition sources and textures as an optimization and to reduce
1151  * memory usage when switching between transitions */
1153  obs_source_t *tr_source);
1155  obs_source_t *tr_source);
1156 
1157 
1158 /* ------------------------------------------------------------------------- */
1159 /* Scenes */
1160 
1167 EXPORT obs_scene_t *obs_scene_create(const char *name);
1168 
1169 EXPORT obs_scene_t *obs_scene_create_private(const char *name);
1170 
1176 };
1177 
1181 EXPORT obs_scene_t *obs_scene_duplicate(obs_scene_t *scene, const char *name,
1182  enum obs_scene_duplicate_type type);
1183 
1184 EXPORT void obs_scene_addref(obs_scene_t *scene);
1185 EXPORT void obs_scene_release(obs_scene_t *scene);
1186 
1189 
1192 
1195  const char *name);
1196 
1199  bool (*callback)(obs_scene_t*, obs_sceneitem_t*, void*),
1200  void *param);
1201 
1203  obs_sceneitem_t * const *item_order, size_t item_order_size);
1204 
1207 
1208 typedef void (*obs_scene_atomic_update_func)(void *, obs_scene_t *scene);
1210  obs_scene_atomic_update_func func, void *data);
1211 
1214 
1217 
1220 
1223 
1224 EXPORT void obs_sceneitem_select(obs_sceneitem_t *item, bool select);
1226 
1227 /* Functions for gettings/setting specific orientation of a scene item */
1228 EXPORT void obs_sceneitem_set_pos(obs_sceneitem_t *item, const struct vec2 *pos);
1229 EXPORT void obs_sceneitem_set_rot(obs_sceneitem_t *item, float rot_deg);
1231  const struct vec2 *scale);
1233  uint32_t alignment);
1235  enum obs_order_movement movement);
1237  int position);
1239  enum obs_bounds_type type);
1241  uint32_t alignment);
1243  const struct vec2 *bounds);
1244 
1246  struct vec2 *pos);
1247 EXPORT float obs_sceneitem_get_rot(const obs_sceneitem_t *item);
1249  struct vec2 *scale);
1251 
1253  const obs_sceneitem_t *item);
1256  struct vec2 *bounds);
1257 
1259  struct obs_transform_info *info);
1261  const struct obs_transform_info *info);
1262 
1264  struct matrix4 *transform);
1266  struct matrix4 *transform);
1267 
1268 EXPORT bool obs_sceneitem_visible(const obs_sceneitem_t *item);
1269 EXPORT bool obs_sceneitem_set_visible(obs_sceneitem_t *item, bool visible);
1270 
1272  int left;
1273  int top;
1274  int right;
1275  int bottom;
1276 };
1277 
1279  const struct obs_sceneitem_crop *crop);
1281  struct obs_sceneitem_crop *crop);
1282 
1284  enum obs_scale_type filter);
1286  obs_sceneitem_t *item);
1287 
1290 
1291 
1292 /* ------------------------------------------------------------------------- */
1293 /* Outputs */
1294 
1295 EXPORT const char *obs_output_get_display_name(const char *id);
1296 
1303 EXPORT obs_output_t *obs_output_create(const char *id, const char *name,
1304  obs_data_t *settings, obs_data_t *hotkey_data);
1305 
1310 EXPORT void obs_output_addref(obs_output_t *output);
1311 EXPORT void obs_output_release(obs_output_t *output);
1312 
1315 
1319 
1321  obs_output_t *output);
1322 
1323 EXPORT const char *obs_output_get_name(const obs_output_t *output);
1324 
1326 EXPORT bool obs_output_start(obs_output_t *output);
1327 
1329 EXPORT void obs_output_stop(obs_output_t *output);
1330 
1336 #define OBS_OUTPUT_DELAY_PRESERVE (1<<0)
1337 
1345 EXPORT void obs_output_set_delay(obs_output_t *output, uint32_t delay_sec,
1346  uint32_t flags);
1347 
1350 
1353 
1356 
1358 EXPORT bool obs_output_active(const obs_output_t *output);
1359 
1361 EXPORT obs_data_t *obs_output_defaults(const char *id);
1362 
1365 
1371 
1373 EXPORT void obs_output_update(obs_output_t *output, obs_data_t *settings);
1374 
1376 EXPORT bool obs_output_can_pause(const obs_output_t *output);
1377 
1379 EXPORT void obs_output_pause(obs_output_t *output);
1380 
1381 /* Gets the current output settings string */
1383 
1386  const obs_output_t *output);
1387 
1390 
1395 EXPORT void obs_output_set_video(obs_output_t *output, video_t *video);
1396 
1402  video_t *video, audio_t *audio);
1403 
1406 
1409 
1411 EXPORT void obs_output_set_mixer(obs_output_t *output, size_t mixer_idx);
1412 
1414 EXPORT size_t obs_output_get_mixer(const obs_output_t *output);
1415 
1421  obs_encoder_t *encoder);
1422 
1432  obs_encoder_t *encoder, size_t idx);
1433 
1436 
1445  size_t idx);
1446 
1449  obs_service_t *service);
1450 
1453 
1458  int retry_count, int retry_sec);
1459 
1463 
1473  uint32_t height);
1474 
1477 
1480 
1481 EXPORT const char *obs_output_get_id(const obs_output_t *output);
1482 
1483 #if BUILD_CAPTIONS
1484 EXPORT void obs_output_output_caption_text1(obs_output_t *output,
1485  const char *text);
1486 #endif
1487 
1489 
1490 /* ------------------------------------------------------------------------- */
1491 /* Functions used by outputs */
1492 
1494 
1497  const struct video_scale_info *conversion);
1498 
1501  const struct audio_convert_info *conversion);
1502 
1505  uint32_t flags);
1506 
1509  uint32_t flags);
1510 
1524 
1527 
1534 EXPORT void obs_output_signal_stop(obs_output_t *output, int code);
1535 
1536 
1537 /* ------------------------------------------------------------------------- */
1538 /* Encoders */
1539 
1540 EXPORT const char *obs_encoder_get_display_name(const char *id);
1541 
1550 EXPORT obs_encoder_t *obs_video_encoder_create(const char *id, const char *name,
1551  obs_data_t *settings, obs_data_t *hotkey_data);
1552 
1562 EXPORT obs_encoder_t *obs_audio_encoder_create(const char *id, const char *name,
1563  obs_data_t *settings, size_t mixer_idx,
1564  obs_data_t *hotkey_data);
1565 
1570 EXPORT void obs_encoder_addref(obs_encoder_t *encoder);
1572 
1575 
1579 
1581  obs_encoder_t *encoder);
1582 
1583 EXPORT void obs_encoder_set_name(obs_encoder_t *encoder, const char *name);
1584 EXPORT const char *obs_encoder_get_name(const obs_encoder_t *encoder);
1585 
1587 EXPORT const char *obs_get_encoder_codec(const char *id);
1588 
1590 EXPORT enum obs_encoder_type obs_get_encoder_type(const char *id);
1591 
1593 EXPORT const char *obs_encoder_get_codec(const obs_encoder_t *encoder);
1594 
1597 
1604  uint32_t height);
1605 
1608 
1611 
1614 
1624  enum video_format format);
1626  const obs_encoder_t *encoder);
1627 
1629 EXPORT obs_data_t *obs_encoder_defaults(const char *id);
1630 
1633 
1639 
1644 EXPORT void obs_encoder_update(obs_encoder_t *encoder, obs_data_t *settings);
1645 
1647 EXPORT bool obs_encoder_get_extra_data(const obs_encoder_t *encoder,
1648  uint8_t **extra_data, size_t *size);
1649 
1652 
1654 EXPORT void obs_encoder_set_video(obs_encoder_t *encoder, video_t *video);
1655 
1657 EXPORT void obs_encoder_set_audio(obs_encoder_t *encoder, audio_t *audio);
1658 
1664 
1670 
1672 EXPORT bool obs_encoder_active(const obs_encoder_t *encoder);
1673 
1675 
1676 EXPORT const char *obs_encoder_get_id(const obs_encoder_t *encoder);
1677 
1678 EXPORT uint32_t obs_get_encoder_caps(const char *encoder_id);
1679 
1681 DEPRECATED
1683  const struct encoder_packet *src);
1684 
1685 DEPRECATED
1686 EXPORT void obs_free_encoder_packet(struct encoder_packet *packet);
1687 
1689  struct encoder_packet *src);
1690 EXPORT void obs_encoder_packet_release(struct encoder_packet *packet);
1691 
1692 
1693 /* ------------------------------------------------------------------------- */
1694 /* Stream Services */
1695 
1696 EXPORT const char *obs_service_get_display_name(const char *id);
1697 
1698 EXPORT obs_service_t *obs_service_create(const char *id, const char *name,
1699  obs_data_t *settings, obs_data_t *hotkey_data);
1700 
1702  const char *name, obs_data_t *settings);
1703 
1708 EXPORT void obs_service_addref(obs_service_t *service);
1710 
1713 
1717 
1719  obs_service_t *service);
1720 
1721 EXPORT const char *obs_service_get_name(const obs_service_t *service);
1722 
1724 EXPORT obs_data_t *obs_service_defaults(const char *id);
1725 
1728 
1734 
1736 EXPORT const char *obs_service_get_type(const obs_service_t *service);
1737 
1739 EXPORT void obs_service_update(obs_service_t *service, obs_data_t *settings);
1740 
1743 
1745 EXPORT const char *obs_service_get_url(const obs_service_t *service);
1746 
1748 EXPORT const char *obs_service_get_key(const obs_service_t *service);
1749 
1751 EXPORT const char *obs_service_get_username(const obs_service_t *service);
1752 
1754 EXPORT const char *obs_service_get_password(const obs_service_t *service);
1755 
1763  obs_data_t *video_encoder_settings,
1764  obs_data_t *audio_encoder_settings);
1765 
1767 
1768 EXPORT const char *obs_service_get_id(const obs_service_t *service);
1769 
1770 
1771 /* ------------------------------------------------------------------------- */
1772 /* Source frame allocation functions */
1773 EXPORT void obs_source_frame_init(struct obs_source_frame *frame,
1774  enum video_format format, uint32_t width, uint32_t height);
1775 
1776 static inline void obs_source_frame_free(struct obs_source_frame *frame)
1777 {
1778  if (frame) {
1779  bfree(frame->data[0]);
1780  memset(frame, 0, sizeof(*frame));
1781  }
1782 }
1783 
1784 static inline struct obs_source_frame *obs_source_frame_create(
1786 {
1787  struct obs_source_frame *frame;
1788 
1789  frame = (struct obs_source_frame*)bzalloc(sizeof(*frame));
1790  obs_source_frame_init(frame, format, width, height);
1791  return frame;
1792 }
1793 
1794 static inline void obs_source_frame_destroy(struct obs_source_frame *frame)
1795 {
1796  if (frame) {
1797  bfree(frame->data[0]);
1798  bfree(frame);
1799  }
1800 }
1801 
1802 
1803 #ifdef __cplusplus
1804 }
1805 #endif
EXPORT void obs_source_filter_set_order(obs_source_t *source, obs_source_t *filter, enum obs_order_movement movement)
EXPORT obs_view_t * obs_view_create(void)
Definition: obs-interaction.h:50
EXPORT void obs_weak_source_release(obs_weak_source_t *weak)
uint32_t fps_den
Definition: obs.h:158
EXPORT uint32_t obs_source_get_audio_mixers(const obs_source_t *source)
EXPORT void obs_encoder_packet_release(struct encoder_packet *packet)
EXPORT bool obs_weak_source_references_source(obs_weak_source_t *weak, obs_source_t *source)
EXPORT uint32_t obs_source_get_output_flags(const obs_source_t *source)
enum video_colorspace colorspace
Definition: obs.h:173
EXPORT void obs_output_set_audio_conversion(obs_output_t *output, const struct audio_convert_info *conversion)
float rot
Definition: obs.h:139
EXPORT void obs_sceneitem_get_crop(const obs_sceneitem_t *item, struct obs_sceneitem_crop *crop)
EXPORT void obs_encoder_set_name(obs_encoder_t *encoder, const char *name)
uint32_t height
Definition: obs.h:225
EXPORT void obs_sceneitem_set_alignment(obs_sceneitem_t *item, uint32_t alignment)
void(* obs_load_source_cb)(void *private_data, obs_source_t *source)
Definition: obs.h:560
Definition: obs-scene.h:76
EXPORT bool obs_source_active(const obs_source_t *source)
EXPORT void obs_source_process_filter_end(obs_source_t *filter, gs_effect_t *effect, uint32_t width, uint32_t height)
speaker_layout
Definition: audio-io.h:54
EXPORT gs_effect_t * obs_get_base_effect(enum obs_base_effect effect)
uint32_t base_width
Definition: obs.h:160
void(* obs_scene_atomic_update_func)(void *, obs_scene_t *scene)
Definition: obs.h:1208
EXPORT void obs_weak_output_release(obs_weak_output_t *weak)
DEPRECATED EXPORT void obs_duplicate_encoder_packet(struct encoder_packet *dst, const struct encoder_packet *src)
EXPORT uint64_t obs_source_get_push_to_talk_delay(obs_source_t *source)
EXPORT bool obs_scene_reorder_items(obs_scene_t *scene, obs_sceneitem_t *const *item_order, size_t item_order_size)
uint64_t timestamp
Definition: obs.h:209
EXPORT obs_scene_t * obs_sceneitem_get_scene(const obs_sceneitem_t *item)
Definition: obs.h:577
Definition: obs.h:906
EXPORT void obs_scene_enum_items(obs_scene_t *scene, bool(*callback)(obs_scene_t *, obs_sceneitem_t *, void *), void *param)
EXPORT int obs_output_get_total_frames(const obs_output_t *output)
EXPORT void obs_display_remove_draw_callback(obs_display_t *display, void(*draw)(void *param, uint32_t cx, uint32_t cy), void *param)
EXPORT float obs_output_get_congestion(obs_output_t *output)
EXPORT bool obs_source_enabled(const obs_source_t *source)
EXPORT void obs_source_set_flags(obs_source_t *source, uint32_t flags)
EXPORT void obs_output_end_data_capture(obs_output_t *output)
Definition: obs.h:1109
EXPORT void obs_output_set_reconnect_settings(obs_output_t *output, int retry_count, int retry_sec)
EXPORT void obs_sceneitem_set_bounds_type(obs_sceneitem_t *item, enum obs_bounds_type type)
EXPORT obs_scene_t * obs_scene_duplicate(obs_scene_t *scene, const char *name, enum obs_scene_duplicate_type type)
EXPORT const char * obs_encoder_get_codec(const obs_encoder_t *encoder)
void(* obs_source_audio_capture_t)(void *param, obs_source_t *source, const struct audio_data *audio_data, bool muted)
Definition: obs.h:892
EXPORT enum obs_transition_scale_type obs_transition_get_scale_type(const obs_source_t *transition)
uint32_t frames
Definition: obs.h:193
EXPORT void obs_sceneitem_select(obs_sceneitem_t *item, bool select)
Definition: video-io.h:135
int right
Definition: obs.h:1274
EXPORT void obs_encoder_packet_ref(struct encoder_packet *dst, struct encoder_packet *src)
Definition: obs.h:117
EXPORT void obs_enum_services(bool(*enum_proc)(void *, obs_service_t *), void *param)
DEPRECATED EXPORT void obs_free_encoder_packet(struct encoder_packet *packet)
uint32_t base_height
Definition: obs.h:161
EXPORT audio_t * obs_output_audio(const obs_output_t *output)
#define DEPRECATED
Definition: c99defs.h:30
float color_range_max[3]
Definition: obs.h:232
EXPORT void obs_source_set_enabled(obs_source_t *source, bool enabled)
Definition: obs.h:1087
EXPORT obs_data_t * obs_output_get_settings(const obs_output_t *output)
Definition: obs.h:116
EXPORT void obs_source_enum_active_sources(obs_source_t *source, obs_source_enum_proc_t enum_callback, void *param)
Definition: obs.h:524
Definition: obs-internal.h:797
EXPORT const char * obs_service_get_url(const obs_service_t *service)
EXPORT bool obs_output_initialize_encoders(obs_output_t *output, uint32_t flags)
EXPORT obs_scene_t * obs_scene_create_private(const char *name)
unsigned uint32_t
Definition: vc_stdint.h:31
Definition: obs.h:527
EXPORT bool obs_source_audio_pending(const obs_source_t *source)
Definition: obs-interaction.h:44
Definition: obs-internal.h:785
EXPORT bool obs_output_can_begin_data_capture(const obs_output_t *output, uint32_t flags)
EXPORT const char * obs_service_get_name(const obs_service_t *service)
enum speaker_layout speakers
Definition: obs.h:184
Definition: obs.h:576
EXPORT const char * obs_service_get_key(const obs_service_t *service)
EXPORT void obs_source_update(obs_source_t *source, obs_data_t *settings)
EXPORT obs_encoder_t * obs_get_encoder_by_name(const char *name)
EXPORT uint32_t obs_get_version(void)
EXPORT uint32_t obs_source_get_width(obs_source_t *source)
EXPORT uint32_t obs_output_get_delay(const obs_output_t *output)
EXPORT void obs_output_signal_stop(obs_output_t *output, int code)
bool(* obs_save_source_filter_cb)(void *data, obs_source_t *source)
Definition: obs.h:569
EXPORT uint32_t obs_get_source_output_flags(const char *id)
EXPORT enum obs_monitoring_type obs_source_get_monitoring_type(const obs_source_t *source)
Definition: obs-internal.h:519
EXPORT obs_encoder_t * obs_output_get_audio_encoder(const obs_output_t *output, size_t idx)
enum obs_scale_type scale_type
Definition: obs.h:176
Definition: vec3.h:33
int int32_t
Definition: vc_stdint.h:30
Definition: obs-internal.h:900
EXPORT struct obs_source_frame * obs_source_get_frame(obs_source_t *source)
EXPORT void obs_source_set_deinterlace_field_order(obs_source_t *source, enum obs_deinterlace_field_order field_order)
EXPORT obs_properties_t * obs_get_output_properties(const char *id)
EXPORT void obs_transition_swap_end(obs_source_t *tr_dest, obs_source_t *tr_source)
audio_format
Definition: audio-io.h:40
EXPORT obs_service_t * obs_weak_service_get_service(obs_weak_service_t *weak)
EXPORT proc_handler_t * obs_output_get_proc_handler(const obs_output_t *output)
EXPORT void obs_sceneitem_defer_update_begin(obs_sceneitem_t *item)
video_format
Definition: video-io.h:33
EXPORT bool obs_get_video_info(struct obs_video_info *ovi)
EXPORT const char * obs_get_module_file_name(obs_module_t *module)
EXPORT void obs_source_video_render(obs_source_t *source)
EXPORT void obs_source_update_properties(obs_source_t *source)
EXPORT obs_sceneitem_t * obs_scene_find_source(obs_scene_t *scene, const char *name)
EXPORT obs_service_t * obs_output_get_service(const obs_output_t *output)
EXPORT obs_source_t * obs_source_get_ref(obs_source_t *source)
float color_range_min[3]
Definition: obs.h:231
uint64_t timestamp
Definition: obs.h:226
EXPORT obs_data_array_t * obs_save_sources(void)
obs_obj_type
Definition: obs.h:573
EXPORT obs_service_t * obs_service_create_private(const char *id, const char *name, obs_data_t *settings)
EXPORT void obs_encoder_update(obs_encoder_t *encoder, obs_data_t *settings)
enum speaker_layout speakers
Definition: obs.h:205
EXPORT void obs_output_pause(obs_output_t *output)
EXPORT obs_source_t * obs_source_create(const char *id, const char *name, obs_data_t *settings, obs_data_t *hotkey_data)
Definition: vec2.h:27
EXPORT bool obs_enum_service_types(size_t idx, const char **id)
Definition: obs.h:131
EXPORT char * obs_find_module_file(obs_module_t *module, const char *file)
EXPORT obs_properties_t * obs_get_encoder_properties(const char *id)
EXPORT profiler_name_store_t * obs_get_profiler_name_store(void)
EXPORT lookup_t * obs_module_load_locale(obs_module_t *module, const char *default_locale, const char *locale)
EXPORT bool obs_enum_filter_types(size_t idx, const char **id)
Definition: obs.h:100
EXPORT obs_source_t * obs_source_duplicate(obs_source_t *source, const char *desired_name, bool create_private)
EXPORT bool obs_reset_audio(const struct obs_audio_info *oai)
EXPORT uint32_t obs_source_get_base_width(obs_source_t *source)
Definition: graphics.h:443
EXPORT obs_encoder_t * obs_audio_encoder_create(const char *id, const char *name, obs_data_t *settings, size_t mixer_idx, obs_data_t *hotkey_data)
Definition: obs.h:578
EXPORT void * obs_service_get_type_data(obs_service_t *service)
EXPORT void obs_weak_service_release(obs_weak_service_t *weak)
EXPORT void obs_source_enum_filters(obs_source_t *source, obs_source_enum_proc_t callback, void *param)
uint32_t linesize[MAX_AV_PLANES]
Definition: obs.h:223
EXPORT float obs_sceneitem_get_rot(const obs_sceneitem_t *item)
uint64_t timestamp
Definition: obs.h:194
unsigned __int64 uint64_t
Definition: vc_stdint.h:33
EXPORT bool obs_get_audio_info(struct obs_audio_info *oai)
EXPORT uint32_t obs_source_get_flags(const obs_source_t *source)
EXPORT void obs_sceneitem_addref(obs_sceneitem_t *item)
EXPORT obs_service_t * obs_service_create(const char *id, const char *name, obs_data_t *settings, obs_data_t *hotkey_data)
Definition: obs.h:525
EXPORT void obs_leave_graphics(void)
EXPORT const char * obs_service_get_type(const obs_service_t *service)
EXPORT obs_weak_service_t * obs_service_get_weak_service(obs_service_t *service)
EXPORT void obs_set_output_source(uint32_t channel, obs_source_t *source)
Definition: audio-io.h:93
gs_color_format
Definition: graphics.h:56
obs_transition_mode
Definition: obs.h:1096
enum audio_format format
Definition: obs.h:206
obs_deinterlace_mode
Definition: obs.h:900
EXPORT audio_t * obs_encoder_audio(const obs_encoder_t *encoder)
obs_bounds_type
Definition: obs.h:127
Definition: obs-encoder.h:41
unsigned char uint8_t
Definition: vc_stdint.h:27
EXPORT const char * obs_obj_get_id(void *obj)
struct obs_data obs_data_t
Definition: obs-data.h:42
EXPORT void obs_encoder_set_preferred_video_format(obs_encoder_t *encoder, enum video_format format)
EXPORT obs_source_t * obs_get_output_source(uint32_t channel)
EXPORT uint64_t obs_source_get_audio_timestamp(const obs_source_t *source)
EXPORT enum video_format obs_encoder_get_preferred_video_format(const obs_encoder_t *encoder)
EXPORT uint32_t obs_transition_get_alignment(const obs_source_t *transition)
int bottom
Definition: obs.h:1275
Definition: obs.h:574
EXPORT void obs_source_send_focus(obs_source_t *source, bool focus)
uint8_t * data[MAX_AV_PLANES]
Definition: obs.h:192
EXPORT obs_source_t * obs_weak_source_get_source(obs_weak_source_t *weak)
Definition: obs.h:1108
EXPORT uint32_t obs_output_get_height(const obs_output_t *output)
EXPORT bool obs_source_push_to_mute_enabled(obs_source_t *source)
EXPORT obs_properties_t * obs_encoder_properties(const obs_encoder_t *encoder)
EXPORT void obs_sceneitem_set_rot(obs_sceneitem_t *item, float rot_deg)
EXPORT void obs_service_apply_encoder_settings(obs_service_t *service, obs_data_t *video_encoder_settings, obs_data_t *audio_encoder_settings)
EXPORT void obs_source_set_sync_offset(obs_source_t *source, int64_t offset)
header for modules implementing encoders.
EXPORT obs_data_t * obs_output_defaults(const char *id)
EXPORT void obs_sceneitem_set_scale(obs_sceneitem_t *item, const struct vec2 *scale)
EXPORT double obs_get_active_fps(void)
EXPORT signal_handler_t * obs_output_get_signal_handler(const obs_output_t *output)
EXPORT bool obs_enum_source_types(size_t idx, const char **id)
Definition: obs.h:1086
const char * bin_path
Definition: obs.h:378
struct obs_properties obs_properties_t
Definition: obs-properties.h:103
EXPORT void obs_sceneitem_set_info(obs_sceneitem_t *item, const struct obs_transform_info *info)
EXPORT bool obs_initialized(void)
EXPORT void obs_transition_set_size(obs_source_t *transition, uint32_t cx, uint32_t cy)
EXPORT int64_t obs_source_get_sync_offset(const obs_source_t *source)
obs_transition_scale_type
Definition: obs.h:1106
EXPORT obs_sceneitem_t * obs_scene_add(obs_scene_t *scene, obs_source_t *source)
void(* obs_source_enum_proc_t)(obs_source_t *parent, obs_source_t *child, void *param)
Definition: obs-source.h:133
obs_scene_duplicate_type
Definition: obs.h:1171
Definition: obs.h:137
EXPORT void obs_display_destroy(obs_display_t *display)
uint32_t samples_per_sec
Definition: obs.h:207
EXPORT void obs_view_destroy(obs_view_t *view)
EXPORT const char * obs_source_get_id(const obs_source_t *source)
EXPORT void obs_output_set_preferred_size(obs_output_t *output, uint32_t width, uint32_t height)
Definition: obs.h:902
EXPORT float obs_source_get_volume(const obs_source_t *source)
EXPORT void obs_enter_graphics(void)
EXPORT void obs_display_set_background_color(obs_display_t *display, uint32_t color)
EXPORT void obs_shutdown(void)
EXPORT void obs_output_set_video(obs_output_t *output, video_t *video)
EXPORT void obs_output_set_delay(obs_output_t *output, uint32_t delay_sec, uint32_t flags)
EXPORT signal_handler_t * obs_source_get_signal_handler(const obs_source_t *source)
EXPORT void obs_sceneitem_release(obs_sceneitem_t *item)
Definition: obs.h:927
Definition: obs.h:1174
const char * data_path
Definition: obs.h:379
Definition: obs.h:523
EXPORT void obs_weak_service_addref(obs_weak_service_t *weak)
EXPORT void obs_source_draw_set_color_matrix(const struct matrix4 *color_matrix, const struct vec3 *color_range_min, const struct vec3 *color_range_max)
EXPORT void obs_output_set_audio_encoder(obs_output_t *output, obs_encoder_t *encoder, size_t idx)
#define EXPORT
Definition: c99defs.h:49
EXPORT void obs_source_enable_push_to_mute(obs_source_t *source, bool enabled)
EXPORT void obs_source_add_audio_capture_callback(obs_source_t *source, obs_source_audio_capture_t callback, void *param)
Definition: obs-internal.h:509
Definition: obs.h:905
EXPORT bool obs_enum_input_types(size_t idx, const char **id)
EXPORT void obs_sceneitem_get_scale(const obs_sceneitem_t *item, struct vec2 *scale)
EXPORT void obs_output_set_mixer(obs_output_t *output, size_t mixer_idx)
EXPORT bool obs_output_start(obs_output_t *output)
EXPORT void obs_render_main_view(void)
Definition: obs.h:98
EXPORT const char * obs_service_get_id(const obs_service_t *service)
Definition: obs-internal.h:183
EXPORT void obs_enum_modules(obs_enum_module_callback_t callback, void *param)
obs_source_type
Definition: obs-source.h:34
uint8_t * data[MAX_AV_PLANES]
Definition: obs.h:222
EXPORT const char * obs_get_module_name(obs_module_t *module)
EXPORT uint32_t obs_output_get_active_delay(const obs_output_t *output)
uint32_t width
Definition: obs.h:224
Definition: obs.h:901
EXPORT bool obs_sceneitem_set_visible(obs_sceneitem_t *item, bool visible)
EXPORT void obs_sceneitem_get_info(const obs_sceneitem_t *item, struct obs_transform_info *info)
void(* obs_enum_module_callback_t)(void *param, obs_module_t *module)
Definition: obs.h:388
EXPORT void obs_source_remove_active_child(obs_source_t *parent, obs_source_t *child)
EXPORT void obs_source_set_audio_mixers(obs_source_t *source, uint32_t mixers)
EXPORT void obs_output_force_stop(obs_output_t *output)
const char * graphics_module
Definition: obs.h:155
EXPORT obs_data_t * obs_save_source(obs_source_t *source)
uint32_t alignment
Definition: obs.h:141
bool gpu_conversion
Definition: obs.h:171
Definition: obs.h:115
uint32_t samples_per_sec
Definition: obs.h:183
EXPORT obs_encoder_t * obs_video_encoder_create(const char *id, const char *name, obs_data_t *settings, obs_data_t *hotkey_data)
EXPORT void obs_source_output_audio(obs_source_t *source, const struct obs_source_audio *audio)
EXPORT void obs_source_inc_showing(obs_source_t *source)
Definition: obs.h:133
Definition: obs.h:130
Definition: obs-internal.h:911
Definition: obs-internal.h:75
EXPORT const char * obs_encoder_get_display_name(const char *id)
struct text_lookup lookup_t
Definition: text-lookup.h:35
EXPORT obs_output_t * obs_weak_output_get_output(obs_weak_output_t *weak)
EXPORT const char * obs_source_get_display_name(const char *id)
EXPORT void obs_encoder_addref(obs_encoder_t *encoder)
EXPORT void obs_set_master_volume(float volume)
Definition: effect.h:139
EXPORT void obs_source_remove_audio_capture_callback(obs_source_t *source, obs_source_audio_capture_t callback, void *param)
EXPORT enum obs_encoder_type obs_get_encoder_type(const char *id)
EXPORT obs_source_t * obs_filter_get_target(const obs_source_t *filter)
obs_scale_type
Definition: obs.h:114
EXPORT void obs_sceneitem_get_bounds(const obs_sceneitem_t *item, struct vec2 *bounds)
EXPORT void obs_service_release(obs_service_t *service)
EXPORT obs_source_t * obs_transition_get_source(obs_source_t *transition, enum obs_transition_target target)
EXPORT void obs_weak_encoder_addref(obs_weak_encoder_t *weak)
video_colorspace
Definition: video-io.h:55
obs_deinterlace_field_order
Definition: obs.h:912
Definition: obs.h:1107
EXPORT obs_source_t * obs_filter_get_parent(const obs_source_t *filter)
EXPORT void obs_transition_video_render(obs_source_t *transition, obs_transition_video_render_callback_t callback)
EXPORT void obs_encoder_set_audio(obs_encoder_t *encoder, audio_t *audio)
EXPORT void obs_view_render(obs_view_t *view)
Definition: obs.h:1173
header for modules implementing sources.
EXPORT bool obs_output_begin_data_capture(obs_output_t *output, uint32_t flags)
EXPORT uint32_t obs_source_get_base_height(obs_source_t *source)
EXPORT enum obs_scale_type obs_sceneitem_get_scale_filter(obs_sceneitem_t *item)
EXPORT void obs_sceneitem_get_box_transform(const obs_sceneitem_t *item, struct matrix4 *transform)
Definition: obs.h:101
Definition: obs.h:528
EXPORT const char * obs_get_locale(void)
EXPORT bool obs_init_module(obs_module_t *module)
obs_transition_target
Definition: obs.h:1085
EXPORT void obs_sceneitem_set_order(obs_sceneitem_t *item, enum obs_order_movement movement)
struct obs_volmeter obs_volmeter_t
Definition: obs.h:64
EXPORT void obs_sceneitem_set_bounds(obs_sceneitem_t *item, const struct vec2 *bounds)
Definition: matrix4.h:32
EXPORT audio_t * obs_get_audio(void)
EXPORT void obs_find_modules(obs_find_module_callback_t callback, void *param)
EXPORT void obs_source_process_filter_tech_end(obs_source_t *filter, gs_effect_t *effect, uint32_t width, uint32_t height, const char *tech_name)
EXPORT void obs_weak_output_addref(obs_weak_output_t *weak)
EXPORT void obs_transition_set_alignment(obs_source_t *transition, uint32_t alignment)
EXPORT const char * obs_encoder_get_id(const obs_encoder_t *encoder)
EXPORT void obs_encoder_set_video(obs_encoder_t *encoder, video_t *video)
enum video_format output_format
Definition: obs.h:165
bool flip
Definition: obs.h:233
float color_matrix[16]
Definition: obs.h:229
EXPORT void obs_source_enum_active_tree(obs_source_t *source, obs_source_enum_proc_t enum_callback, void *param)
EXPORT bool obs_transition_start(obs_source_t *transition, enum obs_transition_mode mode, uint32_t duration_ms, obs_source_t *dest)
EXPORT proc_handler_t * obs_source_get_proc_handler(const obs_source_t *source)
EXPORT void obs_scene_atomic_update(obs_scene_t *scene, obs_scene_atomic_update_func func, void *data)
EXPORT obs_properties_t * obs_service_properties(const obs_service_t *service)
struct gs_texture gs_texture_t
Definition: graphics.h:258
EXPORT void obs_source_get_audio_mix(const obs_source_t *source, struct obs_source_audio_mix *audio)
EXPORT bool obs_source_configurable(const obs_source_t *source)
EXPORT const char * obs_get_encoder_codec(const char *id)
EXPORT void obs_display_resize(obs_display_t *display, uint32_t cx, uint32_t cy)
EXPORT obs_source_t * obs_transition_get_active_source(obs_source_t *transition)
Definition: obs.h:908
EXPORT void obs_source_send_mouse_move(obs_source_t *source, const struct obs_mouse_event *event, bool mouse_leave)
const uint8_t * data[MAX_AV_PLANES]
Definition: obs.h:202
EXPORT void obs_source_draw(gs_texture_t *image, int x, int y, uint32_t cx, uint32_t cy, bool flip)
EXPORT void obs_sceneitem_set_order_position(obs_sceneitem_t *item, int position)
Definition: obs.h:118
EXPORT void obs_get_audio_monitoring_device(const char **name, const char **id)
EXPORT void obs_service_update(obs_service_t *service, obs_data_t *settings)
Definition: obs.h:221
EXPORT uint32_t obs_encoder_get_sample_rate(const obs_encoder_t *encoder)
EXPORT bool obs_source_add_active_child(obs_source_t *parent, obs_source_t *child)
EXPORT void obs_source_enable_push_to_talk(obs_source_t *source, bool enabled)
EXPORT void obs_output_stop(obs_output_t *output)
struct obs_fader obs_fader_t
Definition: obs.h:63
Definition: audio-io.h:68
EXPORT proc_handler_t * obs_get_proc_handler(void)
EXPORT void obs_transition_set_scale_type(obs_source_t *transition, enum obs_transition_scale_type type)
EXPORT obs_output_t * obs_output_create(const char *id, const char *name, obs_data_t *settings, obs_data_t *hotkey_data)
enum video_format format
Definition: obs.h:228
Definition: obs.h:377
EXPORT void obs_source_set_push_to_mute_delay(obs_source_t *source, uint64_t delay)
EXPORT uint64_t obs_source_get_push_to_mute_delay(obs_source_t *source)
Definition: obs.h:151
EXPORT void obs_sceneitem_set_pos(obs_sceneitem_t *item, const struct vec2 *pos)
EXPORT enum obs_source_type obs_source_get_type(const obs_source_t *source)
EXPORT bool obs_is_source_configurable(const char *id)
obs_base_effect
Definition: obs.h:521
EXPORT void obs_enum_outputs(bool(*enum_proc)(void *, obs_output_t *), void *param)
Definition: obs.h:99
struct signal_handler signal_handler_t
Definition: signal.h:35
EXPORT obs_encoder_t * obs_encoder_get_ref(obs_encoder_t *encoder)
EXPORT void obs_transition_clear(obs_source_t *transition)
EXPORT void obs_source_send_key_click(obs_source_t *source, const struct obs_key_event *event, bool key_up)
struct vec2 pos
Definition: obs.h:138
Definition: bounds.h:39
EXPORT void obs_scene_release(obs_scene_t *scene)
EXPORT enum obs_obj_type obs_obj_get_type(void *obj)
EXPORT bool obs_startup(const char *locale, const char *module_config_path, profiler_name_store_t *store)
EXPORT obs_weak_encoder_t * obs_encoder_get_weak_encoder(obs_encoder_t *encoder)
Definition: obs-source.h:136
EXPORT obs_properties_t * obs_source_properties(const obs_source_t *source)
uint32_t output_height
Definition: obs.h:164
Definition: obs-internal.h:991
EXPORT void obs_weak_encoder_release(obs_weak_encoder_t *weak)
EXPORT obs_output_t * obs_output_get_ref(obs_output_t *output)
Definition: obs.h:526
EXPORT void obs_source_addref(obs_source_t *source)
EXPORT obs_data_t * obs_encoder_defaults(const char *id)
EXPORT obs_source_t * obs_source_get_filter_by_name(obs_source_t *source, const char *name)
EXPORT bool obs_obj_invalid(void *obj)
EXPORT video_t * obs_encoder_video(const obs_encoder_t *encoder)
EXPORT void * obs_output_get_type_data(obs_output_t *output)
EXPORT obs_properties_t * obs_output_properties(const obs_output_t *output)
Definition: obs.h:1097
EXPORT void obs_scene_addref(obs_scene_t *scene)
Definition: obs.h:201
EXPORT uint32_t obs_encoder_get_height(const obs_encoder_t *encoder)
EXPORT void obs_output_set_service(obs_output_t *output, obs_service_t *service)
EXPORT obs_source_t * obs_view_get_source(obs_view_t *view, uint32_t channel)
EXPORT const char * obs_get_module_binary_path(obs_module_t *module)
uint32_t adapter
Definition: obs.h:168
EXPORT obs_source_t * obs_scene_get_source(const obs_scene_t *scene)
obs_allow_direct_render
Definition: obs.h:109
EXPORT uint32_t obs_get_encoder_caps(const char *encoder_id)
EXPORT int obs_reset_video(struct obs_video_info *ovi)
EXPORT void obs_set_locale(const char *locale)
EXPORT bool obs_weak_output_references_output(obs_weak_output_t *weak, obs_output_t *output)
EXPORT obs_data_array_t * obs_save_sources_filtered(obs_save_source_filter_cb cb, void *data)
float(* obs_transition_audio_mix_callback_t)(void *data, float t)
Definition: obs.h:1139
struct video_output video_t
Definition: video-io.h:31
EXPORT void obs_source_send_mouse_click(obs_source_t *source, const struct obs_mouse_event *event, int32_t type, bool mouse_up, uint32_t click_count)
EXPORT enum obs_deinterlace_mode obs_source_get_deinterlace_mode(const obs_source_t *source)
EXPORT obs_source_t * obs_load_source(obs_data_t *data)
Definition: obs.h:907
EXPORT void obs_sceneitem_defer_update_end(obs_sceneitem_t *item)
EXPORT video_t * obs_output_video(const obs_output_t *output)
Definition: obs.h:529
uint32_t fps_num
Definition: obs.h:157
EXPORT void obs_source_send_mouse_wheel(obs_source_t *source, const struct obs_mouse_event *event, int x_delta, int y_delta)
EXPORT size_t obs_output_get_mixer(const obs_output_t *output)
Definition: obs.h:182
Definition: obs.h:575
volatile long refs
Definition: obs.h:236
EXPORT bool obs_source_showing(const obs_source_t *source)
EXPORT uint32_t obs_output_get_width(const obs_output_t *output)
EXPORT obs_data_t * obs_source_get_settings(const obs_source_t *source)
EXPORT uint64_t obs_output_get_total_bytes(const obs_output_t *output)
EXPORT char * obs_module_get_config_path(obs_module_t *module, const char *file)
EXPORT void obs_load_sources(obs_data_array_t *array, obs_load_source_cb cb, void *private_data)
EXPORT void obs_source_release(obs_source_t *source)
EXPORT float obs_get_master_volume(void)
EXPORT bool obs_output_can_pause(const obs_output_t *output)
EXPORT uint32_t obs_source_get_height(obs_source_t *source)
EXPORT void obs_output_set_media(obs_output_t *output, video_t *video, audio_t *audio)
#define MAX_AV_PLANES
Definition: media-io-defs.h:20
void(* obs_find_module_callback_t)(void *param, const struct obs_module_info *info)
Definition: obs.h:382
EXPORT void obs_service_addref(obs_service_t *service)
bool(* obs_enum_audio_device_cb)(void *data, const char *name, const char *id)
Definition: obs.h:585
EXPORT void obs_source_set_muted(obs_source_t *source, bool muted)
EXPORT const char * obs_get_module_data_path(obs_module_t *module)
EXPORT void obs_encoder_release(obs_encoder_t *encoder)
Definition: obs.h:134
EXPORT obs_data_t * obs_service_get_settings(const obs_service_t *service)
EXPORT bool obs_encoder_get_extra_data(const obs_encoder_t *encoder, uint8_t **extra_data, size_t *size)
libobs header for the properties system used in libobs
EXPORT bool obs_weak_encoder_references_encoder(obs_weak_encoder_t *weak, obs_encoder_t *encoder)
Definition: obs.h:904
EXPORT void obs_source_set_monitoring_type(obs_source_t *source, enum obs_monitoring_type type)
int left
Definition: obs.h:1272
EXPORT void obs_source_remove(obs_source_t *source)
EXPORT bool obs_encoder_active(const obs_encoder_t *encoder)
EXPORT void obs_output_release(obs_output_t *output)
EXPORT void obs_sceneitem_get_pos(const obs_sceneitem_t *item, struct vec2 *pos)
EXPORT obs_properties_t * obs_get_source_properties(const char *id)
EXPORT void obs_source_set_deinterlace_mode(obs_source_t *source, enum obs_deinterlace_mode mode)
EXPORT void obs_source_set_name(obs_source_t *source, const char *name)
Definition: obs.h:111
EXPORT uint32_t obs_sceneitem_get_alignment(const obs_sceneitem_t *item)
EXPORT uint32_t obs_sceneitem_get_bounds_alignment(const obs_sceneitem_t *item)
struct obs_data_array obs_data_array_t
Definition: obs-data.h:44
Definition: obs.h:1172
EXPORT uint64_t obs_get_video_frame_time(void)
EXPORT void obs_source_dec_showing(obs_source_t *source)
Definition: obs-scene.h:31
EXPORT void obs_transition_set(obs_source_t *transition, obs_source_t *source)
struct vec2 scale
Definition: obs.h:140
EXPORT bool obs_source_removed(const obs_source_t *source)
EXPORT void obs_transition_get_size(const obs_source_t *transition, uint32_t *cx, uint32_t *cy)
obs_encoder_type
Definition: obs-encoder.h:35
EXPORT int obs_open_module(obs_module_t **module, const char *path, const char *data_path)
EXPORT bool obs_sceneitem_selected(const obs_sceneitem_t *item)
EXPORT void obs_encoder_set_scaled_size(obs_encoder_t *encoder, uint32_t width, uint32_t height)
EXPORT void obs_source_set_default_flags(obs_source_t *source, uint32_t flags)
EXPORT const char * obs_output_get_display_name(const char *id)
EXPORT obs_source_t * obs_get_source_by_name(const char *name)
EXPORT void obs_output_addref(obs_output_t *output)
EXPORT bool obs_transition_fixed(obs_source_t *transition)
EXPORT void obs_source_output_video(obs_source_t *source, const struct obs_source_frame *frame)
EXPORT obs_data_t * obs_encoder_get_settings(const obs_encoder_t *encoder)
Definition: obs-internal.h:996
EXPORT const char * obs_output_get_name(const obs_output_t *output)
EXPORT void obs_enum_audio_monitoring_devices(obs_enum_audio_device_cb cb, void *data)
EXPORT void obs_transition_swap_begin(obs_source_t *tr_dest, obs_source_t *tr_source)
EXPORT enum obs_bounds_type obs_sceneitem_get_bounds_type(const obs_sceneitem_t *item)
EXPORT signal_handler_t * obs_get_signal_handler(void)
EXPORT const char * obs_get_module_description(obs_module_t *module)
EXPORT void obs_sceneitem_set_crop(obs_sceneitem_t *item, const struct obs_sceneitem_crop *crop)
EXPORT obs_scene_t * obs_scene_from_source(const obs_source_t *source)
EXPORT obs_encoder_t * obs_weak_encoder_get_encoder(obs_weak_encoder_t *weak)
EXPORT const char * obs_service_get_password(const obs_service_t *service)
EXPORT uint32_t obs_encoder_get_width(const obs_encoder_t *encoder)
Definition: obs.h:913
EXPORT obs_weak_source_t * obs_source_get_weak_source(obs_source_t *source)
EXPORT obs_source_t * obs_sceneitem_get_source(const obs_sceneitem_t *item)
EXPORT const char * obs_output_get_id(const obs_output_t *output)
obs_monitoring_type
Definition: obs.h:926
EXPORT void obs_sceneitem_remove(obs_sceneitem_t *item)
EXPORT void obs_source_release_frame(obs_source_t *source, struct obs_source_frame *frame)
EXPORT void obs_transition_enable_fixed(obs_source_t *transition, bool enable, uint32_t duration_ms)
struct proc_handler proc_handler_t
Definition: proc.h:36
EXPORT const char * obs_encoder_get_name(const obs_encoder_t *encoder)
EXPORT void obs_output_update(obs_output_t *output, obs_data_t *settings)
Definition: obs.h:129
EXPORT obs_scene_t * obs_scene_create(const char *name)
EXPORT void obs_source_frame_init(struct obs_source_frame *frame, enum video_format format, uint32_t width, uint32_t height)
uint32_t bounds_alignment
Definition: obs.h:144
enum obs_bounds_type bounds_type
Definition: obs.h:143
EXPORT obs_data_t * obs_get_source_defaults(const char *id)
int top
Definition: obs.h:1273
obs_order_movement
Definition: obs.h:97
bool full_range
Definition: obs.h:230
uint32_t frames
Definition: obs.h:203
EXPORT void obs_sceneitem_set_bounds_alignment(obs_sceneitem_t *item, uint32_t alignment)
EXPORT void obs_enum_sources(bool(*enum_proc)(void *, obs_source_t *), void *param)
Definition: obs.h:522
EXPORT obs_data_t * obs_service_defaults(const char *id)
Definition: obs.h:903
EXPORT bool obs_enum_output_types(size_t idx, const char **id)
EXPORT obs_display_t * obs_display_create(const struct gs_init_data *graphics_data)
Definition: obs.h:128
Definition: obs.h:132
video_range_type
Definition: video-io.h:61
__int64 int64_t
Definition: vc_stdint.h:32
EXPORT void bfree(void *ptr)
enum video_range_type range
Definition: obs.h:174
EXPORT bool obs_transition_audio_render(obs_source_t *transition, uint64_t *ts_out, struct obs_source_audio_mix *audio, uint32_t mixers, size_t channels, size_t sample_rate, obs_transition_audio_mix_callback_t mix_a_callback, obs_transition_audio_mix_callback_t mix_b_callback)
EXPORT void obs_display_set_enabled(obs_display_t *display, bool enable)
EXPORT obs_weak_output_t * obs_output_get_weak_output(obs_output_t *output)
EXPORT bool obs_display_enabled(obs_display_t *display)
EXPORT bool obs_sceneitem_visible(const obs_sceneitem_t *item)
Definition: obs.h:110
EXPORT obs_output_t * obs_get_output_by_name(const char *name)
DEPRECATED EXPORT gs_effect_t * obs_get_default_rect_effect(void)
EXPORT void obs_display_add_draw_callback(obs_display_t *display, void(*draw)(void *param, uint32_t cx, uint32_t cy), void *param)
#define bool
Definition: vc_stdbool.h:5
Definition: obs.h:1271
EXPORT obs_service_t * obs_service_get_ref(obs_service_t *service)
EXPORT bool obs_source_push_to_talk_enabled(obs_source_t *source)
EXPORT void * obs_encoder_get_type_data(obs_encoder_t *encoder)
Definition: obs.h:909
EXPORT bool obs_weak_service_references_service(obs_weak_service_t *weak, obs_service_t *service)
EXPORT void * obs_source_get_type_data(obs_source_t *source)
EXPORT bool obs_source_muted(const obs_source_t *source)
EXPORT void obs_source_filter_remove(obs_source_t *source, obs_source_t *filter)
EXPORT void obs_weak_source_addref(obs_weak_source_t *weak)
EXPORT void obs_source_set_push_to_talk_delay(obs_source_t *source, uint64_t delay)
Definition: obs-internal.h:195
EXPORT obs_properties_t * obs_get_service_properties(const char *id)
Definition: obs.h:1175
EXPORT void obs_view_set_source(obs_view_t *view, uint32_t channel, obs_source_t *source)
Definition: obs.h:119
uint32_t output_width
Definition: obs.h:163
EXPORT int obs_output_get_frames_dropped(const obs_output_t *output)
EXPORT void obs_output_set_video_conversion(obs_output_t *output, const struct video_scale_info *conversion)
header for audio controls
EXPORT void obs_log_loaded_modules(void)
EXPORT void obs_load_all_modules(void)
EXPORT void obs_source_skip_video_filter(obs_source_t *filter)
EXPORT void obs_enum_encoders(bool(*enum_proc)(void *, obs_encoder_t *), void *param)
EXPORT const char * obs_source_get_name(const obs_source_t *source)
EXPORT void obs_add_module_path(const char *bin, const char *data)
struct audio_output audio_t
Definition: audio-io.h:38
EXPORT bool obs_enum_encoder_types(size_t idx, const char **id)
EXPORT enum obs_deinterlace_field_order obs_source_get_deinterlace_field_order(const obs_source_t *source)
void(* obs_transition_video_render_callback_t)(void *data, gs_texture_t *a, gs_texture_t *b, float t, uint32_t cx, uint32_t cy)
Definition: obs.h:1136
EXPORT video_t * obs_get_video(void)
EXPORT obs_source_t * obs_source_create_private(const char *id, const char *name, obs_data_t *settings)
EXPORT void obs_sceneitem_set_scale_filter(obs_sceneitem_t *item, enum obs_scale_type filter)
EXPORT enum obs_encoder_type obs_encoder_get_type(const obs_encoder_t *encoder)
Definition: obs.h:191
header for modules implementing services.
EXPORT void obs_output_set_video_encoder(obs_output_t *output, obs_encoder_t *encoder)
EXPORT bool obs_set_audio_monitoring_device(const char *name, const char *id)
EXPORT const char * obs_service_get_username(const obs_service_t *service)
EXPORT bool obs_output_active(const obs_output_t *output)
EXPORT bool obs_enum_transition_types(size_t idx, const char **id)
EXPORT void obs_source_filter_add(obs_source_t *source, obs_source_t *filter)
EXPORT const char * obs_service_get_display_name(const char *id)
EXPORT void obs_sceneitem_get_draw_transform(const obs_sceneitem_t *item, struct matrix4 *transform)
EXPORT const char * obs_get_module_author(obs_module_t *module)
bool prev_frame
Definition: obs.h:237
EXPORT void obs_source_set_volume(obs_source_t *source, float volume)
struct profiler_name_store profiler_name_store_t
Definition: profiler.h:39
EXPORT obs_service_t * obs_get_service_by_name(const char *name)
EXPORT obs_encoder_t * obs_output_get_video_encoder(const obs_output_t *output)
EXPORT bool obs_source_process_filter_begin(obs_source_t *filter, enum gs_color_format format, enum obs_allow_direct_render allow_direct)