Commit Graph
3908 Commits
Author SHA1 Message Date
jpark37andJim 47f4c18a95 win-dshow: Ignore FFmpeg colorspace if overridden
Verified MJPEG devices are no longer locked to Rec. 601.
2022-12-01 14:14:25 -08:00
ChrisandRyan Foster 3d87b3b948 obs-ffmpeg: Disable VBAQ for H264 CQP rate control
Checks if rate control is CQP, if not, enable VBAQ. As per AMD, VBAQ
should not be used with CQP.
2022-11-30 17:42:59 -05:00
jp9000 5496802182 obs-qsv11: Fix QSV detection
When this detection helper was originally written, it incorrectly set
the hardware implementation value. This fixes it to use the correct one
based upon the index.
2022-11-30 13:26:16 -08:00
Jim 5c0773e128 obs-qsv11: Fix encoder capping resolution on dgpus 2022-11-28 08:36:46 -08:00
Jim 9435458c46 Revert "obs-qsv11: Don't set to low power mode if AV1"
This reverts commit eaa85ca8b3.

(Jim note: I misunderstood the situation)
2022-11-28 08:04:20 -08:00
Jim 0aa12088b3 obs-qsv11: Fix HDR not working with AV1
Neither the mfxExtMasteringDisplayColourVolumme and
mfxExtContentLightLevelInfo structures appear to be supported when using
AV1, so if using AV1, do not include these structures.

It's unknown as to why AV1 fails to initialize when using either of
these extended structures as part of its configuration parameters.
Either they're completely unsupported or there's a member variable that
causes initialization to fail.
2022-11-27 14:19:22 -08:00
Jim eaa85ca8b3 obs-qsv11: Don't set to low power mode if AV1
If AV1 is being used, this code path doesn't make sense because it's
meant for older devices. If the encoder is AV1, it's a newer device.
2022-11-27 14:17:38 -08:00
Jim e72aa91a6d obs-qsv11: Keep ExtParam value around
This wasn't meant to be freed in InitParams
2022-11-26 08:44:16 -08:00
jp9000 dd61943ddf obs-qsv11: Remove statics, fix buffer misuse
This whole "array of pointers" thing is very dumb and dangerous.
2022-11-22 17:27:10 -08:00
fceee90aa9 obs-qsv11: Add HEVC
Co-authored-by: jpark37 <jpark37@users.noreply.github.com>
Co-authored-by: Jim <obs.jim@gmail.com>
2022-11-22 07:29:31 -08:00
Jim 37a8835895 obs-qsv11: Don't declare vars in switch w/o braces 2022-11-22 05:56:25 -08:00
Jim 84565000f7 obs-qsv11: Remove unused function 2022-11-22 05:54:22 -08:00
Jim 0870a23d6c obs-qsv11: Fix profile default for AV1
"high" profile is not supported by AV1
2022-11-22 05:44:29 -08:00
Jim 5b11cfd04d obs-qsv11: Remove unused function declaration 2022-11-22 05:23:15 -08:00
ChrisandJim c4a8364b8c obs-ffmpeg: Disable VBAQ for HEVC CQP rate control
Check rate control, if cqp (0), dont use vbaq
2022-11-22 04:13:56 -08:00
Ryan Foster bfcca93424 rtmp-services: Suppress LNK4098
Suppress LNK4098 to allow building against pre-built Jansson for now.
2022-11-22 00:14:16 -05:00
Jim 3c4f9f18c7 obs-qsv11: Simplify CQP
Uses the same QP value for B, P, and I frames to simplify the settings
2022-11-21 19:08:02 -08:00
GaleandJim 319eac4bf5 obs-qsv11: Add QSV AV1 encoder 2022-11-21 19:08:02 -08:00
GaleandJim 9dd70910cb obs-qsv11: Add codec enum
(Jim description: Adding a codec enum will add support for other codecs)
2022-11-21 19:08:02 -08:00
GaleandJim 4b6af813dc obs-qsv11: Only reinitialize bitrate 2022-11-21 19:08:02 -08:00
Jim eaf243bca7 obs-qsv11: Add startup process to test QSV support
This simplifies encoder initialization and prevents it from requiring
any sort of unnecessary Direct3D or encoder initiazation tests while OBS
is actually running.
2022-11-21 19:08:02 -08:00
Matt Gajownik 0716e8b482 obs-ffmpeg: Fix building without HEVC on Windows 2022-11-21 18:54:09 +11:00
tytan652andRyan Foster 723ca8f034 CI,obs-vst: Update Flatpak KDE Runtime to version 6.4
The 6.4 runtime rely on Freedesktop 22.08 which provide a more recent
version of Mesa and PipeWire.

The switch to 22.08 also requires to migrate paths of VST 2 plugins.
2022-11-20 17:16:02 -05:00
Clayton GroeneveldandRyan Foster cfcad30e3e UI, image-source: Add slide counter to slideshow toolbar
This shows the current slide and total number of slides in the
slideshow toolbar.
2022-11-20 03:07:27 -05:00
Richard StanwayandMatt Gajownik 02c6ce8b58 obs-vst: Improve some string handling
- Use constant references where appropriate
- Avoid unnecessary use of strcmp / strlen
- Clear std::string with clear()

Issues detected by PVS Studio.
2022-11-20 17:25:33 +11:00
Richard StanwayandMatt Gajownik fe9c3748ce obs-vst: Use libobs memory allocation functions 2022-11-20 17:25:33 +11:00
tt2468 24d7bea41f obs-ffmpeg: Improve RIST/SRT log messages
Overall improvements to match behavior of other log sources.
2022-11-19 18:16:05 -08:00
ChrisandRyan Foster a463326e37 ffmpeg: fix cqp rate control on svtav1
global_quality does not get respected. Specifying via priv_data does
work however
2022-11-19 20:55:42 -05:00
ChrisandRyan Foster 777a8f8c47 ffmpeg: fix "cqp" mode for libaom
change from global_quality to setting crf via priv_data, as
global_quality does not get respect. There is no cqp param in
ffmpeg 5.0.1
2022-11-19 20:55:42 -05:00
Matt Gajownik 8dcc536edb obs-browser: Don't use QPointF for pointer position 2022-11-20 11:55:46 +11:00
Matt Gajownik accc866203 obs-browser: Update version to 2.19.0
8985c0f - Add ability to mute individual browser docks/panels
c9d1e37 - Don't use app binary directory for logging
7142b21 - Add ability to directly open Dev Tools for Panels
2022-11-20 11:43:06 +11:00
Matt Gajownik 27e3f9718f libdshowcapture: Support more capture cards with uncoupled audio
Also disable clang-format for the submodule.
2022-11-20 11:39:46 +11:00
tytan652andMatt Gajownik 74b245431c obs-ffmpeg: Use Libva in FFmpeg VA-API
Libva is directly used to check if DRI devices support H264 encoding.
2022-11-20 11:30:40 +11:00
JimandGitHub 572407a928 Merge pull request #7809 from obsproject/amf-av1-rebased
Add Hardware AMD AV1 Encoder
2022-11-19 15:52:16 -08:00
Ryan FosterandJim 46e17a1160 obs-ffmpeg: Fix SVT-AV1 rate control mode selection
In updated versions of FFmpeg (5.1.x) and SVT-AV1 (1.2.0/1.3.0), the
rate contol mode selection mechanism has changed, causing CBR to throw
an "Invalid Parameter" error and the encoder will fail to start. This
appears to be caused by us specifying rc_max_rate, which will also fail
on FFmpeg CLI. Adjust how we manage rate control methods, appropriately
version-gated, to work with both our current dependency versions and the
versions that we'd like to use.
2022-11-19 15:44:12 -08:00
jpark37andJim 0c4e7c4142 decklink: Always output BGRA 2022-11-19 15:24:26 -08:00
gxalphaandJim 838446082e mac-videotoolbox: Default to High profile 2022-11-19 15:05:05 -08:00
Matt GajownikandJim 80d393bb75 win-dshow: Recognise higher FPS values from devices 2022-11-19 07:37:15 -08:00
Roman Hutsandjp9000 341f288b57 obs-ffmpeg: Fix encoder preset quality fallbacks for AVC/HEVC/AV1
(Jim note: The missing description of this commit is that basically, the
CAP_MAX_THROUGHPUT value returns a different result based upon what the
other settings are currently set to. It didn't operate the way it was
originally programmed.)
2022-11-18 18:18:08 -08:00
Roman Hutsandjp9000 49e5f7783f obs-ffmpeg: Suggest docs to reference for AMF/FFmpeg options 2022-11-18 18:18:08 -08:00
Roman Hutsandjp9000 927733240c obs-ffmpeg: Add AMF AV1 encoder 2022-11-18 18:18:08 -08:00
Roman Hutsandjp9000 a8fc9226f8 obs-ffmpeg: Use codec enum for AMF texture encode check 2022-11-18 18:18:08 -08:00
Roman Hutsandjp9000 8b386a6417 obs-ffmpeg: Make AMF AVC encoder name consistent w/ others 2022-11-18 18:18:08 -08:00
Roman Hutsandjp9000 ef1a9c46e3 obs-ffmpeg: Only show b-frames AMF property for AVC 2022-11-18 18:18:08 -08:00
Roman Hutsandjp9000 1948ddf2fa obs-ffmpeg: Only allow AMF high/baseline profiles for AVC 2022-11-18 18:18:08 -08:00
Roman Hutsandjp9000 535ced04d5 obs-ffmpeg: Allow 0-51 for CQP property
0-51 makes it consistent with other encoder implementations (At least
for AVC/HEVC)
2022-11-18 18:18:08 -08:00
Roman Hutsandjp9000 21d079fdcc obs-ffmpeg: Use codec enum for amf_properties_internal 2022-11-18 18:18:08 -08:00
Roman Hutsandjp9000 acfad45ead obs-ffmpeg: Fix transcoding API typo 2022-11-18 18:18:08 -08:00
Roman Hutsandjp9000 48b5fd5a3b obs-ffmpeg: Update AMF SDK for AV1 support 2022-11-18 18:18:08 -08:00
Jim 8806738a04 obs-ffmpeg: Change default nvenc preset to P5
P6 seems to invoke lookahead, which causes lag for some older GPUs and
interferes with game performance. So let's just use P5 by default for
now. Shouldn't really affect recording anyway.
2022-11-18 12:38:54 -08:00