- 25 Jan, 2022 7 commits
-
-
PiperOrigin-RevId: 422515892
andrewlewis committed -
This CL implements fixing the input format to the encoder spec. Fixed parameters include: - MIME type - Profile & level - Resolution - frame rate, and - bitrate PiperOrigin-RevId: 422513738
claincly committed -
By making AllocationNode fields non-final PiperOrigin-RevId: 422403816
aquilescanta committed -
PiperOrigin-RevId: 422392959
huangdarwin committed -
Rotation, translation, and scale tests on a normal video. PiperOrigin-RevId: 422383176
huangdarwin committed -
The MediaMetricsListener currently just looks at the mime type and doesn't use the inference based on the URI if no mime type is set. Also change default type to OTHER to avoid classifying streams from URLs without clear file extension as progressive. PiperOrigin-RevId: 422373381
tonihei committed -
PiperOrigin-RevId: 422349626
andrewlewis committed
-
- 17 Jan, 2022 11 commits
-
-
Adaptive video and audio selections will be limited to formats with the same level of DecoderSupport and HardwareAccelatationSupport, unless specifically allowed by new flags. If different levels of decoder support are available, prefer primary over fallback decoders and hardware-accelerated over software decoders (in this order). For video, also prefer more efficient codecs, if both are supported by hardware-accelerated primary decoders. Issue: google/ExoPlayer#4835 Issue: google/ExoPlayer#9565 PiperOrigin-RevId: 422345048
tonihei committed -
PiperOrigin-RevId: 422333929
hschlueter committed -
PiperOrigin-RevId: 422325859
hschlueter committed -
The naked URL is not hyperlinked by the javadoc compiler, meaning a user is forced to awkwardly copy it into the address bar of their browser: https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/ext/ima/ImaAdsLoader.html #minor-release PiperOrigin-RevId: 422320571
ibaker committed -
This change moves the video track selection to the generic selection method introcuced for audio and text. This ensures we can apply the same criteria for fixed and adaptive video track selections. Implicitly, this reorders the preferences for adaptive tracks to give non-quality preferences (like preferred MIME type or preferred role flags) a higher priority than number of tracks in the selection. Issue: google/ExoPlayer#9519 PiperOrigin-RevId: 422310902
tonihei committed -
This does currently only happen by chance in replaceStream (called from enable) if the stream previosly played read until C.TIME_END_OF_SOURCE. enable already makes all changes done in resetPosition (except resetting the reading position), so it's less error-prone and makes the intention clearer if the same code is called from both enable and resetPosition. The effect of this bug was quite limited because the numerical value of readingPositionUs was only relevant for periods with changing durations and server-side inserted ads. PiperOrigin-RevId: 422300690
tonihei committed -
PiperOrigin-RevId: 421855453
olly committed -
Issue: google/ExoPlayer#9856 PiperOrigin-RevId: 421842579
bachinger committed -
The app will be notified about fallback using a callback on Transformer.Listener. Fallback may be applied separately for the audio and video options, so an intermediate internal FallbackListener is needed to accumulate and merge the track-specific changes to the TransformationRequest. PiperOrigin-RevId: 421839991
hschlueter committed -
To be more readable and consistent with Transformer GL. Tested by running gl-demo with no crash. PiperOrigin-RevId: 421815519
huangdarwin committed -
We currently run (almost) the same code for all track types. De-duplicate this by using a single method that takes functional interfaces for track-type dependent logic. This has the benefit that all track-type dependent logic is contained within their subclasses and the generic logic doesn't need to make any assumption about the eligibility of tracks for selection or adaptation, and doesn't need to access Parameters. Make this change for audio and text only for now. Video can be updated in a subsequent change. PiperOrigin-RevId: 421811411
tonihei committed
-
- 14 Jan, 2022 21 commits
-
-
Simplifying and clarifying variables, and adding comments. Tested by confirming demo-gl and demo-transformer both correctly display videos PiperOrigin-RevId: 421792079
huangdarwin committed -
This value is the default used by widevine_test at proxy.uat.widevine.com, but it's not easy to find that info so it's clearer to document it explicitly here for consistency with the "policy tests" section below where all the URLs contain a video_id parameter. Issue: google/ExoPlayer#9852 PiperOrigin-RevId: 421781663
ibaker committed -
This string is case-sensitive. PiperOrigin-RevId: 421781437
ibaker committed -
The existing wording would be correct if prefixed with "Returns false if [...]", but it seems confusing to a document a boolean method in terms the condition it returns false - so I reworded it in terms of when it returns true. #minor-release PiperOrigin-RevId: 421682584
ibaker committed -
This is referred to from the public API surface, so it should also be public: https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/trackselection/MappingTrackSelector.MappedTrackInfo.html#getRendererSupport(int) #minor-release PiperOrigin-RevId: 421578232
ibaker committed -
After this change exceptions throw by MediaCodec during encoding/decoding will result in TransformationExceptions with ERROR_CODE_ENCODING_FAILED/ERROR_CODE_DECODING_FAILED. Before this change ERROR_CODE_FAILED_RUNTIME_CHECK was used. PiperOrigin-RevId: 421560396
hschlueter committed -
Expected images are taken on emulators, so a larger acceptable difference from expected images must be accepted on physical devices. PiperOrigin-RevId: 421543441
huangdarwin committed -
PiperOrigin-RevId: 421530365
aquilescanta committed -
PiperOrigin-RevId: 421514944
hschlueter committed -
Live speed adjustment is used for all live playback at the moment, but has no user visible effect if the media is not played with low latency. To avoid unnecessary adjustment during playback without benefit, this change restricts the live speed adjustment to cases where either the user requested a speed value in the MediaItem or the media specifically defined a low-latency stream. Issue: google/ExoPlayer#9329 PiperOrigin-RevId: 421514283
tonihei committed -
This ensures we test the API level specific logic, in particular around 5G-NSA detection. Robolectric has a remaining bug that it doesn't support listening to service state changes. Hence, we need to ignore some tests on these API levels still until this is fixed. PiperOrigin-RevId: 421505951
tonihei committed -
Accidentally commented out the Ignore annotation. PiperOrigin-RevId: 421304369
samrobinson committed -
PiperOrigin-RevId: 421278099
samrobinson committed -
Multiple listeners can be added to Transformer and its builder. All or specific listeners can also be removed. PiperOrigin-RevId: 421047650
hschlueter committed -
Codec and its factories can use MediaCodec directly as for API >= 21, the SynchronousMediaCodecAdapter methods used in Codec just correspond to a single MediaCodec call each so there is no reason to have another wrapping layer. PiperOrigin-RevId: 421041177
hschlueter committed -
PiperOrigin-RevId: 421039869
hschlueter committed -
Exceptions thrown by MediaMuxer are converted MuxerExceptions and later to TransformationExceptions with ERROR_CODE_MUXING_FAILED. PiperOrigin-RevId: 421033721
hschlueter committed -
We [recommend apps use Cronet](https://exoplayer.dev/network-stacks.html#choosing-a-network-stack) and the demo app uses it, so we should make it easy to look-up errors like this in our troubleshooting page. Issue: google/ExoPlayer#9851 #minor-release PiperOrigin-RevId: 421015537
ibaker committed -
The media codec renderers have fallback logic in getDecoderInfos to assume that E-AC3 decoders can handle the 2D version of E-AC3-JOC and that H264/H265 decoders can handle some base layer of Dolby Vision content. Both fallbacks are useful if there is no decoder for the enhanced Dolby formats. Both fallbacks are not applied during track selection at the moment because the separate MediaCodecInfo.isCodecSupported method verifies that the mime type corresponding to format.codecs is the same as the decoder mime type (which isn't true for the fallback case). To fix the fallback logic, we can just completely remove this additional check because it's not needed in the context of this method that is only called after we already established that the decoder can handle the format.sampleMimeType. In addition, we need to map the Dolby Vision profiles to the equivalent H264/H265 profile to make the codec profile comparison sensible again. PiperOrigin-RevId: 420959104
tonihei committed -
SampleQueues may be released in the context of a finally block after an out of memory error. Allocating in that scenario can throw yet a new OutOfMemoryError. By safely releasing SampleQueue memory, we increase the possibility of handling the error gracefully. PiperOrigin-RevId: 420859022
aquilescanta committed -
PiperOrigin-RevId: 420738165
olly committed
-
- 10 Jan, 2022 1 commit
-
-
This method has been deprecated since 2.12.0 ([commit](https://github.com/google/ExoPlayer/commit/d1bbd3507a818e14be965c300938f9d51f8b7836)). Also remove DashMediaSource.Factory#setLivePresentationDelayMs(long, boolean), this method has been deprecated since 2.13.0 ([commit](https://github.com/google/ExoPlayer/commit/41b58d503ae6666cea4ded114afde9fb23a5e199)). PiperOrigin-RevId: 420719877
ibaker committed
-