Releases: mahozad/androidx-release-notes
2023-08-22@10PM
Activity: v1.8.0-alpha07
August 23, 2023
androidx.activity:activity:1.8.0-alpha07, androidx.activity:activity-compose:1.8.0-alpha07, and androidx.activity:activity-ktx:1.8.0-alpha07 are released. Version 1.8.0-alpha07 contains these commits.
New Features
Activity Compose has added a new
PredictiveBackHandlerComposable to handle predictive back gesture events. It provides aFlowofBackEventCompatobjects that must be collected in the suspending lamba you provide:PredictiveBackHandler { progress: Flow<BackEventCompat> -> // code for gesture back started try { progress.collect { backEvent -> // code for progress } // code for completion } catch (e: CancellationException) { // code for cancellation } }It also comes with a compile time warning via lint rule to ensure the
Flowcallscollect(). (Id2773, b/294884345)The
onBackPressedDispatcherinComponentActivityis now initialized lazily so that it is only created when required. (I0bf8e)
Bug Fixes
ComponentActivitywill no longer show a NPE on Android 13 when it gets anonBackPressed()callback and the Activity has already beenDESTROYED. (Idb055, b/291869278)- Removed usages of experimental
isAtLeastU()API (Ie9117, b/289269026)
Annotation: v1.7.0-rc01
August 23, 2023
androidx.annotation:annotation-*:1.7.0-rc01 is released. Version 1.7.0-rc01 contains these commits.
This release does not contain any changes from the prior beta.
Benchmark: v1.2.0-beta04
August 23, 2023
androidx.benchmark:benchmark-*:1.2.0-beta04 is released. Version 1.2.0-beta04 contains these commits.
New Features
- The Baseline Profiles Gradle plugin now supports Android Gradle Plugin 8.3. (aosp/2715214)
Bug Fixes
- Fix failures in writing / moving and pulling files (especially those from parameterized tests) by sanitizing output file names further, avoiding '=' and ':' in output file names. (I759d8)
CameraX: v1.3.0-rc01
August 23, 2023
androidx.camera:camera-*:1.3.0-rc01 is released. Version 1.3.0-rc01 contains these commits.
API Changes
- Added
PendingRecording.asPersistentRecordingto allow a recording to continuously record while theVideoCaptureit's Recorder is attached to is rebound. (I517c6)
Bug Fixes
- Fixed a crash when a stream is shared with both
VideoCaptureand Preview. Also fixed a black screen on LEGACY devices when stream sharing is enabled. - Fixed large captured JPEG image issue on Samsung S7 (SM-G930T, SM-G930V) series devices. The captured JPEG images contain redundant 0's padding data in the JFIF compressed data segment. It causes the captured images to have large file size. Those redundant 0's padding data will be removed to make the captured images have normal image file sizes. (I407b0, b/288828159)
- Fixed large captured JPEG image issue on Samsung S22 (SM-S901B, SM-S901B/DS) and S22+ (SM-S906B) series devices. The captured JPEG images contain redundant 0's padding data in the JFIF compressed data segment. It causes the captured images to have large file size about 13MB on S22 SM-S901B/DS device. Those redundant 0's padding data will be removed to make the captured images have normal image file sizes. (I73be9, b/288828159)
- Fixed large captured JPEG image issue on Samsung A5, A52, A70 and A72 series devices. The captured JPEG images contain redundant 0's padding data in the JFIF compressed data segment. It causes the captured images to have extreme file size (ex about 32MB or even 96 MB). Those redundant 0's padding data will be removed to make the captured images have normal image file sizes. (I97c4d, b/288828159)
- Fixed the native crash when taking pictures with Extensions enabled (I698f5)
Compose Animation: v1.6.0-alpha04
August 23, 2023
androidx.compose.animation:animation-*:1.6.0-alpha04 is released. Version 1.6.0-alpha04 contains these commits.
API Changes
- Add
SeekableTransitionStateto allow developers to control the progress of a transition. (I8e69d)
Compose Compiler: v1.5.2
August 23, 2023
androidx.compose.compiler:compiler:1.5.2, androidx.compose.compiler:compiler-daemon:1.5.2, and androidx.compose.compiler:compiler-hosted:1.5.2 are released. Version 1.5.2 contains these commits.
Bug Fixes
- Insert line numbers for return statements in constant-returning composable functions. (I42d89)
- Fix a memory leak caused by switching to the new compiler plugin entrypoint. (4f0a101)
- Stop transforming non-composable fun interfaces in Compose compiler. This causes fun interfaces to be handled the same way as lambdas, including memoization rules. (28b3ce9)
- Use vararg argument type for inferring stability on call site. (bc83645)
Compose Foundation: v1.6.0-alpha04
August 23, 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha04 is released. Version 1.6.0-alpha04 contains these commits.
API Changes
- Add
ReusableCompositioninterface for managing lifecycle and reuse of subcompositions. (
2023-08-22
Runner 1.6.0: runner 1.6.0-alpha04
August 21, 2023
androidx.test:runner:1.6.0-alpha04 is released.
Bug fixes
- Force initialization of instrumentationRunListener, to prevent NPEs when instrumenting system server process.
Dependency changes
- Upgrade to androidx.annotation:1.7.0-beta01
2023-08-16
Media3: v1.1.1
- Common Library:
- Remove accidentally added
multidexdependency from all modules (#499).
- Remove accidentally added
- ExoPlayer:
- Fix issue in
PlaybackStatsListenerwhere spuriousPlaybackStatsare created after the playlist is cleared. - Add additional fields to Common Media Client Data (CMCD) logging: streaming format (sf), stream type (st), version (v), top birate (tb), object duration (d), measured throughput (mtp) and object type (ot) (#8699).
- Fix issue in
- Audio:
- Fix a bug where
Player.getState()never transitioned toSTATE_ENDEDwhen playing very short files (#538).
- Fix a bug where
- Audio Offload:
- Prepend Ogg ID Header and Comment Header Pages to bitstream for offloaded Opus playback in accordance with RFC 7845.
- Video:
- H.265/HEVC: Fix parsing SPS short and long term reference picture info.
- Text:
- CEA-608: Change cue truncation logic to only consider visible text. Previously indent and tab offset were included when limiting the cue length to 32 characters (which was technically correct by the spec) (#11019).
- IMA extension:
- Bump IMA SDK version to 3.30.3.
- Session:
- Add custom layout to the state of the controller and provide a getter to access it. When the custom layout changes,
MediaController.Listener.onCustomLayoutChangedis called. Apps that want to send different custom layouts to different Media3 controller can do this inMediaSession.Callback.onConnectby using anAcceptedResultBuilderto make sure the custom layout is available to the controller when connection completes. - Fix cases where
MediaLibraryServiceLegacyStubsent an error to aResultthat didn't support this which produced anUnsupportedOperationException(#78). - Fix the way
PlayerWrappercreates aVolumeProviderCompatby determiningvolumeControlTypethrough both legacy commands (COMMAND_ADJUST_DEVICE_VOLUMEandCOMMAND_SET_DEVICE_VOLUME) and new commands (COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGSandCOMMAND_SET_DEVICE_VOLUME_WITH_FLAGS) (#554).
- Add custom layout to the state of the controller and provide a getter to access it. When the custom layout changes,
2023-08-14
Media3: v1.1.1
- Common Library:
- Remove accidentally added
multidexdependency from all modules (#499).
- Remove accidentally added
- ExoPlayer:
- Fix issue in
PlaybackStatsListenerwhere spuriousPlaybackStatsare created after the playlist is cleared. - Add additional fields to Common Media Client Data (CMCD) logging: streaming format (sf), stream type (st), version (v), top birate (tb), object duration (d), measured throughput (mtp) and object type (ot) (#8699).
- Fix issue in
- Audio:
- Fix a bug where
Player.getState()never transitioned toSTATE_ENDEDwhen playing very short files (#538).
- Fix a bug where
- Audio Offload:
- Prepend Ogg ID Header and Comment Header Pages to bitstream for offloaded Opus playback in accordance with RFC 7845.
- Video:
- H.265/HEVC: Fix parsing SPS short and long term reference picture info.
- Text:
- CEA-608: Change cue truncation logic to only consider visible text. Previously indent and tab offset were included when limiting the cue length to 32 characters (which was technically correct by the spec) (#11019).
- IMA extension:
- Bump IMA SDK version to 3.30.3.
- Session:
- Add custom layout to the state of the controller and provide a getter to access it. When the custom layout changes,
MediaController.Listener.onCustomLayoutChangedis called. Apps that want to send different custom layouts to different Media3 controller can do this inMediaSession.Callback.onConnectby using anAcceptedResultBuilderto make sure the custom layout is available to the controller when connection completes. - Fix cases where
MediaLibraryServiceLegacyStubsent an error to aResultthat didn't support this which produced anUnsupportedOperationException(#78). - Fix the way
PlayerWrappercreates aVolumeProviderCompatby determiningvolumeControlTypethrough both legacy commands (COMMAND_ADJUST_DEVICE_VOLUMEandCOMMAND_SET_DEVICE_VOLUME) and new commands (COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGSandCOMMAND_SET_DEVICE_VOLUME_WITH_FLAGS) (#554).
- Add custom layout to the state of the controller and provide a getter to access it. When the custom layout changes,
2023-08-09
Annotation: v1.7.0-beta01
August 9, 2023
androidx.annotation:annotation-*:1.7.0-beta01 is released. Version 1.7.0-beta01 contains these commits.
New Features
- Stabilized APIs for release
Benchmark: v1.2.0-beta03
August 9, 2023
androidx.benchmark:benchmark-*:1.2.0-beta03 is released. Version 1.2.0-beta03 contains these commits.
API Changes
- Added argument to filter
TraceSectionMetricto only the target package, on by default (Ia219b, b/292208786)
Bug Fixes
- Renamed
fullTracing.enableinstrumentation argument toperfettoSdkTracing.enablefor consistency with artifact name, and other references.fullTracing.enablewill continue to work as a fallback. (I7cc00) - Benchmark library internal tracepoints (including microbenchmark loop/phase tracing) will now show up in Studio system trace viewer, and nest under the correct process in Perfetto. (I6b2e7, b/293510459)
- Removed macrobenchmark NOT-PROFILEABLE error on API 31+, and skip profileable check on eng/userdebug rooted devices. (I2abac, b/291722507)
- When using Dex Layout Optimizations, startup profile rules are also now considered as baseline profile rules. (aosp/2684246, b/293889189)
Browser: v1.6.0
August 9, 2023
androidx.browser:browser:1.6.0 is released with no changes since 1.6.0-rc01. Version 1.6.0 contains these commits.
Car App: v1.4.0-beta01
August 9, 2023
androidx.car.app:app-*:1.4.0-beta01 is released. Version 1.4.0-beta01 contains these commits. - Note: Next release will be moving from 1.4 to 1.7, to align naming to the CarApi level to be released (e.g. CarApi 7 => 1.7)
New Features
- Instrument Cluster map rendering for Navigation apps
- New TabTemplate for improved app layout / usability
- Support for Adaptive task limits
- Secondary actions on list elements
API Changes
- See alpha02
Collection: v1.3.0-beta01
August 9, 2023
androidx.collection:collection-*:1.3.0-beta01 is released. Version 1.3.0-beta01 contains these commits.
Compose Animation: v1.5.0
August 9, 2023
androidx.compose.animation:animation-*:1.5.0 is released. Version 1.5.0 contains these commits.
Compose Animation: v1.6.0-alpha03
August 9, 2023
androidx.compose.animation:animation-*:1.6.0-alpha03 is released. Version 1.6.0-alpha03 contains these commits.
API Changes
- New type of enter/exit transition that scales the content based on the size of the animating container during enter & exit animation.
LookaheadScopeComposable fun and interface are now stable. (Ifb2ce)
Compose Foundation: v1.5.0
August 9, 2023
androidx.compose.foundation:foundation-*:1.5.0 is released. Version 1.5.0 contains these commits.
Important changes since 1.4.0
- Many foundational modifiers, including
Modifier.clickable,Modifier.draggable,Modifier.scrollable, layout modifier and more have been migrated toModifier.NodeAPI, reducing the overhead on the initial composition. - Improvements in Pagers stability. Many bugs have been addressed.
pageCountparameters now lives inPagerStateinstead of the Pager itself
Compose Foundation: v1.6.0-alpha03
August 9, 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha03 is released. Version 1.6.0-alpha03 contains these commits.
API Changes
- Overload of
LazyLayoutadded, it accepts a lambda ofLazyLayoutItemProvider, not a plain object as it was before. The previous overload is deprecated. (I42a5a) - Added support for configuring
privateImeOptions(Idb772)
Bug Fixes
- Fixed text fields showing keyboard and being editable when
readOnlyis true. Also fixed the keyboard not showing whenreadOnlyis changed from true to false while focused. (I34a19, b/246909589)
Compose Material: v1.5.0
August 9, 2023
androidx.compose.material:material-*:1.5.0 is released. Version 1.5.0 contains these commits.
Important changes since 1.4.0
API Changes
- Incorporated changes in the Swipeable1 APIs in
BottomSheetScaffold.BottomSheetState'sconfirmStateChangeparam has been renamed toconfirmValueChange.progressis now exposed as a float value.animateToandsnapToare internal. Useexpand()andcollapse()instead.directionandoverflowhave been removed.offsethas been replaced withrequireOffset(). I323b4 - Mark the
snapTofunction in Drawer as non-experimental API. (Ib9c18, b/261425368) - Added a track color parameter for circular...
2023-08-01
credentials: v1.2.0-beta02
August 1, 2023
androidx.credentials:credentials:1.2.0-beta02 and androidx.credentials:credentials-play-services-auth:1.2.0-beta02 are released. Version 1.2.0-beta02 contains these commits.
Bug Fixes
- b/293743991 - Fix the constant value for the
authenticatorDatafield, in order to correctly parse theauthenticationResponseJsonproperty in PublicKeyCredential
2023-07-26@06PM
Annotation: v1.7.0-alpha03
July 26, 2023
androidx.annotation:annotation-*:1.7.0-alpha03 is released. Version 1.7.0-alpha03 contains these commits.
Bug Fixes
- Maven POM publication now includes default JVM-targeted multiplatform artifact as dependency
Appcompat: v1.7.0-alpha03
July 26, 2023
androidx.appcompat:appcompat:1.7.0-alpha03 and androidx.appcompat:appcompat-resources:1.7.0-alpha03 are released. Version 1.7.0-alpha03 contains these commits.
New Features
Support for getting per-app locales in non-Activity contexts (I58e753). Four new APIs have been added for this feature:
LocaleManagerCompat.getApplicationLocales(): for developers to get per-app locales out of activity scope.ContextCompat.getString(): return localized strings based on per-app locales.ContextCompat.getContextForLanguage(): the context returned by this method will respect the per-app locales.ConfigurationCompat.setLocales(): for above APIs, to set the configuration's locale.
Other API Changes
- Added
setLineHeight(unit, lineHeight)toTextViewcompat classes (Ia9fa9) - Added
setLineHeight(unit, lineHeight)toTextViewcompat classes (Ib2ee1) - Added
setLineHeight(unit, lineHeight)toTextViewcompat classes (I15716)
Bug Fixes
AppCompatDialognow correctly sets theLifecycleOwner,SavedStateRegistryOwner, andOnBackPressedDispatcherOwneron the dialog's decor view via theViewTreeAPIs, fixing issues when hosting aComposeViewwithin anAppCompatDialog.AppCompatnow depends on Activity 1.7.0. (Ib28ab, b/261314581)- Significantly improve the performance of
SupportMenuInflater(I0b087)
Benchmark: v1.2.0-beta02
July 26, 2023
androidx.benchmark:benchmark-*:1.2.0-beta02 is released. Version 1.2.0-beta02 contains these commits.
API Changes
- Added experimental APIs for microbench custom metrics and configuration (e.g. profiler, and tracing). (I86101, b/291820856)
Bug Fixes
- Report error in macrobench when OS is misconfigured for tracing, as was recently fixed in API 26/28 ARM64 emulators. (I0a328, b/282191686)
- Added detail to compilation reset failure to suggest updating emulator, as some emulators have recently fixed this issue. (I8c815, b/282191686)
- Make
androidx.test.uiautomator:uiautomator:2.2.0anapiinstead of animplementationdependency. (I1981e)
Browser: v1.6.0-rc01
July 26, 2023
androidx.browser:browser:1.6.0-rc01 is released with no changes since 1.6.0-beta01. Version 1.6.0-rc01 contains these commits.
CameraX: v1.3.0-beta02
July 26, 2023
androidx.camera:camera-*:1.3.0-beta02 is released. Version 1.3.0-beta02 contains these commits.
Bug Fixes
- Use torch as flash for Pixel 4 and 5 variants to improve capture quality in low light (I56ff5, b/280221967)
- Fixed large captured JPEG image issue on Samsung A5 (2017) series devices. The captured JPEG images contain redundant 0's padding data in the JFIF compressed data segment. It causes the captured images to have about 32 MB file size. Those redundant 0's padding data will be removed to make the captured images have normal image file sizes. (I29837, b/288828159)
- Fixed retry not triggering properly in case of capture failure in problematic devices mentioned in
CaptureFailedRetryQuirk. (I7b589)
Car App: v1.4.0-alpha02
July 26, 2023
androidx.car.app:app-*:1.4.0-alpha02 is released. Version 1.4.0-alpha02 contains these commits.
- Release of Alpha02 is intended to be a preparation for an upcoming release of beta01.
New Features
- Map rendering on Instrument Cluster support for navigation apps
- Added Tabs for apps to improve layout experience
- Added List / Grid template rendering options
- Added new categories for Weather and Comms
- Move several API’s to the next CarApi 7 release
API Changes
- Add multimedia fields to
CarMessage(I5aaf6) - Adds custom actions to
ConversationItemin Car App Library (Ie5ed6) - Add extras to indicate a media item is played with an immersive audio format and showcase its content format logo (Icb5bb)
- Add new Action type,
ActionsConstraintsAPI to support compose button. (I31661) - Made
set/getTemplateasset/get ContentTemplate(Ica036) - Template parameter would now be
@NonNull. UpdatedMapWithContentTemplateAPI documentation (I0f8ed) - Removes
@ExperimentalCarApitag for Actions inListTemplatefor launch in CAL 1.4 (
2023-07-26
Annotation: v1.7.0-alpha03
July 26, 2023
androidx.annotation:annotation-*:1.7.0-alpha03 is released. Version 1.7.0-alpha03 contains these commits.
Bug Fixes
- Maven POM publication now includes default JVM-targeted multiplatform artifact as dependency
Appcompat: v1.7.0-alpha03
July 26, 2023
androidx.appcompat:appcompat:1.7.0-alpha03 and androidx.appcompat:appcompat-resources:1.7.0-alpha03 are released. Version 1.7.0-alpha03 contains these commits.
New Features
Support for getting per-app locales in non-Activity contexts (I58e753). Four new APIs have been added for this feature:
LocaleManagerCompat.getApplicationLocales(): for developers to get per-app locales out of activity scope.ContextCompat.getString(): return localized strings based on per-app locales.ContextCompat.getContextForLanguage(): the context returned by this method will respect the per-app locales.ConfigurationCompat.setLocales(): for above APIs, to set the configuration's locale.
Other API Changes
- Added
setLineHeight(unit, lineHeight)toTextViewcompat classes (Ia9fa9) - Added
setLineHeight(unit, lineHeight)toTextViewcompat classes (Ib2ee1) - Added
setLineHeight(unit, lineHeight)toTextViewcompat classes (I15716)
Bug Fixes
AppCompatDialognow correctly sets theLifecycleOwner,SavedStateRegistryOwner, andOnBackPressedDispatcherOwneron the dialog's decor view via theViewTreeAPIs, fixing issues when hosting aComposeViewwithin anAppCompatDialog.AppCompatnow depends on Activity 1.7.0. (Ib28ab, b/261314581)- Significantly improve the performance of
SupportMenuInflater(I0b087)
Browser: v1.6.0-rc01
July 26, 2023
androidx.browser:browser:1.6.0-rc01 is released with no changes since 1.6.0-beta01. Version 1.6.0-rc01 contains these commits.
CameraX: v1.3.0-beta02
July 26, 2023
androidx.camera:camera-*:1.3.0-beta02 is released. Version 1.3.0-beta02 contains these commits.
Bug Fixes
- Use torch as flash for Pixel 4 and 5 variants to improve capture quality in low light (I56ff5, b/280221967)
- Fixed large captured JPEG image issue on Samsung A5 (2017) series devices. The captured JPEG images contain redundant 0's padding data in the JFIF compressed data segment. It causes the captured images to have about 32 MB file size. Those redundant 0's padding data will be removed to make the captured images have normal image file sizes. (I29837, b/288828159)
- Fixed retry not triggering properly in case of capture failure in problematic devices mentioned in
CaptureFailedRetryQuirk. (I7b589)
Car App: v1.4.0-alpha02
July 26, 2023
androidx.car.app:app-*:1.4.0-alpha02 is released. Version 1.4.0-alpha02 contains these commits.
- Release of Alpha02 is intended to be a preparation for an upcoming release of beta01.
New Features
- Map rendering on Instrument Cluster support for navigation apps
- Added Tabs for apps to improve layout experience
- Added List / Grid template rendering options
- Added new categories for Weather and Comms
- Move several API’s to the next CarApi 7 release
API Changes
- Add multimedia fields to
CarMessage(I5aaf6) - Adds custom actions to
ConversationItemin Car App Library (Ie5ed6) - Add extras to indicate a media item is played with an immersive audio format and showcase its content format logo (Icb5bb)
- Add new Action type,
ActionsConstraintsAPI to support compose button. (I31661) - Made
set/getTemplateasset/get ContentTemplate(Ica036) - Template parameter would now be
@NonNull. UpdatedMapWithContentTemplateAPI documentation (I0f8ed) - Removes
@ExperimentalCarApitag for Actions inListTemplatefor launch in CAL 1.4 (I2cfcb) - Removes
@ExperimentalCarApitag forTabTemplate(Ifcb82) - Remove
@ExperimentalCarApiannotations from Row secondary actions and decorations (I8487e) - Adds active tab content ID to
TabTemplateand deprecates active state on Tabs (I96932) - Add
ItemImageShapeproperty toGridTemplate(Ibf431) - Add
ItemSizeproperty toGridTemplate, which controls grid item sizing according to relative small, medium, large buckets. (Icdb3b) - Open up the API access for developers to gain a copy of the current screen stack. (I48107)
- Adds category for weather apps to Car App Library (I2be44)
- Adds category for calling apps to Car App Library (
2023-07-17
Benchmark: v1.2.0-beta01
July 18, 2023
androidx.benchmark:benchmark-*:1.2.0-beta01 is released. Version 1.2.0-beta01 contains these commits.
Bug Fixes
- Fix warnings being sometimes suppressed in Benchmark output in Studio, and workaround leading whitespaces from Benchmark output not showing up in Studio (Ia61d0, b/227205461, b/286306579, b/285912360)
- Fixed comment for
FrameTimingMetric. The submetric is namedframeDurationCpuMs. (Ib097f, b/288830934).
Compose Compiler: v1.5.0
July 18, 2023
androidx.compose.compiler:compiler:1.5.0, androidx.compose.compiler:compiler-daemon:1.5.0, and androidx.compose.compiler:compiler-hosted:1.5.0 are released. Version 1.5.0 contains these commits.
Experimental K2 support
- Compose compiler 1.5.0 provides experimental support for K2 compiler. Some Compose features are not supported with K2 yet and will be coming in the future versions of the compiler.
Important changes since 1.4.0
- Kotlin version is updated to 1.9.0.
- Named arguments for
@Composablelambda calls have been deprecated. This feature is relying on internal compiler APIs and will not be supported by K2. - Added a diagnostic to verify
@Composableannotation on expect/actual calls. Both declarations are expected to have matching annotations.
Tracing Perfetto: v1.0.0-beta01
July 18, 2023
androidx.tracing:tracing-perfetto:1.0.0-beta01, androidx.tracing:tracing-perfetto-binary:1.0.0-beta01, and androidx.tracing:tracing-perfetto-handshake:1.0.0-beta01 are released. Version 1.0.0-beta01 contains these commits.
API Changes
- Renamed
androidx.tracing.perfetto.Tracetoandroidx.tracing.perfetto.PerfettoSdkTrace(I44af8) - Renamed "exit code" to "result code" constants in the protocol for consistency (Id1d1e)
- Renamed
EnableTracingResponsetoResponse. (I56275) - Added an option to enable cold start tracing in a persistent mode. Added a function to clear (persistent or not) cold start tracing. (Iaa09d)
- Made Tracing Perfetto SDK APIs consistent with
android.os.Trace. (I73ba0, b/282199917) - Moved to a factory pattern for
LibrarySourceallowing for future use-cases (e.g. loading the.sofile directly) to be easily added to the API if needed. (I128df) - Making
enableTracingColdStartparameters matchenableTracingImmediate(I54126) - Removed
killProcessargument inenableTracingColdStart(I81c4d)
2023-06-29
Media3: v1.1.0
- Common Library:
- Add suppression reason for unsuitable audio route and play when ready change reason for suppressed too long. (#15).
- Add commands to Player:
COMMAND_GET_METADATACOMMAND_SET_PLAYLIST_METADATACOMMAND_SET_DEVICE_VOLUME_WITH_FLAGSCOMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS
- Add overloaded methods to Player which allow users to specify volume flags:
void setDeviceVolume(int, int)void increaseDeviceVolume(int)void decreaseDeviceVolume(int)void setDeviceMuted(boolean, int)
- Add
BuilderforDeviceInfoand deprecate existing constructor. - Add
DeviceInfo.routingControllerIdto specify the routing controller ID for remote playbacks. - Add
Player.replaceMediaItem(s)as a shortcut to adding and removing items at the same position (#8046).
- ExoPlayer:
- Allow ExoPlayer to have control of device volume methods only if explicitly opted in. Use
ExoPlayer.Builder.setDeviceVolumeControlEnabledto have access to:getDeviceVolume()isDeviceMuted()setDeviceVolume(int)andsetDeviceVolume(int, int)increaseDeviceVolume(int)andincreaseDeviceVolume(int, int)decreaseDeviceVolume(int)anddecreaseDeviceVolume(int, int)
- Add
FilteringMediaSourcethat allows to filter available track types from aMediaSource. - Add support for including Common Media Client Data (CMCD) in the outgoing requests of adaptive streaming formats DASH, HLS, and SmoothStreaming. The following fields,
br,bl,cid,rtp, andsid, have been incorporated (#8699). 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.
- CMCD logging is disabled by default, use
- Add additional action to manifest of main demo to make it easier to start the demo app with a custom
*.exolist.jsonfile (#439). - Add
ExoPlayer.setVideoEffects()for usingEffectduring video playback. - Update
SampleQueueto storesourceIdas alongrather than anint. This changes the signatures of public methodsSampleQueue.sourceIdandSampleQueue.peekSourceId. - Add parameters to
LoadControlmethodsshouldStartPlaybackandonTracksSelectedthat allow associating these methods with the relevantMediaPeriod. - Change signature of
ServerSideAdInsertionMediaSource.setAdPlaybackStates(Map<Object, AdPlaybackState>)by adding a timeline parameter that contains the periods with the UIDs used as keys in the map. This is required to avoid concurrency issues with multi-period live streams. - Deprecate
EventDispatcher.withParameters(int windowIndex, @Nullable MediaPeriodId mediaPeriodId, long mediaTimeOffsetMs)andBaseMediaSource.createEventDispatcher(..., long mediaTimeOffsetMs). The variant of the methods without themediaTimeOffsetUscan be called instead. Note that even for the deprecated variants, the offset is not anymore added tostartTimeUsandendTimeUsof theMediaLoadDataobjects that are dispatched by the dispatcher. - Rename
ExoTrackSelection.blacklisttoexcludeTrackandisBlacklistedtoisTrackExcluded. - Fix inconsistent behavior between
ExoPlayer.setMediaItem(s)andaddMediaItem(s)when called on an empty playlist.
- Allow ExoPlayer to have control of device volume methods only if explicitly opted in. Use
- Transformer:
- Remove
Transformer.Builder.setMediaSourceFactory(MediaSource.Factory). UseExoPlayerAssetLoader.Factory(MediaSource.Factory)andTransformer.Builder.setAssetLoaderFactory(AssetLoader.Factory)instead. - Remove
Transformer.startTransformation(MediaItem, ParcelFileDescriptor). - Fix a bug where transformation could get stuck (leading to muxer timeout) if the end of the video stream was signaled at the moment when an input frame was pending processing.
- Query codecs via
MediaCodecListinstead of usingfindDecoder/EncoderForFormatutilities, to expand support. - Remove B-frame configuration in
DefaultEncoderFactorybecause it doesn't work on some devices.
- Remove
- Track selection:
- Add
DefaultTrackSelector.Parameters.allowInvalidateSelectionsForRendererCapabilitiesChangewhich is disabled by default. When enabled, theDefaultTrackSelectorwill trigger a new track selection when the renderer capabilities changed.
- Add
- Extractors:
- Audio:
- Fix bug where some playbacks fail when tunneling is enabled and
AudioProcessorsare active, e.g. for gapless trimming (#10847). - Encapsulate Opus frames in Ogg packets in direct playbacks (offload).
- Extrapolate current position during sleep with offload scheduling.
- Add
Renderer.release()andAudioSink.release()for releasing the resources at the end of player's lifecycle. - Listen to audio capabilities changes in
DefaultAudioSink. Add a required parametercontextin the constructor ofDefaultAudioSink, with which theDefaultAudioSinkwill register as the listener to theAudioCapabilitiesReceiverand update itsaudioCapabilitiesproperty when informed with a capabilities change. - Propagate audio capabilities changes via a new event
onAudioCapabilitiesChangedinAudioSink.Listenerinterface, and a new interfaceRendererCapabilities.Listenerwhich triggersonRendererCapabilitiesChangedevents. - Add
ChannelMixingAudioProcessorfor applying scaling/mixing to audio channels. - Add new int value
DISCARD_REASON_AUDIO_BYPASS_POSSIBLEtoDecoderDiscardReasonsto discard audio ...
- Fix bug where some playbacks fail when tunneling is enabled and