Update androidx.media3 to v1.4.0-alpha02 #165
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.4.0-alpha01
->1.4.0-alpha02
1.4.0-alpha01
->1.4.0-alpha02
1.4.0-alpha01
->1.4.0-alpha02
1.4.0-alpha01
->1.4.0-alpha02
1.4.0-alpha01
->1.4.0-alpha02
Release Notes
androidx/media (androidx.media3:media3-ui)
v1.4.0-alpha02
Compare Source
This release includes the following changes since the
1.4.0-alpha01 release:
BasePlayer.seekTo
andSimpleBasePlayer.handleSeek
methods instead of ignoring them. If you are implementing these methods in a custom player, you may need to handle these additional calls withmediaItemIndex == C.INDEX_UNSET
.MediaItem.Builder.setImageDurationMs
is ignored for a non-imageMediaItem
(as documented).reset
toBasePreloadManager
to release all the holding sources while keep the preload manager instance.ExoPlayer.setPriority
(andBuilder.setPriority
) to define the priority value used inPriorityTaskManager
and for MediaCodec importance from API 35.bs
(buffer starvation) key in CMCD (#1124).PreloadMediaSource.PreloadControl.onLoadedToTheEndOfSource(PreloadMediaSource)
to indicate that the source has loaded to the end. This allows theDefaultPreloadManager
and the customPreloadMediaSource.PreloadControl
implementations to preload the next source or take other actions.clear
toPreloadMediaSource
to discard the preloading period.PlaybackException.ERROR_CODE_DECODING_RESOURCES_RECLAIMED
that is used when codec resources are reclaimed for higher priority tasks.AdsMediaSource
load preroll ads before initial content media preparation completes (#1358).STATE_ENDED
when re-preparing a multi-period DASH live stream after the original period was already removed from the manifest.onTimelineRefreshed
toonSourcePrepared
andonPrepared
toonTracksSelected
inPreloadMediaSource.PreloadControl
. Also rename the IntDefs inDefaultPreloadManager.Stage
accordingly.experimentalSetDynamicSchedulingEnabled
when setting up your ExoPlayer instance.Renderer.getDurationToProgressMs
. ARenderer
can implement this method to return to ExoPlayer the duration that playback must advance for the renderer to progress. IfExoPlayer
is set withexperimentalSetDynamicSchedulingEnabled
thenExoPlayer
will call this method when calculating the time to schedule its work task.MediaCodecAdapter#OnBufferAvailableListener
to alert when input and output buffers are available for use byMediaCodecRenderer
.MediaCodecRenderer
will signalExoPlayer
when receiving these callbacks and ifExoPlayer
is set withexperimentalSetDynamicSchedulingEnabled
, thenExoPlayer
will schedule its work loop as renderers can make progress.LoadControl
methods instead of individual parameters.ExoPlayerAssetLoader
, ignore audio channel count constraints as they only apply for playback.androidx.media3.transformer.Muxer
interface withandroidx.media3.muxer.Muxer
and removeandroidx.media3.transformer.Muxer
.AudioGraphInput
to improve AV sync.Info
frame over the size reported by the underlying stream (e.g. file size, or HTTPContent-Length
header). This helps to exclude non-playable trailer data (e.g. album artwork) from constant bitrate seeking calculations, making seeks more accurate (#1376).Info
frame (if present) to compute an average bitrate for constant bitrate seeking, rather than extrapolating from the bitrate of the frame after theInfo
frame, which may be artificially small, e.g.PCUT
frame (#1376).DefaultAudioSink
prior to callingAudioTrack.stop()
so thatAudioTrack.StreamEventCallback#onPresentationEnded
correctly identifies when all pending data has been played.SilenceSkippingAudioProcessor
where transitions between different audio formats (for example stereo to mono) can cause the processor to throw an exception (#1352).MediaCodecAudioRenderer.getDurationToProgressUs
so that ExoPlayer will dynamically schedule its main work loop to when the MediaCodecAudioRenderer can make progress.MediaSource.Factory.experimentalParseSubtitlesDuringExtraction(false)
andTextRenderer.experimentalSetLegacyDecodingEnabled(true)
. See the docs on customization for how to plumb these components into anExoPlayer
instance. These methods (and all support for legacy subtitle decoding) will be removed in a future release.SubtitleDecoder
implementations need to update them to implementSubtitleParser
instead (andSubtitleParser.Factory
instead ofSubtitleDecoderFactory
).0
as a color index, instead of a literal color value (#1367).rowLock
value. The CEA-708-E S-2023 spec states thatrowLock
andcolumnLock
should both be assumed to be true, regardless of the values present in the stream (columnLock
support is not implemented, so it's effectively assumed to always be false).1.3.0-alpha01
release notes, but the change was accidentally reverted before the1.3.0-rc01
release. This is now fixed, so the change is present again.soal
), 'artist sort' (soar
) and 'album artist sort' (soaa
) MP4 tags were wrongly mapped to theTSO2
,TSOA
andTSOP
ID3 tags (#1302).gnre
(genre) andtmpo
(tempo) tags when the value is more than one byte long.TCON
frame toMediaMetadata.genre
(#1305).ByteArrayDataSource
to resolve a URI to a byte array duringopen()
, instead of being hard-coded at construction (#1405).LoadErrorHandlingPolicy
onDefaultDrmSessionManagerProvider
(#1271).TimestampWrapper
crashes when used withExoPlayer#setVideoEffects
(#821).SeparableConvolution
effects to be used before API 26.replaceAdTagParameters(Map <String, String>)
toImaServerSideAdInsertionMediaSource.AdLoader
that allows replacing ad tag parameters at runtime.VideoAdPlayer.VideoAdPlayerCallback.onError
was not called when a player error happened during ad playback (#1334).NullPointerException
when usingdata://
ad tag URIs (#700).MediaMetadata
toMediaDescriptionCompat
, to use the same preferred order and logic when selecting metadata properties as in media1.MediaSession.sendError()
that allows sending non-fatal errors to Media3 controller. When using the notification controller (seeMediaSession.getMediaNotificationControllerInfo()
), the custom error is used to update thePlaybackState
of the platform session to an error state with the given error information (#543).SocketTimeoutException
inCronetDataSource
. In some versions of Cronet, the request provided by the callback is not always the same. This leads to callback not completing and request timing out (https://issuetracker.google.com/328442628).HlsSampleStreamWrapper
with an incorrect offset causing anIndexOutOfBoundsException
or anIllegalArgumentException
(#1002).Source Error
andIllegalArgumentException
.IndexOutOfBoundsException
(#1329).dashif:Laurl
license urls (#1345).MediaQueueItem
to the artist in the Media3 media item (#1255).Intent
arguments from command line (#1266).setContentTypePredicate(Predicate)
method fromDefaultHttpDataSource
,OkHttpDataSource
andCronetDataSource
. Use the equivalent method on eachXXXDataSource.Factory
instead.OkHttpDataSource
constructors andOkHttpDataSourceFactory
. UseOkHttpDataSource.Factory
instead.PlayerMessage.setHandler(Handler)
. UsesetLooper(Looper)
instead.Timeline.Window.isLive
field. Use theisLive()
method instead.DefaultHttpDataSource
constructors. UseDefaultHttpDataSource.Factory
instead.DashMediaSource.DEFAULT_LIVE_PRESENTATION_DELAY_MS
. UseDashMediaSource.DEFAULT_FALLBACK_TARGET_LIVE_OFFSET_MS
instead.MediaCodecInfo.isSeamlessAdaptationSupported(Format, Format, boolean)
. UseMediaCodecInfo.canReuseCodec(Format, Format)
instead.DrmSessionManager.DUMMY
andgetDummyDrmSessionManager()
method. UseDrmSessionManager.DRM_UNSUPPORTED
instead.AnalyticsListener.onAudioInputFormatChanged(EventTime, Format)
,AnalyticsListener.onVideoInputFormatChanged(EventTime, Format)
,AudioRendererEventListener.onAudioInputFormatChanged(Format)
,VideoRendererEventListener.onVideoInputFormatChanged(Format)
. Use the overloads that take aDecoderReuseEvaluation
instead.RendererSupport.FormatSupport
IntDef andFORMAT_HANDLED
,FORMAT_EXCEEDS_CAPABILITIES
,FORMAT_UNSUPPORTED_DRM
,FORMAT_UNSUPPORTED_SUBTYPE
,FORMAT_UNSUPPORTED_TYPE
constants. Use the equivalent IntDef and constants inandroidx.media3.common.C
instead (e.g.C.FORMAT_HANDLED
).Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by Mend Renovate. View repository job log here.