8781 Commits

Author SHA1 Message Date
Florian Zwoch
bac24c2ca6 obs-filter: Fix potential symbol clashing on Linux
RNNoise symbols may collide with external ones provided by
libcodec2.so which FFMPEG may pull in automatically. Changing
the visibility of these symbols will guarantee the use of the
internal ones and not pick some (potential incompatible) from
outside.

fixes #3561
2020-10-16 05:26:25 -07:00
craftwar
7331a43aee UI: Update Twitch Get Stream Key link 2020-10-16 05:12:16 -07:00
jpark37
dbf318a388 UI: Apply minimum width to Stats fields
Helps prevent Stats dock from resizing OBS when long text is set.
2020-10-16 05:11:53 -07:00
Clayton Groeneveld
2b50263d5c UI, libobs: Add ability to copy/paste single filter 2020-10-15 10:14:22 -07:00
Clayton Groeneveld
8a674137d7 UI: Keep showing time when paused 2020-10-15 10:12:46 -07:00
jp9000
0b24b3ae14 obs-ffmpeg/ffmpeg-mux: Fix issue with HLS
For some reason, currently unknown, FFmpeg logging has to be set to
something in order for HLS to not fail on Windows, even if it's just an
empty function.

(Author comment: I don't feel comfortable not knowing why, my theory is
that FFmpeg has an issue with this internally with HLS on Windows
related to logging or how it's trying to log, I have absolutely no idea
what's going on and if someone can enlighten me or debug FFmpeg itself
it'd be real nice to know why.)
2020-10-14 19:39:12 -07:00
jp9000
18486853a5 obs-ffmpeg: Add ability to debug ffmpeg-mux subprocess
Adds a cmake variable (DEBUG_FFMPEG_MUX) which enables FFmpeg debug
output in the ffmpeg-mux subprocess, and if on Windows, shows the
console window of the ffmpeg-mux subprocess so the current output can be
seen.
2020-10-14 18:42:22 -07:00
TobiasGSmollett
af28c940f8 UI: Fix text clipping on non-English locales in certain locations
Fix #3514 on MacOS and Ubuntu.
2020-10-14 06:42:38 -07:00
jpark37
dad861b036 win-capture: Fix D3D leaks on swap chain release
For game capture, hook DXGI release function to release D3D objects if
the related swap chain is also being destroyed.

An added bonus is that the game capture hook will handle swap chain
recreation for applications that don't use ResizeBuffers.
2020-10-13 18:47:35 -07:00
Jim
19cb3b9463
Merge pull request #3114 from ushadow/add-youtube-hls-streaming
Add HLS streaming output
2020-10-13 14:52:30 -07:00
Maya Venkatraman
22d060e3cc rtmp-services: Add YouTube HLS service selection 2020-10-13 13:54:42 -07:00
Maya Venkatraman
49d351b537 obs-ffmpeg: Add HLS output
Add and register an obs_output_info struct called
ffmpeg_hls_muxer. It uses ffmpeg's HLS muxer to stream output.

Add threading and buffer to reduce skipped frames.
Also add frame drop logic when there are too many packets in the
buffer for congestion control.
2020-10-13 13:54:42 -07:00
Maya Venkatraman
c4e71794d9 obs-ffmpeg: Allow using stream keys with muxer
(Jim) Allows the ability to use stream keys with ffmpeg-mux -- this will
enable the ability to use it with certain services (such as YouTube)
which allow different protocols (such as HLS)
2020-10-13 13:54:42 -07:00
Maya Venkatraman
d7e673d23d obs-ffmpeg: Allow specifying mux settings directly
(Jim) Allows the ability to specify mux settings directly on the
output's structure itself rather than just via settings. This is useful
for network-based muxer outputs (such as HLS).
2020-10-13 13:54:08 -07:00
Maya Venkatraman
966b48a0f7 obs-ffmpeg/ffmpeg-mux: Use separate printable URL target
(Jim) printable_file allows the ability to keep a separate string for
logging which will not contain things like stream keys when used with
outputs such as HLS.
2020-10-13 13:54:01 -07:00
Maya Venkatraman
04596ec097 obs-ffmpeg/ffmpeg-mux: Set codec->time_base if avformat < 59 2020-10-13 13:29:17 -07:00
Maya Venkatraman
f7a468dd30 obs-ffmpeg/ffmpeg-mux: Add ability to get FFmpeg logging 2020-10-13 13:29:17 -07:00
Maya Venkatraman
336c1994ad UI: Find YouTube via starting string, not full match
Allows the ability to get the stream key for YouTube regardless of
whether using the normal RTMP or HLS versions of YouTube.
2020-10-13 13:29:17 -07:00
Maya Venkatraman
41f4a0b0b9 UI: Add support for "More Info" link from service
(Jim) Allows the ability to get a link from the service's settings about
a specific service selection the user chooses and display it as a "More
Info" button that the user can click to find out more information about
that particular service.
2020-10-13 13:29:17 -07:00
Maya Venkatraman
c574b65488 obs-ffmpeg/ffmpeg-mux: Fix variable case 2020-10-13 13:29:17 -07:00
Maya Venkatraman
87a64e6565 obs-ffmpeg: Move muxer structure/funcs to header
(Jim) Allows the ability to use it for more output types.
2020-10-13 13:29:15 -07:00
jp9000
3d51602690 UI: Fix replay buffer frontend event not triggering
The frontend API event OBS_FRONTEND_EVENT_REPLAY_BUFFER_SAVED was not
being triggered when hotkeys were used because it was only set to
trigger when the replay buffer button was clicked, not when a hotkey was
used. This fixes it so that the frontend event sends a signal to the
frontend so that hotkeys will actually work.
2020-10-12 16:59:26 -07:00
jp9000
a38cd03e06 UI/obs-frontend-api: Fix replay buffer save event ABI break
New events must go at the bottom of the list, not at the top, otherwise
ABI will be broken.
2020-10-12 16:59:26 -07:00
hgonomeg
d3ec3e99d5
UI: Add replay buffer saved event to the frontend api (#3592)
* obs-frontend-api: add the event of saving replay buffer

Add OBS_FRONTEND_EVENT_REPLAY_BUFFER_SAVED as given by RFC 33

* UI: Emit the replay buffer saved event to the api

Send the OBS_FRONTEND_EVENT_REPLAY_BUFFER_SAVED to api (as in rfc33)

* docs/sphinx: Add replay buffer saved event

Documentation provided for OBS_FRONTEND_EVENT_REPLAY_BUFFER_SAVED (RFC33)
2020-10-10 17:53:13 -07:00
Scratch
a94c0e055b UI: Prevent disabling replay buffer if it's active 2020-10-10 17:29:30 -07:00
pkv
a1c3fbee64 CI: Add virtualcam GUID to win builds
Adds the virtualcam GUID to win builds on GH actions and azure.

Co-authored-by: PatTheMav <patthemav+github@gmail.com>
2020-10-10 17:28:22 -07:00
PatTheMav
7b96f51995 CI: Remove deprecated use of set-env in Github Actions 2020-10-10 17:27:51 -07:00
Joel Bethke
555b41dee7
Merge pull request #3594 from Scrxtchy/docs-event-finish-loading
Docs: Fix Frontend Finish Loading event
2020-10-09 22:56:58 -04:00
Scratch
8dde1fc874 Docs: Fix Frontend Finish Loading event 2020-10-10 13:50:08 +11:00
Joshua Berenhaus
f56ab9a38b UI: Set focus back to label after source rename
Fixes obsproject/obs-studio#3465
2020-10-09 14:01:25 -07:00
jp9000
3486c0b363 UI: Fix selecting correct transition when deleting
When deleting a transition, it would sometimes select the one that
replaces it, which could be the separator.  This would cause undefined
behavior.  This fixes it so that it selects either the one that replaces
it (if a valid one replaces it), or the transition at the bottom of the
known list and not the separator.
2020-10-06 08:49:58 -07:00
jp9000
da8547c112 UI: Fix non-default transitions going below add vals 2020-10-06 08:25:03 -07:00
jp9000
755e4f8897 libobs: Update version to 26.0.2 2020-10-06 07:57:55 -07:00
jp9000
18db1c6841 UI/installer: Add avutil/swscale to file in use check 2020-10-06 07:56:10 -07:00
jp9000
e1a0c60735 coreaudio-encoder: Actually fix coreaudio loading
Apparently using LoadLibrary on a full path doesn't work -- you need to
use SetDllDirectory before loading a library.
2020-10-06 07:50:38 -07:00
jp9000
50cbafd711 libobs: Update version to 26.0.1 2020-10-05 09:13:17 -07:00
pkv
11602bc933 coreaudio-encoder: Fix path on windows
The path of coreaudio dll has changed in current versions of iTunes on
windows.  The patch fixes the issue while keeping compatibility with
previous path.

Fixes obsproject/obs-studio#3503
2020-10-05 03:39:33 -07:00
jp9000
1b5a331c56 coreaudio-encoder: Refactor windows import
Refactors the windows import library section so that it uses a list, and
remove a slightly unnecessary macro in release_lib
2020-10-05 03:39:33 -07:00
karenkim-AfreecaTV
3c058e1c0e rtmp-services: Update AfreecaTV 2020-10-04 23:44:01 -07:00
jp9000
86e04d00ec Revert "UI: Delete existing fullscreen projector"
This reverts commit 01fe9c990c74599b01abac3bbf7ef859ccbba357.
2020-10-04 22:32:17 -07:00
jp9000
c66fa09b46 win-capture: Update hook version 2020-10-04 11:41:19 -07:00
jp9000
7a2d64d00a win-dshow: Fix decoupled audio with EVGA/magewell
EVGA/magewell devices seem to use the default system drivers rather than
custom drivers, which causes their audio to become decoupled and treated
as completely separate devices rather than as an audio pin on the video
device. Basically, this would cause those devices to not have audio by
default, and force the user to have to manually select the audio, which
is bad user experience.

We already had a workaround for this with elgato devices, so expand that
code to become a whitelist of devices, and include EVGA/magewell
devices.
2020-10-04 10:07:12 -07:00
jpark37
d4a607a3c2 libobs-winrt: Use native cursor draw for WGC
We were performing a custom cursor draw for WGC, which we attempted
because we thought we could bring back hardware cursor responsiveness,
but MS says that it won't. Since the custom draw was bugged to cause
black screens anyway, just use the native cursor draw for now.
2020-10-03 22:41:47 -07:00
jpark37
9ba768837b win-capture: Violate Vulkan spec for compatibility
Rivatuner Statistics Server calls vkGetInstanceProcAddr for
vkCreateDevice with a NULL instance. According to spec, this should
return NULL, but RTSS will dereference this and crash.

This change returns function pointers for every intercepted function
regardless of instance, which is enough to keep RTSS alive.
2020-10-03 22:41:11 -07:00
Eric Lindvall
4f87337646 obs-ffmpeg: Add error detection to ffmpeg-mux
ffmpeg-mux does not notice if ffmpeg returns an error from
av_interleaved_write_frame() which means that OBS never knows if there is a
problem in ffmpeg.

This is the biggest issue for cases like srt:// or tcp:// streams that can
regularly fail. Without this change OBS never knows that something went wrong.
2020-10-03 22:26:52 -07:00
Eric Lindvall
3d1c13210a obs-ffmpeg: Signal a remote disconnect for network streams from ffmpeg-mux
If using ffmpeg-mux to send a network stream, signal a disconnect error code
on error to allow reconnections to take place.
2020-10-03 22:17:02 -07:00
Jim
149550392b
Revert "mac-capture: show actual windows in Window Capture sources" 2020-10-03 14:23:54 -07:00
jp9000
f4f2d383b1 UI: Greatly improve main window repaint performance
The VolumeMeter widgets were apparently being drawn as transparent
widgets, which meant that it was necessary to redraw everything under
the widgets in order to properly draw the widgets, so the entire mixer
section of the window was being redrawn every time the meters updated.
This caused a significant perf hit when the only thing wanted/desired
was just to update the meters. This was more noticeable after changing
the audio meter update rate to 60hz from 30hz.

The fix is to simply mark them as opaque widgets, and paint the
background ourselves rather than rely on what's under the window. CPU
perf for painting the main window has been vastly improved because of
this; CPU usage of Qt in the main window is now reduced by at least half
of what it was, if not more.
2020-10-03 08:27:01 -07:00
windwakr
884c43f8c0 win-capture: Fix mask handling on some color cursors 2020-10-03 05:55:30 -07:00
Ed Maste
da84d82acc CI: Fix swig dependency on FreeBSD
FreeBSD removed the swig30 package and replaced it with just swig,
currently version 4.0:
https://bugs.freebsd.org/246613
2020-10-03 05:38:46 -07:00