-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Description
We are encountering an issue where taking an AEB picture leaves the Insta360 camera in a state with very low exposure (likely the darkest exposure from the AEB bracket), affecting all subsequent normal pictures. State persists until camera reboot.
Environment:
SDK Version: 1.9.2
Camera: Insta360 X3
Camera: Firmware: 1.6.1
Steps to Reproduce
- Connect the Insta360 camera to the iOS app.
- Perform an AEB capture using commandManager.takeHDRPicture with INSTakePictureOptions.mode = .aeb.
- After the AEB capture finishes, perform a standard capture using commandManager.takePicture with INSTakePictureOptions.mode = .normal.
Observed Behavior
The standard picture taken in Step 3 is extremely dark. It appears to be captured using the EV of the darkest image from the previous AEB sequence.
This behavior persists for all subsequent captures.
Restarting the iOS app does NOT resolve the issue.
Restarting the Insta360 camera resolves the issue.
Expected Behavior
The standard capture should use proper auto-exposure settings (or the currently set exposure bias), and should not be affected by the exposure settings used internally during the previous AEB sequence.
Code
private func takeAEBPicture(completion: @escaping ([String]?, Error?) -> Void) {
let options = INSTakePictureOptions()
options.mode = .aeb
commandManager.takeHDRPicture(with: options) { (error, uris, photoDatas) in
if let error = error {
completion(nil, error)
} else if let uris = uris, !uris.isEmpty {
completion(uris, nil)
} else {
completion(nil, Insta360DriverError.missingURI)
}
}
}
private func takeStandardPicture(completion: @escaping ([String]?, Error?) -> Void) {
let options = INSTakePictureOptions()
options.mode = .normal
commandManager.takePicture(with: options) { (error, photoInfo) in
if let error = error {
completion(nil, error)
} else if let uri = photoInfo?.uri {
completion([uri], nil)
} else {
completion(nil, Insta360DriverError.missingURI)
}
}
}