-
Notifications
You must be signed in to change notification settings - Fork 9.8k
[camera] Fix crash on stopVideoRecording for Android 6 #1789
Conversation
Apparently, only on Android 6 (sdk version 23), if you don't call closeCaptureSession() before startPreview() on stopVideoRecording, the entire thing will throw a CameraAccessException with message "java.lang.IllegalStateException: swapBuffers: EGL error: 0x300d"
Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please visit https://cla.developers.google.com/ to sign. Once you've signed (or fixed any issues), please reply here (e.g. What to do if you already signed the CLAIndividual signers
Corporate signers
ℹ️ Googlers: Go here for more info. |
I signed it! |
CLAs look good, thanks! ℹ️ Googlers: Go here for more info. |
Hi @Doublehub, do you know what is causing the crash? |
I didn't investigate further into this problem because I don't have enough time to do that, but I think that the crash is caused by MediaRecorder.stop(); |
Since this is only reproducible on Android 6 (sdk version 23) and we are currently working on a refactor of this plugin that will erase this code soon I'm labeling it with "backlog" and we will prioritize according to the PR's priority; initial PR review policy. |
Ok, thanks |
Hi @Doublehub i got the same issue as you, on android 5 - 6 Exactly on Samsung J106M the phone sometimes throws the same exception as you describe but is not a complete crash, just the camera freeze and cant save the video, I put the camera library pointing to your repo but stills fail when stop video, do you have some information about this, it can help me to much thank you! |
Duplicate of #3336 |
Description
Apparently, only on Android 6 (sdk version 23), if you don't call closeCaptureSession() before startPreview() on stopVideoRecording, the entire thing will throw a CameraAccessException with message "java.lang.IllegalStateException: swapBuffers: EGL error: 0x300d"
Calling closeCaptureSession() there will help solve this problem, but it won't solve it entirely, unfortunately... it's still something though. You also have to keep in mind that calling closeCaptureSession() will make the camera freeze so you need to init it again
Related Issues
A lot actually, don't have time to paste all of them here
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes (
[x]
). This will ensure a smooth and quick review process.///
).flutter analyze
) does not report any problems on my PR.Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?