Camera: Try to recover from failing stopRepeating requests
In case the camera client disconnects from an output surface referenced by an active repeating request, a race could occur between the client and camera service. Camera service will notify the client about the failed repeating request and will reset the request id internally. During this time period the client can also try to call "stopRepeating" which will trigger an IAE, reset the client repeating request id value and return immediately. Once the "onRepeatingRequestError" gets scheduled or unblocked, the framework will just ignore it since it doesn't have any information about an active repeating request. The framework will be unable to track the last frame id in the repeating sequence. The sequence will never complete and the 'onClosed' callback will not get triggered as well. To mitigate this, cache the request id in case of IAE during "stopRepeating" and try to resume the last frame id sequence tracking once "onRepeatingRequestError" arrives. Bug: 205895636 Test: Camera CTS Change-Id: I5da4a82d156227568aaebe74a5e0b2400de1d01e
Loading
Please register or sign in to comment