Open Broadcaster Software
Free, open source software for live streaming and recording
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 
121 };
122 
136 };
137 
139  struct vec2 pos;
140  float rot;
141  struct vec2 scale;
143 
146  struct vec2 bounds;
147 };
148 
153 #ifndef SWIG
154 
157  const char *graphics_module;
158 #endif
159 
172 
175 
180 };
181 
188 };
189 
198 };
199 
207 
211 
213 };
214 
234 
236  float color_matrix[16];
238  float color_range_min[3];
239  float color_range_max[3];
240  bool flip;
241 
242  /* used internally by libobs */
243  volatile long refs;
245 };
246 
253 
256  float color_matrix[16];
257  float color_range_min[3];
258  float color_range_max[3];
259  bool flip;
260 };
261 
264  int argc;
265  char **argv;
266 };
267 
268 /* ------------------------------------------------------------------------- */
269 /* OBS context */
270 
277 EXPORT char *obs_find_data_file(const char *file);
278 
284 EXPORT void obs_add_data_path(const char *path);
285 
294 EXPORT bool obs_remove_data_path(const char *path);
295 
304 EXPORT bool obs_startup(const char *locale, const char *module_config_path,
305  profiler_name_store_t *store);
306 
308 EXPORT void obs_shutdown(void);
309 
311 EXPORT bool obs_initialized(void);
312 
315 
317 EXPORT const char *obs_get_version_string(void);
318 
327 EXPORT void obs_set_cmdline_args(int argc, const char *const *argv);
328 
336 
343 EXPORT void obs_set_locale(const char *locale);
344 
346 EXPORT const char *obs_get_locale(void);
347 
350 #ifdef _WIN32
351 EXPORT void obs_init_win32_crash_handler(void);
352 #endif
353 
360 
377 EXPORT int obs_reset_video(struct obs_video_info *ovi);
378 
384 EXPORT bool obs_reset_audio(const struct obs_audio_info *oai);
385 
387 EXPORT bool obs_get_video_info(struct obs_video_info *ovi);
388 
390 EXPORT bool obs_get_audio_info(struct obs_audio_info *oai);
391 
413 EXPORT int obs_open_module(obs_module_t **module, const char *path,
414  const char *data_path);
415 
421 EXPORT bool obs_init_module(obs_module_t *module);
422 
424 EXPORT void obs_log_loaded_modules(void);
425 
427 EXPORT const char *obs_get_module_file_name(obs_module_t *module);
428 
430 EXPORT const char *obs_get_module_name(obs_module_t *module);
431 
433 EXPORT const char *obs_get_module_author(obs_module_t *module);
434 
436 EXPORT const char *obs_get_module_description(obs_module_t *module);
437 
439 EXPORT const char *obs_get_module_binary_path(obs_module_t *module);
440 
442 EXPORT const char *obs_get_module_data_path(obs_module_t *module);
443 
452 EXPORT void obs_add_module_path(const char *bin, const char *data);
453 
455 EXPORT void obs_load_all_modules(void);
456 
459 EXPORT void obs_post_load_modules(void);
460 
461 #ifndef SWIG
463  const char *bin_path;
464  const char *data_path;
465 };
466 
467 typedef void (*obs_find_module_callback_t)(void *param,
468  const struct obs_module_info *info);
469 
471 EXPORT void obs_find_modules(obs_find_module_callback_t callback, void *param);
472 #endif
473 
474 typedef void (*obs_enum_module_callback_t)(void *param, obs_module_t *module);
475 
477 EXPORT void obs_enum_modules(obs_enum_module_callback_t callback, void *param);
478 
481  const char *default_locale,
482  const char *locale);
483 
495 EXPORT char *obs_find_module_file(obs_module_t *module, const char *file);
496 
508 EXPORT char *obs_module_get_config_path(obs_module_t *module, const char *file);
509 
511 EXPORT bool obs_enum_source_types(size_t idx, const char **id);
512 
519 EXPORT bool obs_enum_input_types(size_t idx, const char **id);
520 
527 EXPORT bool obs_enum_filter_types(size_t idx, const char **id);
528 
535 EXPORT bool obs_enum_transition_types(size_t idx, const char **id);
536 
538 EXPORT bool obs_enum_output_types(size_t idx, const char **id);
539 
541 EXPORT bool obs_enum_encoder_types(size_t idx, const char **id);
542 
544 EXPORT bool obs_enum_service_types(size_t idx, const char **id);
545 
547 EXPORT void obs_enter_graphics(void);
548 
550 EXPORT void obs_leave_graphics(void);
551 
554 
557 
559 EXPORT bool obs_video_active(void);
560 
562 EXPORT void obs_set_output_source(uint32_t channel, obs_source_t *source);
563 
569 
579 EXPORT void obs_enum_sources(bool (*enum_proc)(void *, obs_source_t *),
580  void *param);
581 
583 EXPORT void obs_enum_scenes(bool (*enum_proc)(void *, obs_source_t *),
584  void *param);
585 
587 EXPORT void obs_enum_outputs(bool (*enum_proc)(void *, obs_output_t *),
588  void *param);
589 
591 EXPORT void obs_enum_encoders(bool (*enum_proc)(void *, obs_encoder_t *),
592  void *param);
593 
595 EXPORT void obs_enum_services(bool (*enum_proc)(void *, obs_service_t *),
596  void *param);
597 
604 EXPORT obs_source_t *obs_get_source_by_name(const char *name);
605 
607 EXPORT obs_output_t *obs_get_output_by_name(const char *name);
608 
610 EXPORT obs_encoder_t *obs_get_encoder_by_name(const char *name);
611 
613 EXPORT obs_service_t *obs_get_service_by_name(const char *name);
614 
626 };
627 
630 
631 #ifndef SWIG
632 /* DEPRECATED: gets texture_rect default effect */
635 #endif
636 
639 
642 
643 #ifndef SWIG
644 
646 EXPORT void obs_render_main_view(void);
647 #endif
648 
651 
654 
658 
660 EXPORT void obs_set_master_volume(float volume);
661 
663 EXPORT float obs_get_master_volume(void);
664 
667 
670 
672 EXPORT void obs_source_save(obs_source_t *source);
673 
675 EXPORT void obs_source_load(obs_source_t *source);
676 
677 typedef void (*obs_load_source_cb)(void *private_data, obs_source_t *source);
678 
681  void *private_data);
682 
685 
686 typedef bool (*obs_save_source_filter_cb)(void *data, obs_source_t *source);
688  void *data);
689 
696 };
697 
698 EXPORT enum obs_obj_type obs_obj_get_type(void *obj);
699 EXPORT const char *obs_obj_get_id(void *obj);
700 EXPORT bool obs_obj_invalid(void *obj);
701 EXPORT void *obs_obj_get_data(void *obj);
702 
703 typedef bool (*obs_enum_audio_device_cb)(void *data, const char *name,
704  const char *id);
705 
707  void *data);
708 
709 EXPORT bool obs_set_audio_monitoring_device(const char *name, const char *id);
710 EXPORT void obs_get_audio_monitoring_device(const char **name, const char **id);
711 
712 EXPORT void obs_add_tick_callback(void (*tick)(void *param, float seconds),
713  void *param);
714 EXPORT void obs_remove_tick_callback(void (*tick)(void *param, float seconds),
715  void *param);
716 
717 EXPORT void obs_add_main_render_callback(void (*draw)(void *param, uint32_t cx,
718  uint32_t cy),
719  void *param);
721  void (*draw)(void *param, uint32_t cx, uint32_t cy), void *param);
722 
724  const struct video_scale_info *conversion,
725  void (*callback)(void *param, struct video_data *frame), void *param);
727  void (*callback)(void *param, struct video_data *frame), void *param);
728 
730 
731 EXPORT double obs_get_active_fps(void);
734 
737 
738 EXPORT bool obs_nv12_tex_active(void);
739 
741 EXPORT void obs_set_private_data(obs_data_t *settings);
743 
744 /* ------------------------------------------------------------------------- */
745 /* View context */
746 
754 
757 
759 EXPORT void obs_view_set_source(obs_view_t *view, uint32_t channel,
760  obs_source_t *source);
761 
764 
766 EXPORT void obs_view_render(obs_view_t *view);
767 
768 /* ------------------------------------------------------------------------- */
769 /* Display context */
770 
779 obs_display_create(const struct gs_init_data *graphics_data,
780  uint32_t backround_color);
781 
784 
787  uint32_t cy);
788 
798  void (*draw)(void *param, uint32_t cx,
799  uint32_t cy),
800  void *param);
801 
804  obs_display_t *display,
805  void (*draw)(void *param, uint32_t cx, uint32_t cy), void *param);
806 
807 EXPORT void obs_display_set_enabled(obs_display_t *display, bool enable);
809 
811  uint32_t color);
812 
813 EXPORT void obs_display_size(obs_display_t *display, uint32_t *width,
814  uint32_t *height);
815 
816 /* ------------------------------------------------------------------------- */
817 /* Sources */
818 
820 EXPORT const char *obs_source_get_display_name(const char *id);
821 
828 EXPORT obs_source_t *obs_source_create(const char *id, const char *name,
829  obs_data_t *settings,
830  obs_data_t *hotkey_data);
831 
832 EXPORT obs_source_t *obs_source_create_private(const char *id, const char *name,
833  obs_data_t *settings);
834 
835 /* if source has OBS_SOURCE_DO_NOT_DUPLICATE output flag set, only returns a
836  * reference */
838  const char *desired_name,
839  bool create_private);
846 
849 
853 
855  obs_source_t *source);
856 
859 
861 EXPORT bool obs_source_removed(const obs_source_t *source);
862 
865 
868 
870 EXPORT obs_data_t *obs_get_source_defaults(const char *id);
871 
874 
876 EXPORT bool obs_is_source_configurable(const char *id);
877 
878 EXPORT bool obs_source_configurable(const obs_source_t *source);
879 
885 
887 EXPORT void obs_source_update(obs_source_t *source, obs_data_t *settings);
888 
891 
894 
897 
904 
911 
914 
917 
920  obs_source_t *filter);
921 
924  obs_source_t *filter,
925  enum obs_order_movement movement);
926 
929 
931 EXPORT const char *obs_source_get_name(const obs_source_t *source);
932 
934 EXPORT void obs_source_set_name(obs_source_t *source, const char *name);
935 
938 
940 EXPORT const char *obs_source_get_id(const obs_source_t *source);
941 
945 
948 
950 EXPORT void obs_source_set_volume(obs_source_t *source, float volume);
951 
953 EXPORT float obs_source_get_volume(const obs_source_t *source);
954 
955 /* Gets speaker layout of a source */
957 
959 EXPORT void obs_source_set_balance_value(obs_source_t *source, float balance);
960 
963 
966 
969 
972  obs_source_enum_proc_t enum_callback,
973  void *param);
974 
977  obs_source_enum_proc_t enum_callback,
978  void *param);
979 
981 EXPORT bool obs_source_active(const obs_source_t *source);
982 
986 EXPORT bool obs_source_showing(const obs_source_t *source);
987 
989 #define OBS_SOURCE_FLAG_UNUSED_1 (1 << 0)
990 
991 #define OBS_SOURCE_FLAG_FORCE_MONO (1 << 1)
992 
998 EXPORT void obs_source_set_flags(obs_source_t *source, uint32_t flags);
999 
1002 
1008 
1011 
1018 
1030 
1037 
1048 
1051  obs_source_enum_proc_t callback,
1052  void *param);
1053 
1056  const char *name);
1057 
1059 
1060 EXPORT bool obs_source_enabled(const obs_source_t *source);
1061 EXPORT void obs_source_set_enabled(obs_source_t *source, bool enabled);
1062 
1063 EXPORT bool obs_source_muted(const obs_source_t *source);
1064 EXPORT void obs_source_set_muted(obs_source_t *source, bool muted);
1065 
1067 EXPORT void obs_source_enable_push_to_mute(obs_source_t *source, bool enabled);
1068 
1071  uint64_t delay);
1072 
1074 EXPORT void obs_source_enable_push_to_talk(obs_source_t *source, bool enabled);
1075 
1078  uint64_t delay);
1079 
1080 typedef void (*obs_source_audio_capture_t)(void *param, obs_source_t *source,
1081  const struct audio_data *audio_data,
1082  bool muted);
1083 
1085  obs_source_t *source, obs_source_audio_capture_t callback, void *param);
1087  obs_source_t *source, obs_source_audio_capture_t callback, void *param);
1088 
1099 };
1100 
1104 };
1105 
1107  enum obs_deinterlace_mode mode);
1111  obs_source_t *source, enum obs_deinterlace_field_order field_order);
1114 
1119 };
1120 
1122  enum obs_monitoring_type type);
1125 
1129 
1130 /* ------------------------------------------------------------------------- */
1131 /* Functions used by sources */
1132 
1134 
1147 EXPORT void
1148 obs_source_draw_set_color_matrix(const struct matrix4 *color_matrix,
1149  const struct vec3 *color_range_min,
1150  const struct vec3 *color_range_max);
1151 
1163 EXPORT void obs_source_draw(gs_texture_t *image, int x, int y, uint32_t cx,
1164  uint32_t cy, bool flip);
1165 
1174  const struct obs_source_frame *frame);
1176  const struct obs_source_frame2 *frame);
1177 
1186  const struct obs_source_frame *frame);
1188  const struct obs_source_frame2 *frame);
1189 
1192 
1195  const struct obs_source_audio *audio);
1196 
1199 
1202 
1205  struct obs_source_frame *frame);
1206 
1218 EXPORT bool
1220  enum gs_color_format format,
1221  enum obs_allow_direct_render allow_direct);
1222 
1231  gs_effect_t *effect, uint32_t width,
1232  uint32_t height);
1233 
1242  gs_effect_t *effect,
1244  const char *tech_name);
1245 
1248 
1257  obs_source_t *child);
1258 
1265  obs_source_t *child);
1266 
1269  const struct obs_mouse_event *event,
1270  int32_t type, bool mouse_up,
1271  uint32_t click_count);
1272 
1275  const struct obs_mouse_event *event,
1276  bool mouse_leave);
1277 
1280  const struct obs_mouse_event *event,
1281  int x_delta, int y_delta);
1282 
1284 EXPORT void obs_source_send_focus(obs_source_t *source, bool focus);
1285 
1288  const struct obs_key_event *event,
1289  bool key_up);
1290 
1293 
1296 
1299 
1300 EXPORT bool obs_source_audio_pending(const obs_source_t *source);
1302 EXPORT void obs_source_get_audio_mix(const obs_source_t *source,
1303  struct obs_source_audio_mix *audio);
1304 
1306  bool unbuffered);
1307 EXPORT bool obs_source_async_unbuffered(const obs_source_t *source);
1308 
1312 EXPORT void obs_source_set_async_decoupled(obs_source_t *source, bool decouple);
1313 EXPORT bool obs_source_async_decoupled(const obs_source_t *source);
1314 
1315 EXPORT void obs_source_set_audio_active(obs_source_t *source, bool show);
1316 EXPORT bool obs_source_audio_active(const obs_source_t *source);
1317 
1319 
1320 /* ------------------------------------------------------------------------- */
1321 /* Transition-specific functions */
1325 };
1326 
1329  enum obs_transition_target target);
1330 EXPORT void obs_transition_clear(obs_source_t *transition);
1331 
1333 
1336 };
1337 
1338 EXPORT bool obs_transition_start(obs_source_t *transition,
1339  enum obs_transition_mode mode,
1340  uint32_t duration_ms, obs_source_t *dest);
1341 
1342 EXPORT void obs_transition_set(obs_source_t *transition, obs_source_t *source);
1343 
1348 };
1349 
1351  enum obs_transition_scale_type type);
1353 obs_transition_get_scale_type(const obs_source_t *transition);
1354 
1356  uint32_t alignment);
1358 
1360  uint32_t cy);
1361 EXPORT void obs_transition_get_size(const obs_source_t *transition,
1362  uint32_t *cx, uint32_t *cy);
1363 
1364 /* function used by transitions */
1365 
1370 EXPORT void obs_transition_enable_fixed(obs_source_t *transition, bool enable,
1371  uint32_t duration_ms);
1372 EXPORT bool obs_transition_fixed(obs_source_t *transition);
1373 
1375  gs_texture_t *a,
1376  gs_texture_t *b, float t,
1377  uint32_t cx,
1378  uint32_t cy);
1379 typedef float (*obs_transition_audio_mix_callback_t)(void *data, float t);
1380 
1381 EXPORT float obs_transition_get_time(obs_source_t *transition);
1382 
1384 
1385 EXPORT void
1388 
1391 EXPORT bool
1393  enum obs_transition_target target);
1394 
1395 EXPORT bool
1397  struct obs_source_audio_mix *audio, uint32_t mixers,
1398  size_t channels, size_t sample_rate,
1399  obs_transition_audio_mix_callback_t mix_a_callback,
1400  obs_transition_audio_mix_callback_t mix_b_callback);
1401 
1402 /* swaps transition sources and textures as an optimization and to reduce
1403  * memory usage when switching between transitions */
1405  obs_source_t *tr_source);
1407  obs_source_t *tr_source);
1408 
1409 /* ------------------------------------------------------------------------- */
1410 /* Scenes */
1411 
1418 EXPORT obs_scene_t *obs_scene_create(const char *name);
1419 
1420 EXPORT obs_scene_t *obs_scene_create_private(const char *name);
1421 
1427 };
1428 
1432 EXPORT obs_scene_t *obs_scene_duplicate(obs_scene_t *scene, const char *name,
1433  enum obs_scene_duplicate_type type);
1434 
1435 EXPORT void obs_scene_addref(obs_scene_t *scene);
1436 EXPORT void obs_scene_release(obs_scene_t *scene);
1437 
1440 
1443 
1446  const char *name);
1447 
1449  int64_t id);
1450 
1453  bool (*callback)(obs_scene_t *,
1454  obs_sceneitem_t *, void *),
1455  void *param);
1456 
1458  obs_sceneitem_t *const *item_order,
1459  size_t item_order_size);
1460 
1464 };
1465 
1466 EXPORT bool
1468  struct obs_sceneitem_order_info *item_order,
1469  size_t item_order_size);
1470 
1473 
1474 typedef void (*obs_scene_atomic_update_func)(void *, obs_scene_t *scene);
1477  void *data);
1478 
1481 
1484 
1487 
1490 
1491 /* FIXME: The following functions should be deprecated and replaced with a way
1492  * to specify savable private user data. -Jim */
1493 EXPORT void obs_sceneitem_select(obs_sceneitem_t *item, bool select);
1495 EXPORT bool obs_sceneitem_locked(const obs_sceneitem_t *item);
1496 EXPORT bool obs_sceneitem_set_locked(obs_sceneitem_t *item, bool lock);
1497 
1498 /* Functions for getting/setting specific orientation of a scene item */
1500  const struct vec2 *pos);
1501 EXPORT void obs_sceneitem_set_rot(obs_sceneitem_t *item, float rot_deg);
1503  const struct vec2 *scale);
1505  uint32_t alignment);
1507  enum obs_order_movement movement);
1509  int position);
1511  enum obs_bounds_type type);
1513  uint32_t alignment);
1515  const struct vec2 *bounds);
1516 
1518 
1520  struct vec2 *pos);
1521 EXPORT float obs_sceneitem_get_rot(const obs_sceneitem_t *item);
1523  struct vec2 *scale);
1525 
1530  struct vec2 *bounds);
1531 
1533  struct obs_transform_info *info);
1535  const struct obs_transform_info *info);
1536 
1538  struct matrix4 *transform);
1540  struct matrix4 *transform);
1542  struct vec2 *scale);
1543 
1544 EXPORT bool obs_sceneitem_visible(const obs_sceneitem_t *item);
1545 EXPORT bool obs_sceneitem_set_visible(obs_sceneitem_t *item, bool visible);
1546 
1548  int left;
1549  int top;
1550  int right;
1551  int bottom;
1552 };
1553 
1555  const struct obs_sceneitem_crop *crop);
1557  struct obs_sceneitem_crop *crop);
1558 
1560  enum obs_scale_type filter);
1563 
1565 
1568 
1572 
1574  const char *name);
1576  const char *name,
1577  obs_sceneitem_t **items,
1578  size_t count);
1579 
1581  const char *name);
1582 
1584 
1586 
1588 
1590  obs_sceneitem_t *item);
1592  obs_sceneitem_t *item);
1593 
1595  obs_sceneitem_t *item);
1596 
1597 EXPORT bool obs_source_is_group(const obs_source_t *source);
1598 EXPORT bool obs_scene_is_group(const obs_scene_t *scene);
1599 
1601  bool (*callback)(obs_scene_t *,
1602  obs_sceneitem_t *,
1603  void *),
1604  void *param);
1605 
1608 
1609 /* ------------------------------------------------------------------------- */
1610 /* Outputs */
1611 
1612 EXPORT const char *obs_output_get_display_name(const char *id);
1613 
1620 EXPORT obs_output_t *obs_output_create(const char *id, const char *name,
1621  obs_data_t *settings,
1622  obs_data_t *hotkey_data);
1623 
1628 EXPORT void obs_output_addref(obs_output_t *output);
1629 EXPORT void obs_output_release(obs_output_t *output);
1630 
1633 
1637 
1639  obs_output_t *output);
1640 
1641 EXPORT const char *obs_output_get_name(const obs_output_t *output);
1642 
1644 EXPORT bool obs_output_start(obs_output_t *output);
1645 
1647 EXPORT void obs_output_stop(obs_output_t *output);
1648 
1654 #define OBS_OUTPUT_DELAY_PRESERVE (1 << 0)
1655 
1663 EXPORT void obs_output_set_delay(obs_output_t *output, uint32_t delay_sec,
1664  uint32_t flags);
1665 
1668 
1671 
1674 
1676 EXPORT bool obs_output_active(const obs_output_t *output);
1677 
1680 
1682 EXPORT uint32_t obs_get_output_flags(const char *id);
1683 
1685 EXPORT obs_data_t *obs_output_defaults(const char *id);
1686 
1689 
1695 
1697 EXPORT void obs_output_update(obs_output_t *output, obs_data_t *settings);
1698 
1700 EXPORT bool obs_output_can_pause(const obs_output_t *output);
1701 
1703 EXPORT bool obs_output_pause(obs_output_t *output, bool pause);
1704 
1706 EXPORT bool obs_output_paused(const obs_output_t *output);
1707 
1708 /* Gets the current output settings string */
1710 
1714 
1717 
1722 EXPORT void obs_output_set_media(obs_output_t *output, video_t *video,
1723  audio_t *audio);
1724 
1727 
1730 
1732 EXPORT void obs_output_set_mixer(obs_output_t *output, size_t mixer_idx);
1733 
1735 EXPORT size_t obs_output_get_mixer(const obs_output_t *output);
1736 
1738 EXPORT void obs_output_set_mixers(obs_output_t *output, size_t mixers);
1739 
1741 EXPORT size_t obs_output_get_mixers(const obs_output_t *output);
1742 
1748  obs_encoder_t *encoder);
1749 
1759  obs_encoder_t *encoder, size_t idx);
1760 
1763 
1772  size_t idx);
1773 
1776  obs_service_t *service);
1777 
1780 
1785  int retry_count, int retry_sec);
1786 
1790 
1800  uint32_t height);
1801 
1804 
1807 
1808 EXPORT const char *obs_output_get_id(const obs_output_t *output);
1809 
1810 #if BUILD_CAPTIONS
1811 EXPORT void obs_output_output_caption_text1(obs_output_t *output,
1812  const char *text);
1813 EXPORT void obs_output_output_caption_text2(obs_output_t *output,
1814  const char *text,
1815  double display_duration);
1816 #endif
1817 
1820 
1821 EXPORT bool obs_output_reconnecting(const obs_output_t *output);
1822 
1825  const char *message);
1826 EXPORT const char *obs_output_get_last_error(obs_output_t *output);
1827 
1828 EXPORT const char *
1830 EXPORT const char *
1832 
1833 /* ------------------------------------------------------------------------- */
1834 /* Functions used by outputs */
1835 
1837 
1839 EXPORT void
1841  const struct video_scale_info *conversion);
1842 
1844 EXPORT void
1846  const struct audio_convert_info *conversion);
1847 
1850  uint32_t flags);
1851 
1854  uint32_t flags);
1855 
1869 
1872 
1879 EXPORT void obs_output_signal_stop(obs_output_t *output, int code);
1880 
1882 
1883 /* ------------------------------------------------------------------------- */
1884 /* Encoders */
1885 
1886 EXPORT const char *obs_encoder_get_display_name(const char *id);
1887 
1896 EXPORT obs_encoder_t *obs_video_encoder_create(const char *id, const char *name,
1897  obs_data_t *settings,
1898  obs_data_t *hotkey_data);
1899 
1909 EXPORT obs_encoder_t *obs_audio_encoder_create(const char *id, const char *name,
1910  obs_data_t *settings,
1911  size_t mixer_idx,
1912  obs_data_t *hotkey_data);
1913 
1918 EXPORT void obs_encoder_addref(obs_encoder_t *encoder);
1920 
1923 
1927 
1929  obs_encoder_t *encoder);
1930 
1931 EXPORT void obs_encoder_set_name(obs_encoder_t *encoder, const char *name);
1932 EXPORT const char *obs_encoder_get_name(const obs_encoder_t *encoder);
1933 
1935 EXPORT const char *obs_get_encoder_codec(const char *id);
1936 
1938 EXPORT enum obs_encoder_type obs_get_encoder_type(const char *id);
1939 
1941 EXPORT const char *obs_encoder_get_codec(const obs_encoder_t *encoder);
1942 
1945 
1952  uint32_t height);
1953 
1956 
1959 
1962 
1972  enum video_format format);
1973 EXPORT enum video_format
1975 
1977 EXPORT obs_data_t *obs_encoder_defaults(const char *id);
1979 
1982 
1988 
1993 EXPORT void obs_encoder_update(obs_encoder_t *encoder, obs_data_t *settings);
1994 
1996 EXPORT bool obs_encoder_get_extra_data(const obs_encoder_t *encoder,
1997  uint8_t **extra_data, size_t *size);
1998 
2001 
2003 EXPORT void obs_encoder_set_video(obs_encoder_t *encoder, video_t *video);
2004 
2006 EXPORT void obs_encoder_set_audio(obs_encoder_t *encoder, audio_t *audio);
2007 
2013 
2019 
2021 EXPORT bool obs_encoder_active(const obs_encoder_t *encoder);
2022 
2024 
2025 EXPORT const char *obs_encoder_get_id(const obs_encoder_t *encoder);
2026 
2027 EXPORT uint32_t obs_get_encoder_caps(const char *encoder_id);
2029 
2030 #ifndef SWIG
2031 
2032 DEPRECATED
2034  const struct encoder_packet *src);
2035 
2036 DEPRECATED
2037 EXPORT void obs_free_encoder_packet(struct encoder_packet *packet);
2038 #endif
2039 
2041  struct encoder_packet *src);
2042 EXPORT void obs_encoder_packet_release(struct encoder_packet *packet);
2043 
2045  const char *reroute_id);
2046 
2048 EXPORT bool obs_encoder_paused(const obs_encoder_t *output);
2049 
2050 /* ------------------------------------------------------------------------- */
2051 /* Stream Services */
2052 
2053 EXPORT const char *obs_service_get_display_name(const char *id);
2054 
2055 EXPORT obs_service_t *obs_service_create(const char *id, const char *name,
2056  obs_data_t *settings,
2057  obs_data_t *hotkey_data);
2058 
2060  const char *name,
2061  obs_data_t *settings);
2062 
2067 EXPORT void obs_service_addref(obs_service_t *service);
2069 
2072 
2076 
2078  obs_service_t *service);
2079 
2080 EXPORT const char *obs_service_get_name(const obs_service_t *service);
2081 
2083 EXPORT obs_data_t *obs_service_defaults(const char *id);
2084 
2087 
2093 
2095 EXPORT const char *obs_service_get_type(const obs_service_t *service);
2096 
2098 EXPORT void obs_service_update(obs_service_t *service, obs_data_t *settings);
2099 
2102 
2104 EXPORT const char *obs_service_get_url(const obs_service_t *service);
2105 
2107 EXPORT const char *obs_service_get_key(const obs_service_t *service);
2108 
2110 EXPORT const char *obs_service_get_username(const obs_service_t *service);
2111 
2113 EXPORT const char *obs_service_get_password(const obs_service_t *service);
2114 
2121 EXPORT void
2123  obs_data_t *video_encoder_settings,
2124  obs_data_t *audio_encoder_settings);
2125 
2127 
2128 EXPORT const char *obs_service_get_id(const obs_service_t *service);
2129 
2130 /* NOTE: This function is temporary and should be removed/replaced at a later
2131  * date. */
2132 EXPORT const char *obs_service_get_output_type(const obs_service_t *service);
2133 
2134 /* ------------------------------------------------------------------------- */
2135 /* Source frame allocation functions */
2136 EXPORT void obs_source_frame_init(struct obs_source_frame *frame,
2137  enum video_format format, uint32_t width,
2138  uint32_t height);
2139 
2140 static inline void obs_source_frame_free(struct obs_source_frame *frame)
2141 {
2142  if (frame) {
2143  bfree(frame->data[0]);
2144  memset(frame, 0, sizeof(*frame));
2145  }
2146 }
2147 
2148 static inline struct obs_source_frame *
2149 obs_source_frame_create(enum video_format format, uint32_t width,
2150  uint32_t height)
2151 {
2152  struct obs_source_frame *frame;
2153 
2154  frame = (struct obs_source_frame *)bzalloc(sizeof(*frame));
2156  return frame;
2157 }
2158 
2159 static inline void obs_source_frame_destroy(struct obs_source_frame *frame)
2160 {
2161  if (frame) {
2162  bfree(frame->data[0]);
2163  bfree(frame);
2164  }
2165 }
2166 
2168  const struct obs_source_frame *src);
2169 
2170 #ifdef __cplusplus
2171 }
2172 #endif
EXPORT void obs_source_filter_set_order(obs_source_t *source, obs_source_t *filter, enum obs_order_movement movement)
EXPORT void obs_source_preload_video2(obs_source_t *source, const struct obs_source_frame2 *frame)
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:161
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:176
Definition: obs.h:263
EXPORT void obs_output_set_audio_conversion(obs_output_t *output, const struct audio_convert_info *conversion)
float rot
Definition: obs.h:140
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)
EXPORT const char * obs_output_get_last_error(obs_output_t *output)
uint32_t height
Definition: obs.h:232
EXPORT void obs_sceneitem_set_alignment(obs_sceneitem_t *item, uint32_t alignment)
Definition: obs-scene.h:87
EXPORT bool obs_source_active(const obs_source_t *source)
EXPORT void obs_apply_private_data(obs_data_t *settings)
EXPORT uint64_t obs_output_get_pause_offset(obs_output_t *output)
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:67
EXPORT gs_effect_t * obs_get_base_effect(enum obs_base_effect effect)
uint32_t base_width
Definition: obs.h:163
EXPORT void obs_source_set_async_decoupled(obs_source_t *source, bool decouple)
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:212
EXPORT obs_scene_t * obs_sceneitem_get_scene(const obs_sceneitem_t *item)
Definition: obs.h:694
Definition: obs.h:1095
EXPORT void obs_scene_enum_items(obs_scene_t *scene, bool(*callback)(obs_scene_t *, obs_sceneitem_t *, void *), void *param)
EXPORT void obs_sceneitem_get_box_scale(const obs_sceneitem_t *item, struct vec2 *scale)
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:1347
EXPORT void obs_output_set_reconnect_settings(obs_output_t *output, int retry_count, int retry_sec)
void(* obs_enum_module_callback_t)(void *param, obs_module_t *module)
Definition: obs.h:474
EXPORT void obs_sceneitem_set_bounds_type(obs_sceneitem_t *item, enum obs_bounds_type type)
EXPORT void obs_output_set_mixers(obs_output_t *output, size_t mixers)
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)
EXPORT void obs_remove_main_render_callback(void(*draw)(void *param, uint32_t cx, uint32_t cy), void *param)
EXPORT void obs_sceneitem_group_remove_item(obs_sceneitem_t *group, obs_sceneitem_t *item)
EXPORT enum obs_transition_scale_type obs_transition_get_scale_type(const obs_source_t *transition)
uint32_t frames
Definition: obs.h:196
EXPORT void obs_sceneitem_select(obs_sceneitem_t *item, bool select)
Definition: video-io.h:211
int right
Definition: obs.h:1550
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:164
EXPORT audio_t * obs_output_audio(const obs_output_t *output)
EXPORT struct obs_cmdline_args obs_get_cmdline_args(void)
void(* obs_scene_atomic_update_func)(void *, obs_scene_t *scene)
Definition: obs.h:1474
#define DEPRECATED
Definition: c99defs.h:30
float color_range_max[3]
Definition: obs.h:239
EXPORT void obs_remove_raw_video_callback(void(*callback)(void *param, struct video_data *frame), void *param)
EXPORT void obs_source_set_enabled(obs_source_t *source, bool enabled)
EXPORT void obs_sceneitem_defer_group_resize_begin(obs_sceneitem_t *item)
Definition: obs.h:1324
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)
EXPORT uint32_t obs_source_get_last_obs_version(const obs_source_t *source)
EXPORT bool obs_remove_data_path(const char *path)
EXPORT void obs_source_copy_filters(obs_source_t *dst, obs_source_t *src)
EXPORT uint32_t obs_output_get_flags(const obs_output_t *output)
Definition: obs.h:618
Definition: obs-internal.h:872
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:621
EXPORT bool obs_source_audio_pending(const obs_source_t *source)
EXPORT uint32_t obs_encoder_get_caps(const obs_encoder_t *encoder)
Definition: obs-interaction.h:44
Definition: obs-internal.h:846
EXPORT bool obs_output_can_begin_data_capture(const obs_output_t *output, uint32_t flags)
void(* obs_source_enum_proc_t)(obs_source_t *parent, obs_source_t *child, void *param)
Definition: obs-source.h:153
EXPORT size_t obs_output_get_mixers(const obs_output_t *output)
EXPORT const char * obs_service_get_name(const obs_service_t *service)
enum speaker_layout speakers
Definition: obs.h:187
Definition: obs.h:693
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 const char * obs_output_get_supported_video_codecs(const obs_output_t *output)
EXPORT void obs_output_signal_stop(obs_output_t *output, int code)
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:558
EXPORT int64_t obs_sceneitem_get_id(const obs_sceneitem_t *item)
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:179
Definition: vec3.h:33
int int32_t
Definition: vc_stdint.h:30
Definition: obs-internal.h:989
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)
obs_sceneitem_t * group
Definition: obs.h:1462
EXPORT obs_properties_t * obs_get_output_properties(const char *id)
EXPORT void obs_set_cmdline_args(int argc, const char *const *argv)
EXPORT void obs_transition_swap_end(obs_source_t *tr_dest, obs_source_t *tr_source)
audio_format
Definition: audio-io.h:44
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_enum_scenes(bool(*enum_proc)(void *, obs_source_t *), void *param)
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 obs_sceneitem_t * obs_sceneitem_get_group(obs_scene_t *scene, obs_sceneitem_t *item)
EXPORT void obs_source_update_properties(obs_source_t *source)
EXPORT bool obs_source_is_group(const obs_source_t *source)
EXPORT obs_sceneitem_t * obs_scene_get_group(obs_scene_t *scene, const char *name)
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 void obs_sceneitem_defer_group_resize_end(obs_sceneitem_t *item)
EXPORT obs_source_t * obs_source_get_ref(obs_source_t *source)
float color_range_min[3]
Definition: obs.h:238
uint64_t timestamp
Definition: obs.h:233
EXPORT obs_data_array_t * obs_save_sources(void)
obs_obj_type
Definition: obs.h:690
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:208
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:132
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)
char ** argv
Definition: obs.h:265
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:479
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:695
EXPORT void obs_sceneitem_group_enum_items(obs_sceneitem_t *group, bool(*callback)(obs_scene_t *, obs_sceneitem_t *, void *), void *param)
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:230
EXPORT void obs_render_main_texture_src_color_only(void)
EXPORT float obs_sceneitem_get_rot(const obs_sceneitem_t *item)
uint64_t timestamp
Definition: obs.h:197
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:619
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:104
gs_color_format
Definition: graphics.h:56
EXPORT void obs_add_raw_video_callback(const struct video_scale_info *conversion, void(*callback)(void *param, struct video_data *frame), void *param)
obs_transition_mode
Definition: obs.h:1334
enum audio_format format
Definition: obs.h:209
obs_deinterlace_mode
Definition: obs.h:1089
EXPORT audio_t * obs_encoder_audio(const obs_encoder_t *encoder)
obs_bounds_type
Definition: obs.h:128
Definition: obs-encoder.h:43
Definition: obs.h:1117
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_data_t * obs_encoder_get_defaults(const obs_encoder_t *encoder)
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)
EXPORT void obs_sceneitem_force_update_transform(obs_sceneitem_t *item)
int bottom
Definition: obs.h:1551
Definition: obs.h:691
EXPORT void obs_source_send_focus(obs_source_t *source, bool focus)
uint8_t * data[MAX_AV_PLANES]
Definition: obs.h:195
EXPORT obs_source_t * obs_weak_source_get_source(obs_weak_source_t *weak)
Definition: obs.h:1346
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 obs_data_t * obs_get_private_data(void)
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_display_t * obs_display_create(const struct gs_init_data *graphics_data, uint32_t backround_color)
EXPORT gs_texture_t * obs_get_main_texture(void)
EXPORT obs_data_t * obs_output_defaults(const char *id)
EXPORT enum speaker_layout obs_source_get_speaker_layout(obs_source_t *source)
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)
EXPORT uint64_t obs_get_frame_interval_ns(void)
Definition: obs.h:1323
const char * bin_path
Definition: obs.h:463
struct obs_properties obs_properties_t
Definition: obs-properties.h:110
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)
float(* obs_transition_audio_mix_callback_t)(void *data, float t)
Definition: obs.h:1379
obs_transition_scale_type
Definition: obs.h:1344
EXPORT obs_sceneitem_t * obs_scene_add(obs_scene_t *scene, obs_source_t *source)
EXPORT bool obs_transition_video_render_direct(obs_source_t *transition, enum obs_transition_target target)
obs_scene_duplicate_type
Definition: obs.h:1422
Definition: obs.h:138
EXPORT void obs_display_destroy(obs_display_t *display)
EXPORT void obs_add_main_render_callback(void(*draw)(void *param, uint32_t cx, uint32_t cy), void *param)
uint32_t samples_per_sec
Definition: obs.h:210
EXPORT void obs_view_destroy(obs_view_t *view)
EXPORT const char * obs_source_get_id(const obs_source_t *source)
uint32_t linesize[MAX_AV_PLANES]
Definition: obs.h:249
EXPORT void obs_output_set_preferred_size(obs_output_t *output, uint32_t width, uint32_t height)
Definition: obs.h:1091
EXPORT void obs_sceneitem_group_add_item(obs_sceneitem_t *group, obs_sceneitem_t *item)
EXPORT bool obs_nv12_tex_active(void)
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_delay(obs_output_t *output, uint32_t delay_sec, uint32_t flags)
EXPORT void obs_source_output_video2(obs_source_t *source, const struct obs_source_frame2 *frame)
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:1116
Definition: obs.h:1425
const char * data_path
Definition: obs.h:464
int argc
Definition: obs.h:264
Definition: obs.h:617
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)
EXPORT bool obs_scene_reorder_items2(obs_scene_t *scene, struct obs_sceneitem_order_info *item_order, size_t item_order_size)
#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)
EXPORT obs_sceneitem_t * obs_scene_insert_group(obs_scene_t *scene, const char *name, obs_sceneitem_t **items, size_t count)
Definition: obs-internal.h:548
Definition: obs.h:1094
EXPORT bool obs_enum_input_types(size_t idx, const char **id)
EXPORT void obs_output_set_last_error(obs_output_t *output, const char *message)
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 bool obs_source_async_unbuffered(const obs_source_t *source)
Definition: obs.h:98
EXPORT const char * obs_service_get_id(const obs_service_t *service)
Definition: obs-internal.h:190
EXPORT void obs_enum_modules(obs_enum_module_callback_t callback, void *param)
obs_source_type
Definition: obs-source.h:33
uint8_t * data[MAX_AV_PLANES]
Definition: obs.h:229
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:231
EXPORT uint32_t obs_get_output_flags(const char *id)
Definition: obs.h:1090
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)
EXPORT void obs_source_set_async_unbuffered(obs_source_t *source, bool unbuffered)
EXPORT bool obs_encoder_paused(const obs_encoder_t *output)
EXPORT bool obs_video_active(void)
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)
void(* obs_load_source_cb)(void *private_data, obs_source_t *source)
Definition: obs.h:677
EXPORT void obs_output_force_stop(obs_output_t *output)
const char * graphics_module
Definition: obs.h:157
EXPORT obs_data_t * obs_save_source(obs_source_t *source)
uint32_t alignment
Definition: obs.h:142
bool gpu_conversion
Definition: obs.h:174
Definition: obs.h:115
uint32_t samples_per_sec
Definition: obs.h:186
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:134
bool(* obs_save_source_filter_cb)(void *data, obs_source_t *source)
Definition: obs.h:686
Definition: obs.h:131
Definition: obs-internal.h:1000
Definition: obs-internal.h:83
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 bool obs_output_reconnecting(const obs_output_t *output)
EXPORT void obs_set_master_volume(float volume)
EXPORT bool obs_source_audio_active(const obs_source_t *source)
Definition: effect.h:150
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)
void(* obs_find_module_callback_t)(void *param, const struct obs_module_info *info)
Definition: obs.h:467
Definition: obs.h:625
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:73
obs_deinterlace_field_order
Definition: obs.h:1101
Definition: obs.h:1345
EXPORT obs_source_t * obs_filter_get_parent(const obs_source_t *filter)
EXPORT bool obs_output_paused(const obs_output_t *output)
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:1424
header for modules implementing sources.
EXPORT const char * obs_service_get_output_type(const obs_service_t *service)
Definition: video-io.h:85
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_source_dec_active(obs_source_t *source)
EXPORT void obs_sceneitem_get_box_transform(const obs_sceneitem_t *item, struct matrix4 *transform)
Definition: obs.h:101
Definition: obs.h:622
Definition: obs.h:247
EXPORT void obs_source_set_balance_value(obs_source_t *source, float balance)
EXPORT const char * obs_get_locale(void)
EXPORT bool obs_init_module(obs_module_t *module)
EXPORT const char * obs_output_get_supported_audio_codecs(const obs_output_t *output)
EXPORT bool obs_sceneitem_is_group(obs_sceneitem_t *item)
obs_transition_target
Definition: obs.h:1322
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 void obs_source_preload_video(obs_source_t *source, const struct obs_source_frame *frame)
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 void obs_add_tick_callback(void(*tick)(void *param, float seconds), void *param)
EXPORT const char * obs_encoder_get_id(const obs_encoder_t *encoder)
EXPORT void obs_sceneitem_group_ungroup(obs_sceneitem_t *group)
EXPORT void obs_encoder_set_video(obs_encoder_t *encoder, video_t *video)
enum video_format output_format
Definition: obs.h:168
Definition: obs.h:120
bool flip
Definition: obs.h:240
float color_matrix[16]
Definition: obs.h:236
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:260
EXPORT void obs_source_set_audio_active(obs_source_t *source, bool show)
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:1097
EXPORT void obs_source_send_mouse_move(obs_source_t *source, const struct obs_mouse_event *event, bool mouse_leave)
EXPORT void obs_transition_force_stop(obs_source_t *transition)
const uint8_t * data[MAX_AV_PLANES]
Definition: obs.h:205
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)
DEPRECATED EXPORT void obs_render_main_view(void)
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:228
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_remove_tick_callback(void(*tick)(void *param, float seconds), void *param)
EXPORT void obs_output_stop(obs_output_t *output)
struct obs_fader obs_fader_t
Definition: obs.h:63
bool(* obs_enum_audio_device_cb)(void *data, const char *name, const char *id)
Definition: obs.h:703
Definition: audio-io.h:78
EXPORT proc_handler_t * obs_get_proc_handler(void)
uint32_t height
Definition: obs.h:251
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:235
Definition: obs.h:462
uint8_t * data[MAX_AV_PLANES]
Definition: obs.h:248
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:152
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:615
EXPORT void obs_enum_outputs(bool(*enum_proc)(void *, obs_output_t *), void *param)
Definition: obs.h:99
float color_matrix[16]
Definition: obs.h:256
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)
enum video_format format
Definition: obs.h:254
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:139
Definition: bounds.h:39
EXPORT void obs_source_save(obs_source_t *source)
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_data_t * obs_source_get_private_settings(obs_source_t *item)
EXPORT obs_weak_encoder_t * obs_encoder_get_weak_encoder(obs_encoder_t *encoder)
enum video_range_type range
Definition: obs.h:255
EXPORT obs_data_t * obs_sceneitem_get_private_settings(obs_sceneitem_t *item)
Definition: obs-source.h:156
EXPORT void * obs_obj_get_data(void *obj)
EXPORT obs_properties_t * obs_source_properties(const obs_source_t *source)
uint32_t output_height
Definition: obs.h:167
Definition: obs-internal.h:1095
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:620
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)
uint64_t timestamp
Definition: obs.h:252
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:1335
EXPORT void obs_scene_addref(obs_scene_t *scene)
Definition: obs.h:204
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 void obs_source_default_render(obs_source_t *source)
EXPORT const char * obs_get_module_binary_path(obs_module_t *module)
bool flip
Definition: obs.h:259
uint32_t adapter
Definition: obs.h:171
EXPORT obs_source_t * obs_scene_get_source(const obs_scene_t *scene)
EXPORT void obs_source_load(obs_source_t *source)
obs_allow_direct_render
Definition: obs.h:109
EXPORT void * obs_encoder_create_rerouted(obs_encoder_t *encoder, const char *reroute_id)
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 bool obs_scene_is_group(const obs_scene_t *scene)
EXPORT obs_data_array_t * obs_save_sources_filtered(obs_save_source_filter_cb cb, void *data)
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)
Definition: obs.h:624
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:1096
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:623
uint32_t fps_num
Definition: obs.h:160
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:185
EXPORT obs_sceneitem_t * obs_scene_add_group(obs_scene_t *scene, const char *name)
Definition: obs.h:692
volatile long refs
Definition: obs.h:243
EXPORT bool obs_source_showing(const obs_source_t *source)
EXPORT uint32_t obs_output_get_width(const obs_output_t *output)
EXPORT void obs_render_main_texture(void)
EXPORT obs_data_t * obs_source_get_settings(const obs_source_t *source)
float color_range_max[3]
Definition: obs.h:258
EXPORT void obs_set_private_data(obs_data_t *settings)
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 bool obs_source_async_decoupled(const obs_source_t *source)
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
EXPORT void obs_service_addref(obs_service_t *service)
EXPORT int obs_output_get_connect_time_ms(obs_output_t *output)
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:135
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:1093
EXPORT void obs_source_set_monitoring_type(obs_source_t *source, enum obs_monitoring_type type)
int left
Definition: obs.h:1548
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
float color_range_min[3]
Definition: obs.h:257
Definition: obs.h:1423
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:141
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)
Definition: obs.h:1461
obs_encoder_type
Definition: obs-encoder.h:37
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 bool obs_sceneitem_set_locked(obs_sceneitem_t *item, bool lock)
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:1100
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:1102
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:1115
EXPORT void obs_sceneitem_remove(obs_sceneitem_t *item)
obs_sceneitem_t * item
Definition: obs.h:1463
EXPORT void obs_source_release_frame(obs_source_t *source, struct obs_source_frame *frame)
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:1374
EXPORT const char * obs_get_version_string(void)
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:130
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:145
enum obs_bounds_type bounds_type
Definition: obs.h:144
EXPORT obs_data_t * obs_get_source_defaults(const char *id)
int top
Definition: obs.h:1549
obs_order_movement
Definition: obs.h:97
bool full_range
Definition: obs.h:237
uint32_t frames
Definition: obs.h:206
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:616
EXPORT obs_data_t * obs_service_defaults(const char *id)
EXPORT void obs_source_inc_active(obs_source_t *source)
Definition: obs.h:1092
void(* obs_source_audio_capture_t)(void *param, obs_source_t *source, const struct audio_data *audio_data, bool muted)
Definition: obs.h:1080
EXPORT bool obs_enum_output_types(size_t idx, const char **id)
Definition: obs.h:129
Definition: obs.h:133
video_range_type
Definition: video-io.h:79
__int64 int64_t
Definition: vc_stdint.h:32
EXPORT void bfree(void *ptr)
enum video_range_type range
Definition: obs.h:177
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)
uint32_t width
Definition: obs.h:250
EXPORT void obs_source_frame_copy(struct obs_source_frame *dst, const struct obs_source_frame *src)
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 bool obs_sceneitem_locked(const obs_sceneitem_t *item)
EXPORT void obs_source_show_preloaded_video(obs_source_t *source)
EXPORT void obs_display_size(obs_display_t *display, uint32_t *width, uint32_t *height)
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:1547
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)
EXPORT uint64_t obs_get_average_frame_time_ns(void)
Definition: obs.h:1098
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:201
EXPORT obs_properties_t * obs_get_service_properties(const char *id)
Definition: obs.h:1426
EXPORT void obs_view_set_source(obs_view_t *view, uint32_t channel, obs_source_t *source)
EXPORT obs_sceneitem_t * obs_scene_find_sceneitem_by_id(obs_scene_t *scene, int64_t id)
Definition: obs.h:119
uint32_t output_width
Definition: obs.h:166
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 char * obs_find_data_file(const char *file)
EXPORT void obs_load_all_modules(void)
EXPORT void obs_source_skip_video_filter(obs_source_t *filter)
EXPORT uint32_t obs_get_total_frames(void)
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:42
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)
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:194
header for modules implementing services.
EXPORT float obs_transition_get_time(obs_source_t *transition)
EXPORT void obs_post_load_modules(void)
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_output_pause(obs_output_t *output, bool pause)
EXPORT obs_scene_t * obs_sceneitem_group_get_scene(const obs_sceneitem_t *group)
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_add_data_path(const char *path)
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:244
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 uint32_t obs_get_lagged_frames(void)
EXPORT obs_service_t * obs_get_service_by_name(const char *name)
EXPORT float obs_source_get_balance_value(const obs_source_t *source)
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)