Added exception handling to EncodedImage's release callback.

Bug: webrtc:11230
Change-Id: Iad5bb4470891fbaea6b83ba647c8b4bbc4e38c72
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162803
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30165}
This commit is contained in:
Raman Budny
2019-12-20 11:12:07 +03:00
committed by Commit Bot
parent 4cdd7fb898
commit ec7b36cddf

View File

@ -586,7 +586,14 @@ class HardwareVideoEncoder implements VideoEncoder {
EncodedImage encodedImage = builder
.setBuffer(frameBuffer,
() -> {
codec.releaseOutputBuffer(index, false);
// This callback should not throw any exceptions since
// it may be called on an arbitrary thread.
// Check bug webrtc:11230 for more details.
try {
codec.releaseOutputBuffer(index, false);
} catch (Exception e) {
Logging.e(TAG, "releaseOutputBuffer failed", e);
}
outputBuffersBusyCount.decrement();
})
.setFrameType(frameType)