Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Tweak verbose log messages in ImageReaderSurfaceProducer
- Tweak log output.
- Increase MAX_IMAGES from 4 to 5 to avoid a JNI warning message in the
  common case.
  • Loading branch information
johnmccutchan committed Feb 21, 2024
commit e7519b5b4cca950e7aed71ddc4897c637cd8a1b1
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ final class ImageReaderSurfaceProducer
TextureRegistry.ImageConsumer,
TextureRegistry.OnTrimMemoryListener {
private static final String TAG = "ImageReaderSurfaceProducer";
private static final int MAX_IMAGES = 4;
private static final int MAX_IMAGES = 5;

// Flip when debugging to see verbose logs.
private static final boolean VERBOSE_LOGS = false;
Expand Down Expand Up @@ -467,10 +467,11 @@ private class PerImageReader {
} catch (IllegalStateException e) {
Log.e(TAG, "onImageAvailable acquireLatestImage failed: " + e);
}
if (released || closed) {
if (image == null) {
return;
}
if (image == null) {
if (released || closed) {
image.close();
return;
}
onImage(reader, image);
Expand All @@ -490,6 +491,9 @@ PerImage queueImage(Image image) {
// If we fall too far behind we will skip some frames.
while (imageQueue.size() > 2) {
PerImage r = imageQueue.removeFirst();
if (VERBOSE_LOGS) {
Log.i(TAG, "" + reader.hashCode() + " force closed image=" + r.image.hashCode());
}
r.image.close();
}
return perImage;
Expand Down Expand Up @@ -529,14 +533,15 @@ PerImageReader getOrCreatePerImageReader(ImageReader reader) {
r = new PerImageReader(reader);
perImageReaders.put(reader, r);
imageReaderQueue.add(r);
if (VERBOSE_LOGS) {
Log.i(TAG, "imageReaderQueue#=" + imageReaderQueue.size());
}
}
return r;
}

void pruneImageReaderQueue() {
if (VERBOSE_LOGS) {
Log.i(TAG, "Pruning image reader queue length=" + imageReaderQueue.size());
}
boolean change = false;
// Prune nodes from the head of the ImageReader queue.
while (imageReaderQueue.size() > 1) {
PerImageReader r = imageReaderQueue.peekFirst();
Expand All @@ -547,8 +552,9 @@ void pruneImageReaderQueue() {
imageReaderQueue.removeFirst();
perImageReaders.remove(r.reader);
r.close();
change = true;
}
if (VERBOSE_LOGS) {
if (change && VERBOSE_LOGS) {
Log.i(TAG, "Pruned image reader queue length=" + imageReaderQueue.size());
}
}
Expand All @@ -569,7 +575,9 @@ void onImage(ImageReader reader, Image image) {
long queueDelta = now - lastQueueTime;
Log.i(
TAG,
"enqueued image="
""
+ reader.hashCode()
+ " enqueued image="
+ queuedImage.image.hashCode()
+ " queueDelta="
+ deltaMillis(queueDelta));
Expand Down Expand Up @@ -598,7 +606,9 @@ PerImage dequeueImage() {
long scheduleDelay = now - lastScheduleTime;
Log.i(
TAG,
"dequeued image="
""
+ reader.reader.hashCode()
+ " dequeued image="
+ r.image.hashCode()
+ " queuedFor= "
+ deltaMillis(queuedFor)
Expand All @@ -612,6 +622,14 @@ PerImage dequeueImage() {
}
}
if (lastDequeuedImage != null) {
if (VERBOSE_LOGS) {
Log.i(
TAG,
""
+ lastReaderDequeuedFrom.reader.hashCode()
+ " closing image="
+ lastDequeuedImage.image.hashCode());
}
// We must keep the last image dequeued open until we are done presenting it.
// We have just dequeued a new image (r). Close the previously dequeued image.
lastDequeuedImage.image.close();
Expand Down Expand Up @@ -642,6 +660,9 @@ private void releaseInternal() {
private void cleanup() {
synchronized (lock) {
for (PerImageReader pir : perImageReaders.values()) {
if (lastReaderDequeuedFrom == pir) {
lastReaderDequeuedFrom = null;
}
pir.close();
}
perImageReaders.clear();
Expand Down Expand Up @@ -730,6 +751,9 @@ public int getHeight() {
@Override
public Surface getSurface() {
PerImageReader pir = getActiveReader();
if (VERBOSE_LOGS) {
Log.i(TAG, "" + pir.reader.hashCode() + " returning surface to render a new frame.");
}
return pir.reader.getSurface();
}

Expand Down Expand Up @@ -762,7 +786,13 @@ private PerImageReader getActiveReader() {
if (createNewReader) {
createNewReader = false;
// Create a new ImageReader and add it to the queue.
return getOrCreatePerImageReader(createImageReader());
ImageReader reader = createImageReader();
if (VERBOSE_LOGS) {
Log.i(
TAG,
"" + reader.hashCode() + " created w=" + requestedWidth + " h=" + requestedHeight);
}
return getOrCreatePerImageReader(reader);
}
return imageReaderQueue.peekLast();
}
Expand Down