-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Description
While implementing HDR capture on Insta360 X3 using the iOS SDK, the camera does not appear to reset the HDR pipeline after capturing an HDR image. When capturing a normal photo immediately afterward, the resulting image appears dull / incorrectly exposed.
SDK reference:
https://github.com/Insta360Develop/iOS-SDK
Attempt 1 (As per documentation)
let options = INSTakePictureOptions()
options.mode = .aeb
INSCameraManager.shared().commandManager.takePicture(with: options) { error, info in
}This results in the following error:
capture using takeHDRPicture method
Attempt 2
let options = INSTakePictureOptions()
options.mode = .aeb
INSCameraManager.shared().commandManager.takeHDRPicture(with: options) { error, urls, data in
}This still did not capture HDR correctly.
Working Approach
HDR capture started working only after explicitly setting photoSubMode to HDR.
let options = INSCameraOptions()
let optionTypes: [NSNumber] = [
NSNumber(value: INSCameraOptionsType.photoSubMode.rawValue)
]
options.photoSubMode = UInt(INSPhotoSubMode.hdr.rawValue)
INSCameraManager.shared().commandManager.setOptions(options, forTypes: optionTypes) { error, _ in
}Issue After HDR Capture
When switching back to normal capture:
let options = INSTakePictureOptions()
options.mode = .normal
INSCameraManager.shared().commandManager.takePicture(with: options) { error, info in
}Even after resetting:
options.photoSubMode = UInt(INSPhotoSubMode.single.rawValue)the captured image appears dull / incorrectly exposed, suggesting the HDR pipeline is not resetting internally.
Steps to Reproduce
- Set
photoSubMode = hdr - Capture HDR using
takeHDRPicture - Set
photoSubMode = single - Capture normal photo using
takePicture
Expected Behavior
Normal photos should return to standard exposure after HDR capture.
Actual Behavior
The photo appears dull / incorrectly exposed.
Device
Camera: Insta360 X3
SDK: iOS SDK from GitHub