[vlc-commits] [Git][videolan/vlc][master] 2 commits: aout: avaudiosession: fix compilation with older Apple SDKs
Felix Paul Kühne (@fkuehne)
gitlab at videolan.org
Tue Apr 14 17:14:09 UTC 2026
Felix Paul Kühne pushed to branch master at VideoLAN / VLC
Commits:
ef72751d by Alexandre Janniaux at 2026-04-14T18:52:20+02:00
aout: avaudiosession: fix compilation with older Apple SDKs
The setSupportsMultichannelContent method is not available on older
SDKs.
- - - - -
7ac24e43 by Alexandre Janniaux at 2026-04-14T18:52:20+02:00
aout: avsamplebuffer: fix compilation with older Apple SDKs
Add compile-time SDK version guards and @available runtime checks for
delaysRateChangeUntilHasSufficientMediaData (macOS 11.3+/iOS 14.5+/
tvOS 14.5+/watchOS 7.4+) and
AVSampleBufferAudioRendererOutputConfigurationDidChangeNotification
(macOS 12.0+/iOS 15.0+/tvOS 15.0+/watchOS 8.0+) which are not
visible in older SDKs.
- - - - -
2 changed files:
- modules/audio_output/apple/avaudiosession_common.m
- modules/audio_output/apple/avsamplebuffer.m
Changes:
=====================================
modules/audio_output/apple/avaudiosession_common.m
=====================================
@@ -74,6 +74,9 @@ avas_PrepareFormat(audio_output_t *p_aout, AVAudioSession *instance,
if (spatial_audio)
{
+#if (TARGET_OS_IOS && defined(__IPHONE_15_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_15_0) || \
+ (TARGET_OS_TV && defined(__TVOS_15_0) && __TV_OS_VERSION_MAX_ALLOWED >= __TVOS_15_0) || \
+ (TARGET_OS_WATCH && defined(__WATCHOS_8_0) && __WATCH_OS_VERSION_MAX_ALLOWED >= __WATCHOS_8_0)
if (@available(iOS 15.0, watchOS 8.0, tvOS 15.0, *))
{
/* Not mandatory, SpatialAudio can work without it. It just signals to
@@ -81,6 +84,7 @@ avas_PrepareFormat(audio_output_t *p_aout, AVAudioSession *instance,
[instance setSupportsMultichannelContent:aout_FormatNbChannels(fmt) > 2
error:nil];
}
+#endif
}
else if (channel_count == 2 && aout_FormatNbChannels(fmt) > 2)
{
=====================================
modules/audio_output/apple/avsamplebuffer.m
=====================================
@@ -507,7 +507,13 @@ customBlock_Free(void *refcon, void *doomedMemoryBlock, size_t sizeInBytes)
goto error;
}
- _sync.delaysRateChangeUntilHasSufficientMediaData = NO;
+#if (TARGET_OS_OSX && defined(__MAC_11_3) && MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_11_3) || \
+ (TARGET_OS_IOS && defined(__IPHONE_14_5) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_14_5) || \
+ (TARGET_OS_TV && defined(__TVOS_14_5) && __TV_OS_VERSION_MAX_ALLOWED >= __TVOS_14_5) || \
+ (TARGET_OS_WATCH && defined(__WATCHOS_7_4) && __WATCH_OS_VERSION_MAX_ALLOWED >= __WATCHOS_7_4)
+ if (@available(macOS 11.3, iOS 14.5, tvOS 14.5, watchOS 7.4, *))
+ _sync.delaysRateChangeUntilHasSufficientMediaData = NO;
+#endif
[_sync addRenderer:_renderer];
_stopped = NO;
@@ -523,6 +529,10 @@ customBlock_Free(void *refcon, void *doomedMemoryBlock, size_t sizeInBytes)
selector:@selector(flushedAutomatically:)
name:AVSampleBufferAudioRendererWasFlushedAutomaticallyNotification
object:nil];
+#if (TARGET_OS_OSX && defined(__MAC_12_0) && MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_12_0) || \
+ (TARGET_OS_IOS && defined(__IPHONE_15_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_15_0) || \
+ (TARGET_OS_TV && defined(__TVOS_15_0) && __TV_OS_VERSION_MAX_ALLOWED >= __TVOS_15_0) || \
+ (TARGET_OS_WATCH && defined(__WATCHOS_8_0) && __WATCH_OS_VERSION_MAX_ALLOWED >= __WATCHOS_8_0)
if (@available(macOS 12.0, iOS 15.0, tvOS 15.0, watchOS 8.0, *))
{
[notifCenter addObserver:self
@@ -530,6 +540,7 @@ customBlock_Free(void *refcon, void *doomedMemoryBlock, size_t sizeInBytes)
name:AVSampleBufferAudioRendererOutputConfigurationDidChangeNotification
object:nil];
}
+#endif
return YES;
error:
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/093ad617ba0bf1bf4fc34517dfc8f737a561c3bd...7ac24e43efbe7b0b839f41e68e1cf760c5986a52
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/093ad617ba0bf1bf4fc34517dfc8f737a561c3bd...7ac24e43efbe7b0b839f41e68e1cf760c5986a52
You're receiving this email because of your account on code.videolan.org.
More information about the vlc-commits
mailing list