0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
Commit Graph

3942 Commits

Author SHA1 Message Date
jpark37
afeb78e022 graphics-hook: Print DXGI swap chain desc 2022-09-10 15:36:53 -07:00
jpark37
5fd22f3dfd graphics-hook: Remove unused code 2022-09-10 15:36:53 -07:00
jpark37
6a29cc5876 decklink: Set output range and color space 2022-09-10 15:36:27 -07:00
jpark37
a45cb71f6e win-capture: Remove unused wildcard code 2022-09-10 15:34:09 -07:00
pkv
d0366671e4 obs-ffmpeg: Fix memory leak with mpegts
Fixes #7305.
Some copied data was not freed and also not all paths freed AVPackets.

Signed-off-by: pkv <pkv@obsproject.com>
2022-09-10 15:31:07 -07:00
jpark37
894e37d0e1 libobs-winrt,win-capture: Allow forcing SDR
We don't know if there's a way to get window color space, so we've been
using the monitor color space of the window. This toggle forces OBS to
ignore the monitor color space, and assume the window is SDR.
2022-09-04 17:16:07 -07:00
jpark37
e583e86b35 image-source: Add JXR HDR support to slide show
Only supported on Windows.
2022-09-04 16:15:05 -07:00
jp9000
76c9b2b297 win-dshow: Update libdshowcapture 2022-09-02 18:00:26 -07:00
jp9000
bfa2053b08 Revert "win-dshow: Save and restore video device config props"
This reverts commit a36b5bee99.

After this commit was merged, apparently devices were not functioning
correctly for some people. Especially regarding their internal settings.
Just revert it for now.
2022-09-02 17:35:58 -07:00
jp9000
2f8d28f7fa decklink: Keep deckLinkConfiguration while in use
Apparently this annoying, stupid variable was leaking before the ComPtr
was added, which ironically was necessary to ensure devices worked.
After that ComPtr commit some devices stopped capturing properly.
Basically, it implies that this pointer needs to stick around while the
device is in use.

(Jim note: This was one of the most painful things I've ever had to
debug)
2022-09-02 17:09:12 -07:00
jp9000
9176348176 decklink: Remove unnecessary AddRef
Caused leaking memory
2022-09-02 17:09:12 -07:00
Richard Stanway
3332beece5 obs-ffmpeg: Fix seek offset being calculated incorrectly
If FFmpeg wrote data and then seeked back to immediately overwrite it,
the second seek would be skipped as our virtual offset was incorrectly
thinking it hadn't changed. This caused MP4 corruption when seeking
back in the file to write the moov atom.

Fixes https://github.com/obsproject/obs-studio/issues/7269
Fixes https://github.com/obsproject/obs-studio/issues/7144
2022-09-03 01:34:14 +02:00
jp9000
09da3ac439 win-dshow: Fix avermedia HDR tonemapping 2022-08-31 12:05:07 -07:00
gxalpha
bbd1e8b485 obs-ffmpeg: Always reset timestamp 2022-08-30 22:41:29 -04:00
jp9000
21da0b0462 obs-ffmpeg: NVENC "(new)" begone
It's about time to get rid of this being labeled as "(new)".

Also rename the FFmpeg variant. And make it more explicit when the
FFmpeg encoder is being used in the log file.
2022-08-30 17:05:36 -07:00
tt2468
b5bb5df58d plugins: Update obs-websocket to 5.0.2 (Crowdin translations) 2022-08-30 16:43:28 -07:00
Translation Updater
cc2d0791ca Update translations from Crowdin 2022-08-30 09:00:44 +00:00
Richard Stanway
894bc4078b obs-ffmpeg: Log codec when creating NVENC encoders
With HEVC and H264 settings being near-identical, it was impossible to
figure out which codec was being used by context alone. This applies to
both ffmpeg output and jim-nvenc.

Fixes #6976.
2022-08-29 21:43:04 -07:00
jpark37
8f6f761631 obs-ffmpeg: Rename NVENC type for clarity 2022-08-29 20:41:42 -07:00
jpark37
26fce825a7 obs-ffmpeg: Fix NVENC HEVC regression
Forgot to switch enableEncodeAsync to 0.
2022-08-29 20:41:42 -07:00
Norihiro Kamae
f393adb7e6 plugins: Rename Partial to Limited in localization files
The commit 9409ce1ea7 rephrased Limited instead of Partial. Other
plugins should follow the updated phrase.
2022-08-29 10:03:12 -07:00
jpark37
5c85f8ae17 obs-ffmpeg: Add AVContentLightMetadata to MPEG-TS 2022-08-29 10:02:49 -07:00
jpark37
29be9bff7a obs-ffmpeg: Don't use NVENC async mode
Fixes hang on stop presumably because header read failed from being too
early?

Our buffering scheme makes async mode moot anyway.
2022-08-29 10:01:57 -07:00
gxalpha
dbcafb62ff
mac-capture: Remove explicit call to setBackgroundColor
This was necessary since the default background color was meant to be
clear, but wasn't set properly. The bug is fixed in macOS 13 Beta 6, so
we can remove this statement.
2022-08-29 14:38:52 +02:00
jpark37
614119db21 obs-ffmpeg: Fix NVENC async usage pattern
Fix async API usage problems reported by NVIDIA.
2022-08-28 17:50:48 -07:00
gxalpha
a4f486517f obs-filters: Clarify that HDR Tone Mapping filter is optional 2022-08-27 16:39:53 -07:00
Jim
2e5f900fe6 obs-ffmpeg: In AMF, use bframe count + 1 as DTS offset
Recommended by Mikhail. Seems to work fine. Should also fix the DTS
regression.
2022-08-27 09:39:46 -07:00
Jim
4c3e671819 obs-ffmpeg: Set max AMF consecutive bframes to 3 by default
The AMF documentation states that this value is recommended to be 3 if
the bframe picture pattern property is a non-zero value.
2022-08-27 09:32:38 -07:00
jpark37
e5a1ef91e3 obs-filters: Fix HDR tonemap filter for scRGB
JXR images work now.
2022-08-27 08:38:12 -07:00
jpark37
a9c68c4623 mac-capture: Replace false with 0
Param is uint32_t, not bool.
2022-08-27 08:37:44 -07:00
Be1erafon
a709bc4a73 rtmp-services: Update Streamvi 2022-08-26 19:04:32 +02:00
Chris
7c36cba065 obs-ffmpeg: Change AMF bitrate to kbps
Move multiplication to when its passed to the encoder, so that bitrate
is kept in kbps. Changed for both for H264 and HEVC. Other encoders
(x264 and NVENC) already display bitrate in kbps in the log,
so it makes sense to mimic this with AMF. It's difficult to tell the
exact bitrate with bps.
2022-08-24 05:34:21 -07:00
jpark37
38d8a844de mac-capture: Use cleaner render patterns
Render code seems unnecessarily custom. Use normal patterns.
2022-08-22 16:38:50 -07:00
jp9000
6dc8897e79 obs-ffmpeg: Fix AMF encoder lockup with older AMD cards
This goes back to a slightly older variant of the
SubmitInput/QueryOutput handling that doesn't use AMF's timeout
property. Older devices do not like it when you change the query timeout
on the fly and will lock up. So instead, wait one millisecond when the
AMF input is full, which appears to fix the issue according to testers.

Also adds a loop timeout in case it goes in an infinite loop (which it
shouldn't anymore, but still)

Big thanks to Flaeri for testing the old code, and Yukari for patiently
testing a whole bunch of builds.
2022-08-22 11:20:51 -07:00
Jim
a6c2bb1294 obs-ffmpeg: Use AMD example PTS/DTS offset
All this does is it uses the same exact code AMD uses with their own
example FFmpeg muxer code. Although instead of adding to the PTS, it
subtracts from the DTS.
2022-08-22 11:15:23 -07:00
Jim
9b087d15fc ffmpeg-mux: Do not output error if non-fatal error
Fixes a case where stderr can fill up and cause a freeze on Windows
2022-08-22 03:30:10 -07:00
Jim
d95ebc6294 Revert "ffmpeg-mux: Disable stdout/stderr on Windows"
This reverts commit 332dd00089.
2022-08-22 03:28:38 -07:00
Jim
332dd00089 ffmpeg-mux: Disable stdout/stderr on Windows
These server no purpose unless the ENABLE_FFMPEG_MUX_DEBUG flag is
enabled, and will ultimately just cause problems.
2022-08-22 02:50:17 -07:00
jpark37
270d299258 mac-capture: Clip gamut to sRGB
Mac likes P3, but OBS only supports sRGB for SDR.
2022-08-20 16:39:37 -07:00
shiina424
d056dce428 mac-capture: Add missing locale text 2022-08-20 01:34:03 -07:00
Service Checker
9bdb136cd4 rtmp-services: Remove defunct servers/services 2022-08-20 01:30:29 -07:00
fuyingqi
f5be6f5fdd obs-ffmpeg: Fix ffmpeg_output memory leak
The memory leak was introduced by a commit ba68eda59 to use
av_packet_alloc because av_init_packet got deprecated.

Also removes a boolean flag `new_packet` and use the pointer `packet`,
which is introduced by ba68eda59, to indicate there is a new packet.

Co-authored-by: Norihiro Kamae <norihiro@nagater.net>
2022-08-18 11:07:17 -07:00
jpark37
87a69f7623 win-dshow: Incorporate Elgato submodule
Add automatic tonemap toggle for HD60 S+ as well.
2022-08-18 10:44:59 -07:00
jpark37
57a24c540f obs-x264: Remove unused HDR code
We don't allow HDR for x264, so remove dead code.
2022-08-17 23:20:29 -07:00
Ed Maste
8b370c4218 linux-v4l2: Correct udev fd poll event test
Parentheses are needed due to operator precedence (although the previous
code happened to work because POLLIN has the value 1).

Fixes:		91f986ec99 ("linux-v4l2: Check udev fd events")
2022-08-17 12:32:47 -03:00
derrod
1fdaf121e6 obs-qsv11: Do not apply limits if CPU generation is unknown
Users with AMD CPUs and Intel dGPUs (Arc) would find that QSV is
restricted to 1200p and missing features due to to this check failing.

Once the encoder gets rewritten for AV1 support we will fix this
properly.
2022-08-17 05:42:08 -07:00
Chris
0cc7ed4382 obs-ffmpeg: Add b-frame logging for AMD encoder
Add b-frame value to log for the AMD ENcoder When checking for b-frame
support, also set bf=0 so the log will reflect reality.
2022-08-17 05:38:54 -07:00
Matt Gajownik
591ba518dc plugins: Update translations from Crowdin 2022-08-17 14:27:34 +10:00
Translation Updater
4aaa07f93d Update translations from Crowdin 2022-08-17 04:22:50 +00:00
jpark37
7e6a2ccdec obs-ffmpeg: Prevent invalid NVENC combinations
Don't want to silently generate lossy video.
2022-08-16 21:14:36 -07:00
Ed Maste
91f986ec99 linux-v4l2: Check udev fd events
udev_event_thread calls poll with two fds: the udev fd, and an eventfd
used for shutdown.  On FreeBSD we were hanging on shutdown in
udev_monitor_receive_device after receiving the eventfd event.

Now, if the udev fd reports no events skip the
udev_monitor_receive_device call.

At shutdown the loop will exit via os_event_try().
2022-08-16 20:46:06 -07:00
Ro
85f2888048
rtmp-services: Update Switchboard Live service (#7104)
Updated servers and recommend settings.
2022-08-16 23:12:07 +02:00
Ed Maste
c3097f4ee9 aja: Correct typos in README.md 2022-08-16 14:08:21 -04:00
jpark37
4ffedf877a obs-ffmpeg: Block 8-bit HDR for AV1 encoders
Don't want to silently generate lossy video.
2022-08-16 07:39:52 -07:00
jpark37
175093b26b obs-x264: Block 10-bit formats
Don't want to silently generate 8-bit video.
2022-08-16 07:39:23 -07:00
jpark37
8ca35e4e10 obs-filters: Don't allow HDR max below 5 nits
That's the lower limit of max_display_mastering_luminance in the spec.
2022-08-16 07:39:04 -07:00
jpark37
62165b42d7 obs-qsv11: Replace CRITICAL_SECTION with SRWLOCK
Fixes initialize/destroy pattern; also slightly more performant.
2022-08-16 07:38:43 -07:00
jpark37
7406f04851 obs-qsv11: Prevent 8-bit HDR, and 10-bit anything
Don't want to silently generate lossy video.
2022-08-16 07:38:07 -07:00
jpark37
eec66e10e3 obs-ffmpeg: Prevent invalid AMF combinations
Don't want to silently generate lossy video.
2022-08-16 07:37:36 -07:00
jpark37
690ba952de obs-ffmpeg: Fix leaks in AMF with unique_ptr 2022-08-16 07:37:36 -07:00
Kurt Kartaltepe
f788e9f6b7 linux-v4l2: Add eventfd to signal udev on shutdown
Currently we use signals based on os_event's but the udev code blocks in
a 1s select (now poll) that cannot be signalled without an FD. This adds
an extra eventfd which will be signalled along with the os_event to
trigger the poll.

Also switches from select to poll to avoid issues with large fd values.
2022-08-15 16:58:09 -03:00
Kristian Ollikainen
9216a62edc win-dshow: Move invalid GUID warning 2022-08-13 16:41:46 -07:00
Kristian Ollikainen
4eb5e65122 win-dshow: Fix building without Virtual Camera 2022-08-13 16:41:46 -07:00
wang.shaohui
7eb46d50b7 win-capture: Fix memory leak in dc-capture.c 2022-08-13 01:50:38 -07:00
jpark37
37621f0fdd obs-filters: Fix filter color space queries
Need to ask target instead of parent.
2022-08-13 01:32:42 -07:00
gxalpha
a9b83c7ffd mac-virtualcam: Don't convert color space when converting color format
Converting the color space was likely accidental as it isn't explicitly
set. Unfortunately, not setting it means that it gets set to the
default, which is Rec. 709 and thus a conversion takes place when having
any other space. This conversion leads to a massive performance penalty
that isn't necessary.
2022-08-13 01:32:14 -07:00
gxalpha
d9c4c0f5da mac-virtualcam: Avoid conversion of P010 2022-08-13 01:31:40 -07:00
jpark37
535d4141cb obs-filters: Add HDR Tonemap filter
Allow per-source tonemapping to override default tonemapping.
2022-08-13 01:30:18 -07:00
Norihiro Kamae
e8f025cde2 decklink: Remove BOM 2022-08-13 00:49:17 -07:00
Richard Stanway
dcc79c374d
obs-ffmpeg: Fix format specifier in obs-amf-test 2022-08-12 23:05:58 +02:00
jpark37
a0e50b18b1 obs-filters: Remove param from AI greenscreen
Didn't notice two params were the same. Remove extra param.
2022-08-10 03:28:30 -07:00
jp9000
b763777a4b enc-amf: Mark as deprecated 2022-08-10 02:57:14 -07:00
jp9000
2c43ca1dc6 obs-ffmpeg: Add b-frame option to AMF encoder 2022-08-10 02:20:11 -07:00
jpark37
a392aa52cc obs-filters: Support HDR AI greenscreen 2022-08-09 20:21:05 -07:00
Vainock
020cd92ab5 mac-videotoolbox: Fix typo 'diffent' 2022-08-09 20:05:06 -04:00
gxalpha
ad57af4c0a mac-videotoolbox: Reject color formats other than NV12 and I420 2022-08-09 16:19:30 +02:00
gxalpha
6644fed7b1 mac-capture: Fix macOS 12 SCK Display Capture workaround
Adding all windows manually means that any windows opened after the
session was started won't appear. This instead excludes the Control
Center from Display Capture. While unfortunate, it seems to be the only
thing on the display that can't be disabled.
2022-08-09 16:18:28 +02:00
Richard Stanway
3c6c44e1fe
win-capture: Fix incorrect path in CMakeLists 2022-08-09 02:31:50 +02:00
jpark37
9c77796299 obs-filters: Fix NVIDIA greenscreen issues
Fix non-async sources, make sure math is linear-correct, preserve
incoming alpha, and allow the filter to work in previews.
2022-08-08 15:50:06 -07:00
derrod
9c20ad9046 obs-ffmpeg: Set NVENC CQP maximum to 51
51 is the actual maximum and especially with HEVC values higher than 30
are actually pretty usable.
2022-08-08 09:24:08 +02:00
Richard Stanway
86963f65d2
libobs, win-capture: Don't export ms_get_obfuscated_func
Since this was included in things like the inject helper and game
capture DLLs, it added an additional export to those programs. Instead,
simply share the source files directly in the projects that need it.

Co-authored-by: jpark37 <jpark37@users.noreply.github.com>
2022-08-07 19:41:23 +02:00
Matt Gajownik
61e0d69779 obs-browser: Update version to 2.18.5
71ef41a - Null check macOS window handle before detaching view
6235dfd - cmake: Remove setting code sign identity for Xcode builds
2022-08-07 15:14:50 +10:00
pkv
e08632328d obs-filters: Reset RTX greenscreen on cuda error
This resets the RTX greenscreen filter if the FX returns a CUDA error.
In case of a CUDA error 1099, the error can keep repeating locking up
the filter which is inoperant. So if such an error is detected we reset
the FX.

Signed-off-by: pkv <pkv@obsproject.com>
2022-08-06 17:22:03 -07:00
Chris
f5fe4d0acf obs-ffmpeg: Fix USAGE typo
Replace TRANSCONDING with TRANSCODING, because it is likely that the
typo compatibility will be removed in a future AMF header update. This
should also minimize confusion and improve search.
2022-08-06 20:02:48 -04:00
shiina424
29574b7fd2 win-wasapi: Add missing locale text 2022-08-06 16:58:16 -07:00
tududweb
9780d2f596 obs-ffmpeg: Remove unused variables for NVENC 2022-08-06 16:45:31 -07:00
tududweb
e16f336882 obs-ffmpeg: Reinit before retrying init for NVENC 2022-08-06 16:45:31 -07:00
tududweb
6c364f78cf obs-ffmpeg: Correctly assign argument for NVENC
When retrying again without Psycho Visual Tuning,
the argument psycho_aq should be false.
2022-08-06 16:45:31 -07:00
tytan652
d71878cd35 obs-ffmpeg: Add better error if SRT or RIST libraries are not found 2022-08-06 16:18:55 -07:00
columbarius
76e9c64f41 Revert "linux-capture: Fix Ubuntu 21.10 builds"
This reverts commit 0532a5c1f0.

Ubuntu 21.10 is from OBS 28 onwards not longer supported and as such we
can raise the requirement of the PipeWire dependency to 0.3.33.
2022-08-06 09:28:58 -03:00
Vainock
e6a03be487 obs-ffmpeg, obs-transitions: Use property suffixes 2022-08-06 10:23:26 +10:00
gxalpha
9f370bd36e mac-capture: Show "hidden" checkbox for app capture on update as well 2022-08-04 00:44:29 +02:00
Paul Hindt
44acdd68b0 aja: Fix output of garbage video during preroll
Add additional logging of card frame counts/indices
2022-08-02 09:46:58 -07:00
davids
33081419e7 aja: Adjust delay when sending frames to card
The plugin will try to maintain a hardware queue depth of 4 frames,

adjusting video and audio delay dynamically.
2022-08-02 09:46:58 -07:00
tytan652
8989cf5caf rtmp-services: Remove useless supported codec field
We normally default to H264 onlt and AAC only if nothing is set.
2022-08-02 09:41:32 -07:00
tytan652
96eb14af47 rtmp-services: Add fallback to H264 if no supported codec found 2022-08-02 09:41:32 -07:00
tytan652
0283fd2c71 rtmp-services: Fix incompatible-pointer-types warnings 2022-08-02 09:41:32 -07:00
tt2468
d12836af51 obs-websocket: Update submodule
Fixes the plugin version string in submodule building.
2022-08-01 22:24:57 -07:00
Paul Hindt
fd7c23b200 aja: Remove unused code from output plugin 2022-08-01 13:34:56 -07:00
Richard Stanway
8ab6fffec4 obs-amf-test: Add 2.5 second timeout for AMF test process
If the test process freezes for whatever reason, OBS would block
indefinitely on reading the pipe. This commit adds a 2.5 second timeout
on the AMF test process after which it will self-terminate.
2022-08-01 13:34:27 -07:00
Richard Stanway
68415fa08f obs-ffmpeg: Throw on invalid amf_format 2022-08-01 13:34:27 -07:00
Richard Stanway
ac025b51ac obs-ffmpeg: Use get_buf function to ensure buffers_mutex is locked 2022-08-01 13:34:27 -07:00
Richard Stanway
2e8b8c5ae1 obs-ffmpeg: Fix typo in min_qp_p / max_qp_p options
Detected by PVS Studio.
2022-08-01 13:34:27 -07:00
Richard Stanway
00408b6b3b obs-ffmpeg: Don't load AMF DLL before amf-test
In the event that simply loading the AMF DLL causes initialization code
to run that might crash, don't load the DLL before the AMF test process
has succeeded. Instead, we load the DLL as data to see if it exists,
then run the AMF test, then load the DLL for real.
2022-08-01 13:34:27 -07:00
jpark37
3d18643088 obs-ffmpeg: Use new priority parsing for HLS
Parsing priority while serializing/discarding packet data is too gross.
2022-08-01 08:15:39 -07:00
tytan652
9d0c48af33 obs-ffmpeg: Fix incompatible-pointer-types warning 2022-07-31 21:48:13 -07:00
tytan652
4303e31268 obs-ffmpeg: Replace ftime on *nix platforms
ftime is deprecated on newer version of glibc.
2022-07-31 21:48:13 -07:00
jpark37
a34439aecc obs-ffmpeg: Make muxers respect ENABLE_HEVC
The encoded_video_codecs field doesn't seem to be used though.

Also update HDR luminance to match pattern.
2022-07-31 21:46:17 -07:00
jpark37
f7b58f6f6e win-wasapi: Don't log if reconnect fails 2022-07-31 21:45:37 -07:00
jpark37
2a1b047d33 obs-ffmpeg: Implement priority for HEVC over HLS 2022-07-31 17:42:53 -07:00
Translation Updater
81734be37c Update translations from Crowdin 2022-07-31 23:40:53 +00:00
PatTheMav
a001f97e3c mac-videotoolbox: Remove guard for hardware acceleration check 2022-07-31 12:21:35 +02:00
PatTheMav
f9cf458c11 mac-syphon: Remove all syphon-inject code
The injection feature is defunct in Mac OS X 10.15.
2022-07-31 12:21:35 +02:00
PatTheMav
43bdc627ea mac-capture: Remove display name code path for Mac OS X before 10.15 2022-07-31 12:21:35 +02:00
PatTheMav
290509f41d mac-capture: Remove guard for Mac OS X 10.10 2022-07-31 12:21:35 +02:00
PatTheMav
5b7879d9aa mac-capture: Remove codepath for discovering devices pre Mac OS X 10.15 2022-07-31 12:21:35 +02:00
PatTheMav
7acf785322 mac-capture: Remove presets for Mac OS X pre 10.15 2022-07-31 12:21:35 +02:00
jpark37
a4083c56b5 obs-ffmpeg: Use top-left chroma location for HDR
As specified in the HEVC spec. VLC now reports top-left instead of left.
2022-07-31 00:10:50 -07:00
jpark37
7ec6f0a66b obs-filters: Add HDR support to Scroll 2022-07-30 20:34:56 -07:00
jpark37
6a871d3f66 obs-transitions: Add HDR support to stinger
Regular SDR/HDR stingers, and SDR track matte should work. HDR track
matte might work, but would take a carefully crafted video that takes
the SDR white level into account, and this hasn't been tested.
2022-07-30 20:34:34 -07:00
Kurt Kartaltepe
8cb57aac1f obs-ffmpeg: Mark rist/srt required
When compiling with the new flag these are required, if we dont fail
here we instead get a more cryptic failure that the targets are
unassigned later in the file. This should make it easier to find the
flag to turn off or packages being searched for.
2022-07-30 20:33:54 -07:00
gxalpha
728d919bde mac-capture: Make background transparent in SCK App Capture on macOS 13+ 2022-07-31 11:22:48 +10:00
Matt Gajownik
92824b5e2e enc-amf: Add 2.5 second timeout for AMF test process 2022-07-31 10:56:11 +10:00
tytan652
1e1a21b7bf obs-websocket: Update submodule
- base: Add checks for submodules in CMake
- base: Add ENABLE_WEBSOCKET CMake option
- base: Clean up find_qt macro
2022-07-30 17:34:36 -07:00
tytan652
4ce3a729fd plugins: Make CMake fail if obs-websocket is not found 2022-07-30 17:34:36 -07:00
jpark37
2455753948 win-dshow: Compute HDR colorspace
Figure out colorspace from TRC and primaries if necessary.
2022-07-30 17:25:37 -07:00
pkv
a9a65a88d8 obs-filters: Reset RTX Greenscreen if parent is updated
This fixes a bug where an update of the parent source breaks the filter.
A signal handler is added to listen to updates of the parent.
This triggers a reset of the RTX FX.

Signed-off-by: pkv <pkv@obsproject.com>
2022-07-30 17:06:51 -07:00
Paul Hindt
7095f0dd70 aja: Only allow output formats matching OBS framerate 2022-07-30 16:39:20 -07:00
jpark37
c03dfd6dbc obs-filters: Add HDR support to Crop/Pad 2022-07-30 16:22:52 -07:00
jpark37
9fc797c745 obs-filters: Align scale filter to pattern
No functionality change.
2022-07-30 16:22:52 -07:00
jpark37
a65477bf06 obs-filters: Add HDR bypass for sharpen
Not sure how to implement controls for HDR, so skip unless SDR for now.
2022-07-30 16:22:37 -07:00
jpark37
ee2753961e obs-filters: Add HDR support to Render Delay 2022-07-30 16:22:23 -07:00
jpark37
2e6dcc7f17 obs-transitions: Simplify fade shaders 2022-07-30 16:19:08 -07:00
pkv
039d7347a3
obs-ffmpeg: Allow use of old mpegts output
By default, new mpegts output is used; but to allow CI on linux not
to be broken, we allow use of old mpegts output.
Up to ubuntu 22.04 there is no librist package available.
A manual compile is then required but the CI scripts would need to be
updated.
This also allows easy fallback in case of fatal bugs in new output.

Signed-off-by: pkv <pkv@obsproject.com>
2022-07-30 17:03:20 +02:00
pkv
e7d097cab8
obs-ffmpeg: Native SRT/RIST for mpegts output
Currently the ffmpeg_mpegts_muxer output is integrated with ffmpeg-mux.
Both use obs native encoders in contrast with obs-ffmpeg-output which
relies on avcodec library.
This allowed easy implementation of SRT, RIST & HLS protocols through
avformat library.
The main drawback is that obs-ffmpeg-mux exe doesn't allow for easy
debugging nor logging of the protocols.
It was written initially as a separate binary designed for recording so
that if obs fails for some reason, the recording can still terminate
gracefully.

In this commit the ffmpeg_mpegts_muxer is rewritten so that a pipe to
the ffmpeg-mux binary is not used any more.
The muxing to mpegts is still delegated to avformat.
But it can be traced more easily in all its steps.
Also the protocol part for SRT & RIST is implemented natively.
Custom avio_contexts for SRT & RIST are used to that end.
This allows to pass our own implementation of librist and libsrt
libraries instead of relying on avformat. This is very advantageous :
- this allows better logging.
- this allows better bug fixing and maintainance without having to rely
on hypothetical upstream fixes.

One immediate bonus of native implementation is that fixes bugs which
were not previously fixable.

Fixes: SRT & RIST auto-reconnect partly broken  #6749
Fixes: SRT: OBS unusable and uncloseable after starting stream to
invalid srt server #5791

Signed-off-by: pkv <pkv@obsproject.com>
2022-07-30 17:03:10 +02:00
gxalpha
5f40084d25 mac-capture: Don't exclude desktop windows in SCK display capture
This fixes the desktop wallpaper missing on Display Capture on macOS 12
2022-07-30 15:24:35 +02:00
gxalpha
0207531910 mac-capture: Inline content_changed function 2022-07-30 15:24:35 +02:00
gxalpha
8fd2f164b7 obs-ffmpeg: Enable file splitting with obs_data directly
Also modifies UI accordingly.

This can enable file splitting even if no time or storage limit is set.
2022-07-30 15:21:08 +02:00
Be1erafon
6c39293bc8 rtmp-services: Add Streamvi service 2022-07-30 12:41:58 +02:00
gxalpha
ae3c9b3628 obs-ffmpeg: Add proc handler for manual file splitting 2022-07-30 18:50:13 +10:00
tududweb
bf65c5b041 image-source: Correctly assign hotkey to next instead of prev 2022-07-30 17:14:50 +10:00
jpark37
5ae7a92101 obs-ffmpeg: Set MaxCLL/MaxFALL for AMF 2022-07-29 23:23:25 -07:00
jpark37
00828d1d06 win-capture: Bump graphics hook version to 1.8.0 2022-07-29 23:22:39 -07:00
jpark37
f55021be90 graphics-hook: Bump Vulkan version
Vulkan loader blocks implicit layers older than application apiVersion.
2022-07-29 23:22:39 -07:00
jpark37
8a4352c1e5 graphics-hook: Relax Vulkan allocation strategy
Stop requiring DEVICE_LOCAL. May be needed for integrated GPUs.
2022-07-29 23:22:39 -07:00
jpark37
b7d630af6b graphics-hook: Update VkResult strings 2022-07-29 23:22:39 -07:00
jpark37
4c7c1854bd graphics-hook: Track DXGI status with counter
Previous approach could mark Present exit too early.
2022-07-29 21:54:28 -07:00
Eric Laberge
dfb9bb74f7 graphics-hook: Avoid conflict between Vulkan and DXGI Present 2022-07-29 21:54:07 -07:00
wpstream
14f4e993a7
rtmp-services: Add WpStream service (#6784) 2022-07-29 22:30:50 +02:00
tt2468
a196fc7824 plugins: Add obs-websocket submodule
Adds obs-websocket as a submodule, to be included in future releases of
OBS Studio by default.
2022-07-28 12:36:17 -07:00
tududweb
07b0786892 obs-ffmpeg: Fix frame remain after changing file
After changing the media source from video file to audio file,
the last video's frame (preloaded) maybe still rendered.

This commit ensures that when media source changed to
another one without video, clean the source's video output,
by simply add judgement to check whether the media has video.
2022-07-28 11:33:02 -07:00
Ryan Foster
81bd1d42f0 CI: Use VS2022 and clang-format 13
Switch to Visual Studio 2022 and clang-format 13.

The Ubuntu 22.04 image currently has clang-format 12.0.1, 13.0.1, and
14.0.0. VS2022 17.2 ships clang-format 13.0.1, so let's use that for now
until VS2022 17.3 is available with clang-format 14.

This commit also makes the necessary changes to allow the clang-format
check to pass.

This commit also updates the obs-browser submodules with the necessary
changes.
2022-07-27 11:09:59 -04:00
Matt Gajownik
a7c3d94e4c obs-vst: Remove submodule in favour of direct merge 2/2
Please visit the submodule repo for blame history:
https://github.com/obsproject/obs-vst

This also replaces the obs-vst .clang-format with obs-studio's.

This commit depends on the previous commit, which removes the submodule
separately as Git complains otherwise.

Co-authored-by: Alex Anderson <anderson.john.alexander@gmail.com>
Co-authored-by: Anton <camotank12345@gmail.com>
Co-authored-by: Blue Cat Audio <support@bluecataudio.com>
Co-authored-by: Cephas Reis <c3r1c3@nevermindonline.com>
Co-authored-by: Colin Edwards <colin@recursivepenguin.com>
Co-authored-by: Florian Zwoch <fzwoch@gmail.com>
Co-authored-by: Fogmoon <i@fogmoon.com>
Co-authored-by: Gol-D-Ace <Gol-D-Ace@users.noreply.github.com>
Co-authored-by: Igor Bochkariov <ujifgc@gmail.com>
Co-authored-by: Jesse Chappell <jesse@sonosaurus.com>
Co-authored-by: Keen <523059842@qq.com>
Co-authored-by: Kurt Kartaltepe <kkartaltepe@gmail.com>
Co-authored-by: Matt Gajownik <matt@obsproject.com>
Co-authored-by: Matt Gajownik <matt@wizardcm.com>
Co-authored-by: Richard Stanway <notr1ch@users.noreply.github.com>
Co-authored-by: Ryan Foster <RytoEX@gmail.com>
Co-authored-by: follower <github@rancidbacon.com>
Co-authored-by: gxalpha <beckmann.sebastian@outlook.de>
Co-authored-by: jp9000 <obs.jim@gmail.com>
Co-authored-by: jpark37 <jpark37@users.noreply.github.com>
Co-authored-by: mntone <sd8@live.jp>
Co-authored-by: tytan652 <tytan652@tytanium.xyz>
Co-authored-by: wangshaohui <97082645@qq.com>
Co-authored-by: wangshaohui <wang.shaohui@navercorp.com>
2022-07-26 22:12:23 -04:00
Matt Gajownik
34ff76c0e7 obs-vst: Remove submodule in favour of direct merge 1/2
Please visit the submodule repo for blame history:
https://github.com/obsproject/obs-vst

NOTE: You may need to manually delete plugins/obs-vst to pull this diff.
2022-07-26 22:12:23 -04:00
PatTheMav
93adc0a88c mac-capture: Fix creation of invalid window stream on source creation
When the ScreenCaptureKit-based source is generated, the window ID
read from the settings will be empty and interpreted as window ID "0".

This window ID doesn't represent a valid window, but the capture stream
is nevertheless successfully initialized with that value, but will not
generate any output.

Worse, the activated stream should be destroyed when a new stream is
created, but creation will throw an error.

This commit ensures that a valid window ID is used if no good default
value is available, ensuring a working (and destroyable) stream.

Also removes any remaining usage of the old window-utils.
2022-07-26 21:29:48 +02:00
PatTheMav
2bea178fb7 mac-capture: Fix issue with desktop capture introduced by macOS 12.5
Initializing a display stream with a content filter which excludes an
empty list of windows leads to a broken stream. Initializing with a list
of all available windows as a workaround re-enables functionality.
2022-07-26 21:29:48 +02:00
PatTheMav
2d2a5cad59 mac-capture: Cleanup code to improve efficiency
Reduces the amount of calls to the update callback (also reduces amount
of calls to check for available capture content).

Also moves some code to only update data for currently selected capture
type.
2022-07-26 21:29:48 +02:00
PatTheMav
790c5b66f6 mac-capture: Fix availability on macOS 12.5
Whereas the `availability` checks will correctly detect macOS 12.5,
the `__MAC_OS_X_VERSION_MAX_ALLOWED` macro is dependent on the platform
SDK. The most current platform SDK is 12.3, hence why this version
needs to be checked for.
2022-07-26 21:29:48 +02:00
jp9000
8a698e863d libobs: Add func to get supported service codecs
Allows a service to return a list of codecs that are currently supported
2022-07-26 09:23:35 -07:00
jp9000
b23fd86822 obs-ffmpeg: Add HEVC to supported HLS codecs 2022-07-26 09:23:35 -07:00
tytan652
02537e9c4a obs-vst,obs-browser: Update submodules
- Update find_qt macro usage in CMake
- Remove QT_VERSION and find_qt macro definition in CMake
2022-07-26 17:34:26 +02:00
jp9000
db789cfa44 virtualcam-module: Return S_FALSE if locks non-zero
The code mistakenly was returning S_OK if non-zero, which would have
been the opposite of what was intended.
2022-07-26 07:40:11 -07:00
gxalpha
17a4d9166a mac-capture: Improve SCK locale strings 2022-07-26 15:30:47 +02:00
jpark37
731c6f991b obs-vst: Update submodule 2022-07-25 20:15:20 -07:00
jp9000
0f08432f53 virtualcam-module: Don't send frames if stopped
Fixes a bug where frames would continue to send even while stopped
2022-07-25 18:03:53 -07:00
jp9000
382e37440e virtualcam-module: Use OBS atomic funcs
These are a bit more portable if we ever, say, port to windows ARM
2022-07-25 18:03:53 -07:00
jp9000
5efb3ea42d virtualcam-module: Only allow DLL unload when filter freed
Fixes a bug where the DLL could unload while the filter is currently
being destroyed, which would cause a crash in the host process
2022-07-25 18:03:53 -07:00
jpark37
e1b84f6bd6 obs-filters: Add HDR bypass for various filters
Not sure how to implement controls for HDR, so skip unless SDR for now.
2022-07-25 13:55:22 -07:00
jpark37
8b9fb03d06 obs-filters: Add HDR bypass for color correction
Not sure how to implement controls for HDR, so skip unless SDR for now.
2022-07-25 13:49:59 -07:00
jp9000
f6f6690ccf obs-ffmpeg: Fix AMD falling back to wrong preset
If the API to query the maximum throughput isn't available, it was
intended to fall back to balanced. This code caused it to vall back to
speed instead because if the API isn't available, max_throughput will be
0. This fixes it to make it only fall back to balanced instead.
2022-07-24 11:18:18 -07:00
PatTheMav
7f18bb6a26 mac-syphon: Disable inject functionality on macOS 10.15+
Also disables errors in log resulting from empty strings being passed
to `obs_data_create_from_json`.
2022-07-24 19:51:41 +02:00
PatTheMav
d5bed42f2d mac-syphon: Fix broken license display button on macOS 11+ 2022-07-24 19:51:41 +02:00
pkv
b555dcb8e2 obs-filter: Add RTX Background Removal filter
This adds support for RTX video Effects SDK.
The Background Removal filter relies on NVIDIA RTX AI Greenscreen FX.
A front speaker is separated from a background by applying
an alpha mask computed by AI.

Signed-off-by: pkv <pkv@obsproject.com>
2022-07-24 11:03:23 -04:00
pkv
4ac96e1352
obs-filter: Add NVIDIA Room Echo Removal to noise suppression filter
This adds the NVIDIA Room Echo Removal (dereverb) & a combined
Room Echo Removal + Noise Removal.

Signed-off-by: pkv <pkv@obsproject.com>
2022-07-24 16:18:47 +02:00
pkv
048090abdb
obs-filter: Fix loading of NVIDIA Audio Effects SDK
The NVIDIA Audio Effects SDK currently interferes with the Video
Effects SDK by not releasing a CUDA context.
Till this is fixed upstream, we do it manually. This also requires
 an SDK update to 1.1.0.5 for NVIDIA Audio Effects SDK.

Signed-off-by: pkv <pkv@obsproject.com>
2022-07-24 16:18:47 +02:00
pkv
cc2030ef06
obs-filter: Update NVIDIA Audio SDK
This updates the support of NVIDIA Audio Effects SDK to 1.1.0.5
Additionally, we add support for some CUDA functions required for
fixing a bug.

Signed-off-by: pkv <pkv@obsproject.com>
2022-07-24 16:18:38 +02:00
gxalpha
b72f15dcef mac-capture: Don't show apps with empty name in SCK
SCK's application list has one entry with empty name and bundle ID which
belongs to WindowServer. This is not worth exposing since an empty entry
would confuse users and nothing would get captured if selected.
2022-07-24 13:59:09 +02:00
gxalpha
22baff138b mac-capture: Add deprecated flag to traditional captures if SCK exists
Marking a source as deprecated will make it harder for users to find
when creating a new source. We don't currently plan on removing
traditional display and window capture, however ScreenCaptureKit will be
the preferred capture method going forward.
2022-07-24 13:59:09 +02:00
gxalpha
33a48a6e9c mac-capture: Add label about missing audio on macOS 12 to SCK 2022-07-24 13:59:09 +02:00
PatTheMav
94cf50a8ce mac-capture: Add more verbose log warning for missing permissions 2022-07-24 13:59:09 +02:00
PatTheMav
1d11c2d933 mac-capture: Fix compiler warnings for unused variables and data loss 2022-07-24 13:59:09 +02:00
PatTheMav
0df6c74f7d mac-capture: Make properties window reactive to selected capture type 2022-07-24 13:59:09 +02:00
PatTheMav
ca1a37586f mac-capture: Increase required macOS version for ScreenCaptureKit 2022-07-24 13:59:09 +02:00
Developer-Ecosystem-Engineering
81b631a855 Add support in "macOS ScreenCapture" for capturing audio through ScreenCaptureKit in macOS 13. By default, OBS will capture the audio for the frame content its capturing and exclude OBS own audio. For additional information
on the capabilities of audio capture refer to the documentation https://developer.apple.com/documentation/screencapturekit/ or watch the session "Meet ScreenCaptureKit".

Currently audio capture typically happens via virtual devices set up with 3rd party products. This requires additional installation and configuration by users.
Including the audio with the existing CMBuffers will make it easier to manage audio sync with video frames. Additionally, you can capture distinct audio tracks from multiple apps at once,
like a call with friends +  screen content.

macOS 13 on a 2019 16" MacBook Pro
macOS 13 on a 2022 M1 Pro Macbook Pro

Tested with multiple games + Discord, FaceTime, Apple Music and Safari tabs playing audio content.

* Bug fix (non-breaking change which fixes an issue)
* Performance enhancement (non-breaking change which improves efficiency)

* Additional control over what audio content to capture
* Logic to manage audio & frame sync
2022-07-24 13:59:09 +02:00
Developer-Ecosystem-Engineering
9ed5062e59 mac-capture: Add support for improved window capture in macOS 12.3
Add a new capture plugin called General Capture that allows for capture
of an entire desktop, a single window, or all windows of an application
2022-07-24 13:59:09 +02:00
jpark37
769a29bd1a win-wasapi: Add support for capturing a process
Use new process output API, and retrofit existing WASAPI abstractions.

Marked as "(BETA)" until we figure out the crackling at 60 minutes.
2022-07-23 17:41:34 -07:00
jpark37
69ff026647 libobs, win-capture: Share window helper code
Add "ms_" prefix as makeshift namespace.
2022-07-23 17:41:34 -07:00
tt2468
70f33f7794 obs-outputs: Improve librtmp timeouts on Linux
Replaces the usage of SO_SNDTIMEO with TCP_USER_TIMEOUT on Linux.
- Noted as more effective than SO_SNDTIMEO by multiple sources.
- Drops TCP connection on timeout instead of returning send() errors,
meaning more predictable reconnect timing and reconnect.
- Timeout period actually reflected in practice. SO_SNDTIMEO takes
double the timeout time than actually requested to time out on
unix, whereas WinSock actually waits the specified time.
2022-07-23 17:24:11 -07:00
Ryan Foster
614ff22e8d obs-outputs: Fix TLS_client init for mbedTLS 3.1.0+
When trying to update to mbedTLS 3.2.1, I ran into failures with RTMPS
output. After consulting an mbedTLS implementation example, I determined
that we were not setting up the SSL/TLS context config in the correct
order, causing the connection to fail. Performing the setup in the
recommended order fixes that.
2022-07-23 16:40:59 -07:00
Kurt Kartaltepe
57c9844f15 v4l2,scripting: Add more thread names
This sets some thread names for the scripting backend's defer thread and
the v4l2 udev thread.
2022-07-24 09:21:58 +10:00
tytan652
17ba8359e4 deps,libobs,plugins: Fix discarded-qualifiers warnings with FFmpeg 5 2022-07-22 08:50:36 -04:00
Vainock
eb06594381 Use property suffixes for units everywhere 2022-07-22 08:24:51 -04:00
Matt Gajownik
30e6613fed obs-browser: Update version to 2.18.2
cdb170c - Avoid redefining UNUSED_PARAMETER
e0bd234 - Revert "Fix macro-redefine warning with Qt loop enabled"
7e90b4a - Fix encoding of base64.cpp
e786624 - Fix helper-info filename for case sensitive partition
002fc52 - Fix macro-redefine warning with Qt loop enabled
2022-07-22 10:01:51 +10:00
Richard Stanway
88226db6b3
obs-ffmpeg: Fix AMF AVC / HEVC check logic 2022-07-22 00:45:34 +02:00
OvchinnikovDmitrii
4e140d2ffe obs-ffmpeg: Add texture-based hardware AMD encoder
Adds support for texture-based AMD encoding, with both H264, HEVC, and
HDR support. Falls back to FFmpeg when texture-based encoding cannot be
used for whatever reason.

(Jim note: This is based upon obsproject/obs-studio#4538 by AMD/Luxoft
with fewer files, FFmpeg fallback for software encoding, and HDR
support. I also went to lengths to ensure that FFmpeg command line
parameters also works with it)

Co-authored-by: Jim <obs.jim@gmail.com>
2022-07-21 15:29:25 -07:00
gxalpha
393af9d916 mac-syphon: Ignore 10.13-only deprecation warning 2022-07-21 01:13:16 +02:00
tytan652
8409f72f60 plugins: Replace OBS_UNUSED with UNUSED_PARAMETER
OBS_UNUSED is not portable to MSVC.
2022-07-20 08:22:08 +02:00
tytan652
79480c98d9 aja: Remove unused parameters 2022-07-20 08:22:08 +02:00
tytan652
fcc94634d9 obs-ffmpeg: Remove unused parameter 2022-07-20 08:22:04 +02:00
Norihiro Kamae
317780ca1b aja: Remove unnecessary .keepme files
Since the directory contains some files, .keepme, which is intended to
keep an empty directory on a git repository, is unnecessary.
2022-07-19 14:40:32 -04:00
Norihiro Kamae
1005022621 obs-filters: Remove unnecessary OBS_UNUSED attribute
The attribute OBS_UNUSED was added at 49e9d4994 but the parameter is
read in the function if LIBSPEEXDSP_ENABLED is defined
2022-07-19 11:01:00 -04:00
Norihiro Kamae
7e3656ab33 plugins: Cleanup unused-parameters
- Remove unnecessary UNUSED_PARAMETER
- Add OBS_UNUSED attribute to unused parameters
- Also removes unused variables
2022-07-19 11:01:00 -04:00
tytan652
5ff07c63b6 mac-videotoolbox: Guard hardware_accelerated check behind macOS 10.14 2022-07-19 12:46:42 +02:00
tytan652
a81a9ea113 mac-avcapture: Fix null-conversion warning 2022-07-19 12:46:42 +02:00
Richard Stanway
22ef40ba17
text-freetype2: Don't read / write empty size arrays 2022-07-18 23:23:12 +02:00
Richard Stanway
174e91f211
rtmp-services: Avoid calling bmemdup on NULL resolution list 2022-07-18 23:12:49 +02:00
jpark37
5738f63549 obs-ffmpeg: Fix type mismatch 2022-07-18 03:52:04 -07:00
jpark37
f85d71abe8 aja: Suppress C4996
NTV2TestPatternGen::DrawTestPattern overloads are deprecated.
2022-07-18 03:52:04 -07:00
jpark37
f03827eb63 text-freetype2: Suppress LNK4098
defaultlib 'MSVCRT' conflicts with use of other libs; use
/NODEFAULTLIB:library
2022-07-18 03:52:04 -07:00
jpark37
cb5f718d1d obs-outputs: Suppress LNK4098
defaultlib 'MSVCRT' conflicts with use of other libs; use
/NODEFAULTLIB:library
2022-07-18 03:52:04 -07:00
jpark37
da35719f83 obs-filters: Suppress LNK4098
defaultlib 'MSVCRT' conflicts with use of other libs; use
/NODEFAULTLIB:library
2022-07-18 03:52:04 -07:00
jpark37
9f0769cc82 obs-ffmpeg: Suppress NVENC preset warnings for now
Top men are working on upgrading the presets.
2022-07-18 03:52:04 -07:00
Matt Gajownik
8ead7186be obs-browser: Update version to 2.18.1
cfad34d - Use auto release refs
64c1796 - Handle SSL cert date invalid error in browser panels
394d6f7 - Back up then restore POSIX signal handlers on CefInitialize
161ffd2 - Replace type mismatch with range-based for loop
2022-07-17 16:33:50 +10:00
Norihiro Kamae
d7b363a7c4 aja: Increment aja-source version for buffering setting
Add aja-source version 2 to differentiate buffering settings, which is
implemented in a255b0f74.
To register two versions, remove to return obs_source_info and register
the source inside aja-source.cpp.
Also revise aja-output.cpp to register aja-output to keep consistency of
function type.
2022-07-16 16:47:19 -07:00
Norihiro Kamae
56c502b254 obs-qsv11: Fix timestamp for fractional frame rate
This commit rounds the timestamp to the integer multiple of fps_den.
Prior to this change, since the timestamp in MFX is defined in units of
90 kHz, timestamps for 60000/1001 fps is not accurately expressed. Also
the encoder sometimes returns the decode time stamp slightly off.
Hence, the timestamp in OBS becomes not a multiple of fps_den after
converting back from the timestamp in MFX.
2022-07-14 19:20:40 -04:00
PatTheMav
9145e3063d win-capture: Fix subprojects not installing on incremental builds
When changing a subproject (e.g. graphics-hook), the generated binaries
are not installed without also building win-capture. This commit enables
the subprojects to be treated as "plugins" which are installed to rundir
and also the installation directory without any additional workarounds.
2022-07-13 15:52:13 -04:00
PatTheMav
e2e06f6f08 mac-syphon: Fix usage of methods deprecated since macOS 11.0
`absolutePathForAppBundleWithIdentifier` and `openFile` have both been
deprecated since macOS 11.0. This pr uses the correct modern APIs when
OBS is compiled for macOS 11.0 or more recent and falls back to the
legacy APIs when either compiled against or run on older macOS versions.
2022-07-11 23:19:21 -07:00
jpark37
df96e68ca6 cmake: Disable LNK4099 warning
We are very unlikely to ship PDBs for deps.
2022-07-11 22:07:10 -07:00
jpark37
8bb03a1136 obs-ffmpeg: Fix warning about useless llabs call 2022-07-11 22:07:10 -07:00
jpark37
1c58d4402d aja: Fix warnings about type usage 2022-07-11 22:07:10 -07:00
PatTheMav
566ce79b0f mac-videotoolbox: Enable CBR and CRF on hardware encoders only
Both rate control methods only work on hardware encoders and will error
out when selected for software encoders, so we shouldn't show them there

Co-Authored-By: Sebastian Beckmann <beckmann.sebastian@outlook.de>
2022-07-11 23:45:43 +02:00
AuroraWright
84c7d87a7f mac-videotoolbox: Add CRF support on Apple silicon
Co-Authored-By: Sebastian Beckmann <beckmann.sebastian@outlook.de>
2022-07-11 23:45:43 +02:00
Developer-Ecosystem-Engineering
9e0d7b3123 mac-videotoolbox: Add CBR support on Apple silicon / macOS 13
Implementation adjusted by the OBS Project.

Co-Authored-By: Sebastian Beckmann <beckmann.sebastian@outlook.de>
2022-07-11 23:45:43 +02:00
gxalpha
8c987a86ac mac-videotoolbox: Use type_data as it was intended 2022-07-11 23:45:43 +02:00
gxalpha
fffb320225 mac-videotoolbox: Remove redundant bitrate check
The session_set_bitrate method already returns an OSStatus to confirm
that everything has been successful. As such, a second check to make
sure that the bitrate has indeed changed is redundant and only adds
unnecessary code.
2022-07-11 23:45:43 +02:00
gxalpha
182906d412 mac-videotoolbox: Rename functions to remove "h264" 2022-07-11 23:45:43 +02:00
gxalpha
a129c953e8 cmake: Rename mac-vth264 plugin to mac-videotoolbox 2022-07-11 23:45:43 +02:00
gxalpha
737f0ab08a mac-videotoolbox: Rename mac-vth264 plugin to mac-videotoolbox 2022-07-11 23:45:43 +02:00
Kurt Kartaltepe
c6cb0838fd linux-capture: Silence log spam on xcomposite capture
It is expected that capture might fail, like when a window is minimized.
In these cases we dont want the log to be spammed by X11 errors so
install a noop error handler while we try to import.
2022-07-10 11:24:40 +10:00
Kurt Kartaltepe
e9076da901 linux-capture: Retry capture if texture not created
This prevented OBS from re-aquiring capture when windows were minimized
or fullscreened.
2022-07-10 11:24:40 +10:00
PatTheMav
c61d523d58 mac-avcapture: Fix deprecation warning for AVCaptureDevice list
Direct access to `[AVCaptureDevice devices]` is deprecated since macOS
10.15. An `AVCaptureDeviceDiscoverySession` is to be used instead, which
this PR implements.

When running on older macOS versions or compiling against older platform
SDKs, the deprecated method is used.

PS: The formatting is not proper ObjC style, but that's clang-format's
doing with our current settings.
2022-07-10 10:09:58 +10:00
tt2468
97756861b4 obs-outputs: Rework RTMP context init/deinit
This commit fixes what is arguably a long-winded series of previous
commits that have possibly caused just as many problems as they have
fixed. I'll spare the details, but basically, there's no reason that
any of the RTMP object should ever be used across socket sessions.

This provides a slight enhancement by removing the `RTMP_Init` call
in `rtmp_stream_create()`, since it effectively just initializes TLS
just for `try_connect` to deinitialize it before it is even used.

This also fixes the current `SO_RCVTIMEO` timeout functionality by
making sure that `RTMP_Reset` is called last.
2022-07-09 17:04:37 -07:00
Norihiro Kamae
c1d1526b24 aja: Split audio part in CaptureThread to function
To improve readability of the capture thread function
`AJASource::CaptureThread`, audio part is split into two functions.
Behavior is not changed.
Also fixed one of warnings.
2022-07-10 10:01:58 +10:00
Norihiro Kamae
08a071d7a5 aja: Fix memory overrun on aja-source
When too many audio frames are captured and at the same time the ring
buffer on the card is wrapped, memory overrun was not captured before
DMA transfer, which resulted in corruption of memory contents. This
commit moves the overrun check before the DMA transfer.
2022-07-10 10:01:58 +10:00
PatTheMav
62c6a6d223 obs_ffmpeg: Explicitly mark variables as unused 2022-07-10 09:59:55 +10:00
PatTheMav
fa7047c418 images-source: Explicitly mark variables as unused 2022-07-10 09:59:55 +10:00
PatTheMav
ed9cc5c0dd aja: Explicitly mark variables as unused 2022-07-10 09:59:55 +10:00
PatTheMav
3f2aad12cd obs-ffmpeg: Disable compiler warnings about non-exhaustive switch cases 2022-07-10 09:59:55 +10:00
PatTheMav
7bb2f33417 obs-filters: Disable compiler warnings about non-exhaustive switch cases 2022-07-10 09:59:55 +10:00
PatTheMav
deeaccb3d1 obs-x264: Disable compiler warnings about non-exhaustive switch cases 2022-07-10 09:59:55 +10:00
pkv
b9237aed29 obs-ffmpeg: Fix srt/rist not working
This fixes a bug where the new circular buffer code is hit by protocols
such as rist or srt although the buffer was meant for files.

Signed-off-by: pkv <pkv@obsproject.com>
2022-07-09 16:29:04 -07:00
Paul Hindt
e390252540 aja: Fix audio capture sometimes offset by a channel 2022-07-09 16:20:23 -07:00
jpark37
8614697c59 obs-qsv11: Use same adapter as OBS
A mismatch will lead to failure.
2022-07-09 16:08:47 -07:00
MagicBear
f54f8ee714 obs-ffmpeg: Add NVIDIA Tesla NVENC support 2022-07-09 15:49:26 -07:00
mvji
16f5fe5ee2 obs-ffmpeg: Add m4v extension to open file dialog 2022-07-09 13:45:29 -04:00
Vainock
e053f9dd26 UI,mac-avcapture: Use consistent variables in locales 2022-07-02 14:02:40 +10:00
Hernán
68f3a5f37d rtmp-services: Update Piczel.tv recommended settings 2022-06-27 15:02:18 -04:00
columbarius
e14f6280c2 linux-pipewire: Log modifier
The used modifier is important to debug subtle issues when the imported
buffer appears to be currupt.
2022-06-27 13:56:16 -03:00
Jim
7c493ea035
Merge pull request #6645 from GeorgesStavracas/gbsneto/pipewire-cleanup
Various cleanups to linux-pipewire
2022-06-25 16:21:00 -07:00
Norihiro Kamae
bf97248a81 mac-vth264: Fix PTS passed to the encoder
It is reported that the encoder does not follow the bitrate settings.
This commit tries to correct the timestamps so that the bitrate control
in the encoder works.
2022-06-25 16:17:09 -07:00