Commit Graph

44 Commits (1a7a47dd3b96e20ee57f545b83bf2aadc14d8fcd)

Author SHA1 Message Date
Clayton Groeneveld a70014d7b2 UI: Add ability to make screenshots
Co-authored-by: Jim <obs.jim@gmail.com>
2020-07-30 17:41:43 -07:00
Exeldro b7a17d5b22 docs/sphinx: Add Property Grouping 2020-04-15 16:40:52 +02:00
Matt Gajownik 7ee1bb2df6 docs/sphinx: Bump major OBS version 2020-03-28 23:17:20 +11:00
jp9000 b9d6675e2c libobs: Add ability to rotate async sources 2020-03-01 03:39:54 -08:00
jp9000 de363d3e09 libobs: Add obs_encoder_scaling_enabled()
Returns whether rescaling is enabled for an encoder.  This will be used
with texture-based encoders to determine whether to fall back to
RAM-based encoding instead.
2020-02-18 20:58:58 -08:00
jp9000 9f297dde2c docs/sphinx: Fix missing parameter in documentation 2020-02-08 01:51:51 -08:00
jp9000 99e639015f libobs: Add group functions that can signal refresh
Adds API:
obs_scene_add_group2
obs_scene_insert_group2
obs_sceneitem_group_ungroup2

These functions should be used by plugins if they need to use these
functions and need to send a refresh signal.  If a major API rework ever
happens the old functions should be removed.  The old functions should
eventually be deprecated.

The reason why specifying a 'signal' parameter is useful is because it's
a bit more seamless for the user interface to be able to have custom
handling of these specific cases.  It looks better and doesn't require
completely erasing/recreating the entire list, which is visually
unappealing.
2020-02-07 16:45:04 -08:00
jp9000 6d0ef75663 libobs: Add refresh signal to scenes
This signal is used to specify when a scene needs a full refresh of its
item list.
2020-02-07 16:35:20 -08:00
jp9000 5027709320 docs/sphinx: Fix typo 2020-02-07 16:21:34 -08:00
Exeldro 5c30f8343e docs/sphinx: add media controls 2020-02-06 18:44:04 +01:00
Exeldro 1564eb63e7 docs/sphinx: add source icon 2020-02-06 17:51:56 +01:00
jp9000 3aa08c4e0f libobs: Add obs_scene_find_source_recursive
Same as obs_scene_find_source but also searches groups within the scene.
2020-01-27 14:36:53 -08:00
Exeldro 81b7618926 docs/sphinx: Add obs_group_from_source 2020-01-19 09:22:33 +01:00
Exeldro ec655bbcb9 docs/sphinx: Add obs_enum_scenes 2020-01-19 09:21:53 +01:00
jp9000 70582174c3 libobs: Add the ability to make sources obsolete
This allows the ability to do things such as change defaults or
properties of sources without necessarily breaking older user
configurations that had older defaults or properties.
2020-01-15 01:49:18 -08:00
Scratch e462937fbc docs/sphinx: Fix obs_property_list_item_disable entry 2020-01-10 10:31:19 +11:00
luz.paz d124e6402c docs/sphinx: Fix various typos
(This modifies UI, libobs, deps/obs-scripting, various cmake files)

Found using:
`codespell -q 3 -S *.ini,./UI/data/locale,./deps/w32-pthreads -L aci,dur,iff,mut,numer,uint`
2019-10-14 17:19:38 -07:00
jp9000 eab10d48b2 UI: Add pause support
Adds support for pausing recordings.  When settings are eligible for
recordings, a pause button will appear next to the recording button.  If
the settings are not eligible, it will warn the user in the output
settings that they cannot pause recordings if those settings are used.
2019-07-08 08:11:56 -07:00
jp9000 153fa6337f libobs: Implement pausing of outputs
This implements pausing of outputs.  To accomplish this, raw audio/video
data is halted to the encoders or raw output.  Pausing is as precisely
timed as possible according to the timing of the obs_output_pause call,
and audio data will be spliced down to the exact audio sample in
accordance to that timing at the start/end marks.

Outputs that support this (outputs used for recording) can set the
OBS_OUTPUT_CAN_PAUSE capability flag.
2019-07-07 16:38:22 -07:00
Chris Angelico 2fe641b8a4 libobs, UI: Implement item_locked event
Similar to item_visible, this event fires whenever a scene item is
locked or unlocked. This allows the UI and libobs to remain in sync
regarding scene elements' statuses.
2019-06-15 16:09:10 -07:00
jp9000 973d31b8c2 libobs: Fix lockup when an encode call fails
(This commit also modifies the UI, obs-ffmpeg, and obs-output modules)

Fixes a long-time regression where the program would lock up if an
encode call fails.  Shuts down all outputs associated with the failing
encoder and displays an error message to the user.

Ideally, it would be best if a more detailed error could be displayed to
the user about the nature of the error, though the primary problem is
the encoder errors are typically not something the user would be able to
understand.  The current message is a bit of a generic error message;
improvement is welcome.

Another suggestion is to try to have the encoder restart seamlessly,
though it would take a significant amount of work to be able to make it
do something like that properly, and it sort of assumes that encoder
failures are sporadic, which may not necessarily be the case with some
hardware encoders on some systems.  It may be better just to use another
encoder in that case.  For now, seamless restart is ruled out.
2019-05-17 01:51:12 -07:00
Jim 3a3cfce29d
Merge pull request #1873 from Palakis/feature/frontend-api-studio-mode-transition
obs-frontend-api: Add method to trigger a Studio Mode transition
2019-05-09 19:24:59 -07:00
Stéphane L 4762351258 obs-frontend-api: Add func to trigger a Studio Mode transition 2019-05-09 17:01:08 -07:00
Stéphane L d3910149d2 obs-frontend-api: Add methods to get/set transition duration 2019-05-09 16:58:47 -07:00
jp9000 b8a3ae1b10 libobs: Add multi-track support to non-encoded outputs 2018-10-04 20:32:35 -07:00
VodBox 293c97fe78 docs/sphinx: Add missing obs_sceneitem_get_id info 2018-09-18 21:34:44 +12:00
Jim e615dffce5
Merge pull request #1323 from Andersama/effect-annotation-parsing
libobs: Add HLSL annotation parsing
2018-09-12 01:16:21 -07:00
Alex Anderson 12f925401f docs/sphinx: Add annotation api functions
Add documentation for:

size_t gs_param_get_num_annotations(const gs_eparam_t *param)

gs_eparam_t *gs_param_get_annotation_by_idx(const gs_eparam_t *param,
		size_t annotation);

gs_eparam_t *gs_param_get_annotation_by_name(const gs_eparam_t *param,
		const char *name);

void *gs_effect_get_val(gs_eparam_t *param);

void *gs_effect_get_default_val(gs_eparam_t *param);

size_t gs_effect_get_val_size(gs_eparam_t *param);

size_t gs_effect_get_default_val_size(gs_eparam_t *param);
2018-09-08 05:22:12 -07:00
jp9000 621c519cc5 libobs: Add function to get encoder object's defaults
Rather than relying on the encoder's type identifier, additionally allow
the ability to get defaults via an encoder object.
2018-07-20 01:49:32 -07:00
jp9000 26d5560da3 libobs: Add scene item grouping
Allows the ability to group scene items.  Groups internally are
sub-scenes, which allows the ability to add unique filters and
transforms to each group.
2018-06-03 15:04:39 -07:00
jp9000 3a05cf6ab0 libobs/callback: Add signal reference counting
Adds a simple signal reference counting function
(signal_handler_connect_ref) that makes it so that signals keep the
handler around until the all the signal itself is disconnected.  This
prevents potential crashes where a signal might try to disconnect after
a handler has already been destroyed (typically in C++ with
OBSSignalHandler helper objects, where destruction isn't guaranteed to
be predictable).

This also modifies OBSSignalHandler to use the reference-counting
connections.
2018-06-03 15:04:03 -07:00
Han-Tai Chen 1a3d4d62d7
docs/sphinx: Fix typo in script sources section 2018-05-02 03:23:00 +08:00
Zachary Lund 189e535014 libobs: Add functions to get output capability flags
Closes obsproject/obs-studio#1263
2018-04-25 03:15:30 -07:00
jp9000 c4b482efef libobs: Add functions to get raw video output
Adds obs_add_raw_video_callback() and obs_remove_raw_video_callback()
functions which allow the ability to get raw video frames without
necessarily needing to create an output.
2018-04-23 10:58:30 -07:00
jamacanbacn 8a59d68e47 libobs: Fix property text typo
(This commit also modifies UI)

Closes jp9000/obs-studio#1204
2018-02-27 05:37:40 -08:00
jp9000 84557629d8 docs/sphinx: Clarify Python windows installation 2018-01-22 09:32:29 -08:00
jp9000 da7b8c79a2 docs/sphinx: Clarify vertex buffer usage 2018-01-14 05:31:28 -08:00
SuslikV 2741337755 docs/sphinx: Fix vec3_set
vec4_set was the equivalent to vec2_set.

Closes jp9000/obs-studio#1115
2018-01-04 18:03:21 -08:00
jp9000 e16ff2db31 docs/sphinx: Add scripting documentation 2018-01-04 11:37:43 -08:00
jp9000 190743cf3d doc/sphinx: Add frontend API documentation 2018-01-04 11:37:43 -08:00
jp9000 7f6cf97bd7 libobs: Add obs_render_main_texture
(Note: This commit also modifies UI and test)

This makes it so that main preview panes are rendered with the main
output texture rather than re-rendering the main view.  The view will
render all objects again, whereas the output texture will be a single
texture render of the same exact thing.

Also fixes some abnormal artifacting when scaling the main preview pane.
2018-01-01 18:52:47 -08:00
jp9000 5d9854ea44 libobs/util: Add funcs to push zeroed data to circlebufs
Adds circlebuf_push_front_zero and circlebuf_push_back_zero to
conveniently push zeroed data to the front/back of the buffer without
having to create an intermediary buffer to accomplish the same thing.
2017-12-02 13:52:40 -08:00
jp9000 78411de75e libobs/graphics: Add gs_effect_set_color
Convenience function for setting a color (in hex format, e.g.
0xAARRGGBB)
2017-12-01 12:05:52 -08:00
jp9000 d51e2a019b docs/sphinx: Add sphinx documentation 2017-11-27 03:02:04 -08:00