Commit graph

56 commits

Author SHA1 Message Date
Translation Updater 8999d9fef9 Update translations from Crowdin 2024-06-07 09:47:58 +00:00
Vainock 7ae66c72fd Update translations from Crowdin 2024-02-28 14:20:05 -05:00
Translation Updater ac484a066f Update translations from Crowdin 2024-01-29 20:47:38 +00:00
Translation Updater f674d17168 Update translations from Crowdin 2023-12-05 22:04:31 +00:00
PatTheMav 63a131ce22 mac-videotoolbox: Fix handling of unsuccessful encoder creation
When an encoder was not created in create_encoder, the appropriate
OSStatus value is returned but the calling code expects a boolean
return value.

The negative OSStatus code sent on error is thus interpreted as a
truthy value and the error is not detected. Changing the call signature
to correctly return an OSStatus (and change the caller to detect
error situations) fixes this.
2023-12-02 17:49:24 -06:00
gxalpha 6ed2e13974 mac-videotoolbox: Remove CRF 0 second keyint override
The previous commit sets the default configuration to 2 seconds, meaning
that the 0 second default interval no longer happens per default. If
someone explicitly sets the interval to 0 seconds ("auto"), we should
allow them to do that.
2023-11-04 18:47:52 -05:00
gxalpha 5cd30d6a86 mac-videotoolbox: Set default keyframe interval to 2 seconds
0 seconds means "auto" according to the documentation, but this appears
to be broken in many configurations (more than just CRF mode on Apple
Silicon). With some encoders it means that the encoder sets a keyframes
every 31st frame, other times it just doesn't set any keyframes at all
after the first one, only rarely does the "auto" interval actually
appear to work.
Lets just set the default to 2 seconds and be happy. In theory this is
the maximum keyframe interval and encoders are allowed to set more if
they so wish, but they never appear to do so.
2023-11-04 18:47:52 -05:00
gxalpha ba4467199c plugins: Remove old macOS version ifdefs
8dd20dfd33 introduced an explicit check
for the available macOS SDK, meaning that we can be sure that the macOS
13.1 SDK is available. As such, we do not require ifdef guards for the
availability of functions that are older than 13.1.
2023-10-27 16:00:42 -04:00
Translation Updater 0d450a34a0 Update translations from Crowdin 2023-10-10 13:34:41 +00:00
Translation Updater ecf914dd67 Update translations from Crowdin 2023-08-13 14:09:15 +00:00
PatTheMav 59904a66a3 cmake: Update Framework link definition for macOS builds 2023-06-17 12:23:33 -04:00
PatTheMav 9805b706d1 cmake: Remove legacy files for macOS builds 2023-06-17 12:23:33 -04:00
PatTheMav 50a4e83251 cmake: Remove Info.plist template files for macOS builds
Creation of Info.plist files through Xcode is more canonical and
future-proof, as it will automatically pick up changes/updates
introduced by Apple. Non-standard keys can still be added via a
template file, which will then be extended by Xcode with the default
keys.
2023-06-17 12:23:33 -04:00
PatTheMav 53cfe5cb7f mac-videotoolbox: Remove unreachable code to fix clang warning 2023-06-16 14:12:58 -04:00
gxalpha ded9aba106 mac-videotoolbox: Remove encoder sorting 2023-06-03 13:48:47 -07:00
Norihiro Kamae 9c7d535b13 mac-videotoolbox: Remove obsolete translation
A commit e461ec4be1 added a translation key "VTEncoder" but never used.
2023-05-20 16:35:05 -07:00
Lain 106c7aa61f Update copyrights/names 2023-05-20 01:31:18 -07:00
gxalpha 0cc7ea7a2a mac-videotoolbox: Fix incorrect keyframe interval calculation 2023-05-18 18:28:53 -04:00
Translation Updater a0fbdc3c34 Update translations from Crowdin 2023-05-01 23:11:13 +00:00
gxalpha 1c15066cc4 mac-videotoolbox: Differentiate unsupported format and range errors 2023-04-29 16:15:42 -07:00
derrod 3fed2e081e mac-videotoolbox: Enforce non-zero keyframe interval in CRF mode 2023-04-05 17:03:21 -07:00
PatTheMav 43f12d1fbd mac-videotoolbox: Fix compile issue if HEVC is disabled
The format is only checked for 10-bit capable formats, which in this
case applies to HEVC only. When HEVC is disabled, then `format` is
not checked and becomes an unused variable otherwise.
2023-04-04 23:14:27 +02:00
Translation Updater 7c5560bf1b Update translations from Crowdin 2023-03-27 13:39:03 +00:00
PatTheMav 349372b3b3 cmake: Add changes for CMake build framework 3.0
New code path only taken if OBS_CMAKE_VERSION is set to 3.0.0 or
greater, old functionality remains unchanged.
2023-03-26 18:20:38 -04:00
PatTheMav 8061652051 mac-videotoolbox: Refactor implementation
Existing code made use of macros which broke parsing in Xcode and
complicated debugging as crucial code was executed within macros and
not actual source code.

Use of mutable CoreFramework data structures (which were never mutated)
is replaced by use of faster non-mutable variants.

When an allocator needs to be used, `kCFAllocatorDefault` is specified
explicitly.

VideoToolbox session properties are also set in bulk instead of
multiple consecutive calls.

Also simplifies detection of Apple Silicon hosts to make code more
readable.
2023-02-21 21:29:12 +01:00
jpark37 09c2a321ce mac-videotoolbox: Add ProRes 4444 (XQ) support
Also leverage P216/P416 pixel formats to retain precision.
2023-02-21 18:48:44 +01:00
gxalpha 67e6b8649a mac-videotoolbox: Load encoders from system asynchronously
Copying the encoder list takes a while which blocks the main thread.
Doing the copying asynchronously removes instead of blocking the main
thread improves startup performance by about 60ms.
2023-02-12 17:38:21 +01:00
Translation Updater 783bd52197 Update translations from Crowdin 2023-01-08 04:10:37 +00:00
jpark37 0fc3cb1962 mac-videotoolbox: Add HDR metadata 2022-12-10 21:43:50 -08:00
jpark37 6c8028a849 mac-videotoolbox: Don't parse HEVC as AVC 2022-12-03 15:31:41 -08:00
gxalpha 838446082e mac-videotoolbox: Default to High profile 2022-11-19 15:05:05 -08:00
gxalpha 8e8148a2d5 mac-videotoolbox: Support P010 and HDR color spaces 2022-11-12 12:24:10 +01:00
PatTheMav 097e9ccecf mac-videtoolbox: Use correct size for system representation CFStrings 2022-11-02 22:44:20 +01:00
gxalpha a352f0fdd8 mac-videotoolbox: Make unsupported color format text codec agnostic 2022-11-02 22:44:20 +01:00
Developer-Ecosystem-Engineering 44c824985c mac-videotoolbox: Remove HW_ACCEL flags
The hw/sw encoder selection is enforced by the encoder IDs, so these flags are
not explicitly needed.
2022-11-02 22:44:20 +01:00
Developer-Ecosystem-Engineering 761530d34b mac-videotoolbox: Add support platform hardware and software ProRes 422
Utilize the systems ProRes software and hardware encoders on supported configurations
2022-11-02 22:44:20 +01:00
Developer-Ecosystem-Engineering e461ec4be1 mac-videotoolbox: Add support for platform hardware and software HEVC
Adds support for the system provided HEVC encoders
2022-11-02 22:44:20 +01:00
Translation Updater f065f20ce1 Update translations from Crowdin 2022-10-25 22:32:14 +00:00
gxalpha dd06fe44ad mac-videotoolbox: Remove "None" profile
Selecting this would actually fall back to "main", so we should just use
main as the default.
2022-10-09 16:58:30 -07:00
gxalpha ff0f5ca681 mac-videotoolbox: Remove unused defines 2022-10-01 16:25:05 -07:00
Translation Updater cc2d0791ca Update translations from Crowdin 2022-08-30 09:00:44 +00:00
Translation Updater 4aaa07f93d Update translations from Crowdin 2022-08-17 04:22:50 +00: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
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
Vainock eb06594381 Use property suffixes for units everywhere 2022-07-22 08:24:51 -04:00
tytan652 5ff07c63b6 mac-videotoolbox: Guard hardware_accelerated check behind macOS 10.14 2022-07-19 12:46:42 +02: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