webrtc-sdk / webrtc

BSD 3-Clause "New" or "Revised" License
242 stars 95 forks source link

Unlock configuration before starting capture session #122

Closed hiroshihorie closed 4 months ago

hiroshihorie commented 5 months ago

unlockForConfiguration before [captureSession startRunning] to reduce start glitch. Expose +defaultZoomFactorForDeviceType: method. Initial zoom factor was incorrect for devices such as AVCaptureDeviceTypeBuiltInDualCamera.

cloudwebrtc commented 5 months ago

I tried cherry-picking it to m125-update, when type AVCaptureDeviceTypeBuiltInTripleCamera is added, it will require compiling with iOS 13.0, then it will cause an error [UIApplication sharedApplication].statusBarOrientation; is deprecated, so maybe need another commit to fix this issue.

../../sdk/objc/components/capturer/RTCCameraVideoCapturer.m:553:77: error: 'statusBarOrientation' is deprecated: first deprecated in iOS 13.0 - Use the interfaceOrientation property of the window scene instead. [-Werror,-Wdeprecated-declarations]
553 | UIInterfaceOrientation newOrientation = [UIApplication sharedApplication].statusBarOrientation;
| ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.5.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h:119:55: note: 'statusBarOrientation' has been explicitly marked deprecated here
119 | @property(readonly, nonatomic) UIInterfaceOrientation statusBarOrientation API_UNAVAILABLE(tvos) API_DEPRECATED("Use the interfaceOrientation property of the window scene instead.", ios(2.0, 13.0)) API_UNAVAILABLE(visionos);
| ^
1 error generated.
hiroshihorie commented 5 months ago

Yes the statusBarOrientation deprecation i've been seeing for a while, I think it's ok to ignore this for now. Setting the treat_warnings_as_errors = false option will continue the compile.

I will make another PR for this. There are other deprecated APIs also.