5764 Commits

Author SHA1 Message Date
bachinger
fbe186a70c Deflake MediaSessionServiceTest
`onConnect_controllerInfo_sameInstanceFromServiceToConnectedControllerManager`
was flaky because `onDestroy()` of `MockMediaSessionService` was cleaning
up the `TestServiceRegistry`. This includes releasing the session of the service
after which no further `MediaSession.Callback` methods are called. This created
a race between `Callback.onDisconnected` and the `Mediasession.release()` being
called.

`onDestroy()` is called unexpectedly early because the controller unbinds as the
last controller from the service that never was started (`onStartCommand` never
called). In such a case the service is immediately terminated by the system after
the last client unbinds from the service, which called `onDestroy()` on the mock
service.

This change making `MockMediaSessionService` optionally not clean up the
registry in `onDestroy()` prevents the session from being released too early.
Alternatively, starting playback and hence starting the service into the
foreground would prevent the problem as well for the purpose of the test.
Another alternative to fix the test would be removing the session from the
service before releasing the controller.

PiperOrigin-RevId: 730361199
2025-02-24 02:22:35 -08:00
claincly
4c3ac81873 Add a class wrapping GlTextureInfo and presentation time
The grouping is used in some places and will be used in dynamic effect update

PiperOrigin-RevId: 729569353
2025-02-21 10:11:52 -08:00
Copybara-Service
7c2e8c1c4b Merge pull request #2170 from wischnow:main
PiperOrigin-RevId: 729558029
2025-02-21 09:35:20 -08:00
sheenachhabra
b6aa21a427 Move video track extraction method to AndroidTestUtil
The method can be reused in other tests as well

PiperOrigin-RevId: 729528829
2025-02-21 07:56:56 -08:00
Copybara-Service
05c8a66dc2 Merge pull request #2149 from bubenheimer:util_postorrun_fix
PiperOrigin-RevId: 729495445
2025-02-21 05:40:11 -08:00
Copybara-Service
2b12a57447 Merge pull request #2139 from bubenheimer:handleReplaceMediaItems_removerangecodefix
PiperOrigin-RevId: 729490370
2025-02-21 05:18:57 -08:00
tianyifeng
d35fccef59 Propagate download byte range to ProgressiveDownloader
PiperOrigin-RevId: 729484044
2025-02-21 04:53:42 -08:00
Uli Bubenheimer
7cc97ddce2 Minor Util.postOrRun refactor: fix skipped reuse of variable created for reuse 2025-02-21 12:31:22 +00:00
Copybara-Service
378e70e15f Merge pull request #2136 from bubenheimer:handleReplaceMediaItems_docfix
PiperOrigin-RevId: 729474558
2025-02-21 04:15:28 -08:00
tonihei
6121445718 Remove gitattributes and some formatting changes 2025-02-21 11:57:20 +00:00
Daniele Sparano
da360a67cb Add fix from https://github.com/androidx/media/pull/2172 2025-02-21 11:46:09 +00:00
Daniele Sparano
d81321174e Fix CRLF mismatch failing tests in Windows 2025-02-21 11:46:09 +00:00
Daniele Sparano
c144420be8 Reset nal unit type after key frame determination 2025-02-21 11:46:09 +00:00
Daniele Sparano
07150b816f Fix h264 and h265 dumps 2025-02-21 11:46:09 +00:00
Daniele Sparano
7bbc7e03db Reset H264 nal unit type on end function to avoid stale state; add unspecified nal unit type constants 2025-02-21 11:46:09 +00:00
Daniele Sparano
277f969c5c Use end and start of dummy NAL unit as a more reliable way to end ts input 2025-02-21 11:46:09 +00:00
Daniele Sparano
82ba4060a4 Update H265 ts dump files 2025-02-21 11:46:08 +00:00
Daniele Sparano
8253530688 Avoid duplicated samples with at H265 ts end 2025-02-21 11:46:08 +00:00
Daniele Sparano
4015db57a5 Update dumps of ts tests 2025-02-21 11:46:08 +00:00
Daniele Sparano
4adbeed6f6 Handle 4 byte start code prefix, ensure non empty samples 2025-02-21 11:46:08 +00:00
Daniele Sparano
dbf864fd69 Handle 4 byte start code prefix, ensure non empty samples, fix timestamp on very last sample on synthesized empty pusi 2025-02-21 11:46:08 +00:00
tonihei
7a85cfb4bd Add {} 2025-02-21 11:38:33 +00:00
Uli Bubenheimer
a32c768ea1 handleReplaceMediaItems: filter invalid parameters for handleRemoveMediaItems 2025-02-21 11:36:05 +00:00
shahddaghash
23ebea7ab4 Update exporter and muxer name to match expected pattern
If the name does not match patten, it gets skipped when reporting.

PiperOrigin-RevId: 729463344
2025-02-21 03:35:04 -08:00
Uli Bubenheimer
26cf8e1e94 Fix permitted parameter range for handleReplaceMediaItems in javadoc 2025-02-21 11:30:14 +00:00
Uli Bubenheimer
ea1562b7cc Fix permitted parameter range for handleMoveMediaItems in javadoc 2025-02-21 11:26:06 +00:00
Gaëtan Muller
a17a3ebc67 Replace usages of Util.areEqual() with Objects.equals() 2025-02-21 11:01:09 +00:00
Gaëtan Muller
0a648200ba Remove deprecated Player.seekToNextWindow()
Use `Player.seekToNextMediaItem()` instead.
2025-02-21 10:54:02 +00:00
Gaëtan Muller
2644409801 Remove deprecated Player.seekToPreviousWindow()
Use `Player.seekToPreviousMediaItem()` instead.
2025-02-21 10:54:02 +00:00
Gaëtan Muller
72884c3bf3 Remove deprecated Player.next()
Use `Player.seekToNextMediaItem()` instead.
2025-02-21 10:54:02 +00:00
Gaëtan Muller
521871b9d5 Remove deprecated Player.hasNext() and Player.hasNextWindow()
Use `Player.hasNextMediaItem()` instead.
2025-02-21 10:54:02 +00:00
tonihei
72c85aa483 Ensure DataSource is closed in CacheWriter at non-IOException
We currently only catch IOExceptions to close the opened data source.
This means any other type of exception leaves the data source open,
which can caused SimpleCache to be blocked forever when another
data source tries to access the same cache area (which is still
locked by the open data source).

This problem was the cause for flakiness in DownloadManagerDashTest.

#cherrypick

Issue: google/ExoPlayer#9760
PiperOrigin-RevId: 729441817
2025-02-21 02:11:21 -08:00
tianyifeng
a5ffae17c3 Enable DownloadHelper to create DownloadRequest with byteRange
This change only enable the partial support for progressive stream. For now, creating `DownloadRequest` for partial adaptive media will result in an `IllegalStateException`.

PiperOrigin-RevId: 729100584
2025-02-20 07:15:51 -08:00
tianyifeng
daf8f9ff58 Mask ExoPlayer.isLoading when it transitions to IDLE or ENDED states
In some cases, the ExoPlayer immediately transitions to `STATE_IDLE` or `STATE_ENDED` on application thread, while `isLoading` can still remain as `true` before it is finally updated from playback thread.

Issue: androidx/media#2133

#cherrypick

PiperOrigin-RevId: 728724157
2025-02-19 10:31:43 -08:00
shahddaghash
ae3eed2343 Verify each export had its own session
This is done by getting the session ID for the `EditingSession` and making sure it's unique from the other session ID.

PiperOrigin-RevId: 728680628
2025-02-19 08:18:34 -08:00
sheenachhabra
462533219d Create muxer specific BufferInfo class
Muxer does not use `offset` field, hence not added.

PiperOrigin-RevId: 728625538
2025-02-19 05:11:04 -08:00
Googler
1461e9e93a Update the list of supported video mimetypes.
Add VP9 and APV codecs to the list of supported video mimetypes for Mp4Muxer and Fragmented Mp4Muxer.

PiperOrigin-RevId: 728603222
2025-02-19 03:53:47 -08:00
Googler
525588eec5 Update performance parameter visibility
PiperOrigin-RevId: 728589755
2025-02-19 03:05:40 -08:00
Sven Wischnowsky
b32ac9b195 ignore unused SPU commands without arguments instead of ignoring the whole subtitle 2025-02-19 11:07:54 +01:00
jbibik
4045acd13b Fix Shuffle and Repeat references in tests
PiperOrigin-RevId: 728309204
2025-02-18 12:14:18 -08:00
shahddaghash
90844f11e8 Add test for usePlatformDiagnostics disabled
PiperOrigin-RevId: 728276994
2025-02-18 10:57:48 -08:00
tonihei
f1c62c1239 Make SimpleBasePlayer.State public
This ensures it's easier to handle these State updates in other
helper classes if needed.

Issue: androidx/media#2128

#cherrypick

PiperOrigin-RevId: 728264396
2025-02-18 10:28:05 -08:00
michaelkatz
75ac9cd191 Supply MediaPeriodId in ExoPlaybackExceptions thrown from Renderers
PiperOrigin-RevId: 728177353
2025-02-18 06:06:17 -08:00
bachinger
2b8700beaa Make setSessionActivity accept null
Issue: androidx/media#2109
PiperOrigin-RevId: 728160580
2025-02-18 05:06:06 -08:00
sheenachhabra
abe836d9cd Add sample_no_bframes.mp4 to FragmentedMp4MuxerEndToEndTest
This adds a test coverage for the case when sample size changes
after AnnexB to Avcc conversion.

PiperOrigin-RevId: 728121319
2025-02-18 02:48:12 -08:00
tonihei
78cf53c0b2 Version bump for Media3 1.6.0-beta01
#cherrypick

PiperOrigin-RevId: 727889651
2025-02-17 09:43:14 -08:00
shahddaghash
116fbeaa81 Add EditingMetricsCollector test for export cancellation
PiperOrigin-RevId: 727885381
2025-02-17 09:22:59 -08:00
Googler
653470f73b Update CSD and apvC box logic
Update the CSD to contain only the APVDecoderConfigurationRecord and the apvC box to be a full box. The apv clip is also updated to be consistent with the new [specification](https://github.com/AcademySoftwareFoundation/openapv/blob/main/readme/apv_isobmff.md#isobmff-binding-for-apv).

The clip is provided by the openAPV team under BSD-3 license.

PiperOrigin-RevId: 727868656
2025-02-17 08:11:00 -08:00
tonihei
527e1d52ae Use different authorities for AssetContentProvider
Otherwise it's impossible to install the androidTest apk
of both lib-datasource and lib-exoplayer on the same device

#cherrypick

PiperOrigin-RevId: 727867871
2025-02-17 08:08:57 -08:00
shahddaghash
f8d5f5a828 Move FrameBlockingMuxer into AndroidTestUtil
This allows it to be reused in upcoming tests.

PiperOrigin-RevId: 727835985
2025-02-17 06:04:02 -08:00