1072 Commits

Author SHA1 Message Date
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
725a36bc0f libobs: Update version to 0.12.3 2015-12-04 04:23:31 -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
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
jp9000
5548e62162 libobs: Update to version 0.12.2 2015-11-20 14:44:17 -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
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
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
598ae383bc libobs/util: Add atomic bool load functions 2015-11-18 12:42:14 -08:00
jp9000
14bfa07168 libobs: Fix unsigned expression warning
Fixes warning introduced by d7848f3cb74 that pops up in GCC:

warning: comparison of unsigned expression < 0 is always false
[-Wtype-limits]

The proper solution was to use the 64bit integer values with the clamp,
and then convert to a 32bit unsigned integer.
2015-11-16 08:22:55 -08:00
jp9000
717e2b6e66 libobs: Update version to 0.12.1 2015-11-15 09:49:24 -08:00
jp9000
d7848f3cb7 libobs: Fix "possible loss of data" warning
Fixes the following warning of MSVC:

warning C4244: '=' : conversion from '__int64' to 'uint32_t', possible
loss of data
2015-11-15 09:49:23 -08:00
Palana
ad5aec99ff libobs: Fix obs_data crash
Accessing objects inside obs_datas after obs_data_clear was called on the
parent obs_data causes a NULL dereference.

Reproduce with:
	obs_data_t *data = obs_data_create();
	obs_data_set_obj(data, "foo", NULL);
	obs_data_clear(data);
	obs_data_get_obj(data, "foo");
2015-11-14 15:57:21 +01:00
Palana
1b078f57d8 libobs: Add frame rate property 2015-11-14 15:37:59 +01:00
Palana
0b3fcb8b6e libobs: Add obs_data wrappers for media_frames_per_second 2015-11-14 15:37:59 +01:00
Palana
95487c3eec libobs/media-io: Add frame rate helpers 2015-11-14 15:37:47 +01:00
jp9000
1e1f442a61 libobs/util: Remove unnecessary allocations (win32)
Removes unnecessary allocations for the os_event_* and os_sem_*
thread functions
2015-11-11 16:52:48 -08:00
Richard Stanway
94b5bc222b libobs: Rename create_proccess to create_process 2015-11-06 18:25:53 +01:00
Richard Stanway
3671153a4f libobs: Don't use SPI_SETSCREENSAVEACTIVE on Windows
SetThreadExecutionState with ES_DISPLAY_REQUIRED has the same effect of preventing the screensaver from activating. Using SPI_SETSCREENSAVEACTIVE leaves the screensaver disabled system-wide if OBS crashes before it can re-enable it.
2015-11-05 03:58:26 +01:00
jp9000
a914bb24fa libobs/util: Add atomic functions for bool values 2015-11-03 15:03:39 -08:00
jp9000
fea4f75157 libobs: Update async video texture before effect filters
When an async video source is about to be rendered, the async texture
should be updated before any effect filtering occurs, rather than right
when it's about to render.

Fixes a few bugs:

- If the async texture hadn't drawn for its first time, and the source
  has an effect filter, it would never end up rendering the first
  frame due to the fact that it would fail on obs-source.c:2434 for the
  first filter, causing it to never actually render the source, and thus
  never get to a point in which it could call set_async_texture_size to
  establish the async texture width/height for the first time.

- Any time the async texture size changed, it would only update the
  async texture size at the end of the filter loop, which means that the
  first frame after a size change would use the old size for the filters
  rather than update to the new size right away.
2015-10-22 17:46:54 -07:00
jp9000
db7aebb940 libobs: Allow null pointer with obs_source_release_frame
A null pointer to a release/destroy function should be considered legal,
and simply do nothing.
2015-10-22 17:45:58 -07:00
jp9000
83630fa14a libobs/graphics: Safely fail gs_texrender_begin with 0,0 size
Passing 0,0 texture size should be considered legal, and safely return
false to indicate that rendering can't begin.  Also there's no need to
try to use the current swap chain's width/height if either of the sizes
are 0, there's no need try try to "force" success here anymore.
2015-10-22 17:42:44 -07:00
jp9000
0be0eedc81 libobs/graphics: Allow NULL *_destroy parameters
Passing null pointer values to the destroy functions should be
considered legal and simply ignored.
2015-10-22 17:37:59 -07:00
jp9000
ccfd57d100 libobs/graphics: Rename inconsistent function names
Renames functions:
gs_shader_setmatrix3 -> gs_shader_set_matrix3
gs_voltexture_getdepth -> gs_voltexture_get_depth
2015-10-21 07:46:43 -07:00
jp9000
03d6eab49d libobs: Rename obs_output_canpause
Renames obs_output_canpause to obs_output_can_pause
2015-10-21 07:46:42 -07:00
jp9000
63f7daa61c libobs: Add API to get object ids 2015-10-21 07:46:41 -07:00
jp9000
485a006215 libobs: Check source textures before destroying
Check to make sure the texrenders and textures on a source are valid
before destroying.
2015-10-21 07:46:40 -07:00
jp9000
d242004bee libobs/graphics: Add null/context warnings
Adds warnings for graphics functions to ensure that graphics functions
are called within an active graphics context, and add warnings if
required pointer parameters are null.
2015-10-21 07:46:39 -07:00
jp9000
f07ce8501f libobs: Add null debug messages for base obs funcs 2015-10-21 06:30:32 -07:00
jp9000
d3f9cdb8c8 libobs: Use LOG_DEBUG for null pointer checks 2015-10-21 06:30:31 -07:00
jp9000
6861eaabaf libobs: Use macros for obs validity checks 2015-10-21 06:30:30 -07:00
jp9000
92258d6bae libobs: Clarify obs_object_invalid message 2015-10-21 06:30:29 -07:00
jp9000
c27ff7903d libobs: Display debug msg in data_valid if null
Uses obs_source_valid in data_valid which will ensure a debug message is
displayed if null.
2015-10-21 06:28:03 -07:00
jp9000
8686451d5d libobs: Rename source_valid to data_valid
To prevent confusion with the new obs_source_valid function which
displays a warning, rename the "source_valid" function to "data_valid"
to emphasize that it's checking for the validity of the internal data as
well as the source itself.
2015-10-21 06:27:44 -07:00
jp9000
6ad8df8adb (API Change) libobs: Use single func for base effects
API removed:
--------------------
gs_effect_t *obs_get_default_effect(void);
gs_effect_t *obs_get_default_rect_effect(void);
gs_effect_t *obs_get_opaque_effect(void);
gs_effect_t *obs_get_solid_effect(void);
gs_effect_t *obs_get_bicubic_effect(void);
gs_effect_t *obs_get_lanczos_effect(void);
gs_effect_t *obs_get_bilinear_lowres_effect(void);

API added:
--------------------
gs_effect_t *obs_get_base_effect(enum obs_base_effect effect);

Summary:
--------------------
Combines multiple near-identical functions into a single function with
an enum parameter.
2015-10-19 00:52:45 -07:00
adray
e354a433c7 libobs/util: Add function to get free space
Meant as a part of solving mantis issue 105 ("Disk space usage monitor
when recording").

From pull request: jp9000/obs-studio#374
Relevant mantis issue: https://obsproject.com/mantis/view.php?id=105
2015-10-15 01:43:23 -07:00
adray
3e6db990fc libobs/util: Add function to get file size
From pull request: jp9000/obs-studio#374
2015-10-15 01:41:37 -07:00
jp9000
d542663478 libobs/util: Add os_get_abs_path(_ptr) functions
These functions resolve the absolute path from a relative path.
2015-10-15 01:35:18 -07:00
jp9000
1bcbaf8e75 libobs: Use byte sequence for non-breaking spaces
Use explicit UTF-8 byte sequence for the "no-break space" character.

Prevents issues with certain editors, and fixes the following compiler
warning on Visual C++:

warning C4819: The file contains a character that cannot be represented
in the current code page (X). Save the file in Unicode format to prevent
data loss
2015-10-15 01:31:07 -07:00
Richard Stanway
90a45a0ca0 libobs: Don't call signal handlers that got removed
It's possible for one signal handler to disconnect another during signal_handler_signal, which could result in crashes when the disconnected signal handler is called with a potentially freed data pointer due to other cleanup.
2015-10-13 01:08:51 +02:00
Richard Stanway
4b9d0256c8 libobs: Add missing mutex unlocks to some filter functions
Detected by Coverity Scan (CID 12831, 12830)
2015-10-12 23:21:45 +02:00
Palana
74e4c33756 libobs: Use IOKit error code when polling hotkeys (OSX)
In case a system authentication prompt is open the actual error code
(via err_get_code) is kIOReturnExclusiveAccess on OSX 10.9; I'm not
100% sure if this makes the "if (!value)" part of the code obsolete,
but that code path shouldn't be triggered under most circumstances
anyway

Fixes https://obsproject.com/mantis/view.php?id=346
2015-10-07 11:06:40 +02:00
jp9000
a468777614 libobs: Always use CRLF for crash text
When the crash text is generated, it's generated with LF line endings
only.  Pasting the crash text in to notepad will result in garbled text
on windows (due to the fact that notepad still to this day has not been
programmed to understand anything other than CRLF).  Instead of using
LF, just use CRLF.
2015-10-05 13:07:16 -07:00
jp9000
3c0a309ac5 libobs: Move SymRefreshModuleList to crash handler
There's no need to refresh the actual module list for the crash handler
until a crash has occurred.  Reduces startup time for this function call
from 400ms to 40ms.
2015-10-05 13:04:31 -07:00
jp9000
b038ed8d1d libobs: Profile win32 symbol update call 2015-10-04 21:16:30 -07:00