Commit Graph
8322 Commits
Author SHA1 Message Date
Jim 97ecf23df0 Merge pull request #3121 from jpark37/chrome-window-priority
win-capture: Don't use Chrome classes for priority
2020-07-10 20:20:26 -07:00
Jim 6c37f6faea Merge pull request #3113 from jpark37/vulkan-swap-decouple
win-capture: Decouple swap and frame indices
2020-07-10 20:15:38 -07:00
Jim 61384c199c Merge pull request #3104 from cg2121/auto-config-messages
UI: Add informative messages to auto-config dialog
2020-07-10 20:00:59 -07:00
Jim a4d8dd5fa9 Merge pull request #3109 from PatTheMav/prebuilt-swig
CI: Update build script to use pre-built SWIG and QT dependencies
2020-07-10 19:21:29 -07:00
Jim e055a1ffd8 Merge pull request #3108 from pkviet/macdevice
mac-capture: Add several virtual audio drivers to Desktop audio
2020-07-10 19:20:49 -07:00
Clayton Groeneveld 311a05cfe6 UI: Add informative messages to auto-config dialog 2020-07-10 19:10:54 -07:00
Jim 82fb74b49b Merge pull request #3101 from unknowndomain/source-scene-delete-fix
UI: Set remove prompt default action
2020-07-10 18:17:38 -07:00
Tom Lynch 5c807aea60 UI: Set remove prompt default action
Resolves an issue on macOS where the default action is not set for
prompts when the user is removing one or multiple sources or scenes.
2020-07-10 17:50:15 -07:00
Jim 8b00f7d341 Merge pull request #3085 from eric/fix-audio-on-timestamp-jump
libobs: Reset audio data on timestamp jump
2020-07-10 17:35:44 -07:00
Jim 04348871cc Merge pull request #3078 from eric/librtmp-connect-errors
obs-outputs: Handle NetStream.Publish.BadName from rtmp server
2020-07-10 17:21:48 -07:00
Jim 9497589b16 Merge pull request #3074 from jpark37/game-capture-remove-scale
win-capture: Remove game capture scaling
2020-07-10 16:47:39 -07:00
Jim 6347a221a0 Merge pull request #3050 from jpark37/qt-warnings-515
UI: Fix warnings for Qt 5.15
2020-07-10 15:30:26 -07:00
PatTheMav d94709d945 CI: Update build script to use pre-built SWIG and QT dependencies 2020-07-10 01:01:32 +02:00
Jim 87915489b4 Merge pull request #3035 from brittneysclark/qsv_ui_and_vdenc
obs-qsv11: Simplify QSV settings in UI and Enable AVC VDEnc on ICL+
2020-07-08 20:59:57 -07:00
brittneysclark 17f013d0d0 obs-qsv11: Simplify UI quality parameters
Combine MBBRC and CQM parameters into a perceptual video
enhancement box
2020-07-08 20:24:27 -07:00
brittneysclark 28af453320 obs-qsv11: Enable VDEnc on ICL+
Enable AVC VDEnc (fixed function encode) on ICL+
2020-07-08 20:24:27 -07:00
brittneysclark 8e0e2dd3e9 obs-qsv11: Add latency mode to QSV settings
Simplify UI options by combining LookAhead Depth and Async Depth into
latency mode option. Ultra-low, low, and normal will set these two
encode parameters accordingly.
2020-07-08 20:24:24 -07:00
Joel Bethke 41bc541613 Merge pull request #3141 from JohannMG/update-facebook-streamkey-url
UI: Update Facebook get stream key URL
2020-07-08 20:09:56 -05:00
JohannMG 5020f61589 UI: Update Facebook get stream key URL
Old URL is being phased out for the cleaner interface. Changed in both
the settings pane and the wizard.
2020-07-08 17:42:57 -07:00
Jim f23d04b67f Merge pull request #3030 from cmlin2/preferiGPU
obs-qsv11: Set preference for encode to iGPU in case of i+i
2020-07-08 13:03:35 -07:00
cmlin2 477199ef2c obs-qsv11: Set preference for encode to iGPU in case of i+i 2020-07-08 12:03:22 -07:00
Jim f6043061c0 Merge pull request #3004 from cg2121/projector-screen-removed
UI: Delete projector when monitor is disconnected
2020-07-08 09:32:18 -07:00
Clayton Groeneveld 846c3d5acc UI: Delete projector when monitor is disconnected 2020-07-08 07:40:51 -07:00
Jim b9de258c16 Merge pull request #2988 from jeremycole/allow_continuous_streams_20200525
obs-ffmpeg: Allow continuous network streaming
2020-07-08 07:39:24 -07:00
Jeremy Cole 974cd4350b obs-ffmpeg: Allow continuous network streaming
This change breaks the tying of the 'close' option to the media
source being a local file vs. network source. In doing so, it is
possible to keep network sources streaming continuously, which
fixes a few things when using network cameras as sources:

* The preview pane works in studio mode.
* There is no delay in switching scenes before video appears.
* The multiview works properly/normally.

This does introduce one bit of weirdness which could be easily fixed
with sufficient knowledge of OBS to do it quickly: if a networked media
source fails with both 'Restart playback when source becomes active' and
'Close file when inactive' disabled, it is slightly tricky to get it to
restart the video stream. (It can be done by enabling those options and
hiding the scene, though.) It would be nice to have a simple "restart
stream" button somewhere to do this more easily.
2020-07-08 07:05:11 -07:00
Jim 5f9f7166f9 Merge pull request #2978 from ioangogo/V4l2-updating-fix
linux-v4l2: Selective stream restart
2020-07-07 21:02:44 -07:00
Jim d0d7c439cc Merge pull request #2965 from WizardCM/windows-help-flag
UI: Show help text for launch parameters on Windows
2020-07-07 21:00:34 -07:00
Matt Gajownik bc472eab95 UI: Show help text for launch parameters on Windows 2020-07-07 20:04:42 -07:00
Jim d027c41165 Merge pull request #2954 from cg2121/property-list-reorder
UI: Allow drag & drop reorder of property lists
2020-07-07 19:30:33 -07:00
Jim 880d42b56e Merge pull request #2940 from pkviet/log2
UI: Log monitoring type for global audio devices
2020-07-07 09:37:34 -07:00
Jim 50ff29e533 Merge pull request #3087 from obsproject/virtualcam
Add Windows Virtual Camera
2020-07-07 07:46:57 -07:00
jp9000 a72a52fa38 UI: Add virtual camera to UI
Adds a virtual camera button to the main user interface.  If virtual
camera is not installed, it will not add the button.  On Windows, it
detects whether the virtual camera filters are properly registered, and
will only add the button if the virtual camera filter is confirmed
registered.

Also adds a virtual camera option to the auto-configuration wizard,
which will just simply set the user's resolution/scale to 1920x1080 at
30 FPS.
2020-07-07 06:09:59 -07:00
jp9000 6377fe3177 win-dshow: Add Virtual Camera (Windows)
The virtual camera adds the ability to use the output of OBS itself as a
camera that can be selected within other Windows applications.  This is
very loosely based upon the catxfish virtual camera plugin design.

There is a shared memory queue, but instead of having 10-20 frames in
the queue, there are now only 3 frames in the queue to minimize latency
and reduce memory usage.  The third frame is mostly to ensure that
writing does not occur on the same frame being read; the delay is merely
one frame at all times.

The frames of the shared memory queue are NV12 instead of YUYV, which
reduces the memory and data copied, as well as eliminate unnecessary
conversion from NV12.  Some programs (such as chrome, which uses webrtc
to capture) do not support NV12 however, so an I420 conversion is
provided, which is far less expensive than YUYV.  The CPU cost of NV12
-> I420 is negligible in comparison.

The virtual camera filter itself is based upon the output filter within
the libdshowcapture library, which was originally implemented for other
purposes.  This is more ideal than the Microsoft example code because
for one, it's far less convoluted, two, allows us to be able to
customize the filter to our needs a bit more easily, and three, has much
better RAII.  The Microsoft CBaseFilter/etc code comprised of about 30
source files, where as the output filter comprises of two or three
required source files which we already had, so it's a huge win to
compile time.

Scaling is avoided whenever possible to minimize CPU usage.  When the
virtual camera is activated in OBS, the width, height, and frame
interval are saved, that way if the filter is activated, it will always
remember the last OBS resolution/interval that the virtual camera was
activated with, even if OBS is not active.  If for some reason the
filter activates before OBS starts up, and OBS starts up with a
different resolution, it will use simple point scaling intermittently,
and then will remember the new scaling in the future.  The scaler could
use some optimization.  FFmpeg was not opted for because the FFmpeg DLLs
would have to be provided for both architectures, which would be about
30 megabytes in total, and would make writing the plugin much more
painful.  Thus a simple point scaling algorithm is used, and scaling is
avoided whenever possible.

(If another willing participant wants to have a go at improving the
scaling then go for it.  But otherwise, it avoids scaling whenever
possible anyway, so it's not a huge deal)
2020-07-07 06:09:59 -07:00
Jim 79fff2e13b Merge pull request #2927 from tt2468/add-tbar-control
UI: Add TBar controls to obs-frontend-api
2020-07-06 18:24:44 -07:00
tt2468 a03189bb68 UI: Add TBar controls to obs-frontend-api
Adds `obs_frontend_set_tbar_position` and `obs_frontend_release_tbar`,
which allow plugins and scripts to control the tbar in OBS.
This specific change is required for the `SetTBarPosition`
request to be added to obs-websocket.
2020-07-06 17:48:30 -07:00
Jim 39c3b3d687 Merge pull request #2916 from Bennik2000/esc-to-close-settings
UI: Allow the use of Esc key to quit settings window
2020-07-06 17:47:51 -07:00
Jim 19743e19d2 Merge pull request #2917 from cg2121/script-select
frontend-tools: Automatically select scripts
2020-07-06 17:30:53 -07:00
Bennik2000 f2f336229d UI: Allow the use of Esc key to quit settings window 2020-07-06 17:24:21 -07:00
Jim 6fcb57daa7 Merge pull request #2915 from Bennik2000/stats-dock-steals-focus
UI: Fix bug where stats dock steals focus of main windows
2020-07-06 14:01:38 -07:00
Jim c21fd6f275 Merge pull request #2907 from cg2121/script-defaults
frontend-tools: Add defaults button to script dialog
2020-07-05 19:37:48 -07:00
Clayton Groeneveld bb082e0a9d frontend-tools: Add defaults button to script dialog 2020-07-05 18:58:03 -07:00
Jim feecdbb0a0 Merge pull request #2884 from cg2121/rename-strings
UI: Change audio device string in settings
2020-07-05 10:04:05 -07:00
Jim 43bb2cc380 Merge pull request #2876 from Yohox/feature-ffmpeg-source-reconnect
obs-ffmpeg: Add auto reconnect to remote media sources
2020-07-05 09:55:28 -07:00
0a4b1d622c obs-ffmpeg: Add auto reconnect to remote media sources
(Note: This commit also modifies deps/media-playback)

Co-authored-by: Eric Lindvall <eric@5stops.com>
Co-authored-by: Ryan Foster <RytoEX@gmail.com>
Co-authored-by: Jim <obs.jim@gmail.com>
2020-07-05 08:31:05 -07:00
jpark37 4ec9081f3a win-capture: Don't use Chrome classes for priority
Avoids accidental fallback to Discord for example.
2020-07-03 00:12:21 -07:00
jpark37 3ac17d11c4 win-capture: Decouple swap and frame indices
The swap image index may not be a rotating value, so manage a separate
index to avoid reusing frame data early and stalling.
2020-06-30 08:22:34 -07:00
Jim 0fff23d8e1 Merge pull request #2774 from DDRBoxman/libobstests
libobs: Add sample unit tests leveraging cmocka
2020-06-29 15:43:23 -07:00
jp9000 002886bbac obs-ffmpeg, UI: Allow slash in recording names
Automatically generate directories if slashes are present in a recording
name format set in advanced settings or in the replay buffer
prefix/suffix settings.

Fixes obsproject/obs-studio#2416
Closes obsproject/obs-studio#2858
2020-06-27 05:21:14 -07:00
Jim bb890a674e Merge pull request #2821 from Bennik2000/always_on_top_projectors
UI: Add always on top checkbox to projector context menu
2020-06-26 06:14:25 -07:00
Jim 3b11e170b7 Merge pull request #2836 from jpark37/yuv-image-fix
Fix FFmpeg YUV to RGB conversion by adding extra destination padding to line sizes
2020-06-26 06:13:45 -07:00