Merge "Improve picture capture debug path" into sc-dev am: b99e72f722

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14928133

Change-Id: I74a78fd84f96fac075150016af356906a612fcf6
This commit is contained in:
John Reck
2021-06-11 18:29:46 +00:00
committed by Automerger Merge Worker
11 changed files with 175 additions and 45 deletions

View File

@@ -953,8 +953,7 @@ public class ViewDebug {
private final Callable<OutputStream> mCallback;
private final Executor mExecutor;
private final ReentrantLock mLock = new ReentrantLock(false);
private final ArrayDeque<byte[]> mQueue = new ArrayDeque<>(3);
private final ByteArrayOutputStream mByteStream = new ByteArrayOutputStream();
private final ArrayDeque<Picture> mQueue = new ArrayDeque<>(3);
private boolean mStopListening;
private Thread mRenderThread;
@@ -990,9 +989,7 @@ public class ViewDebug {
mQueue.removeLast();
needsInvoke = false;
}
picture.writeToStream(mByteStream);
mQueue.add(mByteStream.toByteArray());
mByteStream.reset();
mQueue.add(picture);
mLock.unlock();
if (needsInvoke) {
@@ -1003,7 +1000,7 @@ public class ViewDebug {
@Override
public void run() {
mLock.lock();
final byte[] picture = mQueue.poll();
final Picture picture = mQueue.poll();
final boolean isStopped = mStopListening;
mLock.unlock();
if (Thread.currentThread() == mRenderThread) {
@@ -1024,7 +1021,8 @@ public class ViewDebug {
}
if (stream != null) {
try {
stream.write(picture);
picture.writeToStream(stream);
stream.flush();
} catch (IOException ex) {
Log.w("ViewDebug", "Aborting rendering commands capture "
+ "due to IOException writing to output stream", ex);