Do not call codec.stop() on exception
On exception, the codec is not in a state were .stop() can be called.
@@ -71,8 +71,9 @@ public class ScreenEncoder implements Device.RotationListener {
codec.start();
try {
alive = encode(codec, fd);
- } finally {
+ // do not call stop() on exception, it would trigger an IllegalStateException
codec.stop();
+ } finally {
destroyDisplay(display);
codec.release();
surface.release();
