media/libraries
andrewlewis 7b9aa87344 Allow allocating more buffers when transmuxing
When transmuxing, the `EncodedSampleExporter` maintains a queue of input
buffers that get filled with encoded data by the asset loader. The number of
buffers was limited to avoid using more and more memory if producer (asset
loader) gets far ahead of the consumer (exporter).

Previously this limit was fixed at 10 buffers, but increasing the number of
buffers can make some transmux operations much faster. Allow allocating between
a min and max number of buffers, and also set a target allocation size beyond
which new buffers can't be allocated. This allows audio formats which require
many small buffers to be processed more quickly, while preventing allocating
too much memory for hypothetical very high bitrate formats.

'Remove video' edits on local videos in particular get much faster, because
audio buffers are very short and there are lots of them. With a sample 10
minute video, a 'remove video' edit took 2 seconds (36 seconds before this
change).  With a sample 1 minute removing video took 0.25 seconds after this
change (2.5 seconds before).

The speed improvement is smaller for other types of edits that retain the video
track. Transmuxing a 10 minute video retaining the video track took 26 seconds
(40 seconds before).

PiperOrigin-RevId: 583390284
2023-11-17 08:11:25 -08:00
..
cast Move setAudioAttributes from ExoPlayer to Player 2023-09-19 06:08:37 -07:00
common Fix examples in MediaLibraryInfo javadoc to be realistic 2023-11-17 00:52:10 -08:00
container Add support for flattening SEF files with H.265 2023-10-17 09:26:14 -07:00
database Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
datasource Split openAssetFileDescriptor from RawResourceDataSource.open 2023-10-31 04:38:57 -07:00
datasource_cronet Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
datasource_httpengine Implement HttpEngineDataSource, a HttpDataSource using the [HttpEngine](https://developer.android.com/reference/android/net/http/HttpEngine) API. 2023-10-18 14:17:56 -07:00
datasource_okhttp Remove exoplayer2-only javadoc machinery from media3 2023-06-05 09:47:58 +00:00
datasource_rtmp Remove exoplayer2-only javadoc machinery from media3 2023-06-05 09:47:58 +00:00
decoder Satisfy nullness checker correctness by using local variable 2023-10-31 12:56:32 +00:00
decoder_av1 Add Decoder.setOutputStartTimeUs and use it in extension decoders 2023-10-04 10:37:25 -07:00
decoder_ffmpeg Fix proguard rule to also keep referenced class name 2023-11-03 10:53:36 -07:00
decoder_flac Add more data to e2etest dumps 2023-07-13 15:33:33 +01:00
decoder_midi Merge pull request #710 from loki666:patch-2 2023-10-23 07:58:17 -07:00
decoder_opus Explicitly mark DecoderOutputBuffer as shouldBeSkipped if needed 2023-10-03 04:28:21 -07:00
decoder_vp9 Add Decoder.setOutputStartTimeUs and use it in extension decoders 2023-10-04 10:37:25 -07:00
effect HDR: Update PQ to SDR tone-mapping to renderengine. 2023-11-14 07:43:39 -08:00
exoplayer Rollback of eafe2e35f0 2023-11-16 08:01:24 -08:00
exoplayer_dash Add DashPlayback test for loading thumbnail grids 2023-11-15 09:03:19 -08:00
exoplayer_hls Add subtitle parsing support in HLS for TS files 2023-11-15 10:00:03 -08:00
exoplayer_ima Set MIME type from IMA SDK on ads MediaItem 2023-11-14 09:12:07 -08:00
exoplayer_rtsp Merge pull request #491 from v-novaltd:dsparano-exo128 2023-10-17 06:35:19 -07:00
exoplayer_smoothstreaming Add functionality to transmit CMCD data using query parameters 2023-08-31 02:11:12 -07:00
exoplayer_workmanager Remove exoplayer2-only javadoc machinery from media3 2023-06-05 09:47:58 +00:00
extractor Migrate CEA-708 logic to a SubtitleParser implementation 2023-11-15 01:38:56 -08:00
muxer Make sure the mdat box is not extended by more than 1 GB at a time. 2023-09-08 04:07:13 -07:00
session Add icon URI to bundle serialization 2023-11-10 12:19:49 -08:00
test_data Allow allocating more buffers when transmuxing 2023-11-17 08:11:25 -08:00
test_exoplayer_playback Add android.namespace to all build.gradle files 2023-05-19 17:19:15 +01:00
test_session_common Only set the queue when COMMAND_GET_TIMELINE is available 2023-10-16 08:14:38 -07:00
test_session_current Deprecate Bundleable and Bundleable.Creator 2023-11-03 08:27:21 -07:00
test_utils Use full MediaItem to define ad playbacks 2023-11-14 08:35:14 -08:00
test_utils_robolectric Enable offload scheduling by default for audio-only offload playback 2023-09-13 06:46:50 -07:00
transformer Allow allocating more buffers when transmuxing 2023-11-17 08:11:25 -08:00
ui Workaround layout problems with Material Design 2023-11-15 02:57:03 -08:00
ui_leanback Prevent forwarding of zero video size to Leanback 2023-08-30 12:20:51 -07:00
lint.xml Update recommended way to suppress @UnstableApi errors in lint.xml 2023-11-15 02:34:40 -08:00