Add javadoc for more FrameProcessorChain fields.

PiperOrigin-RevId: 436723149
This commit is contained in:
hschlueter 2022-03-23 13:36:22 +00:00 committed by Ian Baker
parent 76d44bec30
commit 831866f441

View File

@ -244,18 +244,34 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
private static final String THREAD_NAME = "Transformer:FrameProcessorChain"; private static final String THREAD_NAME = "Transformer:FrameProcessorChain";
private final EGLContext eglContext;
private final EGLDisplay eglDisplay;
/**
* Wraps the output {@link Surface} that is populated with the output of the final {@link
* GlFrameProcessor} for each frame.
*/
private final EGLSurface eglSurface;
/** Some OpenGL commands may block, so all OpenGL commands are run on a background thread. */ /** Some OpenGL commands may block, so all OpenGL commands are run on a background thread. */
private final ExecutorService singleThreadExecutorService; private final ExecutorService singleThreadExecutorService;
/** Futures corresponding to the executor service's pending tasks. */ /** Futures corresponding to the executor service's pending tasks. */
private final ConcurrentLinkedQueue<Future<?>> futures; private final ConcurrentLinkedQueue<Future<?>> futures;
/** Number of frames {@link #registerInputFrame() registered} but not fully processed. */ /** Number of frames {@link #registerInputFrame() registered} but not fully processed. */
private final AtomicInteger pendingFrameCount; private final AtomicInteger pendingFrameCount;
// TODO(b/214975934): Write javadoc for fields where the purpose might be unclear to someone less /** Prevents further frame processing tasks from being scheduled after {@link #release()}. */
// familiar with this class and consider grouping some of these fields into new classes to private volatile boolean releaseRequested;
// reduce the number of constructor parameters.
private final EGLDisplay eglDisplay; private boolean inputStreamEnded;
private final EGLContext eglContext; /** Wraps the {@link #inputSurfaceTexture}. */
private final EGLSurface eglSurface; private @MonotonicNonNull Surface inputSurface;
/** Associated with an OpenGL external texture. */
private @MonotonicNonNull SurfaceTexture inputSurfaceTexture;
/**
* Identifier of the external texture the {@link ExternalCopyFrameProcessor} reads its input from.
*/
private final int inputExternalTexId;
/** Transformation matrix associated with the surface texture. */
private final float[] textureTransformMatrix;
private final ExternalCopyFrameProcessor externalCopyFrameProcessor; private final ExternalCopyFrameProcessor externalCopyFrameProcessor;
private final List<GlFrameProcessor> frameProcessors; private final List<GlFrameProcessor> frameProcessors;
/** /**
@ -272,21 +288,14 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
* frameProcessors}. * frameProcessors}.
*/ */
private final List<Size> sizes; private final List<Size> sizes;
/**
* Identifier of the external texture the {@link ExternalCopyFrameProcessor} reads its input from.
*/
private final int inputExternalTexId;
/** Transformation matrix associated with the surface texture. */
private final float[] textureTransformMatrix;
@Nullable private final EGLSurface debugPreviewEglSurface;
private final int debugPreviewWidth; private final int debugPreviewWidth;
private final int debugPreviewHeight; private final int debugPreviewHeight;
/**
private @MonotonicNonNull SurfaceTexture inputSurfaceTexture; * Wraps a debug {@link SurfaceView} that is populated with the output of the final {@link
private @MonotonicNonNull Surface inputSurface; * GlFrameProcessor} for each frame.
private boolean inputStreamEnded; */
private volatile boolean releaseRequested; @Nullable private final EGLSurface debugPreviewEglSurface;
private FrameProcessorChain( private FrameProcessorChain(
ExecutorService singleThreadExecutorService, ExecutorService singleThreadExecutorService,