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:
8.11.1
->8.12
1.7.5
->1.7.6
1.13.13
->1.13.14
1.13.13
->1.13.14
1.13.13
->1.13.14
1.4.1
->1.5.1
1.4.1
->1.5.1
2.0.21-1.0.28
->2.1.0-1.0.29
2.0.21
->2.1.0
2.0.21
->2.1.0
2.0.21
->2.1.0
5.11.3
->5.11.4
5.11.3
->5.11.4
2.1.3
->2.1.4
2.52
->2.54
2.52
->2.54
2.52
->2.54
2.52
->2.54
2.52
->2.54
1.9.0
->1.10.1
1.9.0
->1.10.1
2024.11.00
->2024.12.01
2.8.4
->2.8.5
2.8.4
->2.8.5
2.8.4
->2.8.5
0.8.0
->0.9.0
1.11.2.0
->1.11.3.0
8.7.2
->8.7.3
Release Notes
gradle/gradle (gradle)
v8.12
Compare Source
mockk/mockk (io.mockk:mockk-android)
v1.13.14
Compare Source
What's Changed
New Contributors
Full Changelog: mockk/mockk@1.13.13...1.13.14
androidx/media (androidx.media3:media3-session)
v1.5.1
Compare Source
This release includes the following changes since the
1.5.0 release:
codec timeout issues with this platform API
(#1641).
VBRI
frame's table of contentsdoesn't cover all the MP3 data in a file
(#1904).
MediaCodecAdapter
supplied pixel aspect ratio valueswhen provided while processing
onOutputFormatChanged
(#1371).
ReplacingCuesResolver.discardCuesBeforeTimeUs
where the cueactive at
timeUs
(started before but not yet ended) was incorrectlydiscarded (#1939).
MediaMetadata
(#1958).
v1.5.0
Compare Source
This release includes the following changes since the
1.4.1 release:
ForwardingSimpleBasePlayer
that allows forwarding to anotherplayer with small adjustments while ensuring full consistency and
listener handling
(#1183).
SimpleBasePlayer.State.playlist
bygetPlaylist()
method.SimpleBasePlayer.State.Builder.setPlaylist()
todirectly specify a
Timeline
and currentTracks
andMetadata
instead of building a playlist structure.
minSdk
to 21 (Android Lollipop). This is aligned with allother AndroidX libraries.
androidx.media3:media3-common-ktx
artifact which providesKotlin-specific functionality built on top of the Common library
Player.listen
suspending extension function to spin a coroutine tolisten to
Player.Events
to themedia3-common-ktx
library.@DoNotInline
annotations from manually out-of-lined innerclasses designed to avoid
runtime class verification failures.
Recent versions of R8
now automatically out-of-line calls like these to avoid the runtime
failures (so the manual out-of-lining is no longer required). All Gradle
users of the library must already be a using a version of the Android
Gradle Plugin that uses a version of R8 which does this,
due to
compileSdk = 35
.Users of the library with non-Gradle build systems will need to ensure
their R8-equivalent shrinking/obfuscating step does a similar automatic
out-of-lining process in order to avoid runtime class verification
failures. This change has
already been done in other AndroidX libraries.
MediaCodecRenderer.onProcessedStreamChange()
can now be called forevery media item. Previously it was not called for the first one. Use
MediaCodecRenderer.experimentalEnableProcessedStreamChangedAtStart()
to enable this.
PreloadMediaSource.PreloadControl.onPreloadError
to allowPreloadMediaSource.PreloadControl
implementations to take actions whenerror occurs.
BasePreloadManager.Listener
to propagate preload events to apps.timeout (#1540).
MediaCodecAdapter.Configuration.flags
as the field was alwayszero.
API 35+ (where the device advertises support for this).
Context.getSystemService(Context.AUDIO_SERVICE)
until audio focushandling is enabled. This ensures the blocking call isn't done if audio
focus handling is not enabled
(#1616).
(#1571).
AnalyticsListener.onRendererReadyChanged()
to signal whenindividual renderers allow playback to be ready.
MediaCodec.CryptoException
sometimes being reported as an"unexpected runtime error" when
MediaCodec
is operated in asynchronousmode (default behaviour on API 31+).
bufferedDurationUs
instead ofbufferedPositionUs
withPreloadMediaSource.PreloadControl.onContinueLoadingRequested()
. Alsochanges
DefaultPreloadManager.Status.STAGE_LOADED_TO_POSITION_MS
toDefaultPreloadManager.Status.STAGE_LOADED_FOR_DURATION_MS
, apps thenneed to pass a value representing a specific duration from the default
start position for which the corresponding media source has to be
preloaded with this IntDef, instead of a position.
ForwardingRenderer
implementation that forwards all method callsto another renderer
(1703).
enable preloading by calling
ExoPlayer.setPreloadConfiguration(PreloadConfiguration)
accordingly.By default preloading is disabled. When opted-in and to not interfere
with playback,
DefaultLoadControl
restricts preloading to start andcontinue only when the player is not loading for playback. Apps can
change this behaviour by implementing
LoadControl.shouldContinuePreloading()
accordingly (like whenoverriding this method in
DefaultLoadControl
). The defaultimplementation of
LoadControl
disables preloading in case an app isusing a custom implementation of
LoadControl
.MediaSourceEventListener.EventDispatcher.dispatchEvent()
toallow invoking events of subclass listeners
(1736).
DefaultPreloadManager.Builder
that builds theDefaultPreloadManager
andExoPlayer
instances with consistentlyshared configurations.
Renderer[]
parameter fromLoadControl.onTracksSelected()
asDefaultLoadControl
implementation can retrieve the stream types fromExoTrackSelection[]
.DefaultLoadControl.calculateTargetBufferBytes(Renderer[], ExoTrackSelection[])
and marked method as final to prevent overrides.The new
DefaultLoadControl.calculateTargetBufferBytes(ExoTrackSelection[])
should be used instead.
MediaSourceEventListener
events from secondary sources inMergingMediaSource
. This will result in loadstart/error/cancelled/completed events being reported for sideloaded
subtitles (those added with
MediaItem.LocalConfiguration.subtitleConfigurations
), which may appearas duplicate load events emitted from
AnalyticsListener
.Instead the problematic track is disabled and playback of the remaining
tracks continues
(#1722).
invalid subtitle data) and load errors (e.g. HTTP 404) are emitted
via
onLoadError
callbacks.errors are emitted via
onLoadError
callbacks while parse errorsare silently ignored (this is pre-existing behaviour).
with durations that don't match the actual content could cause frame
freezes at the end of the item
(#1698).
SntpClient
to set the max elapsed time since the lastupdate after which the client is re-initialized
(#1794).
SurfaceAssetLoader
, which supports queueing video data toTransformer via a
Surface
.ImageAssetLoader
reports unsupported input viaAssetLoader.onError
instead of throwing an
IllegalStateException
.MediaItem.Builder.setImageDurationMs
mandatory for image export.DefaultTrackSelector
: Prefer object-based audio over channel-basedaudio when other factors are equal.
Mp4Extractor
andFragmentedMp4Extractor
to identify H264samples that are not used as reference by subsequent samples.
AmrExtractor
.(instead of invalid). This means files with non-MP3 data at the end,
with no other metadata to indicate the length of the MP3 bytes, now stop
playback at the end of the MP3 data instead of failing with
ParserException: Searched too many bytes.{contentIsMalformed=true, dataType=1}
(#1563).processing edit lists in MP4 files
(#1659).
mdhd
box in
Mp4Extractor
andFragmentedMp4Extractor
(#1531).
media_time
in MP4 edit lists. Whilesegment_duration
was already correctly scaled using the movietimescale,
media_time
is now properly scaled using the tracktimescale, as specified by the MP4 format standard
(#1792).
endIndices
calculation for MP4 with editlist (#1797).
mdhd
box of MP4 files to handle-1
values (#1819).
h263
box in MP4 files for H.263 video(#1821).
(#1265).
HttpEngineDataSource
to allow use starting at version Sextension 7 instead of API level 34
(#1262).
DataSourceContractTest
: Assert thatDataSource.getUri()
returns theresolved URI (as documented). Where this is different to the requested
URI, tests can indicate this using the new
DataSourceContractTest.TestResource.Builder.setResolvedUri()
method.DataSourceContractTest
: Assert thatDataSource.getUri()
andgetResponseHeaders()
return their 'open' value after a failed call toopen()
(due to a 'not found' resource) and before a subsequentclose()
call.DataSourceContractTest.getNotFoundResources()
allowstest sub-classes to provide multiple 'not found' resources, and to
provide any expected headers too. This allows to distinguish between
HTTP 404 (with headers) and "server not found" (no headers).
present in the media.
time-stretching/pitch-shifting algorithm.
SpeedChangingAudioProcessor
that causes dropped outputframes.
MediaCodecVideoRenderer
avoids decoding samples that are neitherrendered nor used as reference by other samples.
MediaCodecAdapter
may now receive anull
Surface
inconfigure
and calls to a new methoddetachOutputSurface
to remove a previously set
Surface
if the codec supports this(
MediaCodecInfo.detachedSurfaceSupported
).MediaCodecAdapter
supplied pixel aspect ratio values if providedwhen processing
onOutputFormatChanged
(#1371).
secure H264 streams to be marked as unsupported
(#1619).
returning an end-of-stream signal.
VoiceSpan
and populate it forWebVTT voice spans
(#1632).
a 64-bit
long
when represented as microseconds and multiplied by the90,000
MPEG timebase) are displayed(#1763).
(#1820).
are enabled (#1863).
C.TRACK_TYPE_METADATA
type to tracks containing icy orvnd.dvb.ait content.
ExternallyLoadedImageDecoder
for simplified integration withexternal image loading libraries like Glide or Coil.
FileDescriptorDataSource
, a newDataSource
that can be used toread from a
FileDescriptor
(#3757).
DefaultVideoFrameProcessor
workaround for minorSurfaceTexture
scaling.
SurfaceTexture
may include a small scaling that cuts off a1-texel border around the edge of a cropped buffer. This is now handled
such that output is closer to expected.
DefaultVideoFrameProcessor.queueInputBitmap()
. As a result,exporting images to videos with
Transformer
is faster.ArrayIndexOutOfBoundsException
inImaServerSideAdInsertionMediaSource
.result in an
ArrayIndexOutOfBoundsException
when playing past the lastmidroll (#1741).
MediaButtonReceiver.shouldStartForegroundService(Intent)
to allowapps to suppress a play command coming in for playback resumption by
overriding this method. By default, the service is always started and
playback can't be suppressed without the system crashing the service
with a
ForegroundServiceDidNotStartInTimeException
(#1528).
MediaBrowser
beingdispatched to the
MediaSessionCompat.Callback
instead of theMediaBrowserServiceCompat
variant of the method when connected to alegacy service. This prevented the
MediaBrowser
to receive the actualreturn value sent back by the legacy service
(#1474).
IllegalArgumentException
thrown by devices of certainmanufacturers when setting the broadcast receiver for media button
intents (#1730).
was known as
Custom browse actions
with the legacy library withMediaBrowserCompat
. Note that with Media3 command buttons for mediaitems are available for both,
MediaBrowser
andMediaController
. SeeCustom Browse actions of AAOS.
app start a foreground service after requesting
play()
.CommandButton.Builder.setIconUri
to only accept content Uris.MediaBrowserCompat
when connecting to a legacyMediaBrowserCompat
.The service can receive the connection hints passed in as root hints
with the first call to
onGetRoot()
.MediaBrowser
connected to a legacy browser service,didn't receive an error sent by the service after the browser has
subscribed to a
parentid
.connected to a legacy
MediaBrowserService
doesn't request the childrenof a
parentId
twice when subscribing to a parent.PlayerView
-in-Compose-AndroidView
workaround opt-in, due to issueswith XML-based shared transitions. Apps using
PlayerView
insideAndroidView
need to callPlayerView.setEnableComposeSurfaceSyncWorkaround
in order to opt-in(#1237,
#1594).
setFullscreenButtonState
toPlayerView
to allow updates offullscreen button's icon on demand, i.e. out-of-band and not reactively
to a click interaction
(#1590,
#184).
there are app-defined text track selection preferences.
(#1440).
Bad magic number for Bundle
error when playing SmoothStreamingstreams with text tracks
(#1779).
(#1138).
(#1225).
files containing IAMF tracks using the libiamf native library to
synthesize audio.
spatialization together with optional head tracking enabled, but
binaural playback support is currently not available.
(#1685).
enables the sender app to resume playback locally after a disconnection.
DeviceInfo
when aContext
is provided. Thisenables linking the
MediaSession
to aRoutingSession
, which isnecessary for integrating Output Switcher
(#1056).
DataSourceContractTest
now includes tests to verify:read position
is updated.offset
is applied correctly.(#1839).
Player.hasPrevious
,Player.hasPreviousWindow()
.Use
Player.hasPreviousMediaItem()
instead.Player.previous()
method. UsePlayer.seekToPreviousMediaItem()
instead.DrmSessionEventListener.onDrmSessionAcquired
method.DefaultEncoderFactory
constructors. UseDefaultEncoderFactory.Builder
instead.google/ksp (com.google.devtools.ksp)
v2.1.0-1.0.29
Compare Source
Updates
Contributors
Thanks to everyone who reported bugs and participated in discussions!
v2.1.0-1.0.28
Compare Source
What's Changed
Full Changelog: google/ksp@2.1.0-RC2-1.0.28...2.1.0-1.0.28
JetBrains/kotlin (org.jetbrains.kotlin.plugin.serialization)
v2.1.0
Analysis API
New Features
KT-68603
KotlinDirectInheritorsProvider: add an option to ignore non-kotlin resultsPerformance Improvements
KT-70757
Performance problem in KaFirVisibilityChecker for KaFirPsiJavaClassSymbolFixes
KT-70437
Class reference is not resolvableKT-57733
Analysis API: Use optimizedModuleWithDependenciesScope
s in combined symbol providersKT-72389
K2: False positive "Redundant 'protected' modifier" for protected property inside protected constructor from private or internal classKT-69190
K2: False-positive "redundant private modifier"KT-64984
Analysis API: Support Wasm targetKT-70375
K2: NPE at org.jetbrains.kotlin.analysis.api.fir.symbols.KaFirNamedClassSymbolBase.createPointerKT-71259
K2 evaluator: Invalid smart cast info collecting for Code FragmentsKT-69360
Lack of implicit receiver for the last statement under lambda in scriptsKT-70890
Analysis API: Experiment with weak references to LL FIR/analysis sessions in session cachesKT-70657
Analysis API: Inner types from classes with generics are incorrectly represented by the compiled jarsKT-71055
Suspend calls inside 'analyze()' break the block guaranteesKT-70815
Analysis API: Implement stop-the-world session invalidationKT-69819
K2 IDE: LHS type in callable references is unresolved when it has type arguments and is qualifiedKT-68761
Analysis API: Experiment with limited-size cache inKaFirSessionProvider
KT-70384
Analysis API Standalone: The same class in the same two renamed jars is unresolvedKT-71067
Exceptions from references cancel Find UsagesKT-69535
Redesign 'containingSymbol'KT-71025
K2 IDE: Scopes in "importingScopeContext" have reversed ordering and "indexInTower" valuesKT-67483
K2 IDE: Serializable plugin causes infinite resolve recursion when there is a star import from a class with annotation callKT-69416
K2 IDE / Completion: “No classifier found” on simple value creatingKT-70257
CCE: class kotlin.UInt cannot be cast to class java.lang.NumberKT-70376
K2 IDE / Kotlin Debugger: IAE “Only componentN functions should be cached this way, but got: toString” on evaluating toString() method for value classKT-70264
AA: service registration via XML fails with AbstractMethodError in Lint CLIKT-69950
Analysis API: IntroduceisSubtypeOf(ClassId)
KT-68625
K2: “lazyResolveToPhase(STATUS)
cannot be called from a transformer with a phase STATUS.”KT-67665
K2: contract violation for value class with a constructor parameter with an implicit typeKT-67009
Analysis API: Add abbreviated type tests for type aliases from source modulesKT-69977
KaFirFunctionalType#getAbbreviation is always nullKT-68341
Analysis API: Expanded function types from libraries don't have an abbreviated typeKT-68857
Analysis API: Refactor annotationsKT-70386
Do not filter out overloads from different libraries in dangling filesKT-65552
K2: CANNOT_CHECK_FOR_ERASED in KtTypeCodeFragmentKT-65803
K2: Analysis API: KtFirTypeProvider#getSubstitutedSuperTypes throws an exception in the case of "Wrong number of type arguments"KT-68896
Support VirtualFile binary dependency inputs to Analysis API modulesKT-69395
K2 IDE: incorrect overload selection from binary dependencies in a shared native source setKT-68573
ISE: "Unexpected constant value (kotlin/annotation/AnnotationTarget, CLASS)" at Kt1DescUtilsKt.toKtConstantValue()KT-69576
Analysis API: FIR implementation of "isImplicitReferenceToCompanion" returns false for companion references in implicit invoke operator callsKT-69568
Analysis API: FIR implementation of "isImplicitReferenceToCompanion" returns true for non-companion references in qualified callsKT-69436
Analysis API Platform: EncapsulateLLFirDeclarationModificationService
as an engine serviceKT-63004
K2: Analysis API: Design API for querying declarations generated by compiler plugins (similar to indices)KT-69452
AA FIR: wrong source PSI after compile-time evaluationKT-69598
AA: definitely not-null type at receiver position should be wrapped in parenthesisKT-60484
Analysis API: add support for KtType pointers similar to KtSymbolPointerKT-68884
Analysis API: Rename/deprecate/remove declarations as part of StabilizationKT-69453
AA FIR: miss to handle expected type of lambda with explicit labelKT-69533
Protect implementation parts of Analysis API with opt-in annotationsAnalysis API. FIR
Performance Improvements
KT-71566
FirElementBuilder#getFirForNonKtFileElement should iterate a Psi file over and overKT-71224
Analysis API:FirElementFinder.collectDesignationPath
relies on naive iteration through FIR filesFixes
KT-70327
Analysis API: Batch inspection causes deadlock inValueWithPostCompute
KT-69070
Analysis API: Querying declared member scope for Java symbols results in exception in some use casesKT-68268
LLSealedInheritorsProvider: reduce scope to kotlin filesKT-69671
TYPES phase contract violation through JavaSymbolProviderKT-70624
](htConfiguration
📅 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 is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.