1106 Commits

Author SHA1 Message Date
Palana
4ee5c8e0f3 libobs: Fix crash on encoder initialization failure
Found via clang static analysis
2015-06-01 01:37:36 +02:00
Palana
c680b3e115 libobs/calldata: Fix unaligned loads/stores
Found via UBSan, actual errors (addresses not pruned for illustrative purposes):

"runtime error: store to misaligned address 0x7f9a9178e84c for type
'size_t' (aka 'unsigned long'), which requires 8 byte alignment"

"runtime error: load of misaligned address 0x7f9a9140f2cf for type
'size_t' (aka 'unsigned long'), which requires 8 byte alignment"
2015-05-31 04:45:54 +02:00
jp9000
dcf7ac9587 libobs: Update version to 0.10.1 2015-05-18 15:11:52 -07:00
jp9000
3a5d7b1168 libobs: Fix mouse button hotkeys on linux
The screen index returned from XDefaultScreen is 0-based, and we were
decrementing it before the check to see if it had reached 0 rather than
after, so in the default_screen function it would always end up getting
either the wrong screen or no screen.

When xcb_query_pointer and xcb_query_pointer_reply was called with no
valid screen, it would fail with an error, thus making it so that the
mouse buttons could not be properly captured as hotkeys.
2015-05-16 20:10:49 -07:00
Palana
f9eeb049fa libobs: (Re-)Move (duplicate) graphics mutex init
This probably fixes the crash from "libobs: Check effect mutex exists
before destroying it" (c2c47b1169b272498bdd6ffb1416f6d518200059)
2015-05-16 22:16:43 +02:00
Palana
f981b58b43 Revert "libobs: Check effect mutex exists before destroying it"
This reverts commit c2c47b1169b272498bdd6ffb1416f6d518200059.
2015-05-16 22:10:15 +02:00
Richard Stanway
c2c47b1169 libobs: Check effect mutex exists before destroying it
Fixes a crash if graphics system didn't finish intializing.
2015-05-16 18:44:25 +02:00
jp9000
782a5daa18 Update to 0.10.0 2015-05-12 15:37:40 -07:00
Palana
e044fcfaaa libobs: Fix saving/loading of push-to-mute settings 2015-05-12 21:36:46 +02:00
Palana
23a2228142 libobs: Add scene item hotkeys 2015-05-11 20:45:25 +02:00
Palana
7b3b083889 libobs: Add audio source hotkeys 2015-05-11 20:45:25 +02:00
Palana
1d39c3e9b6 (API Change) libobs: Add hotkey data to *_create functions 2015-05-11 20:45:25 +02:00
jp9000
d0cae31a48 libobs: Add linux hotkey implementation 2015-05-11 20:45:25 +02:00
jp9000
3fc63f83f1 libobs: Add windows hotkey implementation 2015-05-11 20:45:25 +02:00
Palana
f37e72205a libobs: Add OSX hotkey implementation 2015-05-11 20:45:24 +02:00
Palana
5ad553d06d libobs: Add global hotkey support 2015-05-11 20:45:24 +02:00
Palana
4daa5c7aa7 media-io: Fix check before passing pointer to av_freep
Found by clang-3.7 (trunk 236075) via -Wpointer-bool-conversion:

warning: address of array 'rs->output_buffer' will always evaluate
to 'true'
2015-05-11 20:42:53 +02:00
jp9000
c1e8d28548 libobs: Use exponential backoff for reconnecting
Implements exponential backoff for consecutive reconnects, which is
useful to prevent too many connections from trying to reconnect back to
a service at once over a short period of time in the case of potential
service downtime.  Exponential backoff causes each subsequent reconnect
attempt to double its timeout duration.
2015-05-10 16:07:22 -07:00
jp9000
691d3b4a73 libobs: Add timeout_sec param to reconnect signal
This optionally allows the front-end to know what the current timeout
value in seconds is set to for the reconnection without having to call
an extra API function to find that out.
2015-05-10 16:05:26 -07:00
Jim
b620bb13b5 Merge pull request #425 from fryshorts/bsd-cpu-model
libobs: Implement logging cpu model on bsd
2015-05-07 12:30:23 -07:00
Palana
0f2310a8bc libobs: Extend levels_updated signal with muted flag 2015-05-07 02:08:08 +02:00
Palana
4d40c5c853 libobs: Extend audio_data signal with muted flag 2015-05-07 02:08:08 +02:00
Palana
71abed387f (API Change) libobs: Make obs_service refcounted 2015-05-07 02:08:05 +02:00
Palana
ba0b8eb0e1 (API Change) libobs: Make obs_encoder refcounted 2015-05-07 02:07:56 +02:00
Palana
f094bf199d (API Change) libobs: Make obs_output refcounted 2015-05-07 02:06:40 +02:00
Palana
a563fbc05b libobs: Add weak reference type for obs_source 2015-05-07 01:57:14 +02:00
Palana
99deb0821f libobs: Add refcounting helpers 2015-05-07 01:57:14 +02:00
Palana
a907d74903 util: Add os_atomic_compare_swap_long 2015-05-07 01:57:14 +02:00
jp9000
bf1ca59965 util: Add dstr functions to make upper/lower 2015-05-07 01:57:14 +02:00
Palana
ae19eec2c6 util: Improve handling of config values with linebreaks 2015-05-07 01:55:12 +02:00
fryshorts
e3901b2072 Revert "libobs: Fix missing getline on FreeBSD"
This is no longer needed since getline is only used in linux specific
functions now.
2015-05-06 21:39:17 +02:00
fryshorts
bc38bf641b libobs: Only log distribution info on linux
Add ifdefs to only log the distribution information on linux since this
is a platform specific implementation.
2015-05-06 21:39:17 +02:00
fryshorts
ceb1b218f1 libobs: Implement logging processor model on bsd
Implement the log_processor_info function on bsd and add ifdefs to only
build the implementation specific to the platform.
Also add an ifdef around the call to that function to make sure it will
only be called on platforms where it is actually implemented.
2015-05-06 21:39:17 +02:00
fryshorts
f5568ff586 libobs: Split up processor logging on nix
Split the function logging the processor information on nix into two
parts. The part logging the number of logical cores is portable and
works on all systems that support POSIX.1 while the other part is
specific to linux.
2015-05-06 21:15:24 +02:00
Jim
ee284a56ac Merge pull request #424 from fryshorts/bsd-build-fixes
BSD build fixes
2015-05-05 04:46:16 -07:00
fryshorts
7a33f27c72 libobs: Link against compat sysinfo on FreeBSD
Link against the compatibility library that provides sysinfo on FreeBSD.
2015-05-04 22:37:17 +02:00
Kris Moore
9c483aae10 libobs: Add support for FreeBSD to gs_window
Enable the X11 specific members in the gs_window struct when on FreeBSD.
2015-05-04 21:08:17 +02:00
fryshorts
d998c16724 libobs: Remove unused include
Remove unused include as it is not available on FreeBSD and was
therefore causing a build error.
2015-05-04 21:08:17 +02:00
Kris Moore
5803d921ae libobs: Fix thread naming on FreeBSD
Add the relevant header file needed on FreeBSD and utilize yet another
ifdef to call pthread_set_name_np as the function name differs from
those on the other platforms.
2015-05-04 21:08:17 +02:00
Kris Moore
013e97ff54 libobs: Fix missing getline on FreeBSD
Add definition on FreeBSD to enable getline in stdio, as it is not
(yet ?) available by default. According to the manpage getline was a
GNU extension but was standardized in POSIX.1-2008.
2015-05-04 21:05:55 +02:00
GoaLitiuM
2ab4c430e0 libobs: Define snprintf only for Visual Studios prior VS2015
This change is purely cosmetic one. _snprintf is still defined in 2015,
but Microsoft may change this in the future.
2015-05-04 19:33:55 +03:00
jp9000
9d82760405 libobs: Warn if source released after shutdown
Instead of letting this area of code crash, check to see if the core is
still active or not, and safely warn and ignore the release if so.
2015-04-30 05:14:38 -07:00
Palana
17ff1d94e6 util: Calculate buffer size for dstr_vprintf (C99) 2015-04-23 23:49:06 +02:00
jp9000
a736b01276 libobs: Log video format 2015-04-18 00:03:22 -07:00
jp9000
1b53215b99 libobs: Add function to get video format name 2015-04-18 00:03:21 -07:00
jp9000
4d002f588b (API Change) Remove encoder callback boilerplate
API Changed (in struct obs_encoder_info):
----------------------------------------
bool (*get_audio_info)(void *data, struct audio_convert_info *info);
bool (*get_video_info)(void *data, struct video_scale_info *info);

To:
----------------------------------------
void (*get_audio_info)(void *data, struct audio_convert_info *info);
void (*get_video_info)(void *data, struct video_scale_info *info);

The encoder video/audio information callbacks no longer need to manually
query the libobs video/audio information, that information is now passed
via the parameter, which the callbacks can modify.

The refactor that reduces boilerplate in the encoder video/audio
information callbacks also removes the need for their return values, so
change the return types to void.
2015-04-17 20:17:43 -07:00
jp9000
5c91d93d87 libobs: Refactor video/audio encoder conversion
I realized that the get_video_info and get_audio_info encoder callbacks
always have to manually query the libobs audio/video information.

This fixes that problem by passing the libobs video/audio information in
the structures passed to those callbacks so they don't have to query it
each time, reducing needless boilerplate code for encoders.
2015-04-17 20:17:43 -07:00
jp9000
1ee277ed33 libobs: Add preferred video format encoder funcs
Allows the ability to hint at encoders what format should be used.

This is particularly useful if libobs is currently operating in planar
4:4:4, but you want to force an encoder used for streaming to convert to
NV12 to prevent streaming issues.
2015-04-17 20:17:42 -07:00
jp9000
908a165d62 Add planar YUV 4:4:4 format support
Adds the ability to natively output with planar YUV 4:4:4.
2015-04-17 20:16:40 -07:00
jp9000
822d1ec3fc libobs: Add packed yuv to planar 4:4:4 conversion 2015-04-16 22:51:31 -07:00