Update media3 to v1.2.0 - autoclosed #405
Closed
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.1.1
->1.2.0
1.1.1
->1.2.0
1.1.1
->1.2.0
1.1.1
->1.2.0
1.1.1
->1.2.0
1.1.1
->1.2.0
Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
androidx/media (androidx.media3:media3-cast)
v1.2.0
Compare Source
This release includes the following changes since the
1.1.1 release:
@Nullable Throwable
parameter to the methods in theLog.Logger
interface. The
message
parameter to these methods no longer containsany information about the
Throwable
passed to theLog.{d,i,w,e}()
methods, so implementations will need to manually append this
information if desired (possibly using
Logger.appendThrowableString(String, Throwable)
).and nullable array element types are not detected as nullable. Examples
are
TrackSelectorResult
andSimpleDecoder
method parameters(#6792).
Util.shouldShowPlayButton
to show a "play" button while playback istemporarily suppressed (e.g. due to transient audio focus loss). The
legacy behavior can be maintained by using
PlayerView.setShowPlayButtonIfPlaybackIsSuppressed(false)
orMediaSession.Builder.setShowPlayButtonIfPlaybackIsSuppressed(false)
(#11213).
androidx.annotation:annotation-experimental
to1.3.1
to fixhttps://issuetracker.google.com/251172715.
ExoPlayer.setAudioAttributes
to thePlayer
interface.samples correctly
(#11000).
built-in speaker on Wear OS devices) when this feature is enabled via
ExoPlayer.Builder.setSuppressPlaybackOnUnsuitableOutput
. The playbacksuppression reason will be updated as
Player.PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_OUTPUT
if playbackis attempted when no suitable audio outputs are available, or if all
suitable outputs are disconnected during playback. The suppression
reason will be removed when a suitable output is connected.
MediaSource.canUpdateMediaItem
andMediaSource.updateMediaItem
to accept
MediaItem
updates after creation viaPlayer.replaceMediaItem(s)
.MediaItem
updates for allMediaSource
classes provided by thelibrary via
Player.replaceMediaItem(s)
(#33,
#9978).
MimeTypes.TEXT_EXOPLAYER_CUES
toMimeTypes.APPLICATION_MEDIA3_CUES
.PngExtractor
that sends and reads a whole PNG file into theTrackOutput
as one sample.SequenceableLoader.continueLoading(long)
method in theSequenceableLoader
interface toSequenceableLoader.continueLoading(LoadingInfo loadingInfo)
.LoadingInfo
contains additional parameters, includingplaybackSpeed
and
lastRebufferRealtimeMs
in addition to the existingplaybackPositionUs
.ChunkSource.getNextChunk(long, long, List, ChunkHolder)
methodin the
ChunkSource
interface toChunkSource.getNextChunk(LoadingInfo, long, List, ChunkHolder)
.starvation (
bs
), deadline (dl
), playback rate (pr
) and startup(
su
) (#8699).ColorInfo
(#491).
object request (
nor
) and next range request (nrr
)(#8699).
query parameters (#553).
ConcurrentModificationException
inExperimentalBandwidthMeter
(#612).
MediaPeriodId
parameter toCompositeMediaSource.getMediaTimeForChildMediaTime
.ClippingMediaSource
(and other sources with period/window timeoffsets) in
ConcatenatingMediaSource2
(#11226).
BaseRenderer.onStreamChanged()
to also receive aMediaPeriodId
argument.TransformationRequest.HdrMode
annotation type and itsassociated constants. Use
Composition.HdrMode
and its associatedconstants instead.
OverlaySettings
to fix rotation issues.frameRate
anddurationUs
parameters ofSampleConsumer.queueInputBitmap
toTimestampIterator
.DefaultTrackSelector.Parameters.allowAudioNonSeamlessAdaptiveness
to explicitly allow or disallow non-seamless adaptation. The default
stays at its current behavior of
true
.unit of a stream to the sample queue
(#7909).
rotationDegrees
. ChangedprojectionPosePitch
toprojectionPoseRoll
(#461).
Extractor
instances can be directlyinspected with
instanceof
. If you want runtime access to theimplementation details of an
Extractor
you must first callExtractor.getUnderlyingInstance
.BmpExtractor
.WebpExtractor
.HeifExtractor
.QuickTime classic
support to
Mp4Extractor
.PCM encoding for
lpcm
in MP4.AudioSink.getFormatOffloadSupport(Format)
that retrieves level ofoffload support the sink can provide for the format through a
DefaultAudioOffloadSupportProvider
. It returns the newAudioOffloadSupport
that containsisFormatSupported
,isGaplessSupported
, andisSpeedChangeSupported
.AudioSink.setOffloadMode()
through which the offload configurationon the audio sink is configured. Default is
AudioSink.OFFLOAD_MODE_DISABLED
.setAudioOffloadPreference
inTrackSelectionParameters
. If the set preference is to enable, thedevice supports offload for the format, and the track selection is a
single audio track, then audio offload will be enabled.
audioOffloadModePreference
is set toAUDIO_OFFLOAD_MODE_PREFERENCE_REQUIRED
, then theDefaultTrackSelector
will only select an audio track and only if thattrack's format is supported in offload. If no audio track is supported
in offload, then no track will be selected.
playback position issue after track transition.
enableOffload
fromDefaultRenderersFactory.buildAudioSink
method signature.DefaultAudioSink.Builder.setOffloadMode
.DefaultAudioSink.OffloadMode.OFFLOAD_MODE_ENABLED_GAPLESS_DISABLED
.(#627).
ExoPlayer.experimentalSetOffloadSchedulingEnabled
andAudioOffloadListener.onExperimentalOffloadSchedulingEnabledChanged
.onExperimentalSleepingForOffloadChanged
asonSleepingForOffloadChanged
andonExperimentalOffloadedPlayback
asonOffloadedPlayback
.TrackSelectionParameters
interfacesand definitions to an inner
AudioOffloadPreferences
class.onAudioTrackInitialized
andonAudioTrackReleased
callbacks toAnalyticsListener
,AudioRendererEventListener
andAudioSink.Listener
.(#650).
IllegalArgumentException
(#677).
MediaCodecVideoRenderer
to use a customVideoFrameProcessor.Factory
.starts with negative timestamps
(#291).
ExoplayerCuesDecoder
. Text tracks withsampleMimeType = application/x-media3-cues
are now directly handled byTextRenderer
without needing a
SubtitleDecoder
instance.MetadataDecoder.decode
will no longer be called for "decode-only"samples as the implementation must return null anyway.
VideoFrameProcessor.queueInputBitmap(Bitmap, Iterator<Long>)
queuing bitmap input by timestamp.
VideoFrameProcessor.registerInputStream()
to be non-blocking.Apps must implement
VideoFrameProcessor.Listener#onInputStreamRegistered()
.frameRate
anddurationUs
parameters ofVideoFrameProcessor.queueInputBitmap
toTimestampIterator
.in a playlist can throw an exception
(#571).
AdsLoader.destroy()
FOREGROUND_SERVICE_IMMEDIATE
inDefaultMediaNotificationProvider
(#167).
android.media.session.MediaSession.setMediaButtonBroadcastReceiver()
above API 31 to avoid problems with deprecated API on Samsung devices
(#167).
and custom layout used to populate the notification and the platform
session.
MediaSessionService.onStartCommand()
within Media3 instead of routingthem to the platform session and back to Media3. With this, the caller
controller is always the media notification controller and apps can
easily recognize calls coming from the notification in the same way on
all supported API levels.
MediaController.getCurrentPosition()
is not advancingwhen connected to a legacy
MediaSessionCompat
.MediaLibrarySession.getSubscribedControllers(mediaId)
forconvenience.
MediaLibrarySession.Callback.onSubscribe()
to assert theavailability of the parent ID for which the controller subscribes. If
successful, the subscription is accepted and
notifyChildrenChanged()
is called immediately to inform the browser
(#561).
Android Auto.
COMMAND_GET_TIMELINE
is not available for the media notificationcontroller. With Android Auto as the client controller reading from the
framework session, this has the effect that the
queue
button in the UIof Android Auto is not displayed
(#339).
DataSourceBitmapLoader
by default instead ofSimpleBitmapLoader
(#271,
#327).
MediaSession.Callback.onMediaButtonEvent(Intent)
that allows appsto override the default media button event handling.
Player.Listener
implementation for Wear OS devices that handlesplayback suppression due to
Player.PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_OUTPUT
bylaunching a system dialog to allow a user to connect a suitable audio
output (e.g. bluetooth headphones). The listener will auto-resume
playback if a suitable device is connected within a configurable timeout
(default is 5 minutes).
DownloadService
forAndroid 14 compatibility. When using this service, the app also needs to
add
dataSync
asforegroundServiceType
in the manifest and add theFOREGROUND_SERVICE_DATA_SYNC
permission(#11239).
load start time rather than the last load completed time
(#663).
has better support for merging overlapping subtitles, including
resolving flickering when transitioning between subtitle segments. You
can enable this using
DashMediaSource.Factory.experimentalParseSubtitlesDuringExtraction()
(#288).
IndexOutOfBoundsException
whenfalling back to TCP, or playback hanging in some situations.
RtspMediaPeriod
(#577).
(#613).
keep-alive RTSP Options requests
(#662).
standard MIDI files using the Jsyn library to synthesize audio.
DecoderOutputBuffer.shouldBeSkipped
to directly mark outputbuffers that don't need to be presented. This is preferred over
C.BUFFER_FLAG_DECODE_ONLY
that will be deprecated.Decoder.setOutputStartTimeUs
andSimpleDecoder.isAtLeastOutputStartTimeUs
to allow decoders to dropdecode-only samples before the start time. This should be preferred to
Buffer.isDecodeOnly
that will be deprecated.artifact is renamed to
media3-exoplayer-midi
(#734).
ArithmeticException
inLeanback code (#617).
TestExoPlayerBuilder
andFakeClock
compatible with Espresso UItests and Compose UI tests. This fixes a bug where playback advances
non-deterministically during Espresso or Compose view interactions.
TransformationRequest.Builder.setEnableRequestSdrToneMapping(boolean)
and
TransformationRequest.Builder.experimental_setEnableHdrEditing(boolean)
.Use
Composition.Builder.setHdrMode(int)
and pass theComposition
toTransformer.start(Composition, String)
instead.DownloadNotificationHelper.buildProgressNotification
method, use a non deprecated method that takes a
notMetRequirements
parameter instead.
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.