22575 Commits

Author SHA1 Message Date
sheenachhabra
493e5a5eb1 Refactor common input feeding method into MuxerTestUtil
PiperOrigin-RevId: 730452200
2025-02-24 08:02:57 -08:00
claincly
2f5a72a165 Add javadoc to clarify using bitmap
PiperOrigin-RevId: 730441676
2025-02-24 07:25:13 -08:00
tonihei
5610cc8465 Do not change audio capabilities for error recovery without context
If the deprecated path without a context is used, the capabilities
are set externally and can't recover automatically back to the real
capabilities.

Issue: androidx/media#2168
PiperOrigin-RevId: 730427339
2025-02-24 06:33:23 -08:00
Marc Baechinger
b4bff587c0 Add inline comments to test case 2025-02-24 13:16:16 +01:00
Marc Baechinger
1d5f7598e9 Merge release notes 2025-02-24 13:15:59 +01:00
Colin Kho
dd641c1979 Add lastRebufferRealtimeMs to LoadControl.Parameters 2025-02-24 13:14:21 +01:00
shahddaghash
c90ca4e86e Enable metrics collection by default
PiperOrigin-RevId: 730383523
2025-02-24 03:47:05 -08:00
bachinger
76df13d390 Avoid rare NPE in MediaSessionServiceTest
PiperOrigin-RevId: 730363453
2025-02-24 02:29:45 -08:00
dancho
67e99f4648 MCVR: limit the number of consecutive dropped input frame headers
Dropping too many consecutive input buffers reduces the update
frequency of MCVR.shouldDropDecoderInputBuffers and can lead to
dropping too many consecutive input buffers.

Discarding input buffers of type OBU_FRAME_HEADER with
show_existing_frame = 1 saves a smaller amount of resources
than discarding input buffers of type OBU_FRAME.
PiperOrigin-RevId: 730362707
2025-02-24 02:27:41 -08:00
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
e889632971 Add release notes 2025-02-21 11:59:54 +00: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
d0ca20184e Update RELEASENOTES.md 2025-02-21 10:54:02 +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