Skip to content

Commit 2c72010

Browse files
authored
Merge pull request #88 from androidx/main-r1.0.0-beta01
r1.0.0 beta01
2 parents 72a4fb0 + 5f741bb commit 2c72010

File tree

806 files changed

+41433
-12914
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

806 files changed

+41433
-12914
lines changed

.github/ISSUE_TEMPLATE/bug.md

Lines changed: 0 additions & 42 deletions
This file was deleted.

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
name: Bug Report
2+
description: Report a bug in the Media3 library
3+
labels: ["bug", "needs triage"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
We can only process bug reports that are actionable. Unclear bug reports or reports with insufficient information may not get attention.
9+
10+
Before filing a bug:
11+
-------------------------
12+
13+
- Search existing issues, including issues that are closed: https://github.com/androidx/media/issues?q=is%3Aissue
14+
- For ExoPlayer-related bugs, please also check the ExoPlayer tracker: https://github.com/google/ExoPlayer/issues?q=is%3Aissue
15+
- type: dropdown
16+
attributes:
17+
label: Media3 Version
18+
description: What version of Media3 are you using?
19+
options:
20+
- 1.0.0-beta01
21+
- 1.0.0-alpha03
22+
- 1.0.0-alpha02
23+
- 1.0.0-alpha01
24+
validations:
25+
required: true
26+
- type: textarea
27+
attributes:
28+
label: Devices that reproduce the issue
29+
placeholder: |
30+
Example:
31+
* Pixel 4 running Android 12
32+
* Samsung S21 running Android 11
33+
validations:
34+
required: true
35+
- type: textarea
36+
attributes:
37+
label: Devices that do not reproduce the issue
38+
placeholder: |
39+
Example:
40+
* Pixel 3 running Android Pie
41+
- type: dropdown
42+
attributes:
43+
label: Reproducible in the demo app?
44+
description: Please try and reproduce the issue in the [Media3 demo app](https://github.com/androidx/media/tree/release/demos/main).
45+
options:
46+
- "Yes"
47+
- "No"
48+
- Not tested
49+
validations:
50+
required: true
51+
- type: textarea
52+
attributes:
53+
label: Reproduction steps
54+
description: Clear and complete steps we can use to reproduce the problem
55+
placeholder: |
56+
Example:
57+
1. Play the attached media in the demo app
58+
2. Seek forward 10s
59+
validations:
60+
required: true
61+
- type: textarea
62+
attributes:
63+
label: Expected result
64+
placeholder: |
65+
Example:
66+
The media plays successfully
67+
validations:
68+
required: true
69+
- type: textarea
70+
attributes:
71+
label: Actual result
72+
placeholder: |
73+
Example:
74+
Playback crashes with the following stack trace:
75+
...
76+
validations:
77+
required: true
78+
- type: textarea
79+
attributes:
80+
label: Media
81+
description: |
82+
Media we can use to reproduce the problem. Either:
83+
* Attach a file here
84+
* Include a media URL
85+
* Refer to a piece of media from the demo app (e.g. `Misc > Dizzy (MP4)`)
86+
* If you don't want to post media publicly please email the info to [email protected] with subject 'Issue #\<issuenumber\>' after filing this issue, and note that you will do this here.
87+
* If you are certain the issue does not depend on the media being played, enter "Not applicable" here.
88+
89+
For DRM-protected media please also include the scheme and license server URL.
90+
validations:
91+
required: true
92+
- type: checkboxes
93+
attributes:
94+
label: Bug Report
95+
description: |
96+
After filing this issue please run `adb bugreport` shortly after reproducing the problem (ideally in the [demo app](https://github.com/androidx/media/tree/release/demos/main)) to capture a zip file, and email this to [email protected] with subject 'Issue #\<issuenumber\>'.
97+
98+
**Note:** Logcat output is **not** the same as a full bug report, and is often missing information that's useful for diagnosing issues. Please ensure you're sending a full bug report zip file.
99+
options:
100+
- label: You will email the zip file produced by `adb bugreport` to [email protected] after filing this issue.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
blank_issues_enabled: false

RELEASENOTES.md

Lines changed: 227 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,230 @@
1-
# Release notes
1+
Release notes
2+
3+
### Unreleased changes
4+
5+
* Extractors:
6+
* Add support for AVI
7+
([#2092](https://github.com/google/ExoPlayer/issues/2092)).
8+
* RTSP:
9+
* Add RTP reader for H263
10+
([#63](https://github.com/androidx/media/pull/63)).
11+
12+
### 1.0.0-beta01 (2022-06-16)
13+
14+
This release corresponds to the
15+
[ExoPlayer 2.18.0 release](https://github.com/google/ExoPlayer/releases/tag/r2.18.0).
16+
17+
* Core library:
18+
* Enable support for Android platform diagnostics via
19+
`MediaMetricsManager`. ExoPlayer will forward playback events and
20+
performance data to the platform, which helps to provide system
21+
performance and debugging information on the device. This data may also
22+
be collected by Google
23+
[if sharing usage and diagnostics data is enabled](https://support.google.com/accounts/answer/6078260)
24+
by the user of the device. Apps can opt-out of contributing to platform
25+
diagnostics for ExoPlayer with
26+
`ExoPlayer.Builder.setUsePlatformDiagnostics(false)`.
27+
* Fix bug that tracks are reset too often when using `MergingMediaSource`,
28+
for example when side-loading subtitles and changing the selected
29+
subtitle mid-playback
30+
([#10248](https://github.com/google/ExoPlayer/issues/10248)).
31+
* Stop detecting 5G-NSA network type on API 29 and 30. These playbacks
32+
will assume a 4G network.
33+
* Disallow passing `null` to
34+
`MediaSource.Factory.setDrmSessionManagerProvider` and
35+
`MediaSource.Factory.setLoadErrorHandlingPolicy`. Instances of
36+
`DefaultDrmSessionManagerProvider` and `DefaultLoadErrorHandlingPolicy`
37+
can be passed explicitly if required.
38+
* Add `MediaItem.RequestMetadata` to represent metadata needed to play
39+
media when the exact `LocalConfiguration` is not known. Also remove
40+
`MediaMetadata.mediaUrl` as this is now included in `RequestMetadata`.
41+
* Add `Player.Command.COMMAND_SET_MEDIA_ITEM` to enable players to allow
42+
setting a single item.
43+
* Track selection:
44+
* Flatten `TrackSelectionOverrides` class into `TrackSelectionParameters`,
45+
and promote `TrackSelectionOverride` to a top level class.
46+
* Rename `TracksInfo` to `Tracks` and `TracksInfo.TrackGroupInfo` to
47+
`Tracks.Group`. `Player.getCurrentTracksInfo` and
48+
`Player.Listener.onTracksInfoChanged` have also been renamed to
49+
`Player.getCurrentTracks` and `Player.Listener.onTracksChanged`.
50+
* Change `DefaultTrackSelector.buildUponParameters` and
51+
`DefaultTrackSelector.Parameters.buildUpon` to return
52+
`DefaultTrackSelector.Parameters.Builder` instead of the deprecated
53+
`DefaultTrackSelector.ParametersBuilder`.
54+
* Add
55+
`DefaultTrackSelector.Parameters.constrainAudioChannelCountToDeviceCapabilities`
56+
which is enabled by default. When enabled, the `DefaultTrackSelector`
57+
will prefer audio tracks whose channel count does not exceed the device
58+
output capabilities. On handheld devices, the `DefaultTrackSelector`
59+
will prefer stereo/mono over multichannel audio formats, unless the
60+
multichannel format can be
61+
[Spatialized](https://developer.android.com/reference/android/media/Spatializer)
62+
(Android 12L+) or is a Dolby surround sound format. In addition, on
63+
devices that support audio spatialization, the `DefaultTrackSelector`
64+
will monitor for changes in the
65+
[Spatializer properties](https://developer.android.com/reference/android/media/Spatializer.OnSpatializerStateChangedListener)
66+
and trigger a new track selection upon these. Devices with a
67+
`television`
68+
[UI mode](https://developer.android.com/guide/topics/resources/providing-resources#UiModeQualifier)
69+
are excluded from these constraints and the format with the highest
70+
channel count will be preferred. To enable this feature, the
71+
`DefaultTrackSelector` instance must be constructed with a `Context`.
72+
* Video:
73+
* Rename `DummySurface` to `PlaceholderSurface`.
74+
* Add AV1 support to the `MediaCodecVideoRenderer.getCodecMaxInputSize`.
75+
* Audio:
76+
* Use LG AC3 audio decoder advertising non-standard MIME type.
77+
* Change the return type of `AudioAttributes.getAudioAttributesV21()` from
78+
`android.media.AudioAttributes` to a new `AudioAttributesV21` wrapper
79+
class, to prevent slow ART verification on API < 21.
80+
* Query the platform (API 29+) or assume the audio encoding channel count
81+
for audio passthrough when the format audio channel count is unset,
82+
which occurs with HLS chunkless preparation
83+
([10204](https://github.com/google/ExoPlayer/issues/10204)).
84+
* Configure `AudioTrack` with channel mask
85+
`AudioFormat.CHANNEL_OUT_7POINT1POINT4` if the decoder outputs 12
86+
channel PCM audio
87+
([#10322](#https://github.com/google/ExoPlayer/pull/10322).
88+
* DRM
89+
* Ensure the DRM session is always correctly updated when seeking
90+
immediately after a format change
91+
([10274](https://github.com/google/ExoPlayer/issues/10274)).
92+
* Text:
93+
* Change `Player.getCurrentCues()` to return `CueGroup` instead of
94+
`List<Cue>`.
95+
* SSA: Support `OutlineColour` style setting when `BorderStyle == 3` (i.e.
96+
`OutlineColour` sets the background of the cue)
97+
([#8435](https://github.com/google/ExoPlayer/issues/8435)).
98+
* CEA-708: Parse data into multiple service blocks and ignore blocks not
99+
associated with the currently selected service number.
100+
* Remove `RawCcExtractor`, which was only used to handle a Google-internal
101+
subtitle format.
102+
* Extractors:
103+
* Matroska: Parse `DiscardPadding` for Opus tracks.
104+
* MP4: Parse bitrates from `esds` boxes.
105+
* Ogg: Allow duplicate Opus ID and comment headers
106+
([#10038](https://github.com/google/ExoPlayer/issues/10038)).
107+
* UI:
108+
* Fix delivery of events to `OnClickListener`s set on `PlayerView`, in the
109+
case that `useController=false`
110+
([#9605](https://github.com/google/ExoPlayer/issues/9605)). Also fix
111+
delivery of events to `OnLongClickListener` for all view configurations.
112+
* Fix incorrectly treating a sequence of touch events that exit the bounds
113+
of `PlayerView` before `ACTION_UP` as a click
114+
([#9861](https://github.com/google/ExoPlayer/issues/9861)).
115+
* Fix `PlayerView` accessibility issue where tapping might toggle playback
116+
rather than hiding the controls
117+
([#8627](https://github.com/google/ExoPlayer/issues/8627)).
118+
* Rewrite `TrackSelectionView` and `TrackSelectionDialogBuilder` to work
119+
with the `Player` interface rather than `ExoPlayer`. This allows the
120+
views to be used with other `Player` implementations, and removes the
121+
dependency from the UI module to the ExoPlayer module. This is a
122+
breaking change.
123+
* Don't show forced text tracks in the `PlayerView` track selector, and
124+
keep a suitable forced text track selected if "None" is selected
125+
([#9432](https://github.com/google/ExoPlayer/issues/9432)).
126+
* DASH:
127+
* Parse channel count from DTS `AudioChannelConfiguration` elements. This
128+
re-enables audio passthrough for DTS streams
129+
([#10159](https://github.com/google/ExoPlayer/issues/10159)).
130+
* Disallow passing `null` to
131+
`DashMediaSource.Factory.setCompositeSequenceableLoaderFactory`.
132+
Instances of `DefaultCompositeSequenceableLoaderFactory` can be passed
133+
explicitly if required.
134+
* HLS:
135+
* Fallback to chunkful preparation if the playlist CODECS attribute does
136+
not contain the audio codec
137+
([#10065](https://github.com/google/ExoPlayer/issues/10065)).
138+
* Disallow passing `null` to
139+
`HlsMediaSource.Factory.setCompositeSequenceableLoaderFactory`,
140+
`HlsMediaSource.Factory.setPlaylistParserFactory`, and
141+
`HlsMediaSource.Factory.setPlaylistTrackerFactory`. Instances of
142+
`DefaultCompositeSequenceableLoaderFactory`,
143+
`DefaultHlsPlaylistParserFactory`, or a reference to
144+
`DefaultHlsPlaylistTracker.FACTORY` can be passed explicitly if
145+
required.
146+
* Smooth Streaming:
147+
* Disallow passing `null` to
148+
`SsMediaSource.Factory.setCompositeSequenceableLoaderFactory`. Instances
149+
of `DefaultCompositeSequenceableLoaderFactory` can be passed explicitly
150+
if required.
151+
* RTSP:
152+
* Add RTP reader for MPEG4
153+
([#35](https://github.com/androidx/media/pull/35)).
154+
* Add RTP reader for HEVC
155+
([#36](https://github.com/androidx/media/pull/36)).
156+
* Add RTP reader for AMR. Currently only mono-channel, non-interleaved AMR
157+
streams are supported. Compound AMR RTP payload is not supported.
158+
([#46](https://github.com/androidx/media/pull/46))
159+
* Add RTP reader for VP8
160+
([#47](https://github.com/androidx/media/pull/47)).
161+
* Add RTP reader for WAV
162+
([#56](https://github.com/androidx/media/pull/56)).
163+
* Fix RTSP basic authorization header.
164+
([#9544](https://github.com/google/ExoPlayer/issues/9544)).
165+
* Stop checking mandatory SDP fields as ExoPlayer doesn't need them
166+
([#10049](https://github.com/google/ExoPlayer/issues/10049)).
167+
* Throw checked exception when parsing RTSP timing
168+
([#10165](https://github.com/google/ExoPlayer/issues/10165)).
169+
* Add RTP reader for VP9
170+
([#47](https://github.com/androidx/media/pull/64)).
171+
* Add RTP reader for OPUS
172+
([#53](https://github.com/androidx/media/pull/53)).
173+
* Session:
174+
* Replace `MediaSession.MediaItemFiller` with
175+
`MediaSession.Callback.onAddMediaItems` to allow asynchronous resolution
176+
of requests.
177+
* Support `setMediaItems(s)` methods when `MediaController` connects to a
178+
legacy media session.
179+
* Remove `MediaController.setMediaUri` and
180+
`MediaSession.Callback.onSetMediaUri`. The same functionality can be
181+
achieved by using `MediaController.setMediaItem` and
182+
`MediaSession.Callback.onAddMediaItems`.
183+
* Forward legacy `MediaController` calls to play media to
184+
`MediaSession.Callback.onAddMediaItems` instead of `onSetMediaUri`.
185+
* Add `MediaNotification.Provider` and `DefaultMediaNotificationProvider`
186+
to provide customization of the notification.
187+
* Add `BitmapLoader` and `SimpleBitmapLoader` for downloading artwork
188+
images.
189+
* Add `MediaSession.setCustomLayout()` to provide backwards compatibility
190+
with the legacy session.
191+
* Add `MediaSession.setSessionExtras()` to provide feature parity with
192+
legacy session.
193+
* Rename `MediaSession.MediaSessionCallback` to `MediaSession.Callback`,
194+
`MediaLibrarySession.MediaLibrarySessionCallback` to
195+
`MediaLibrarySession.Callback` and
196+
`MediaSession.Builder.setSessionCallback` to `setCallback`.
197+
* Fix NPE in `MediaControllerImplLegacy`
198+
([#59](https://github.com/androidx/media/pull/59)).
199+
* Update session position info on timeline
200+
change([#51](https://github.com/androidx/media/issues/51)).
201+
* Fix NPE in `MediaControllerImplBase` after releasing controller
202+
([#74](https://github.com/androidx/media/issues/74)).
203+
* Fix `IndexOutOfBoundsException` when setting less media items than in
204+
the current playlist
205+
([#86](https://github.com/androidx/media/issues/86)).
206+
* Ad playback / IMA:
207+
* Decrease ad polling rate from every 100ms to every 200ms, to line up
208+
with Media Rating Council (MRC) recommendations.
209+
* FFmpeg extension:
210+
* Update CMake version to `3.21.0+` to avoid a CMake bug causing
211+
AndroidStudio's gradle sync to fail
212+
([#9933](https://github.com/google/ExoPlayer/issues/9933)).
213+
* Remove deprecated symbols:
214+
* Remove `Player.Listener.onTracksChanged`. Use
215+
`Player.Listener.onTracksInfoChanged` instead.
216+
* Remove `Player.getCurrentTrackGroups` and
217+
`Player.getCurrentTrackSelections`. Use `Player.getCurrentTracksInfo`
218+
instead. You can also continue to use `ExoPlayer.getCurrentTrackGroups`
219+
and `ExoPlayer.getCurrentTrackSelections`, although these methods remain
220+
deprecated.
221+
* Remove `DownloadHelper`
222+
`DEFAULT_TRACK_SELECTOR_PARAMETERS_WITHOUT_VIEWPORT` and
223+
`DEFAULT_TRACK_SELECTOR_PARAMETERS` constants. Use
224+
`getDefaultTrackSelectorParameters(Context)` instead when possible, and
225+
`DEFAULT_TRACK_SELECTOR_PARAMETERS_WITHOUT_CONTEXT` otherwise.
226+
* Remove constructor `DefaultTrackSelector(ExoTrackSelection.Factory)`.
227+
Use `DefaultTrackSelector(Context, ExoTrackSelection.Factory)` instead.
2228

3229
### 1.0.0-alpha03 (2022-03-14)
4230

0 commit comments

Comments
 (0)