tonihei
e0ef6e5182
Move DefaultSuitableOutputChecker operations to playback thread
...
PiperOrigin-RevId: 726879236
2025-02-14 04:56:22 -08:00
tonihei
1015ef8b56
Move unsuitable output path logic <API31 into SuitableOutputChecker
...
This avoids distributing the logic between multiple classes and
keeps ExoPlayerImpl simpler.
PiperOrigin-RevId: 726874038
2025-02-14 04:36:45 -08:00
tonihei
d386e002d2
Move MediaMetricsListener creation and reporting off main thread
...
The creation can be moved to the playback thread (to guarantee it
happens in sync other initialization after playback start) and the
potentially blocking calls to the reporting methods can be moved
to the generic shared BackgroundExecutor (it can't use the playback
thread because it no longer exists when the session is ended after
the player is released).
PiperOrigin-RevId: 726872818
2025-02-14 04:33:36 -08:00
tonihei
cd6e61d856
Send renderer settings messages to secondary renderers in ExoPlayer
...
They are currently only sent to the primary renderer.
PiperOrigin-RevId: 726864595
2025-02-14 04:06:36 -08:00
tonihei
12afdfbaea
Improve placeholder value in StreamVolumeManager for muting
...
The mute value usually changes in line with volume == 0.
Also update the test to provide better coverage of the
immediate and delayed state changes.
PiperOrigin-RevId: 726839927
2025-02-14 02:28:34 -08:00
tonihei
dfd2b75720
Stablize command button icons
...
These are the preferred replacement for custom icon res ids.
PiperOrigin-RevId: 726821168
2025-02-14 01:24:18 -08:00
tonihei
385498c24e
Move audio session id generation to playback thread
...
PiperOrigin-RevId: 726556015
2025-02-13 10:57:19 -08:00
dancho
22853a5c4c
MCVR: fix dropped input buffer count
...
updateDroppedBufferCountersWithInputBuffers should receive
buffer timestamps before adjusting offset
PiperOrigin-RevId: 726473967
2025-02-13 07:17:41 -08:00
ibaker
12072f7248
Rename TestPlayerRunHelper.run(...)
to advance(...)
...
This avoids a clash with the `run` keyword in Kotlin.
PiperOrigin-RevId: 726461032
2025-02-13 06:37:31 -08:00
andrewlewis
9e22f03718
Add support for screen recording to the Transformer demo
...
Screen recording continues even if the transformer activity is backgrounded,
to support recording other apps.
PiperOrigin-RevId: 726454538
2025-02-13 06:16:54 -08:00
andrewlewis
04d9a751c6
Add encoder setting to set frame repeat interval
...
This can be used for screen recording to produce files without large gaps
between frames.
PiperOrigin-RevId: 726451010
2025-02-13 06:05:52 -08:00
kimvde
2a91d47ea9
Add tests for prewarming disabled
...
PiperOrigin-RevId: 726411904
2025-02-13 03:49:14 -08:00
Googler
f5e583332b
Copy the isPlaceholder flag into CurrentMediaItemOnlyTimeline
...
PiperOrigin-RevId: 726405776
2025-02-13 03:32:08 -08:00
kimvde
cea67e8826
Do not record test skipped for tests skipped on emulator
...
AndroiTestUtil.recordTestSkipped is useful for MH tests
PiperOrigin-RevId: 726397349
2025-02-13 03:01:18 -08:00
sheenachhabra
56bd32da96
Add Lint.IfChange/ThenChange for muxer codec support logic
...
Updating the list of supported codec in Mp4Muxer and
FragmenetdMp4Muxer is often missed when a new codec is added
in Boxes.java.
PiperOrigin-RevId: 726397337
2025-02-13 02:59:20 -08:00
dancho
38cfd7dc36
Add dropped input buffers to DebugTextViewHelper
...
The field is more relevant with the
`experimentalSetLateThresholdToDropDecoderInputUs` API.
PiperOrigin-RevId: 726383978
2025-02-13 02:10:57 -08:00
dancho
b9ef0353cf
Reduce memory allocations of AnnexBToAvccConverter
...
Add a new ByteBufferAllocator interface, with a simple
LinearByteBufferAllocator implementation that supports basic memory
allocations and reuse.
Add an AnnexBToAvccConverter.process override that takes a custom allocator
PiperOrigin-RevId: 726380184
2025-02-13 01:59:02 -08:00
ibaker
ee4f9d9140
Remove media1
dependency from media3-ui
lib
...
Also remove deprecated
`PlayerNotificationManager.setMediaSessionToken(MediaSessionCompat)`
method.
PiperOrigin-RevId: 726159462
2025-02-12 12:46:27 -08:00
ibaker
2155c37b08
Switch most intra-lib deps from implementation
to api
...
In all these cases I found at least one public method that takes or
returns a type from the dependency, or a type that inherits from a type
defined in the dependency.
PiperOrigin-RevId: 726130595
2025-02-12 11:29:50 -08:00
kimvde
6e332e9b91
Do not fail the export in case of ExoPlayer release time out
...
PiperOrigin-RevId: 725996730
2025-02-12 04:13:27 -08:00
bachinger
813973bb58
Explicitly test custom extra entries for legacy conversions
...
Issue: androidx/media#2127
PiperOrigin-RevId: 725984132
2025-02-12 03:25:22 -08:00
kimvde
be51913b81
Refactor GlObjectsProvider release logic
...
When possible, make it the caller's responsibility to release the
GlObjectsProvider. It's good practice that the class creating an object
also releases it. It avoids releasing the same object (here, the
GlObjectsProvider) multiple times, which was causing
DefaultVideoCompositorPixelTest to fail.
PiperOrigin-RevId: 725983417
2025-02-12 03:23:49 -08:00
ibaker
5de3ee86e3
Remove the lib-exoplayer
dep from lib-common-ktx
...
This dependency is not used.
PiperOrigin-RevId: 725983258
2025-02-12 03:21:31 -08:00
Googler
1310496809
Revert DefaultEncoderFactory to previous defaults
...
Also changed encoder factory to not set operating rate or priority if they equal `RATE_UNSET` rather than `NO_VALUE`
PiperOrigin-RevId: 725964682
2025-02-12 02:11:39 -08:00
rohks
75607ac1eb
Add tests for setDataSource
APIs to MediaExtractorContractTest
...
Added remaining tests to cover all `setDataSource` APIs in `MediaExtractor`.
PiperOrigin-RevId: 725616816
2025-02-11 07:11:06 -08:00
Googler
a5e5374ba0
Enable ALL_CODECS MediaCodec list when decoding MV-HEVC video.
...
This is needed since MV-HEVC decoder is marked as a special codec in the media_codecs.xml file.
PiperOrigin-RevId: 725616290
2025-02-11 07:10:08 -08:00
rohks
a5689735a1
Replace assumeTrue
with @SdkSuppress
for SDK version checks
...
PiperOrigin-RevId: 725616043
2025-02-11 07:08:16 -08:00
Googler
447d784636
Use encoder input format for sample rate fallback.
...
This ensures that when the input sample rate handled by the encoder differs from the output of the AudioGraph, that output audio will not be broken.
PiperOrigin-RevId: 725610384
2025-02-11 06:43:58 -08:00
shahddaghash
1b882fec0c
Add unit tests for EditingMetricsCollector
...
The change includes adding a `MetricsReporter` interface with a default implementation to allow testing the `EditingMetricsCollector`.
PiperOrigin-RevId: 725607330
2025-02-11 06:33:39 -08:00
Googler
fafd12bcfe
Rollback of 4ed9abd05b
...
PiperOrigin-RevId: 725575345
2025-02-11 04:26:50 -08:00
kimvde
9f60eb3825
Fix TODOs formatting in Transformer
...
PiperOrigin-RevId: 725572106
2025-02-11 04:15:32 -08:00
dancho
5510635620
MCVR Parse AV1 sequence headers in onQueueInputBuffer
...
AV1 random access points (sync samples) contain updated sequence headers
that are needed for later frame parsing.
PiperOrigin-RevId: 725565810
2025-02-11 03:50:32 -08:00
Googler
50d4e66308
Add getInputFormat to Codec interface
...
PiperOrigin-RevId: 725552831
2025-02-11 02:58:55 -08:00
jbibik
d022b570f2
Upgrade Kotlin to 2.0.20
...
This upgrade allows us to use https://developer.android.com/develop/ui/compose/compiler as specified in https://developer.android.com/jetpack/androidx/releases/compose-kotlin#pre-release_kotlin_compatibility
kotlinOptions is considered deprecated in preference of kotlin.compilerOptions (https://kotlinlang.org/docs/gradle-compiler-options.html#how-to-define-options )
PiperOrigin-RevId: 725266131
2025-02-10 10:32:47 -08:00
andrewlewis
1a996d87ca
Add MediaProjectionAssetLoader
...
The new asset loader is a wrapper around a provided `MediaProjection` and
`SurfaceAssetLoader`.
The test relies on automating the UI to get a `MediaProjection` instance, which
doesn't work reliably on all devices, so it's restricted to Pixel devices from
API 29 onwards.
For now only video is supported. The plan is to add support for audio playback
capture (also using `MediaProjection`) in a later change(s).
PiperOrigin-RevId: 725241962
2025-02-10 09:23:34 -08:00
kimvde
faf555e12b
MultipleInputVideoGraph: Destroy EGL context on GL thread
...
PiperOrigin-RevId: 725159572
2025-02-10 04:25:32 -08:00
kimvde
cadecf0219
Add video prewarming to CompositionPlayer
...
PiperOrigin-RevId: 725153751
2025-02-10 04:04:19 -08:00
Googler
aa6183e883
Update EncoderPerformanceAnalysisTest
...
PiperOrigin-RevId: 725150395
2025-02-10 03:48:38 -08:00
Googler
0ba3bf66c6
Add raw audio support to Mp4Muxer.
...
The fourcc used is `sowt` for little endian 16 bit PCM and `twos` for big endian 16 bit PCM.
PiperOrigin-RevId: 724391195
2025-02-07 10:26:48 -08:00
tianyifeng
1190980616
Remove deprecated DownloadHelper constructor and util method
...
PiperOrigin-RevId: 724300907
2025-02-07 04:50:49 -08:00
dancho
65e7b599d8
AV1 treat show_existing_frame headers as not depended on
...
PiperOrigin-RevId: 724300793
2025-02-07 04:49:10 -08:00
claincly
babc2dd416
Match with ExoPlayer seeking when using CompositionPlayer
...
In a image sequence, seek to after the image duration should render the final
image frame. But currently it hangs as ConstantRateTimestampIterator doesn't
output any timestamp in this case
PiperOrigin-RevId: 724295475
2025-02-07 04:26:00 -08:00
ibaker
5e6fb88372
Add missing LINT.If/ThenChange
comments
...
PiperOrigin-RevId: 724291745
2025-02-07 04:10:41 -08:00
claincly
d23d4fc314
Add more test cases to the seek test
...
This test also changes the image seeking behavior to match ExoPlayer: now if
seeking to after the end of the image, the last frame of the image would still
be presented.
PiperOrigin-RevId: 724054371
2025-02-06 13:35:40 -08:00
tianyifeng
d641f6a04c
Allow setting byte range for progressive media in DownloadRequest
...
PiperOrigin-RevId: 723995315
2025-02-06 10:52:10 -08:00
ibaker
097771306d
Remove LINT.IfChange comments with no following LINT.ThenChange
...
PiperOrigin-RevId: 723918659
2025-02-06 06:58:11 -08:00
kimvde
e229f957e6
A few nits
...
PiperOrigin-RevId: 723859603
2025-02-06 02:57:11 -08:00
dancho
a56a0bd928
MCVR: drop decoder input buffers when the decoder is late
...
* Add experimentalSetMinEarlyUsToDropDecoderInput to DefaultRenderersFactory
and MediaCodecVideoRenderer
* Enable dropping decoder input buffers inside MCVR.shouldIgnoreFrame
* Track consecutive dropped buffers via priority queue for reordering
PiperOrigin-RevId: 723837356
2025-02-06 01:40:28 -08:00
rohks
baf46d36d9
Bump Media3 version to 1.6.0-alpha03
...
#cherrypick
PiperOrigin-RevId: 723531635
2025-02-05 09:03:49 -08:00
rohks
6a4aa4515e
Update release notes for Media3 1.6.0-alpha03 release
...
#cherrypick
PiperOrigin-RevId: 723512116
2025-02-05 08:03:50 -08:00