Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH 1/4] configure: Add a dependency for the audiotoolbox outdev
@ 2025-03-26  8:57 Martin Storsjö
  2025-03-26  8:57 ` [FFmpeg-devel] [PATCH 2/4] libavfilter: metal: Fix the version condition for iOS Martin Storsjö
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Martin Storsjö @ 2025-03-26  8:57 UTC (permalink / raw)
  To: ffmpeg-devel

The audiotoolbox outdev uses APIs that only are available on macOS,
not on iOS or tvOS. Check for them in configure, and make sure the
outdev is disabled otherwise.

This allows building for iOS without explicitly having to disable
the audiotoolbox outdev.
---
 configure | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 2fdbe8cbbe..02009bed4c 100755
--- a/configure
+++ b/configure
@@ -3747,7 +3747,7 @@ alsa_outdev_deps="alsa"
 avfoundation_indev_deps="avfoundation corevideo coremedia pthreads"
 avfoundation_indev_suggest="coregraphics applicationservices"
 avfoundation_indev_extralibs="-framework Foundation"
-audiotoolbox_outdev_deps="audiotoolbox pthreads"
+audiotoolbox_outdev_deps="audiotoolbox pthreads AudioObjectPropertyAddress"
 audiotoolbox_outdev_extralibs="-framework AudioToolbox -framework CoreAudio"
 bktr_indev_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h"
 caca_outdev_deps="libcaca"
@@ -6736,6 +6736,10 @@ check_apple_framework CoreMedia
 check_apple_framework CoreVideo
 check_apple_framework CoreAudio
 
+enabled audiotoolbox && {
+    check_type AudioToolbox/AudioToolbox.h AudioObjectPropertyAddress
+}
+
 enabled avfoundation && {
     disable coregraphics applicationservices
     check_lib coregraphics        CoreGraphics/CoreGraphics.h               CGGetActiveDisplayList "-framework CoreGraphics" ||
-- 
2.39.5 (Apple Git-154)

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [FFmpeg-devel] [PATCH 2/4] libavfilter: metal: Fix the version condition for iOS
  2025-03-26  8:57 [FFmpeg-devel] [PATCH 1/4] configure: Add a dependency for the audiotoolbox outdev Martin Storsjö
@ 2025-03-26  8:57 ` Martin Storsjö
  2025-03-26  8:57 ` [FFmpeg-devel] [PATCH 3/4] videotoolboxenc: Add an iOS version condition for VTCopySupportedPropertyDictionaryForEncoder Martin Storsjö
  2025-03-26  8:57 ` [FFmpeg-devel] [PATCH 4/4] configure: Check for an actual function in VideoToolbox Martin Storsjö
  2 siblings, 0 replies; 4+ messages in thread
From: Martin Storsjö @ 2025-03-26  8:57 UTC (permalink / raw)
  To: ffmpeg-devel

MTLDevice supportsFamily is available since iOS 13, not 11, see
https://developer.apple.com/documentation/metal/mtldevice/supportsfamily(_:)?language=objc.
---
 libavfilter/metal/utils.m | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavfilter/metal/utils.m b/libavfilter/metal/utils.m
index f6f344158a..3c28a16f60 100644
--- a/libavfilter/metal/utils.m
+++ b/libavfilter/metal/utils.m
@@ -30,7 +30,7 @@ void ff_metal_compute_encoder_dispatch(id<MTLDevice> device,
     MTLSize threadsPerThreadgroup = MTLSizeMake(w, h, 1);
     // MAC_OS_X_VERSION_10_15 is only defined on SDKs new enough to include its functionality (including iOS, tvOS, etc)
 #ifdef MAC_OS_X_VERSION_10_15
-    if (@available(macOS 10.15, iOS 11, tvOS 14.5, *)) {
+    if (@available(macOS 10.15, iOS 13, tvOS 14.5, *)) {
         if ([device supportsFamily:MTLGPUFamilyCommon3]) {
             MTLSize threadsPerGrid = MTLSizeMake(width, height, 1);
             [encoder dispatchThreads:threadsPerGrid threadsPerThreadgroup:threadsPerThreadgroup];
-- 
2.39.5 (Apple Git-154)

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [FFmpeg-devel] [PATCH 3/4] videotoolboxenc: Add an iOS version condition for VTCopySupportedPropertyDictionaryForEncoder
  2025-03-26  8:57 [FFmpeg-devel] [PATCH 1/4] configure: Add a dependency for the audiotoolbox outdev Martin Storsjö
  2025-03-26  8:57 ` [FFmpeg-devel] [PATCH 2/4] libavfilter: metal: Fix the version condition for iOS Martin Storsjö
@ 2025-03-26  8:57 ` Martin Storsjö
  2025-03-26  8:57 ` [FFmpeg-devel] [PATCH 4/4] configure: Check for an actual function in VideoToolbox Martin Storsjö
  2 siblings, 0 replies; 4+ messages in thread
From: Martin Storsjö @ 2025-03-26  8:57 UTC (permalink / raw)
  To: ffmpeg-devel

This fixes building for iOS versions older than 11.0.
---
 libavcodec/videotoolboxenc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c
index e7f2c7b8eb..b748ecda61 100644
--- a/libavcodec/videotoolboxenc.c
+++ b/libavcodec/videotoolboxenc.c
@@ -1219,7 +1219,7 @@ static int vtenc_create_encoder(AVCodecContext   *avctx,
     }
 
 #if defined (MAC_OS_X_VERSION_10_13) && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_13)
-    if (__builtin_available(macOS 10.13, *)) {
+    if (__builtin_available(macOS 10.13, iOS 11.0, *)) {
         if (vtctx->supported_props) {
             CFRelease(vtctx->supported_props);
             vtctx->supported_props = NULL;
-- 
2.39.5 (Apple Git-154)

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [FFmpeg-devel] [PATCH 4/4] configure: Check for an actual function in VideoToolbox
  2025-03-26  8:57 [FFmpeg-devel] [PATCH 1/4] configure: Add a dependency for the audiotoolbox outdev Martin Storsjö
  2025-03-26  8:57 ` [FFmpeg-devel] [PATCH 2/4] libavfilter: metal: Fix the version condition for iOS Martin Storsjö
  2025-03-26  8:57 ` [FFmpeg-devel] [PATCH 3/4] videotoolboxenc: Add an iOS version condition for VTCopySupportedPropertyDictionaryForEncoder Martin Storsjö
@ 2025-03-26  8:57 ` Martin Storsjö
  2 siblings, 0 replies; 4+ messages in thread
From: Martin Storsjö @ 2025-03-26  8:57 UTC (permalink / raw)
  To: ffmpeg-devel

This makes sure to disable VideoToolbox if building with an SDK
that does contain VideoToolbox, but targeting an older version of
the OS where it is unavailable. Previously, we would enable
VideoToolbox as long as the framework itself was found, which only
require the framework to exist in the SDK.
---
 configure | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 02009bed4c..cb8a4bfec4 100755
--- a/configure
+++ b/configure
@@ -3632,7 +3632,7 @@ libxvid_encoder_deps="libxvid"
 libzvbi_teletext_decoder_deps="libzvbi"
 vapoursynth_demuxer_deps="vapoursynth"
 videotoolbox_suggest="coreservices"
-videotoolbox_deps="corefoundation coremedia corevideo"
+videotoolbox_deps="corefoundation coremedia corevideo VTDecompressionSessionDecodeFrame"
 videotoolbox_encoder_deps="videotoolbox VTCompressionSessionPrepareToEncodeFrames"
 
 # demuxers / muxers
@@ -6696,6 +6696,7 @@ check_headers termios.h
 check_headers unistd.h
 check_headers valgrind/valgrind.h
 check_func_headers VideoToolbox/VTCompressionSession.h VTCompressionSessionPrepareToEncodeFrames -framework VideoToolbox
+check_func_headers VideoToolbox/VideoToolbox.h VTDecompressionSessionDecodeFrame -framework VideoToolbox
 check_func_headers VideoToolbox/VideoToolbox.h VTPixelTransferSessionCreate -framework VideoToolbox
 check_func_headers VideoToolbox/VideoToolbox.h VTPixelRotationSessionCreate -framework VideoToolbox
 check_headers windows.h
-- 
2.39.5 (Apple Git-154)

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-03-26  8:58 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-03-26  8:57 [FFmpeg-devel] [PATCH 1/4] configure: Add a dependency for the audiotoolbox outdev Martin Storsjö
2025-03-26  8:57 ` [FFmpeg-devel] [PATCH 2/4] libavfilter: metal: Fix the version condition for iOS Martin Storsjö
2025-03-26  8:57 ` [FFmpeg-devel] [PATCH 3/4] videotoolboxenc: Add an iOS version condition for VTCopySupportedPropertyDictionaryForEncoder Martin Storsjö
2025-03-26  8:57 ` [FFmpeg-devel] [PATCH 4/4] configure: Check for an actual function in VideoToolbox Martin Storsjö

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git