Commit Graph

3711 Commits (2bb0818fb407f47700344e2394b3984361a1aea8)

Author SHA1 Message Date
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