Skip to content

Commit 850bd69

Browse files
committed
Version bump to exoplayer:2.17.0 and media3:1.0.0-alpha02
#minor-release PiperOrigin-RevId: 430456963
1 parent 3ac831b commit 850bd69

File tree

3 files changed

+296
-5
lines changed

3 files changed

+296
-5
lines changed

RELEASENOTES.md

Lines changed: 291 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,296 @@
11
# Release notes
22

3+
### 1.0.0-alpha02 (2022-03-09)
4+
5+
* Core Library:
6+
* Add protected method `DefaultRenderersFactory.getCodecAdapterFactory()`
7+
so that subclasses of `DefaultRenderersFactory` that override
8+
`buildVideoRenderers()` or `buildAudioRenderers()` can access the codec
9+
adapter factory and pass it to `MediaCodecRenderer` instances they
10+
create.
11+
* Propagate ICY header fields `name` and `genre` to
12+
`MediaMetadata.station` and `MediaMetadata.genre` respectively so that
13+
they reach the app via `Player.Listener.onMediaMetadataChanged()`
14+
([#9677](https://github.com/google/ExoPlayer/issues/9677)).
15+
* Remove null keys from `DefaultHttpDataSource#getResponseHeaders`.
16+
* Sleep and retry when creating a `MediaCodec` instance fails. This works
17+
around an issue that occurs on some devices when switching a surface
18+
from a secure codec to another codec
19+
([#8696](https://github.com/google/ExoPlayer/issues/8696)).
20+
* Add `MediaCodecAdapter.getMetrics()` to allow users obtain metrics data
21+
from `MediaCodec`.
22+
([#9766](https://github.com/google/ExoPlayer/issues/9766)).
23+
* Fix Maven dependency resolution
24+
([#8353](https://github.com/google/ExoPlayer/issues/8353)).
25+
* Disable automatic speed adjustment for live streams that neither have
26+
low-latency features nor a user request setting the speed
27+
([#9329](https://github.com/google/ExoPlayer/issues/9329)).
28+
* Rename `DecoderCounters#inputBufferCount` to `queuedInputBufferCount`.
29+
* Make `SimpleExoPlayer.renderers` private. Renderers can be accessed via
30+
`ExoPlayer.getRenderer`.
31+
* Updated some `AnalyticsListener.EventFlags` constant values to match
32+
values in `Player.EventFlags`.
33+
* Split `AnalyticsCollector` into an interface and default implementation
34+
to allow it to be stripped by R8 if an app doesn't need it.
35+
* Track selection:
36+
* Support preferred video role flags in track selection
37+
([#9402](https://github.com/google/ExoPlayer/issues/9402)).
38+
* Update video track selection logic to take preferred MIME types and role
39+
flags into account when selecting multiple video tracks for adaptation
40+
([#9519](https://github.com/google/ExoPlayer/issues/9519)).
41+
* Update video and audio track selection logic to only choose formats for
42+
adaptive selections that have the same level of decoder and hardware
43+
support ([#9565](https://github.com/google/ExoPlayer/issues/9565)).
44+
* Update video track selection logic to prefer more efficient codecs if
45+
multiple codecs are supported by primary, hardware-accelerated decoders
46+
([#4835](https://github.com/google/ExoPlayer/issues/4835)).
47+
* Prefer audio content preferences (for example, the "default" audio track
48+
or a track matching the system locale language) over technical track
49+
selection constraints (for example, preferred MIME type, or maximum
50+
channel count).
51+
* Fix track selection issue where overriding one track group did not
52+
disable other track groups of the same type
53+
([#9675](https://github.com/google/ExoPlayer/issues/9675)).
54+
* Fix track selection issue where a mixture of non-empty and empty track
55+
overrides is not applied correctly
56+
([#9649](https://github.com/google/ExoPlayer/issues/9649)).
57+
* Prohibit duplicate `TrackGroup`s in a `TrackGroupArray`. `TrackGroup`s
58+
can always be made distinguishable by setting an `id` in the
59+
`TrackGroup` constructor. This fixes a crash when resuming playback
60+
after backgrounding the app with an active track override
61+
([#9718](https://github.com/google/ExoPlayer/issues/9718)).
62+
* Amend logic in `AdaptiveTrackSelection` to allow a quality increase
63+
under sufficient network bandwidth even if playback is very close to the
64+
live edge ([#9784](https://github.com/google/ExoPlayer/issues/9784)).
65+
* Video:
66+
* Fix decoder fallback logic for Dolby Vision
67+
to use a compatible H264/H265 decoder if needed.
68+
* Audio:
69+
* Fix decoder fallback logic for Dolby Atmos (E-AC3-JOC)
70+
to use a compatible E-AC3 decoder if needed.
71+
* Change `AudioCapabilities` APIs to require passing explicitly
72+
`AudioCapabilities.DEFAULT_AUDIO_CAPABILITIES` instead of `null`.
73+
* Allow customization of the `AudioTrack` buffer size calculation by
74+
injecting an `AudioTrackBufferSizeProvider` to `DefaultAudioSink`.
75+
([#8891](https://github.com/google/ExoPlayer/issues/8891)).
76+
* Retry `AudioTrack` creation if the requested buffer size was > 1MB.
77+
([#9712](https://github.com/google/ExoPlayer/issues/9712)).
78+
* Extractors:
79+
* WAV: Add support for RF64 streams
80+
([#9543](https://github.com/google/ExoPlayer/issues/9543)).
81+
* Fix incorrect parsing of H.265 SPS NAL units
82+
([#9719](https://github.com/google/ExoPlayer/issues/9719)).
83+
* Parse Vorbis Comments (including `METADATA_BLOCK_PICTURE`) in Ogg Opus
84+
and Ogg Vorbis files.
85+
* Text:
86+
* Add a `MediaItem.SubtitleConfiguration.id` field which is propagated to
87+
the `Format.id` field of the subtitle track created from the
88+
configuration
89+
([#9673](https://github.com/google/ExoPlayer/issues/9673)).
90+
* Add basic support for WebVTT subtitles in Matroska containers
91+
([#9886](https://github.com/google/ExoPlayer/issues/9886)).
92+
* Prevent `Cea708Decoder` from reading more than the declared size of a
93+
service block.
94+
* DRM:
95+
* Remove `playbackLooper` from `DrmSessionManager.(pre)acquireSession`.
96+
When a `DrmSessionManager` is used by an app in a custom `MediaSource`,
97+
the `playbackLooper` needs to be passed to `DrmSessionManager.setPlayer`
98+
instead.
99+
* Ad playback / IMA:
100+
* Add support for
101+
[IMA Dynamic Ad Insertion (DAI)](https://support.google.com/admanager/answer/6147120)
102+
([#8213](https://github.com/google/ExoPlayer/issues/8213)).
103+
* Add a method to `AdPlaybackState` to allow resetting an ad group so that
104+
it can be played again
105+
([#9615](https://github.com/google/ExoPlayer/issues/9615)).
106+
* Enforce playback speed of 1.0 during ad playback
107+
([#9018](https://github.com/google/ExoPlayer/issues/9018)).
108+
* Fix issue where an ad group that failed to load caused an immediate
109+
playback reset
110+
([#9929](https://github.com/google/ExoPlayer/issues/9929)).
111+
* UI:
112+
* Fix the color of the numbers in `StyledPlayerView` rewind and
113+
fastforward buttons when using certain themes
114+
([#9765](https://github.com/google/ExoPlayer/issues/9765)).
115+
* Correctly translate playback speed strings
116+
([#9811](https://github.com/google/ExoPlayer/issues/9811)).
117+
* DASH:
118+
* Add parsed essential and supplemental properties to the `Representation`
119+
([#9579](https://github.com/google/ExoPlayer/issues/9579)).
120+
* Support the `forced-subtitle` track role
121+
([#9727](https://github.com/google/ExoPlayer/issues/9727)).
122+
* Stop interpreting the `main` track role as `C.SELECTION_FLAG_DEFAULT`.
123+
* Fix base URL exclusion logic for manifests that do not declare the DVB namespace ([#9856](https://github.com/google/ExoPlayer/issues/9856)).
124+
* Support relative `MPD.Location` URLs
125+
([#9939](https://github.com/google/ExoPlayer/issues/9939)).
126+
* HLS:
127+
* Correctly populate `Format.label` for audio only HLS streams
128+
([#9608](https://github.com/google/ExoPlayer/issues/9608)).
129+
* Use chunkless preparation by default to improve start up time. If your
130+
renditions contain muxed closed-caption tracks that are **not** declared
131+
in the master playlist, you should add them to the master playlist to be
132+
available for playback, or turn off chunkless preparation with
133+
`HlsMediaSource.Factory.setAllowChunklessPreparation(false)`.
134+
* Support key-frame accurate seeking in HLS
135+
([#2882](https://github.com/google/ExoPlayer/issues/2882)).
136+
* Correctly populate `Format.label` for audio only HLS streams
137+
([#9608](https://github.com/google/ExoPlayer/issues/9608)).
138+
* RTSP:
139+
* Provide a client API to override the `SocketFactory` used for any server
140+
connection ([#9606](https://github.com/google/ExoPlayer/pull/9606)).
141+
* Prefer DIGEST authentication method over BASIC if both are present
142+
([#9800](https://github.com/google/ExoPlayer/issues/9800)).
143+
* Handle when RTSP track timing is not available
144+
([#9775](https://github.com/google/ExoPlayer/issues/9775)).
145+
* Ignore invalid RTP-Info header values
146+
([#9619](https://github.com/google/ExoPlayer/issues/9619)).
147+
* Transformer:
148+
* Increase required min API version to 21.
149+
* `TransformationException` is now used to describe errors that occur
150+
during a transformation.
151+
* Add `TransformationRequest` for specifying the transformation options.
152+
* Allow multiple listeners to be registered.
153+
* Fix Transformer being stuck when the codec output is partially read.
154+
* Fix potential NPE in `Transformer.getProgress` when releasing the muxer
155+
throws.
156+
* Add a demo app for applying transformations.
157+
* The transformer module is no longer included by depending on
158+
`com.google.android.exoplayer:exoplayer`. To continue using transformer,
159+
add an additional dependency on
160+
`com.google.android.exoplayer:exoplayer-transformer`.
161+
* MediaSession extension:
162+
* By default, `MediaSessionConnector` now clears the playlist on stop. Apps that want the playlist to be retained can call `setClearMediaItemsOnStop(false)` on the connector.
163+
* Cast extension:
164+
* Fix bug that prevented `CastPlayer` from calling `onIsPlayingChanged`
165+
correctly ([#9792](https://github.com/google/ExoPlayer/issues/9792)).
166+
* Support audio metadata including artwork with
167+
`DefaultMediaItemConverter`
168+
([#9663](https://github.com/google/ExoPlayer/issues/9663)).
169+
* FFmpeg extension:
170+
* Make `build_ffmpeg.sh` depend on LLVM's bin utils instead of GNU's
171+
([#9933](https://github.com/google/ExoPlayer/issues/9933)).
172+
* Android 12 compatibility:
173+
* Upgrade the Cast extension to depend on
174+
`com.google.android.gms:play-services-cast-framework:20.1.0`. Earlier
175+
versions of `play-services-cast-framework` are not compatible with apps
176+
targeting Android 12, and will crash with an `IllegalArgumentException`
177+
when creating `PendingIntent`s
178+
([#9528](https://github.com/google/ExoPlayer/issues/9528)).
179+
* Remove deprecated symbols:
180+
* Remove `Player.EventLister`. Use `Player.Listener` instead.
181+
* Remove `MediaSourceFactory#setDrmSessionManager`,
182+
`MediaSourceFactory#setDrmHttpDataSourceFactory`, and
183+
`MediaSourceFactory#setDrmUserAgent`. Use
184+
`MediaSourceFactory#setDrmSessionManagerProvider` instead.
185+
* Remove `MediaSourceFactory#setStreamKeys`. Use
186+
`MediaItem.Builder#setStreamKeys` instead.
187+
* Remove `MediaSourceFactory#createMediaSource(Uri)`. Use
188+
`MediaSourceFactory#createMediaSource(MediaItem)` instead.
189+
* Remove `setTag` from `DashMediaSource`, `HlsMediaSource` and
190+
`SsMediaSource`. Use `MediaItem.Builder#setTag` instead.
191+
* Remove `DashMediaSource#setLivePresentationDelayMs(long, boolean)`. Use
192+
`MediaItem.Builder#setLiveConfiguration` and
193+
`MediaItem.LiveConfiguration.Builder#setTargetOffsetMs` to override the
194+
manifest, or `DashMediaSource#setFallbackTargetLiveOffsetMs` to provide
195+
a fallback value.
196+
* Remove `(Simple)ExoPlayer.setThrowsWhenUsingWrongThread`. Opting out of
197+
the thread enforcement is no longer possible.
198+
* Remove `ActionFile` and `ActionFileUpgradeUtil`. Use ExoPlayer 2.16.1 or
199+
before to use `ActionFileUpgradeUtil` to merge legacy action files into
200+
`DefaultDownloadIndex`.
201+
* Remove `ProgressiveMediaSource#setExtractorsFactory`. Use
202+
`ProgressiveMediaSource.Factory(DataSource.Factory, ExtractorsFactory)`
203+
constructor instead.
204+
* Remove `ProgressiveMediaSource.Factory#setTag` and, and
205+
`ProgressiveMediaSource.Factory#setCustomCacheKey`. Use
206+
`MediaItem.Builder#setTag` and `MediaItem.Builder#setCustomCacheKey`
207+
instead.
208+
* Remove `DefaultRenderersFactory(Context, @ExtensionRendererMode int)`
209+
and `DefaultRenderersFactory(Context, @ExtensionRendererMode int, long)`
210+
constructors. Use the `DefaultRenderersFactory(Context)` constructor,
211+
`DefaultRenderersFactory#setExtensionRendererMode`, and
212+
`DefaultRenderersFactory#setAllowedVideoJoiningTimeMs` instead.
213+
* Remove all public `CronetDataSource` constructors. Use
214+
`CronetDataSource.Factory` instead.
215+
* Change the following `IntDefs` to `@Target(TYPE_USE)` only. This may break
216+
the compilation of usages in Kotlin, which can be fixed by moving the
217+
annotation to annotate the type (`Int`).
218+
* `@AacAudioObjectType`
219+
* `@Ac3Util.SyncFrameInfo.StreamType`
220+
* `@AdLoadException.Type`
221+
* `@AdtsExtractor.Flags`
222+
* `@AmrExtractor.Flags`
223+
* `@AspectRatioFrameLayout.ResizeMode`
224+
* `@AudioFocusManager.PlayerCommand`
225+
* `@AudioSink.SinkFormatSupport`
226+
* `@BinarySearchSeeker.TimestampSearchResult.Type`
227+
* `@BufferReplacementMode`
228+
* `@C.BufferFlags`
229+
* `@C.ColorRange`
230+
* `@C.ColorSpace`
231+
* `@C.ColorTransfer`
232+
* `@C.CryptoMode`
233+
* `@C.Encoding`
234+
* `@C.PcmEncoding`
235+
* `@C.Projection`
236+
* `@C.SelectionReason`
237+
* `@C.StereoMode`
238+
* `@C.VideoOutputMode`
239+
* `@CacheDataSource.Flags`
240+
* `@CaptionStyleCompat.EdgeType`
241+
* `@DataSpec.Flags`
242+
* `@DataSpec.HttpMethods`
243+
* `@DecoderDiscardReasons`
244+
* `@DecoderReuseResult`
245+
* `@DefaultAudioSink.OutputMode`
246+
* `@DefaultDrmSessionManager.Mode`
247+
* `@DefaultTrackSelector.SelectionEligibility`
248+
* `@DefaultTsPayloadReaderFactory.Flags`
249+
* `@EGLSurfaceTexture.SecureMode`
250+
* `@EbmlProcessor.ElementType`
251+
* `@ExoMediaDrm.KeyRequest.RequestType`
252+
* `@ExtensionRendererMode`
253+
* `@Extractor.ReadResult`
254+
* `@FileTypes.Type`
255+
* `@FlacExtractor.Flags` (in `com.google.android.exoplayer2.ext.flac`
256+
package)
257+
* `@FlacExtractor.Flags` (in
258+
`com.google.android.exoplayer2.extractor.flac` package)
259+
* `@FragmentedMp4Extractor.Flags`
260+
* `@HlsMediaPlaylist.PlaylistType`
261+
* `@HttpDataSourceException.Type`
262+
* `@IllegalClippingException.Reason`
263+
* `@IllegalMergeException.Reason`
264+
* `@LoadErrorHandlingPolicy.FallbackType`
265+
* `@MatroskaExtractor.Flags`
266+
* `@Mp3Extractor.Flags`
267+
* `@Mp4Extractor.Flags`
268+
* `@NotificationUtil.Importance`
269+
* `@PlaybackException.FieldNumber`
270+
* `@PlayerNotificationManager.Priority`
271+
* `@PlayerNotificationManager.Visibility`
272+
* `@PlayerView.ShowBuffering`
273+
* `@Renderer.State`
274+
* `@RendererCapabilities.AdaptiveSupport`
275+
* `@RendererCapabilities.Capabilities`
276+
* `@RendererCapabilities.DecoderSupport`
277+
* `@RendererCapabilities.FormatSupport`
278+
* `@RendererCapabilities.HardwareAccelerationSupport`
279+
* `@RendererCapabilities.TunnelingSupport`
280+
* `@SampleStream.ReadDataResult`
281+
* `@SampleStream.ReadFlags`
282+
* `@StyledPlayerView.ShowBuffering`
283+
* `@SubtitleView.ViewType`
284+
* `@TextAnnotation.Position`
285+
* `@TextEmphasisSpan.MarkFill`
286+
* `@TextEmphasisSpan.MarkShape`
287+
* `@Track.Transformation`
288+
* `@TrackOutput.SampleDataPart`
289+
* `@Transformer.ProgressState`
290+
* `@TsExtractor.Mode`
291+
* `@TsPayloadReader.Flags`
292+
* `@WebvttCssStyle.FontSizeUnit`
293+
3294
### 1.0.0-alpha01
4295

5296
AndroidX Media is the new home for media support libraries, including ExoPlayer.

constants.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414
project.ext {
15-
releaseVersion = '1.0.0-alpha01'
16-
releaseVersionCode = 1000000001
15+
releaseVersion = '1.0.0-alpha02'
16+
releaseVersionCode = 1_000_000_0_02
1717
minSdkVersion = 16
1818
appTargetSdkVersion = 29
1919
// Upgrading this requires [Internal ref: b/193254928] to be fixed, or some

libraries/common/src/main/java/androidx/media3/common/MediaLibraryInfo.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ public final class MediaLibraryInfo {
2929

3030
/** The version of the library expressed as a string, for example "1.2.3" or "1.2.3-beta01". */
3131
// Intentionally hardcoded. Do not derive from other constants (e.g. VERSION_INT) or vice versa.
32-
public static final String VERSION = "1.0.0-alpha01";
32+
public static final String VERSION = "1.0.0-alpha02";
3333

3434
/** The version of the library expressed as {@code TAG + "/" + VERSION}. */
3535
// Intentionally hardcoded. Do not derive from other constants (e.g. VERSION) or vice versa.
36-
public static final String VERSION_SLASHY = "AndroidXMedia3/1.0.0-alpha01";
36+
public static final String VERSION_SLASHY = "AndroidXMedia3/1.0.0-alpha02";
3737

3838
/**
3939
* The version of the library expressed as an integer, for example 1002003300.
@@ -47,7 +47,7 @@ public final class MediaLibraryInfo {
4747
* (123-045-006-3-00).
4848
*/
4949
// Intentionally hardcoded. Do not derive from other constants (e.g. VERSION) or vice versa.
50-
public static final int VERSION_INT = 1000000001;
50+
public static final int VERSION_INT = 1_000_000_0_02;
5151

5252
/** Whether the library was compiled with {@link Assertions} checks enabled. */
5353
public static final boolean ASSERTIONS_ENABLED = true;

0 commit comments

Comments
 (0)