Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
831866f4
authored
Mar 23, 2022
by
hschlueter
Committed by
Ian Baker
Mar 23, 2022
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Add javadoc for more FrameProcessorChain fields.
PiperOrigin-RevId: 436723149
parent
76d44bec
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
18 deletions
libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java
libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java
View file @
831866f4
...
@@ -244,18 +244,34 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
...
@@ -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;
...
@@ -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
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment