Skip to content

Commit 1ef427f

Browse files
authored
Merge pull request #261 from androidx/release-1.0.0-rc02
1.0.0-rc02
2 parents f17e846 + af30f00 commit 1ef427f

File tree

297 files changed

+1228
-3844
lines changed

Some content is hidden

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

297 files changed

+1228
-3844
lines changed

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ body:
1717
label: Media3 Version
1818
description: What version of Media3 are you using?
1919
options:
20+
- 1.0.0-rc02
2021
- 1.0.0-rc01
2122
- 1.0.0-beta03
2223
- 1.0.0-beta02

RELEASENOTES.md

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

3+
### 1.0.0-rc02 (2023-03-02)
4+
5+
This release corresponds to the
6+
[ExoPlayer 2.18.4 release](https://github.com/google/ExoPlayer/releases/tag/r2.18.4).
7+
8+
* Core library:
9+
* Fix network type detection on API 33
10+
([#10970](https://github.com/google/ExoPlayer/issues/10970)).
11+
* Fix `NullPointerException` when calling `ExoPlayer.isTunnelingEnabled`
12+
([#10977](https://github.com/google/ExoPlayer/issues/10977)).
13+
* Downloads:
14+
* Make the maximum difference of the start time of two segments to be
15+
merged configurable in `SegmentDownloader` and subclasses
16+
([#248](https://github.com/androidx/media/pull/248)).
17+
* Audio:
18+
* Fix broken gapless MP3 playback on Samsung devices
19+
([#8594](https://github.com/google/ExoPlayer/issues/8594)).
20+
* Fix bug where playback speeds set immediately after disabling audio may
21+
be overridden by a previous speed change
22+
([#10882](https://github.com/google/ExoPlayer/issues/10882)).
23+
* Video:
24+
* Map HEVC HDR10 format to `HEVCProfileMain10HDR10` instead of
25+
`HEVCProfileMain10`.
26+
* Add workaround for a device issue on Chromecast with Google TV and
27+
Lenovo M10 FHD Plus that causes 60fps AVC streams to be marked as
28+
unsupported
29+
([#10898](https://github.com/google/ExoPlayer/issues/10898)).
30+
* Fix frame release performance issues when playing media with a frame
31+
rate far higher than the screen refresh rate.
32+
* Cast:
33+
* Fix transient `STATE_IDLE` when transitioning between media items
34+
([#245](https://github.com/androidx/media/issues/245)).
35+
* RTSP:
36+
* Catch the IllegalArgumentException thrown in parsing of invalid RTSP
37+
Describe response messages
38+
([#10971](https://github.com/google/ExoPlayer/issues/10971)).
39+
* Session:
40+
* Fix a bug where notification play/pause button doesn't update with
41+
player state ([#192](https://github.com/androidx/media/issues/192)).
42+
* IMA extension:
43+
* Fix a bug which prevented DAI streams without any ads from starting
44+
because the first (and in the case without ads the only) `LOADED` event
45+
wasn't received.
46+
347
### 1.0.0-rc01 (2023-02-16)
448

549
This release corresponds to the
@@ -73,17 +117,12 @@ This release corresponds to the
73117
([#233](https://github.com/androidx/media/issues/233)).
74118
* Make `QueueTimeline` more robust in case of a shady legacy session state
75119
([#241](https://github.com/androidx/media/issues/241)).
76-
* Metadata:
77-
* Parse multiple null-separated values from ID3 frames, as permitted by
78-
ID3 v2.4.
79-
* Add `MediaMetadata.mediaType` to denote the type of content or the type
80-
of folder described by the metadata.
81-
* Add `MediaMetadata.isBrowsable` as a replacement for
82-
`MediaMetadata.folderType`. The folder type will be deprecated in the
83-
next release.
84120
* Cast extension:
85121
* Bump Cast SDK version to 21.2.0.
86122
* IMA extension:
123+
* Map `PLAYER_STATE_LOADING` to `STATE_BUFFERING`
124+
([#245](\(https://github.com/androidx/media/issues/245\)).
125+
* IMA extension
87126
* Remove player listener of the `ImaServerSideAdInsertionMediaSource` on
88127
the application thread to avoid threading issues.
89128
* Add a property `focusSkipButtonWhenAvailable` to the
@@ -92,6 +131,8 @@ This release corresponds to the
92131
* Add a method `focusSkipButton()` to the
93132
`ImaServerSideAdInsertionMediaSource.AdsLoader` to programmatically
94133
request to focus the skip button.
134+
* Fix a bug which prevented playback from starting for a DAI stream
135+
without any ads.
95136
* Bump IMA SDK version to 3.29.0.
96137
* Demo app:
97138
* Request notification permission for download notifications at runtime

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-rc01'
16-
releaseVersionCode = 1_000_000_2_01
15+
releaseVersion = '1.0.0-rc02'
16+
releaseVersionCode = 1_000_000_2_02
1717
minSdkVersion = 16
1818
appTargetSdkVersion = 33
1919
// API version before restricting local file access.

libraries/cast/src/main/java/androidx/media3/cast/CastPlayer.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1237,6 +1237,7 @@ private static int fetchPlaybackState(RemoteMediaClient remoteMediaClient) {
12371237
int receiverAppStatus = remoteMediaClient.getPlayerState();
12381238
switch (receiverAppStatus) {
12391239
case MediaStatus.PLAYER_STATE_BUFFERING:
1240+
case MediaStatus.PLAYER_STATE_LOADING:
12401241
return STATE_BUFFERING;
12411242
case MediaStatus.PLAYER_STATE_PLAYING:
12421243
case MediaStatus.PLAYER_STATE_PAUSED:
@@ -1299,6 +1300,7 @@ private static boolean isTrackActive(long id, long[] activeTrackIds) {
12991300
return false;
13001301
}
13011302

1303+
@SuppressWarnings("VisibleForTests")
13021304
private static int getCastRepeatMode(@RepeatMode int repeatMode) {
13031305
switch (repeatMode) {
13041306
case REPEAT_MODE_ONE:

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,10 @@ private C() {}
331331
*/
332332
@UnstableApi public static final int ENCODING_OPUS = AudioFormat.ENCODING_OPUS;
333333

334-
/** Represents the behavior affecting whether spatialization will be used. */
334+
/**
335+
* Represents the behavior affecting whether spatialization will be used. One of {@link
336+
* #SPATIALIZATION_BEHAVIOR_AUTO} or {@link #SPATIALIZATION_BEHAVIOR_NEVER}.
337+
*/
335338
@Documented
336339
@Retention(RetentionPolicy.SOURCE)
337340
@Target(TYPE_USE)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import java.util.List;
2929

3030
/**
31-
* A {@link Player} that forwards operations to another {@link Player}. Applications can use this
31+
* A {@link Player} that forwards method calls to another {@link Player}. Applications can use this
3232
* class to suppress or modify specific operations, by overriding the respective methods.
3333
*/
3434
@UnstableApi

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-rc01";
32+
public static final String VERSION = "1.0.0-rc02";
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-rc01";
36+
public static final String VERSION_SLASHY = "AndroidXMedia3/1.0.0-rc02";
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 = 1_000_000_2_01;
50+
public static final int VERSION_INT = 1_000_000_2_02;
5151

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

libraries/common/src/main/java/androidx/media3/common/util/ColorParser.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,12 @@
2727
/**
2828
* Parser for color expressions found in styling formats, e.g. TTML and CSS.
2929
*
30-
* @see <a href="https://w3c.github.io/webvtt/#styling">WebVTT CSS Styling</a>
31-
* @see <a href="https://www.w3.org/TR/ttml2/">Timed Text Markup Language 2 (TTML2) - 10.3.5</a>
30+
* <p>See also:
31+
*
32+
* <ul>
33+
* <li><a href="https://w3c.github.io/webvtt/#styling">WebVTT CSS Styling</a>
34+
* <li><a href="https://www.w3.org/TR/ttml2/">Timed Text Markup Language 2 (TTML2) - 10.3.5</a>
35+
* </ul>
3236
*/
3337
@UnstableApi
3438
public final class ColorParser {

libraries/common/src/main/java/androidx/media3/common/util/NetworkTypeObserver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ private NetworkTypeObserver(Context context) {
9494
networkType = C.NETWORK_TYPE_UNKNOWN;
9595
IntentFilter filter = new IntentFilter();
9696
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
97-
Util.registerReceiverNotExported(context, new Receiver(), filter);
97+
context.registerReceiver(new Receiver(), filter);
9898
}
9999

100100
/**

libraries/common/src/main/java/androidx/media3/common/util/Util.java

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,10 @@ public static byte[] toByteArray(InputStream inputStream) throws IOException {
206206
* apps. This will be enforced by specifying {@link Context#RECEIVER_NOT_EXPORTED} if {@link
207207
* #SDK_INT} is 33 or above.
208208
*
209+
* <p>Do not use this method if registering a receiver for a <a
210+
* href="https://android.googlesource.com/platform/frameworks/base/+/master/core/res/AndroidManifest.xml">protected
211+
* system broadcast</a>.
212+
*
209213
* @param context The context on which {@link Context#registerReceiver} will be called.
210214
* @param receiver The {@link BroadcastReceiver} to register. This value may be null.
211215
* @param filter Selects the Intent broadcasts to be received.
@@ -222,33 +226,6 @@ public static Intent registerReceiverNotExported(
222226
}
223227
}
224228

225-
/**
226-
* Registers a {@link BroadcastReceiver} that's not intended to receive broadcasts from other
227-
* apps. This will be enforced by specifying {@link Context#RECEIVER_NOT_EXPORTED} if {@link
228-
* #SDK_INT} is 33 or above.
229-
*
230-
* @param context The context on which {@link Context#registerReceiver} will be called.
231-
* @param receiver The {@link BroadcastReceiver} to register. This value may be null.
232-
* @param filter Selects the Intent broadcasts to be received.
233-
* @param handler Handler identifying the thread that will receive the Intent.
234-
* @return The first sticky intent found that matches {@code filter}, or null if there are none.
235-
*/
236-
@UnstableApi
237-
@Nullable
238-
public static Intent registerReceiverNotExported(
239-
Context context, BroadcastReceiver receiver, IntentFilter filter, Handler handler) {
240-
if (SDK_INT < 33) {
241-
return context.registerReceiver(receiver, filter, /* broadcastPermission= */ null, handler);
242-
} else {
243-
return context.registerReceiver(
244-
receiver,
245-
filter,
246-
/* broadcastPermission= */ null,
247-
handler,
248-
Context.RECEIVER_NOT_EXPORTED);
249-
}
250-
}
251-
252229
/**
253230
* Calls {@link Context#startForegroundService(Intent)} if {@link #SDK_INT} is 26 or higher, or
254231
* {@link Context#startService(Intent)} otherwise.

0 commit comments

Comments
 (0)