From 3c9185bf3a83395d12a987f626dbdb985eac4320 Mon Sep 17 00:00:00 2001 From: Thilo Borgmann Date: Sat, 4 Apr 2020 13:49:46 +0200 Subject: [PATCH] lavd/avfoundation.m: Remove transport controls for iOS. --- libavdevice/avfoundation.m | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libavdevice/avfoundation.m b/libavdevice/avfoundation.m index 43b2edb44d9..9f8186b4d7f 100644 --- a/libavdevice/avfoundation.m +++ b/libavdevice/avfoundation.m @@ -168,6 +168,7 @@ static void unlock_frames(AVFContext* ctx) _context = context; // start observing if a device is set for it +#if !TARGET_OS_IPHONE && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070 if (_context->observed_device) { NSString *keyPath = NSStringFromSelector(@selector(transportControlsPlaybackMode)); NSKeyValueObservingOptions options = NSKeyValueObservingOptionNew; @@ -177,14 +178,19 @@ static void unlock_frames(AVFContext* ctx) options: options context: _context]; } +#endif } return self; } - (void)dealloc { // stop observing if a device is set for it - NSString *keyPath = NSStringFromSelector(@selector(transportControlsPlaybackMode)); - [_context->observed_device removeObserver: self forKeyPath: keyPath]; +#if !TARGET_OS_IPHONE && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070 + if (_context->observed_device) { + NSString *keyPath = NSStringFromSelector(@selector(transportControlsPlaybackMode)); + [_context->observed_device removeObserver: self forKeyPath: keyPath]; + } +#endif [super dealloc]; } @@ -537,6 +543,7 @@ static int add_video_device(AVFormatContext *s, AVCaptureDevice *video_device) } [ctx->video_output setAlwaysDiscardsLateVideoFrames:ctx->drop_late_frames]; +#if !TARGET_OS_IPHONE && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070 // check for transport control support and set observer device if supported int trans_ctrl = [video_device transportControlsSupported]; AVCaptureDeviceTransportControlsPlaybackMode trans_mode = [video_device transportControlsPlaybackMode]; @@ -545,6 +552,7 @@ static int add_video_device(AVFormatContext *s, AVCaptureDevice *video_device) ctx->observed_mode = trans_mode; ctx->observed_device = video_device; } +#endif ctx->avf_delegate = [[AVFFrameReceiver alloc] initWithContext:ctx]; -- 2.39.2