media/library
christosts aa2a4e3055 Async buffer queueing: do not throw from flush/shutdown
The asynchronous MediaCodec adapter queues input buffers in a
background thread. If a codec queueuing operation throws an exception,
the buffer enqueuer will store it as a pending exception and re-throw it
the next time the adapter will attempt to queue another input buffer.

The buffer enqueuer's flush() and shutdown() may throw an exception if
the pending error is set. This is subject to a race-condition in which
the pending error can be set while the adapter is flushing/shutting down
the enqueuer, e.g., if an input buffer is still being queued and the
codec throws an exception. As a result, the adapter cannot flush or
shutdown gracefully.

This change makes the buffer enqueuer to ignore any pending error
when flushing/shuttinf down so that the adapter can flush/release
gracefully even if a queueing error was detected.

PiperOrigin-RevId: 409113054
2021-11-11 13:54:33 +00:00
..
all Add database module 2021-10-26 14:19:43 +01:00
common Make TrackSelectionOverride.getTrackType public 2021-11-11 13:51:18 +00:00
core Async buffer queueing: do not throw from flush/shutdown 2021-11-11 13:54:33 +00:00
dash Add @Deprecated to MediaSourceFactory deprecated overrides 2021-11-11 13:33:49 +00:00
database Add database module 2021-10-26 14:19:43 +01:00
datasource Add contract tests for DataSource#getResponseHeaders 2021-11-11 13:50:45 +00:00
decoder Make package in test manifest consistent 2021-10-29 11:35:26 +01:00
extractor Merge pull request #9543 from KasemJaffer:rf64 2021-11-11 13:34:48 +00:00
hls Add @Deprecated to MediaSourceFactory deprecated overrides 2021-11-11 13:33:49 +00:00
rtsp Add missing RetentionPolicy for IntDef 2021-11-03 15:57:29 +00:00
smoothstreaming Add @Deprecated to MediaSourceFactory deprecated overrides 2021-11-11 13:33:49 +00:00
transformer Fix END_OF_STREAM transformer timestamp matching previous. 2021-11-03 15:58:05 +00:00
ui Migrate usages of Window-based Player methods 2021-11-02 13:10:20 +00:00
README.md Tweak and add READMEs + remove refs to V1 2017-08-17 22:59:34 +01:00

ExoPlayer library

The ExoPlayer library is split into multiple modules. See ExoPlayer's top level README for more information about the available library modules and how to use them.