Commit graph

3313 commits

Author SHA1 Message Date
Dossy Shiobara ce78cd446e mac-capture: Improve window capture performance
Replaces the current implementation of Window Capture, which uses Core
Graphics to render a bitmap raster, with one that accesses the window's
CGImage bitmap directly, blits it, and hands that off as a frame to OBS
instead.

Co-Authored-By: Sebastian Beckmann <beckmann.sebastian@outlook.de>
2022-07-19 23:24:07 +02:00
pkv 928597ec9d obs-libfdk: Set bitstream to ADTS for mpegts output
This sets the aac bitstream to ADTS for the mpegts output.
This fixes a bug with mpegts ouput where the avformat muxer issues
an error with fdk-aac encoder.

Signed-off-by: pkv <pkv@obsproject.com>
2022-03-24 18:22:59 -07:00
jpark37 b718aa41f4 win-waspai: Tighten version check for RTWQ
Getting reports that it isn't working for 1607 and below.

If they continue, we should probably just pull the RTWQ path.
2022-03-24 18:22:59 -07:00
eightball567 0d68aacfb6 mac-capture: Add vbcable to whitelist for loopback devices 2022-03-24 18:22:59 -07:00
jpark37 4b6170f258 win-dshow: Fix hwdevice_ctx leak 2022-03-24 18:22:59 -07:00
jp9000 b65ee7e7fb virtualcam-module: Revert changes since 27.1.3 (for now)
This reverts commit 4b0767741a,
3f3f9ed7e6,
0e7c17bd6e, and
865eecb739.
2022-03-02 17:36:49 -08:00
jp9000 399636847d virtualcam-module: Prevent placeholder memory leak 2022-03-02 05:05:13 -08:00
jp9000 9f0650658d virtualcam-module: Only initialize placeholder once 2022-03-02 05:04:47 -08:00
jp9000 fc20e7a71b virtualcam-module: Fix incorrect correct res/fps
Apparently the testing that was done was not sufficient enough or did
not check all test cases, so resolution/fps does not get set properly on
the virtualcam.
2022-03-02 04:20:27 -08:00
jp9000 c1ff655dfe virtualcam-module: Remove unnecessarily inlines 2022-03-01 23:29:04 +11:00
jp9000 91759c2a2e virtualcam-module: Stop thread on Stop call
This causes the thread to only start when the IMediaFilter::Run/Pause
calls have been made, and stop whenever either the IMediaFilter::Stop
call has been made, or on destruction, whichever comes first.

This potentially will work around a suspected race condition that
appears to be in the WebRTC library where the filter's library will be
released while the filter is in the process of being destroyed, which
can take longer than usual if the join takes too long. Basically, fixes
a reported crash (that doesn't appear to technically be our fault) when
the filter is used with browsers when the virtualcam is deactivating in
web browsers.
2022-03-01 23:28:59 +11:00
jp9000 d23cb52796 win-dshow: Ensure thread is joinable before joining
This may have been the issue behind the reported firefox crashes, but
strangely, the thread should always be joinable here because it's
explicitly always created in the constructor and joined in the
destructor.
2022-03-01 23:28:37 +11:00
obiwac c09429aa8c linux-v4l2: scandir with alphasort on non-Linux
Sort video device entries with `alphasort` on non-Linux platforms,
as opposed to `versionsort` on Linux.
(`versionsort` is a GNU extension, unavailable on e.g. FreeBSD.)

UI: Fix call to `to_string` on FreeBSD
2022-02-28 22:21:46 +11:00
Kurt Kartaltepe eff0148dd7 linux-v4l2: Fix warnings in mjpeg
Previously the switch did not catch all cases issuing a quite large
warning. Also there was a const-ness warning for codecs on ffmpeg 5.0
that this addresses.
2022-02-28 22:21:14 +11:00
Richard Stanway bad7edd051 win-wasapi: Fall back to old code if RTWQ fails
Fixes a crash if RTWQ is unavailable, e.g. if the mmcss service is not
running.
2022-02-28 22:20:45 +11:00
Richard Stanway bfcc066099 obs-outputs: Set a fixed size socket buffer on Windows 7
Auto tuning apparently doesn't work very well on this version and
af6844f5c2 caused throughput
regressions.
2022-02-21 11:21:20 +11:00
jp9000 0f97427ef2 obs-browser: Add support for custom OBS CEF
Our version fixes the system freeze issue, reduces resource usage, and
improves performance back to 3770 levels.

See obsproject/cef@36fdac16a7 for detailed information.
2022-02-20 13:31:05 -08:00
jp9000 3eec65d127 obs-browser: Fix texture recreating every frame 2022-02-20 13:31:05 -08:00
Matt Gajownik a0c37e7aa9 obs-browser: Fix issues with rendering on Linux/macOS 2022-02-20 17:33:02 +11:00
Kurt Kartaltepe 8ad7d1b08d linux-v4l2: Use decoded MJPEG pixel format
Previously we assumed mjpeg was always decoded to 422 but it seems some
cameras provide frames that decode to different pixel formats such as
420.

This change delays setting the obs frame pixel format until after we
have decoded the v4l2 frame.

fixes #5821
2022-02-20 14:40:20 +11:00
Matt Gajownik 9c42e9f752 win-wasapi: Only enable work queue on Windows 10+
Fixes #5967
2022-02-20 12:04:56 +11:00
pkv 92bf2ebe93 obs-ffmpeg: Force mpegts format & disable restart on activate for srt & rist
This fixes crashes in media Source when :
- the user forgets to set the input format for srt or rist URLs;
- disabling / enabling / disabling etc Media source with a rist URL.

Signed-off-by: pkv <pkv@obsproject.com>
2022-02-20 12:04:48 +11:00
Florian Zwoch b6366757c0 linux-capture: Fix for pipewire capture leaking texture handles
Enter the graphics context before calling gs_texture_destroy() or
else the call will fail causing the texture handles to leak.
2022-02-20 12:04:41 +11:00
jp9000 5643e9cbbf obs-browser: Fix sRGB rendering 2022-02-15 23:52:44 -08:00
jp9000 e43f75fc92 obs-browser: Update version to 2.17.10 2022-02-15 23:21:59 -08:00
jp9000 f2628de7f2 obs-browser: Acquire, copy, and release immediately
Instead of holding onto an acquire over the duration of an entire frame,
acquire, copy to a texture, and immediately release the lock.

(Note from Jim: When it comes to synchronization, the idea of acquiring
a lock, and then releasing all the way in the next frame just feels a
bit worrisome. Especially when it's a GPU object. But at this point, I'm
just making shots in the dark in an attempt to eliminate any possible
things that might even have a remote chance to trigger latent bugs in a
GPU driver or the kernel. You know, that whole system freeze thing. This
probably doesn't have anything to do with it, at this point I have
nothing but wild geese to chase. Whatever.)
2022-02-15 23:21:59 -08:00
Thulinma 9c504f4d35 rtmp-services: Update Picarto ingests 2022-02-12 15:02:10 -08:00
Translation Updater 25b58f0417 Update translations from Crowdin 2022-02-11 00:34:08 +00:00
jp9000 109b54fd66 obs-ffmpeg: Fix svt-av1 rate control settings
For SVT-AV1, rate control is explicitly set via an "rc" option, so set
those options manually for SVT-AV1. CBR doesn't seem to be fully
supported, but it's sort of supported via CVBR (constrained variable
bitrate), which seems to be specific to each GOP size, which is about as
close to CBR as we can get.
2022-02-07 13:11:34 -08:00
Translation Updater ac8dbf67be Update translations from Crowdin 2022-02-06 02:24:08 +00:00
Cenk Uluisik f52f34b614 linux-capture: Fix missing parameter for pipewire capture
Commit a3a6710 introduced the obs_pipewire_save() function in the
PipeWire code, but only set it to the monitor capture source. This
was an oversight, it should have been set to the window capture
source as well.

Set the .save vfunc of the window capture source as well.

Closes obsproject/obs-studio#5906
2022-02-04 13:09:12 -03:00
Paul Hindt 95020dd629 aja: Fix off-by-one output frame index calculation 2022-02-02 11:20:05 -06:00
Roman Sivriver e6a55e7763 rtmp-services: Update YouNow ingest 2022-02-01 13:42:08 -08:00
Matt Gajownik 3aa90f7076 obs-transitions: Fix All Files option for Stingers
On Windows, All Files was added by default with (*), but on macOS and
Linux this appeared as an empty option in the dropdown and treated as a
Video Files filter rather than All Files.

This also adds proper translation handling for 'Video Files', matching
the obs-ffmpeg-source.

Fixes #5870
2022-01-29 19:53:31 -08:00
Jim 3e4e8d2fd0 vlc-video: Set channel limit to 8 instead of 2
17c069e1d0 changed to add support for surround sound, but the limit
should really just be 8 channels as pointed out by tt
2022-01-29 15:28:36 -08:00
Francisco Oltra 5f5355a813
rtmp-services: Update nanoStream Cloud / bintu ingests (#5884)
* rtmp-services: Update nanoStream Cloud / bintu ingests

 - fix transcoding rtmp urls
 - add information and dashboard links
2022-01-29 15:24:46 -08:00
pkv 17c069e1d0 vlc-video: Enable surround sound support
The vlc plugin was keeping only up to two audio channels. It was overlooked when surround sound support was added to obs-studio. This commit remedies this oversight.

Signed-off-by: pkv <pkv@obsproject.com>
2022-01-29 15:22:29 -08:00
Chris 306e23292d win-dshow: Log buffered state 2022-01-29 15:14:58 -08:00
jpark37 9f41531541 win-dshow: Use OBS_SOURCE_FRAME_LINEAR_ALPHA
This flag leads to a cheaper technique, "Draw" instead of
"DrawNonlinearAlpha", and all the paths are opaque anyway.
2022-01-29 15:10:53 -08:00
Matt Gajownik 364f102561 obs-browser: Fix Windows crash if shared texture is unavailable 2022-01-29 18:05:25 +11:00
Paul Hindt 29b835b20f aja: Disable Analog In/Out selections in the UI
Analog capture/display for supported cards will be added in the future.
2022-01-28 23:58:53 -06:00
Paul Hindt ba875377d0 aja: Fix Kona1 simultaneous capture/output 2022-01-28 20:23:40 -06:00
Paul Hindt 3fbd5d9179 aja: Adjust whitespace for consistency 2022-01-28 20:23:40 -06:00
Paul Hindt 8d051c6a1c aja: Use SDI Transport selection to engage Auto detection
Otherwise use Video and Pixel format selections to engage Auto detection for HDMI
2022-01-28 20:23:40 -06:00
Paul Hindt 0ef3b29cad aja: Show/Hide SDI Transport/4K lists and options
Only show SDI Transport options if IOSelection is SDI and

only show 12G selection in Capture plugin
2022-01-28 20:23:40 -06:00
Paul Hindt f559287723 aja: Fix 2xSDI UHD/4K YCbCr 2SI VPID lookup 2022-01-28 20:23:40 -06:00
Paul Hindt 0d15bb0b94 aja: Hide duplicate HDMI IN entry for Kona HDMI 2022-01-28 20:23:40 -06:00
Paul Hindt a4c0996d59 aja: Filter 6G/12G SDI Transport depending device/plugin type 2022-01-28 20:23:40 -06:00
Paul Hindt d2515170e1 aja: Disable UHD/4K high-framerate for Output
A fix for UHD/4K HFR modes will be added in a future plugin release.
2022-01-28 20:23:40 -06:00
Paul Hindt 5f81d4117f aja: Clear previous crosspoints when signal changes
Fix for a bug where stale crosspoint connections could result in

video glitches upon next connection.
2022-01-28 20:23:40 -06:00