Commit Graph

3258 Commits (c6914fda458a20b311c32ce2f90357f257d7752b)

Author SHA1 Message Date
jp9000 c6914fda45 libobs/util: Add circlebuf_push_front function 2015-12-22 06:18:14 -08:00
jp9000 5be855e852 libobs: Make scene item visibility activate/deactivate
Before if a source was set to invisible it would still be considered
active.  This changes it so that the source is deactivated when the
source is invisible to reduce needless resource usage or capturing.
2015-12-22 05:49:03 -08:00
jp9000 c8f4fbe42b (API Change) libobs: Rename funcs relating to active child sources
Renames:
----------------------------------------
obs_source_add_child
obs_source_remove_child
obs_source_enum_sources
obs_source_enum_tree
obs_source_info::enum_sources

To:
----------------------------------------
obs_source_add_active_child
obs_source_remove_active_child
obs_source_enum_active_sources
obs_source_enum_active_tree
obs_source_info::enum_active_sources

These functions/callbacks had misleading names: they originally implied
any child sources, when they actually meant active child sources that
are being used to render video or audio.  It's important that the
function names represent their actual purpose.
2015-12-22 05:49:02 -08:00
Palana 684b43ccfa libobs: Move previously ineffective NULL checks 2015-12-22 05:49:02 -08:00
jp9000 3c83be374e UI: Remove obs_source_add and sourceSceneRefs variable
Prunes code used to workaround libobs "user sources" (such as
sourceSceneRefs) and instead simply holds its own references and saves
sources it chooses with obs_save_sources_filtered.
2015-12-22 05:49:01 -08:00
jp9000 e3795a2187 UI: Hold ref when storing signals (skip)
(Note: This commit breaks UI compilation.  Skip if bisecting)

Ensures that a reference is kept until the signals associated with that
reference are disconnected.
2015-12-22 05:49:00 -08:00
Palana ec86bdaa09 libobs: Add obs_save_sources_filtered (skip)
(Note: This commit breaks UI compilation.  Skip if bisecting)

Adds a means of saving specific sources that the front-end chooses,
rather than being forced to use the now-removed "user list".
2015-12-22 05:48:59 -08:00
jp9000 70fec7ae8e (API Change) libobs: Remove "User sources list" (skip)
(Note: This commit breaks UI compilation.  Skip if bisecting)

API Removed:
------------------------
obs_add_source

API Changed:
------------------------
obs_source_remove: Now just marks/signals a source for removal

The concept of "user sources" is flawed: it was something that the
front-end was forced to deal with if it wanted to automate source
saving/loading, and often it had to code around it.  That's not how
saving/loading should work, a front-end should be allowed to manage
lists of sources in the way it explicitly chooses, and it should be able
to choose which sources it wants to save/load.
2015-12-22 05:48:43 -08:00
jp9000 59f0ba0c8a libobs: Add load/save signals for sources
These signals are meant to replace the add/remove signals.
2015-12-22 05:36:22 -08:00
jp9000 2a99e6ff18 libobs-d3d11: Log monitors/VRAM 2015-12-21 14:19:20 -08:00
jp9000 11922265de libobs: Keep reference to source when rendering 2015-12-15 01:11:11 -08:00
jp9000 d1f225e2e8 libobs/callback: Set default return values to 0/NULL
These functions created stack variables but never actually initialized
them.  If the calldata variable is invalid, the return values will be
the uninitialized stack value.
2015-12-15 01:11:10 -08:00
jp9000 091706920f libobs/util: Use malloc/free for temp darray allocations 2015-12-15 01:11:09 -08:00
jp9000 69ab209fdd libobs/util: Use correct dereferenced size with da_swap 2015-12-15 01:11:09 -08:00
jp9000 19969a27d5 libobs: Remove TODO (not used) 2015-12-15 01:11:08 -08:00
jp9000 e23a20874b libobs/util: Rename da_swap_item to da_swap
The name was inconsistent with the darray_swap function that it's a
macro for.
2015-12-15 01:11:07 -08:00
jp9000 2c8887b582 libobs: Update to version 0.12.4 2015-12-11 17:03:08 -08:00
jp9000 bb1b705cd3 libobs: Put obs_get_default_rect_effect back in temporarily
This function was removed even though the browser plugin was using this
function on mac, so this is being put back in temporarily while the
browser plugin is modified to remove this function.
2015-12-11 16:47:22 -08:00
jp9000 4e55cf1125 libobs/util: Add function deprecation defines 2015-12-11 16:45:31 -08:00
jp9000 2c8edb8a8a win-capture: Clear GL error flag before initializing capture
Some games don't catch GL errors via glGetError, so there's a
possibility that an error will pass through to the capture calls,
causing a false failure.

The most simple solution is to just clear the error flag on each capture
call.
2015-12-10 15:54:30 -08:00
jp9000 725a36bc0f libobs: Update version to 0.12.3 2015-12-04 04:23:31 -08:00
jp9000 deca80531e win-capture: Add hook exception for Just Cause 3 2015-12-03 17:19:35 -08:00
jp9000 c32407d1df libobs/media-io: Increase TS smooth threshold to 70ms
With certain devices (AVerMedia C985 and LGP), audio timestamps are
bad, and a 50ms threshold of audio data "smoothing" (making consecutive
audio packets seamless with one another) isn't enough to handle bad
consecutive timestamp values.  After testing, 70ms sufficiently solves
the issue.
2015-11-28 16:42:32 -08:00
Palana 124ccb68de UI: Allow file name generation without spaces
This will probably go away once proper file name formatting is
implemented (https://obsproject.com/mantis/view.php?id=361)
2015-11-27 15:48:30 +01:00
Palana 1cd98ae008 libobs/util: Fix config value line break unescaping
Given a config file with some value "foo=\\n" querying the value of foo
would return {'\\', '\n', 0}, instead of {'\\', 'n', 0}
2015-11-27 15:48:30 +01:00
Palana feb0ccd858 UI: Add HLS entries for ffmpeg-mux output 2015-11-27 15:48:29 +01:00
Palana d4c4a0d1aa UI: Add custom muxer settings for ffmpeg-mux 2015-11-27 15:48:29 +01:00
Palana d870bbb643 obs-ffmpeg: Add custom muxer options to ffmpeg-mux 2015-11-27 15:48:24 +01:00
Palana 38c9c38b9f obs-ffmpeg: Set mux output context filename
This enables e.g. the HLS muxer to output all files in the same directory, with
appropriate names
2015-11-27 15:37:59 +01:00
jp9000 5548e62162 libobs: Update to version 0.12.2 2015-11-20 14:44:17 -08:00
jp9000 1bbb18ea3d obs-filters: Mark unused parameter 2015-11-20 14:31:01 -08:00
jp9000 332359d286 libobs: If filter size invalid, skip filter
This shouldn't happen anymore because crop was fixed, but if a filter
returns 0x0 size and is invalid it shouldn't stop the filter chain.
Instead, it should just be skipped.
2015-11-20 14:07:15 -08:00
jp9000 78d5e27abe obs-filters: Reset cx/cy/mul/add crop vals in tick, not render
To first render the filter, the width/height values must be set, but
currently they're only set in the render function, which means that the
crop filter can never be rendered when the program first starts up.
This would cause the filter to fail to render at all under those
circumstances.

This patch moves the calculations from render to tick to ensure that
they're always called and the values are always set.
2015-11-20 14:07:14 -08:00
jp9000 50c61898d0 win-capture: Fall back to creating d3d contexts if offsets bad 2015-11-20 14:07:14 -08:00
jp9000 1755511b2f win-capture: Hook Reset/ResetEx in Present* funcs
The virtual address table values for Reset/ResetEx can sometimes point
to functions that are in libraries outside of D3D8.dll and D3D9.dll, and
will cause a crash if used.  Instead, just hook Reset/ResetEx when one
of the Present* functions are called.
2015-11-20 14:06:37 -08:00
jp9000 d1cbb2742e libobs/util: Use SIGTRAP for os_breakpoint
SIGTRAP is the correct value to use to specify a breakpoint.
2015-11-18 18:59:54 -08:00
jp9000 9e17f41caf libobs/util: Don't perform memalign trick of pointer null 2015-11-18 18:46:21 -08:00
jp9000 d510b629c9 obs-outputs: Fix "sometimes uninitialized" warning
Fixes warning (clang):

variable 'added_packet' is used uninitialized whenever 'if' condition is
false [-Wsometimes-uninitialized]
2015-11-18 14:12:54 -08:00
jp9000 f0cf699c50 obs-outputs: Remove stop thread (unnecessary)
Since the RTMP_Close was moved to the send thread (where it should have
been) the stop thread now has no real purpose.
2015-11-18 14:00:28 -08:00
jp9000 52d5a9b0b4 libobs/util: Breakpoint crash on "out of memory"
This forces proper crash handling to generate a stack trace.
2015-11-18 12:42:15 -08:00
jp9000 fa5c477826 libobs/util: Add os_breakpoint function 2015-11-18 12:42:15 -08:00
jp9000 c629bbe50f libobs: Always write crashing thread first 2015-11-18 12:42:14 -08:00
jp9000 f05f0592e0 obs-outputs: Don't allow new data if disconnected 2015-11-18 12:42:14 -08:00
jp9000 6a27da9bd7 obs-outputs: Use atomic load functions 2015-11-18 12:42:14 -08:00
jp9000 598ae383bc libobs/util: Add atomic bool load functions 2015-11-18 12:42:14 -08:00
jp9000 ba7b53f330 obs-outputs: Close stream in send thread 2015-11-18 07:49:51 -08:00
jp9000 ee55dafe24 obs-outputs: Atomically update 'active' variable 2015-11-18 07:48:27 -08:00
jp9000 07254d0390 obs-outputs: Call free_packets in init_connect
This may end up being a bit redundant, but it's just to ensure that the
packet buffer is free before connecting.
2015-11-17 07:51:46 -08:00
jp9000 d4df6c191f obs-outputs: Only log packets remaining if above 0 2015-11-17 07:49:05 -08:00
jp9000 226337a6ca obs-outputs: Check for recv error 2015-11-16 13:57:06 -08:00