diff --git a/build/macos-arm64/Makefile b/build/macos-arm64/Makefile index 3be4eac0..2d21b8dd 100644 --- a/build/macos-arm64/Makefile +++ b/build/macos-arm64/Makefile @@ -47,6 +47,8 @@ copy: common-copy .PHONY: patch patch: common-patch + cd $(SRC_DIR) && \ + patch -p2 < $(PATCH_DIR)/capture_device_support_on_old_macos.patch .PHONY: build build: patch diff --git a/build/macos-x64/Makefile b/build/macos-x64/Makefile index bf88d23c..64657453 100644 --- a/build/macos-x64/Makefile +++ b/build/macos-x64/Makefile @@ -47,6 +47,8 @@ copy: common-copy .PHONY: patch patch: common-patch + cd $(SRC_DIR) && \ + patch -p2 < $(PATCH_DIR)/capture_device_support_on_old_macos.patch .PHONY: build build: patch diff --git a/patch/capture_device_support_on_old_macos.patch b/patch/capture_device_support_on_old_macos.patch new file mode 100644 index 00000000..e55888ad --- /dev/null +++ b/patch/capture_device_support_on_old_macos.patch @@ -0,0 +1,23 @@ +--- a/src/sdk/objc/components/capturer/RTCCameraVideoCapturer.m ++++ b/src/sdk/objc/components/capturer/RTCCameraVideoCapturer.m +@@ -118,11 +118,15 @@ - (void)dealloc { + } + + + (NSArray *)captureDevices { +- AVCaptureDeviceDiscoverySession *session = [AVCaptureDeviceDiscoverySession +- discoverySessionWithDeviceTypes:@[ AVCaptureDeviceTypeBuiltInWideAngleCamera ] +- mediaType:AVMediaTypeVideo +- position:AVCaptureDevicePositionUnspecified]; +- return session.devices; ++ if (@available(macOS 10.15, *)) { ++ AVCaptureDeviceDiscoverySession *session = [AVCaptureDeviceDiscoverySession ++ discoverySessionWithDeviceTypes:@[ AVCaptureDeviceTypeBuiltInWideAngleCamera ] ++ mediaType:AVMediaTypeVideo ++ position:AVCaptureDevicePositionUnspecified]; ++ return session.devices; ++ } else { ++ return [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]; ++ } + } + + + (NSArray *)supportedFormatsForDevice:(AVCaptureDevice *)device {