- 09 Jun, 2023 7 commits
-
-
Add `HlsMediaSource.Factory.setTimestampAdjusterInitializationTimeoutMs(long)` to set the timeout for the loading thread to wait for the `TimestampAdjuster` to initialize. If the initialization doesn't complete before the timeout, a `PlaybackException` is thrown to avoid the playback endless stalling. The timeout is set to zero by default. This can avoid HLS playback endlessly stalls when manifest has missing discontinuities. According to the HLS spec, all variants and renditions have discontinuities at the same points in time. If not, the one with discontinuities will have a new `TimestampAdjuster` not shared by the others. When the loading thread of that variant is waiting for the other threads to initialize the timestamp and hits the timeout, the playback will stall. Issue: androidx/media#323 #minor-release PiperOrigin-RevId: 539108886 (cherry picked from commit 4eb56cfce76a41ff90d50d2d9e3ea4e9ad0d7b4e)
tianyifeng committed -
This change addresses the case when the user joins the live stream on an ad period but the metadata for the ad period is not emitted. This results in inserting a partial ad group. In this case the ad group duration is longer than the partial ad group. If now the partial ad group ends at the period before the last period of the window (unknown duration), the splitting algorithm didn't recognize that the ad group already ended and made the last period wrongly an ad period. This change handles this edge case by counting the mapped ads in the partial ad group to detect this situation and stops splitting. #minor-release PiperOrigin-RevId: 539102785 (cherry picked from commit 2adeb4107790e1a9f822b5b810e532501a02e4aa)
bachinger committed -
PiperOrigin-RevId: 539100987 (cherry picked from commit 4755e7313e5a31f5f9b6599ff290580026994b75)
claincly committed -
In case the player is reset while a live stream is playing, the current period needs to be a placeholder. This makes sure that the default start position is used when the first live timeline arrives after re-preparing. #minor-release PiperOrigin-RevId: 539044360 (cherry picked from commit 538143aad92340ede0891a74c514a213e5513d06)
bachinger committed -
PiperOrigin-RevId: 539036285 (cherry picked from commit 21b5661897bb684502ae187f2aec83f58a1d21ff)
claincly committed -
When the source is prepared again after stop, the period uid is calculated by subtracting the `firstPeriodId` from the period uid that is passed in to `createPeriod`. When this happens after stop, the uid from the old period uid that is still stored and has the value of the last played uid. Hence the `firstPeriodId` must not be reset when released. Issue: google/ExoPlayer#10838 PiperOrigin-RevId: 539028570 (cherry picked from commit de2ad14f46f4790063dfef849ba8cc0069f6106e)
bachinger committed -
Add support for including Common Media Client Data (CMCD) in the outgoing requests of adaptive streaming formats DASH, HLS, and SmoothStreaming. API structure and API methods: * CMCD logging is disabled by default, use `MediaSource.Factory.setCmcdConfigurationFactory(CmcdConfiguration.Factory cmcdConfigurationFactory)` to enable it. * All keys are enabled by default, override `CmcdConfiguration.RequestConfig.isKeyAllowed(String key)` to filter out which keys are logged. * Override `CmcdConfiguration.RequestConfig.getCustomData()` to enable custom key logging. NOTE: Only the following fields have been implemented: `br`, `bl`, `cid`, `rtp`, and `sid`. Issue: google/ExoPlayer#8699 #minor-release PiperOrigin-RevId: 539021056 (cherry picked from commit b7e71538a3fc6892cf75f1e0799f339e63d2f1ec)
rohks committed
-
- 08 Jun, 2023 7 commits
-
-
#minor-release PiperOrigin-RevId: 538927855 (cherry picked from commit 499fd0942c7557bf5970b4bc79cd7fa4648f0227)
bachinger committed -
#minor-release PiperOrigin-RevId: 538809105 (cherry picked from commit 8be5705ff7514f26f2caacef8d559f8e41bc14de)
jbibik committed -
#minor-release PiperOrigin-RevId: 538804347 (cherry picked from commit 4bb7b3cddcddd228ed6d513b4e2ffa80268b2fbc)
tofunmi committed -
PiperOrigin-RevId: 538796466 (cherry picked from commit 782b9535816df2709526b0031e5902c4f636c322)
claincly committed -
Changes included: 1. Enable MP4 extractor to read all types of metadata. 2. Allow passing String and Float metadata via Transformer. Reference to QuickTime spec: https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/Metadata/Metadata.html#//apple_ref/doc/uid/TP40000939-CH1-SW21 PiperOrigin-RevId: 538783982 (cherry picked from commit 8ce74aa4000d7b6bb9673734c42c3620cd602544)
sheenachhabra committed -
PiperOrigin-RevId: 538742957 (cherry picked from commit f582e41aab795398ea0e7ef2a70c6282b6ead634)
sheenachhabra committed -
To ensure no regressions for the potentially confusing pipeline of: * HDR electrical -> SDR linear EOTF+OOTF, and * SDR linear -> SDR electrical OETF PiperOrigin-RevId: 538741079 (cherry picked from commit 63b6df33353aa4098649fa042e636a3445d28b89)
huangdarwin committed
-
- 07 Jun, 2023 7 commits
-
-
PiperOrigin-RevId: 538495675 (cherry picked from commit 85bfc08595c40f646e8090dd81c7ae79080cf70f)
tofunmi committed -
PiperOrigin-RevId: 538491957 (cherry picked from commit 466308c736a2757edbddb0384f25f21dbca9e661)
huangdarwin committed -
Also queue textures from a different thread in TextureAssetLoader, to have a behaviour closer to reality. PiperOrigin-RevId: 538473089 (cherry picked from commit 01dbda1f768d0511c85fdcdb4a6972e85a477426)
kimvde committed -
PiperOrigin-RevId: 538469993 (cherry picked from commit bc94a0e189b92310cc28c644aa11771d534987d5)
jbibik committed -
#minor-release PiperOrigin-RevId: 538466615 (cherry picked from commit ac18e2ea5f05cb23af1f9d12c102feffb8e9c1ff)
tofunmi committed -
Confirms that multiple textures can be output, and that timestamps and pixels are as expected. PiperOrigin-RevId: 538459296 (cherry picked from commit cfcc53b3829f5dedbd4a2e96af87f3b05dec7715)
huangdarwin committed -
PiperOrigin-RevId: 538437142 (cherry picked from commit 136f323f97bc048d9cc9a6b703b72073aa6132de)
andrewlewis committed
-
- 06 Jun, 2023 5 commits
-
-
PiperOrigin-RevId: 538209925 (cherry picked from commit 824960bae924141a5036744226c5fe79b37d3c12)
Tofunmi Adigun-Hameed committed -
PiperOrigin-RevId: 538175466 (cherry picked from commit 6dc8e060c958a2f36dd8d7d1b2f67585082a2a22)
sheenachhabra committed -
PiperOrigin-RevId: 538173603 (cherry picked from commit 2c7d929db17806176a9b592238292ca2fe436c92)
Tofunmi Adigun-Hameed committed -
The sample timestamp carried by the emsg box can have a significant delta when comparing to the earliest presentation timestamp of the segment. Using this timestamp to intialize the timestamp offset in TimestampAdjuster will cause the media sample to have a wrong adjusted timestamp. So we should defer adjusting the metadata sample timestamp until the TimestampAdjuster is initialized with a real media sample. PiperOrigin-RevId: 538172841 (cherry picked from commit 08c189e768d77e9e2a9665b23fa384e776f9678b)
tianyifeng committed -
PiperOrigin-RevId: 538129792 (cherry picked from commit 13df52b97e64cf54071e130faa2c46001d6b7029)
claincly committed
-
- 05 Jun, 2023 4 commits
-
-
When initiated by MediaController, it should be possible for `MediaSession` to pass `MediaItems` to the `Player` if they have `LocalConfiguration`. In such case, it is not required to override `MediaSession.Callback.onAddMediaItems`, because the new current default implementation will handle it. However, in other cases, MediaItem.toBundle() will continue to strip the LocalConfiguration information. Issue: androidx/media#282 #minor-release PiperOrigin-RevId: 537993460 (cherry picked from commit bcddaf27654ed342ce70fc7a270d478953c2fb80)
jbibik committed -
PiperOrigin-RevId: 537908595 (cherry picked from commit f8be8c087de550d2d7a2d1c1b7dc9591804c93f8)
Googler committed -
`outputSurfaceInfoChanged` is not reset when `defaultShaderProgram` is null. That is, on the first time `ensureConfigured()` is called with output size changed, `outputSurfaceInfoChanged` is not set to false after creating the `defaultShaderProgram`, and `defaultShaderProgram` will be created again on the second time `ensureConfigured()` is called. PiperOrigin-RevId: 537870404 (cherry picked from commit 3d8a2f8b8a81f022d71a12abf3deaabd426ca8ca)
claincly committed -
https://github.com/google/ExoPlayer/commit/fedd99b4911e61f18e68e57021ac8b55db7e5f44 introduced using `DefaultDecoderFactory.getDecoderInfo(format) != null` caused certain tests not to be skipped when they were expected to be, creating more mh failures. PiperOrigin-RevId: 537820370 (cherry picked from commit c78151b52d9ee53a08681b2a7ab3be352bd43572)
tofunmi committed
-
- 12 Jun, 2023 10 commits
-
-
PiperOrigin-RevId: 537814319 (cherry picked from commit 68939399b4bb6f6b72376d3f8cf0441c1285e230)
sheenachhabra committed -
ExoPlayer extractors (backing `MetadataRetriever`) now parse the color format from the bitstream so using `MetadataRetriever` should be an equivalent but more lightweight way to verify the color info. Also remove try/catch blocks in test code calling into these methods, and add skipping based on decoder capabilities in the cases where it was missing. PiperOrigin-RevId: 537789483 (cherry picked from commit 88db01116afa54e52f8516533256d447de45e8a4)
andrewlewis committed -
Previously, we would apply a general effect to signal wanting to transcode. PiperOrigin-RevId: 537034455 (cherry picked from commit fb032f0c1feb42878f4ebdfa7f673e2cdd13949f)
huangdarwin committed -
PiperOrigin-RevId: 537014587 (cherry picked from commit 8166b3590fe7d629f55c1e8af27091f8309d4cb7)
Tofunmi Adigun-Hameed committed -
PiperOrigin-RevId: 536770380 (cherry picked from commit 11c52d2de1e07b5c497438ee86651e0bd399b3d2)
claincly committed -
PiperOrigin-RevId: 536727079 (cherry picked from commit a8baf21cae4c47de0bdcb8e3f9474d4914662d36)
kimvde committed -
#minor-release PiperOrigin-RevId: 536724725 (cherry picked from commit 792aa7295827471902f6641cf83f4c4c12effedc)
ibaker committed -
In some cases the codec selected for decoding has a different MIME type than the media. In thoses cases Transformer continued to use the media's MIME type and that caused codec configuration failures. Removed `EncoderUtil.findCodecForFormat()` as we stopped using the method it uses for finding a codec. Plus, the method is only used in the test. See also `MediaCodecUtil.getALternativeCodecMimeType()`. PiperOrigin-RevId: 536683663 (cherry picked from commit fedd99b4911e61f18e68e57021ac8b55db7e5f44)
claincly committed -
Otherwise, texture output errors out if video decoding decodes faster than audio, hitting the end of the file, while audio is still in the middle of the file. PiperOrigin-RevId: 536679568 (cherry picked from commit 2ff8b446e648883144687c4c020b2d23a0b4e1d3)
huangdarwin committed -
This future.get() duplicates the wait done in singleThreadExecutorService.awaitTermination(). If awaitTermination times out, this future.get() would also result in unnecessary blocking. PiperOrigin-RevId: 536442153 (cherry picked from commit d7f4fea0b9d1be3f5d0211dc50b0f1fbaec05564)
huangdarwin committed
-