From 55bfe71384bfd55fcddc14fddf1cac53e9c22416 Mon Sep 17 00:00:00 2001 From: Rakesh Kumar Date: Tue, 15 Mar 2022 17:37:51 +0530 Subject: [PATCH 001/182] Add support for RTSP H263 Added H263 RTP Packet reader and added support for H263 playback through RTSP. Change-Id: I348cc4d8e974b5275409b816a9d52aa29f593233 --- .../exoplayer/rtsp/RtpPayloadFormat.java | 7 + .../media3/exoplayer/rtsp/RtspMediaTrack.java | 8 + .../DefaultRtpPayloadReaderFactory.java | 2 + .../exoplayer/rtsp/reader/RtpH263Reader.java | 197 ++++++++++++++++++ 4 files changed, 214 insertions(+) create mode 100644 libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java diff --git a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtpPayloadFormat.java b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtpPayloadFormat.java index 297353167b9..9c1995ed4c4 100644 --- a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtpPayloadFormat.java +++ b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtpPayloadFormat.java @@ -38,6 +38,8 @@ public final class RtpPayloadFormat { private static final String RTP_MEDIA_AC3 = "AC3"; private static final String RTP_MEDIA_MPEG4_GENERIC = "MPEG4-GENERIC"; + private static final String RTP_MEDIA_H263_1998 = "H263-1998"; + private static final String RTP_MEDIA_H263_2000 = "H263-2000"; private static final String RTP_MEDIA_H264 = "H264"; private static final String RTP_MEDIA_H265 = "H265"; @@ -45,6 +47,8 @@ public final class RtpPayloadFormat { public static boolean isFormatSupported(MediaDescription mediaDescription) { switch (Ascii.toUpperCase(mediaDescription.rtpMapAttribute.mediaEncoding)) { case RTP_MEDIA_AC3: + case RTP_MEDIA_H263_1998: + case RTP_MEDIA_H263_2000: case RTP_MEDIA_H264: case RTP_MEDIA_H265: case RTP_MEDIA_MPEG4_GENERIC: @@ -65,6 +69,9 @@ public static String getMimeTypeFromRtpMediaType(String mediaType) { switch (Ascii.toUpperCase(mediaType)) { case RTP_MEDIA_AC3: return MimeTypes.AUDIO_AC3; + case RTP_MEDIA_H263_1998: + case RTP_MEDIA_H263_2000: + return MimeTypes.VIDEO_H263; case RTP_MEDIA_H264: return MimeTypes.VIDEO_H264; case RTP_MEDIA_H265: diff --git a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaTrack.java b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaTrack.java index 7547f1ea188..0285d00dde1 100644 --- a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaTrack.java +++ b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaTrack.java @@ -56,6 +56,10 @@ private static final String GENERIC_CONTROL_ATTR = "*"; + /** Default width and height for H263. */ + private static final int DEFAULT_H263_WIDTH = 352; + private static final int DEFAULT_H263_HEIGHT = 288; + /** The track's associated {@link RtpPayloadFormat}. */ public final RtpPayloadFormat payloadFormat; /** The track's URI. */ @@ -121,6 +125,10 @@ public int hashCode() { checkArgument(!fmtpParameters.isEmpty()); processAacFmtpAttribute(formatBuilder, fmtpParameters, channelCount, clockRate); break; + case MimeTypes.VIDEO_H263: + // H263 does not require a FMTP attribute. So Setting default width and height. + formatBuilder.setWidth(DEFAULT_H263_WIDTH).setHeight(DEFAULT_H263_HEIGHT); + break; case MimeTypes.VIDEO_H264: checkArgument(!fmtpParameters.isEmpty()); processH264FmtpAttribute(formatBuilder, fmtpParameters); diff --git a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/DefaultRtpPayloadReaderFactory.java b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/DefaultRtpPayloadReaderFactory.java index 888939b7e89..5c8150dbf49 100644 --- a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/DefaultRtpPayloadReaderFactory.java +++ b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/DefaultRtpPayloadReaderFactory.java @@ -36,6 +36,8 @@ public RtpPayloadReader createPayloadReader(RtpPayloadFormat payloadFormat) { return new RtpAc3Reader(payloadFormat); case MimeTypes.AUDIO_AAC: return new RtpAacReader(payloadFormat); + case MimeTypes.VIDEO_H263: + return new RtpH263Reader(payloadFormat); case MimeTypes.VIDEO_H264: return new RtpH264Reader(payloadFormat); case MimeTypes.VIDEO_H265: diff --git a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java new file mode 100644 index 00000000000..1c12075f898 --- /dev/null +++ b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java @@ -0,0 +1,197 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package androidx.media3.exoplayer.rtsp.reader; + +import static androidx.media3.common.util.Assertions.checkStateNotNull; +import static androidx.media3.common.util.Util.castNonNull; + +import androidx.media3.common.C; +import androidx.media3.common.ParserException; +import androidx.media3.common.util.Log; +import androidx.media3.common.util.ParsableByteArray; +import androidx.media3.common.util.Util; +import androidx.media3.exoplayer.rtsp.RtpPacket; +import androidx.media3.exoplayer.rtsp.RtpPayloadFormat; +import androidx.media3.extractor.ExtractorOutput; +import androidx.media3.extractor.TrackOutput; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; + +/** + * Parses a H263 byte stream carried on RTP packets, and extracts H263 individual video frames as + * defined in RFC4629. + */ +/* package */ final class RtpH263Reader implements RtpPayloadReader { + private static final String TAG = "RtpH263Reader"; + + private static final long MEDIA_CLOCK_FREQUENCY = 90_000; + + /** VOP unit type. */ + private static final int I_VOP = 0; + + private final RtpPayloadFormat payloadFormat; + + private @MonotonicNonNull TrackOutput trackOutput; + + private long firstReceivedTimestamp; + private int previousSequenceNumber; + /** The combined size of a sample that is fragmented into multiple RTP packets. */ + private int fragmentedSampleSizeBytes; + private static int width; + private static int height; + private static boolean isKeyFrame; + private boolean isOutputFormatSet; + private long startTimeOffsetUs; + + /** Creates an instance. */ + public RtpH263Reader(RtpPayloadFormat payloadFormat) { + this.payloadFormat = payloadFormat; + firstReceivedTimestamp = C.TIME_UNSET; + previousSequenceNumber = C.INDEX_UNSET; + fragmentedSampleSizeBytes = 0; + isKeyFrame = false; + isOutputFormatSet = false; + } + + @Override + public void createTracks(ExtractorOutput extractorOutput, int trackId) { + trackOutput = extractorOutput.track(trackId, C.TRACK_TYPE_VIDEO); + castNonNull(trackOutput).format(payloadFormat.format); + } + + @Override + public void onReceivingFirstPacket(long timestamp, int sequenceNumber) {} + + @Override + public void consume(ParsableByteArray data, long timestamp, int sequenceNumber, boolean rtpMarker) + throws ParserException { + checkStateNotNull(trackOutput); + + // H263 Header Payload Header, RFC4629 Section 5.1. + // 0 1 + // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 + // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + // | RR |P|V| PLEN |PEBIT| + // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + int currPosition = data.getPosition(); + int header = data.readUnsignedShort(); + boolean pBit = ((header & 0x400) == 0x400); + + // Check if optional Video Redundancy Coding or PLEN or PEBIT is present, RFC4629 Section 5.1. + if ((header & 0x200) != 0 || (header & 0x1f8) != 0 || (header & 0x7) != 0) { + Log.w(TAG, "Packet discarded due to (VRC != 0) or (PLEN != 0) or (PEBIT != 0)"); + return; + } + int startCodePayload = data.peekUnsignedByte() & 0xfc; + if (pBit == true) { + if (startCodePayload < 128) { + Log.w(TAG, "Picture start Code (PSC) missing, Dropping packet."); + return; + } else { + // Setting first two bytes of the start code. Refer RFC4629 Section 5.1. + data.getData()[currPosition] = 0; + data.getData()[currPosition + 1] = 0; + data.setPosition(currPosition); + } + } else { + // Check that this packet is in the sequence of the previous packet. + int expectedSequenceNumber = RtpPacket.getNextSequenceNumber(previousSequenceNumber); + if (sequenceNumber != expectedSequenceNumber) { + Log.w( + TAG, + Util.formatInvariant( + "Received RTP packet with unexpected sequence number. Expected: %d; received: %d." + + " Dropping packet.", + expectedSequenceNumber, sequenceNumber)); + return; + } + } + + if (fragmentedSampleSizeBytes == 0) { + getBufferFlagsAndResolutionFromVop(data, isOutputFormatSet); + if (!isOutputFormatSet && isKeyFrame == true) { + if (width != payloadFormat.format.width || height != payloadFormat.format.height) { + trackOutput.format( + payloadFormat.format.buildUpon().setWidth(width).setHeight(height).build()); + } + isOutputFormatSet = true; + } + } + int fragmentSize = data.bytesLeft(); + // Write the video sample. + trackOutput.sampleData(data, fragmentSize); + fragmentedSampleSizeBytes += fragmentSize; + + if (rtpMarker) { + if (firstReceivedTimestamp == C.TIME_UNSET) { + firstReceivedTimestamp = timestamp; + } + long timeUs = toSampleUs(startTimeOffsetUs, timestamp, firstReceivedTimestamp); + trackOutput.sampleMetadata( + timeUs, + isKeyFrame ? C.BUFFER_FLAG_KEY_FRAME : 0, + fragmentedSampleSizeBytes, + /* offset= */ 0, + /* encryptionData= */ null); + fragmentedSampleSizeBytes = 0; + isKeyFrame = false; + } + previousSequenceNumber = sequenceNumber; + } + + @Override + public void seek(long nextRtpTimestamp, long timeUs) { + firstReceivedTimestamp = nextRtpTimestamp; + fragmentedSampleSizeBytes = 0; + startTimeOffsetUs = timeUs; + } + + // Internal methods. + /** + * Parses VOP Coding type and resolution. + */ + private void getBufferFlagsAndResolutionFromVop(ParsableByteArray data, boolean gotResolution) { + // Search for SHORT_VIDEO_START_MARKER (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0). + int currPosition = data.getPosition(); + if (data.readUnsignedInt() >> 10 == 0x20) { + int header = data.peekUnsignedByte(); + int vopType = ((header >> 1) & 0x01); + if (!gotResolution && vopType == I_VOP) { + int sourceFormat = ((header >> 2) & 0x07); + if (sourceFormat == 1) { + width = 128; + height = 96; + } else { + width = (short) (176 << (sourceFormat - 2)); + height = (short) (144 << (sourceFormat - 2)); + } + } + data.setPosition(currPosition); + isKeyFrame = (vopType == I_VOP ? true : false); + return; + } + data.setPosition(currPosition); + isKeyFrame = false; + } + + private static long toSampleUs( + long startTimeOffsetUs, long rtpTimestamp, long firstReceivedRtpTimestamp) { + return startTimeOffsetUs + + Util.scaleLargeTimestamp( + (rtpTimestamp - firstReceivedRtpTimestamp), + /* multiplier= */ C.MICROS_PER_SECOND, + /* divisor= */ MEDIA_CLOCK_FREQUENCY); + } +} From ff80a41f908cfe4b0d7203f466b1b4e4aa6c27d7 Mon Sep 17 00:00:00 2001 From: Rakesh Kumar Date: Thu, 5 May 2022 14:01:06 +0530 Subject: [PATCH 002/182] Fix review comment in RTP H263 Reader Change-Id: I987baf379ecf3ba3f387cb38f22646023739addb --- .../media3/exoplayer/rtsp/RtspMediaTrack.java | 20 +++++++++++-- .../exoplayer/rtsp/reader/RtpH263Reader.java | 28 +++++++++++++------ 2 files changed, 38 insertions(+), 10 deletions(-) diff --git a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaTrack.java b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaTrack.java index 69f23b9e342..0d2ff5912ad 100644 --- a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaTrack.java +++ b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaTrack.java @@ -101,8 +101,23 @@ */ private static final int DEFAULT_VP8_HEIGHT = 240; - /** Default width and height for H263. */ + /** + * Default height for H263. + * + *

RFC4629 does not mandate codec specific data (like width and height) in the fmtp attribute. + * These values are taken from Android's software H263 decoder. + */ private static final int DEFAULT_H263_WIDTH = 352; + /** + * Default height for H263. + * + *

RFC4629 does not mandate codec specific data (like width and height) in the fmtp attribute. + * These values are taken from Android's software H263 decoder. + */ private static final int DEFAULT_H263_HEIGHT = 288; /** The track's associated {@link RtpPayloadFormat}. */ @@ -189,7 +204,8 @@ public int hashCode() { processMPEG4FmtpAttribute(formatBuilder, fmtpParameters); break; case MimeTypes.VIDEO_H263: - // H263 does not require a FMTP attribute. So Setting default width and height. + // H263 never uses fmtp width and height attributes (RFC4629 Section 8.2), setting default + // width and height. formatBuilder.setWidth(DEFAULT_H263_WIDTH).setHeight(DEFAULT_H263_HEIGHT); break; case MimeTypes.VIDEO_H264: diff --git a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java index 1c12075f898..f4f96cd1e93 100644 --- a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java +++ b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java @@ -30,28 +30,31 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** - * Parses a H263 byte stream carried on RTP packets, and extracts H263 individual video frames as - * defined in RFC4629. + * Parses a H263 byte stream carried on RTP packets, and extracts H263 frames as defined in RFC4629. */ /* package */ final class RtpH263Reader implements RtpPayloadReader { private static final String TAG = "RtpH263Reader"; private static final long MEDIA_CLOCK_FREQUENCY = 90_000; - /** VOP unit type. */ + /** I-frame VOP unit type. */ private static final int I_VOP = 0; private final RtpPayloadFormat payloadFormat; private @MonotonicNonNull TrackOutput trackOutput; + /** + * First received RTP timestamp. All RTP timestamps are dimension-less, the time base is defined + * by {@link #MEDIA_CLOCK_FREQUENCY}. + */ private long firstReceivedTimestamp; private int previousSequenceNumber; /** The combined size of a sample that is fragmented into multiple RTP packets. */ private int fragmentedSampleSizeBytes; - private static int width; - private static int height; - private static boolean isKeyFrame; + private int width; + private int height; + private boolean isKeyFrame; private boolean isOutputFormatSet; private long startTimeOffsetUs; @@ -144,7 +147,7 @@ public void consume(ParsableByteArray data, long timestamp, int sequenceNumber, isKeyFrame ? C.BUFFER_FLAG_KEY_FRAME : 0, fragmentedSampleSizeBytes, /* offset= */ 0, - /* encryptionData= */ null); + /* cryptoData= */ null); fragmentedSampleSizeBytes = 0; isKeyFrame = false; } @@ -163,12 +166,21 @@ public void seek(long nextRtpTimestamp, long timeUs) { * Parses VOP Coding type and resolution. */ private void getBufferFlagsAndResolutionFromVop(ParsableByteArray data, boolean gotResolution) { + // Picture Segment Packets (RFC4629 Section 6.1). // Search for SHORT_VIDEO_START_MARKER (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0). int currPosition = data.getPosition(); - if (data.readUnsignedInt() >> 10 == 0x20) { + long shortHeader = data.readUnsignedInt(); + if ((shortHeader & 0xffff) >> 10 == 0x20) { int header = data.peekUnsignedByte(); int vopType = ((header >> 1) & 0x01); if (!gotResolution && vopType == I_VOP) { + /** + * Parsing resolution from source format. + * + *

These values are taken from Android's software H263 decoder. + */ int sourceFormat = ((header >> 2) & 0x07); if (sourceFormat == 1) { width = 128; From f8cd3a974683a1b617a0c5e860fc2ca28ae41f42 Mon Sep 17 00:00:00 2001 From: Rakesh Kumar Date: Thu, 5 May 2022 15:37:54 +0530 Subject: [PATCH 003/182] Fix some more review comment in RTP H263 Reader. Change-Id: If1f80a369b47319251e262c8f171091bb37e90c5 --- .../exoplayer/rtsp/reader/RtpH263Reader.java | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java index f4f96cd1e93..e3bb0b144a2 100644 --- a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java +++ b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java @@ -39,6 +39,7 @@ /** I-frame VOP unit type. */ private static final int I_VOP = 0; + private static final int PICTURE_START_CODE = 128; private final RtpPayloadFormat payloadFormat; @@ -71,7 +72,7 @@ public RtpH263Reader(RtpPayloadFormat payloadFormat) { @Override public void createTracks(ExtractorOutput extractorOutput, int trackId) { trackOutput = extractorOutput.track(trackId, C.TRACK_TYPE_VIDEO); - castNonNull(trackOutput).format(payloadFormat.format); + trackOutput.format(payloadFormat.format); } @Override @@ -90,24 +91,25 @@ public void consume(ParsableByteArray data, long timestamp, int sequenceNumber, // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ int currPosition = data.getPosition(); int header = data.readUnsignedShort(); - boolean pBit = ((header & 0x400) == 0x400); + boolean pBitIsSet = ((header & 0x400) > 0); - // Check if optional Video Redundancy Coding or PLEN or PEBIT is present, RFC4629 Section 5.1. + // Check if optional V (Video Redundancy Coding), PLEN or PEBIT is present, RFC4629 Section 5.1. if ((header & 0x200) != 0 || (header & 0x1f8) != 0 || (header & 0x7) != 0) { Log.w(TAG, "Packet discarded due to (VRC != 0) or (PLEN != 0) or (PEBIT != 0)"); return; } - int startCodePayload = data.peekUnsignedByte() & 0xfc; - if (pBit == true) { - if (startCodePayload < 128) { + + if (pBitIsSet == true) { + int startCodePayload = data.peekUnsignedByte() & 0xfc; + // Packets that begin with a Picture Start Code(100000). Refer RFC4629 Section 6.1.1. + if (startCodePayload < PICTURE_START_CODE) { Log.w(TAG, "Picture start Code (PSC) missing, Dropping packet."); return; - } else { - // Setting first two bytes of the start code. Refer RFC4629 Section 5.1. - data.getData()[currPosition] = 0; - data.getData()[currPosition + 1] = 0; - data.setPosition(currPosition); } + // Setting first two bytes of the start code. Refer RFC4629 Section 6.1.1. + data.getData()[currPosition] = 0; + data.getData()[currPosition + 1] = 0; + data.setPosition(currPosition); } else { // Check that this packet is in the sequence of the previous packet. int expectedSequenceNumber = RtpPacket.getNextSequenceNumber(previousSequenceNumber); @@ -124,7 +126,7 @@ public void consume(ParsableByteArray data, long timestamp, int sequenceNumber, if (fragmentedSampleSizeBytes == 0) { getBufferFlagsAndResolutionFromVop(data, isOutputFormatSet); - if (!isOutputFormatSet && isKeyFrame == true) { + if (!isOutputFormatSet && isKeyFrame) { if (width != payloadFormat.format.width || height != payloadFormat.format.height) { trackOutput.format( payloadFormat.format.buildUpon().setWidth(width).setHeight(height).build()); @@ -168,7 +170,7 @@ public void seek(long nextRtpTimestamp, long timeUs) { private void getBufferFlagsAndResolutionFromVop(ParsableByteArray data, boolean gotResolution) { // Picture Segment Packets (RFC4629 Section 6.1). // Search for SHORT_VIDEO_START_MARKER (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0). - int currPosition = data.getPosition(); + int currDataOffset = data.getPosition(); long shortHeader = data.readUnsignedInt(); if ((shortHeader & 0xffff) >> 10 == 0x20) { int header = data.peekUnsignedByte(); @@ -190,11 +192,11 @@ private void getBufferFlagsAndResolutionFromVop(ParsableByteArray data, boolean height = (short) (144 << (sourceFormat - 2)); } } - data.setPosition(currPosition); + data.setPosition(currDataOffset); isKeyFrame = (vopType == I_VOP ? true : false); return; } - data.setPosition(currPosition); + data.setPosition(currDataOffset); isKeyFrame = false; } From de871ea273bc0fa4d5b431819a684c0221a2e0bc Mon Sep 17 00:00:00 2001 From: bachinger Date: Tue, 26 Apr 2022 14:35:33 +0100 Subject: [PATCH 004/182] Some fixes/cleanup in MediaControllerImplLegacy PiperOrigin-RevId: 444542725 --- .../androidx/media3/session/MediaControllerImplLegacy.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplLegacy.java b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplLegacy.java index 0cbb191e294..577986f7725 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplLegacy.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplLegacy.java @@ -846,7 +846,7 @@ public void moveMediaItems(int fromIndex, int toIndex, int newIndex) { calculateCurrentItemIndexAfterRemoveItems(currentMediaItemIndex, fromIndex, toIndex); if (currentMediaItemIndexAfterRemove == C.INDEX_UNSET) { currentMediaItemIndexAfterRemove = - Util.constrainValue(fromIndex, /* min= */ 0, /* toIndex= */ lastItemIndexAfterRemove); + Util.constrainValue(fromIndex, /* min= */ 0, /* max= */ lastItemIndexAfterRemove); Log.w( TAG, "Currently playing item will be removed and added back to mimic move." @@ -1550,8 +1550,8 @@ public void onSessionReady() { pendingLegacyPlayerInfo = pendingLegacyPlayerInfo.copyWithExtraBinderGetters( convertToSafePlaybackStateCompat(controllerCompat.getPlaybackState()), - controllerCompat.getShuffleMode(), - controllerCompat.getRepeatMode()); + controllerCompat.getRepeatMode(), + controllerCompat.getShuffleMode()); boolean isCaptioningEnabled = controllerCompat.isCaptioningEnabled(); onCaptioningEnabledChanged(isCaptioningEnabled); From f269963e89019ee1d319b98eb3f9aa95ac917139 Mon Sep 17 00:00:00 2001 From: huangdarwin Date: Tue, 26 Apr 2022 15:27:10 +0100 Subject: [PATCH 005/182] Transformer GL: Add support for pixelWidthHeightRatio. To ensure frame processor operations operate on square pixels, make the frame taller or wider for non-square input pixels. In addition to automated tests, this was tested by changing the inputFormat.pixelWidthHeightRatio in the TransformerVideoRenderer. PiperOrigin-RevId: 444553517 --- .../sample_mp4_first_frame/scale_wide.png | Bin 0 -> 830259 bytes .../FrameProcessorChainPixelTest.java | 41 +++++++--- .../transformer/FrameProcessorChainTest.java | 76 +++++++++--------- .../transformer/FrameProcessorChain.java | 76 +++++++++++------- .../transformer/TransformerVideoRenderer.java | 3 + 5 files changed, 116 insertions(+), 80 deletions(-) create mode 100644 libraries/test_data/src/test/assets/media/bitmap/sample_mp4_first_frame/scale_wide.png diff --git a/libraries/test_data/src/test/assets/media/bitmap/sample_mp4_first_frame/scale_wide.png b/libraries/test_data/src/test/assets/media/bitmap/sample_mp4_first_frame/scale_wide.png new file mode 100644 index 0000000000000000000000000000000000000000..67ac8a7583b633f597d145621d6b6fb7e1bb831e GIT binary patch literal 830259 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ⅆInf?09xO_wMUDuk&?YKMh)*wv%rP_RkMw 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

XF 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

0K2OwH-M;1-_rU#M_M=zL_6%4T}2Th(syF*+M7m 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

*OizO|!y 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

* *

Renderer configuration

@@ -113,6 +117,15 @@ public final void init(InvalidationListener listener, BandwidthMeter bandwidthMe this.bandwidthMeter = bandwidthMeter; } + /** + * Called by the player to release the selector. The selector cannot be used until {@link + * #init(InvalidationListener, BandwidthMeter)} is called again. + */ + public final void release() { + this.listener = null; + this.bandwidthMeter = null; + } + /** * Called by the player to perform a track selection. * @@ -177,9 +190,10 @@ protected final void invalidate() { /** * Returns a bandwidth meter which can be used by track selections to select tracks. Must only be - * called after {@link #init(InvalidationListener, BandwidthMeter)} has been called. + * called when the track selector is {@linkplain #init(InvalidationListener, BandwidthMeter) + * initialized}. */ protected final BandwidthMeter getBandwidthMeter() { - return Assertions.checkNotNull(bandwidthMeter); + return checkStateNotNull(bandwidthMeter); } } diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelectorTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelectorTest.java index 0e1764a8298..a9576fe88db 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelectorTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelectorTest.java @@ -62,6 +62,7 @@ import com.google.common.collect.ImmutableSet; import java.util.HashMap; import java.util.Map; +import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -146,6 +147,11 @@ public void setUp() { trackSelector.init(invalidationListener, bandwidthMeter); } + @After + public void tearDown() { + trackSelector.release(); + } + @Test public void parameters_buildUponThenBuild_isEqual() { Parameters parameters = buildParametersForEqualsTest(); diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/TrackSelectorTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/TrackSelectorTest.java index a1551d0200d..38eaa5c1d6c 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/TrackSelectorTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/TrackSelectorTest.java @@ -16,7 +16,7 @@ package androidx.media3.exoplayer.trackselection; import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assert.fail; +import static org.junit.Assert.assertThrows; import androidx.annotation.Nullable; import androidx.media3.common.Timeline; @@ -59,12 +59,7 @@ public void onSelectionActivated(@Nullable Object info) {} @Test public void getBandwidthMeter_beforeInitialization_throwsException() { - try { - trackSelector.getBandwidthMeter(); - fail(); - } catch (Exception e) { - // Expected. - } + assertThrows(IllegalStateException.class, () -> trackSelector.getBandwidthMeter()); } @Test @@ -73,6 +68,30 @@ public void getBandwidthMeter_afterInitialization_returnsProvidedBandwidthMeter( BandwidthMeter bandwidthMeter = Mockito.mock(BandwidthMeter.class); trackSelector.init(invalidationListener, bandwidthMeter); - assertThat(trackSelector.getBandwidthMeter()).isEqualTo(bandwidthMeter); + assertThat(trackSelector.getBandwidthMeter()).isSameInstanceAs(bandwidthMeter); + } + + @Test + public void getBandwidthMeter_afterRelease_throwsException() { + InvalidationListener invalidationListener = Mockito.mock(InvalidationListener.class); + BandwidthMeter bandwidthMeter = Mockito.mock(BandwidthMeter.class); + trackSelector.init(invalidationListener, bandwidthMeter); + + trackSelector.release(); + + assertThrows(IllegalStateException.class, () -> trackSelector.getBandwidthMeter()); + } + + @Test + public void initialize_afterRelease() { + InvalidationListener invalidationListener = Mockito.mock(InvalidationListener.class); + BandwidthMeter bandwidthMeter = Mockito.mock(BandwidthMeter.class); + trackSelector.init(invalidationListener, bandwidthMeter); + + trackSelector.release(); + BandwidthMeter anotherBandwidthMeter = Mockito.mock(BandwidthMeter.class); + trackSelector.init(invalidationListener, anotherBandwidthMeter); + + assertThat(trackSelector.getBandwidthMeter()).isSameInstanceAs(anotherBandwidthMeter); } } From 337b7f769dbf994cbb62d442e6e55e4b66bb7e8f Mon Sep 17 00:00:00 2001 From: huangdarwin Date: Wed, 4 May 2022 17:20:41 +0100 Subject: [PATCH 050/182] GL: Update exoplayer to use bindTexture. Refactoring change only. PiperOrigin-RevId: 446475708 --- .../java/androidx/media3/common/util/GlUtil.java | 2 +- .../exoplayer/video/VideoDecoderGLSurfaceView.java | 12 ++---------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java index 91ce6a91408..b3f55812fb5 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java @@ -463,7 +463,7 @@ private static int generateTexture() { * GLES20#GL_TEXTURE_2D} for a two-dimensional texture or {@link * GLES11Ext#GL_TEXTURE_EXTERNAL_OES} for an external texture. */ - /* package */ static void bindTexture(int textureTarget, int texId) { + public static void bindTexture(int textureTarget, int texId) { GLES20.glBindTexture(textureTarget, texId); checkGlError(); GLES20.glTexParameteri(textureTarget, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoDecoderGLSurfaceView.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoDecoderGLSurfaceView.java index cc3898032fb..66e5ad93fba 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoDecoderGLSurfaceView.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoDecoderGLSurfaceView.java @@ -300,19 +300,11 @@ public void setOutputBuffer(VideoDecoderOutputBuffer outputBuffer) { @RequiresNonNull("program") private void setupTextures() { - GLES20.glGenTextures(3, yuvTextures, /* offset= */ 0); + GLES20.glGenTextures(/* n= */ 3, yuvTextures, /* offset= */ 0); for (int i = 0; i < 3; i++) { GLES20.glUniform1i(program.getUniformLocation(TEXTURE_UNIFORMS[i]), i); GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + i); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, yuvTextures[i]); - GLES20.glTexParameterf( - GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR); - GLES20.glTexParameterf( - GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); - GLES20.glTexParameterf( - GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); - GLES20.glTexParameterf( - GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); + GlUtil.bindTexture(GLES20.GL_TEXTURE_2D, yuvTextures[i]); } GlUtil.checkGlError(); } From 4b8ff72d301cbd52873a9ad750e3187dbf95151c Mon Sep 17 00:00:00 2001 From: hschlueter Date: Wed, 4 May 2022 17:40:33 +0100 Subject: [PATCH 051/182] Use MatrixTransformation instead of wrapping its GlFrameProcssor. ScaleToFitFrameProcessor, PresentationFrameProcessor, and EncoderCompatibilityFrameProcessor now each implement MatrixTransformation instead of wrapping MatrixTransformationFrameProcessor. PiperOrigin-RevId: 446480286 --- .../FrameProcessorChainPixelTest.java | 9 +- ...elTest.java => PresentationPixelTest.java} | 60 +++++++------ ...> EncoderCompatibilityTransformation.java} | 60 +++++-------- .../transformer/FrameProcessorChain.java | 10 ++- .../MatrixTransformationFrameProcessor.java | 5 +- ...nFrameProcessor.java => Presentation.java} | 71 ++++----------- ...sor.java => ScaleToFitTransformation.java} | 62 +++---------- .../VideoTranscodingSamplePipeline.java | 22 ++--- ...ncoderCompatibilityFrameProcessorTest.java | 73 --------------- ...ncoderCompatibilityTransformationTest.java | 80 +++++++++++++++++ ...ocessorTest.java => PresentationTest.java} | 88 ++++++++----------- ...java => ScaleToFitTransformationTest.java} | 62 ++++++------- 12 files changed, 256 insertions(+), 346 deletions(-) rename libraries/transformer/src/androidTest/java/androidx/media3/transformer/{PresentationFrameProcessorPixelTest.java => PresentationPixelTest.java} (92%) rename libraries/transformer/src/main/java/androidx/media3/transformer/{EncoderCompatibilityFrameProcessor.java => EncoderCompatibilityTransformation.java} (59%) rename libraries/transformer/src/main/java/androidx/media3/transformer/{PresentationFrameProcessor.java => Presentation.java} (82%) rename libraries/transformer/src/main/java/androidx/media3/transformer/{ScaleToFitFrameProcessor.java => ScaleToFitTransformation.java} (70%) delete mode 100644 libraries/transformer/src/test/java/androidx/media3/transformer/EncoderCompatibilityFrameProcessorTest.java create mode 100644 libraries/transformer/src/test/java/androidx/media3/transformer/EncoderCompatibilityTransformationTest.java rename libraries/transformer/src/test/java/androidx/media3/transformer/{PresentationFrameProcessorTest.java => PresentationTest.java} (56%) rename libraries/transformer/src/test/java/androidx/media3/transformer/{ScaleToFitFrameProcessorTest.java => ScaleToFitTransformationTest.java} (50%) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainPixelTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainPixelTest.java index 540df28de93..7e3ec259c63 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainPixelTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainPixelTest.java @@ -154,7 +154,7 @@ public void processData_withMatrixAndScaleToFitTransformation_producesExpectedOu setUpAndPrepareFirstFrame( DEFAULT_PIXEL_WIDTH_HEIGHT_RATIO, (MatrixTransformation) (long presentationTimeUs) -> translateRightMatrix, - () -> new ScaleToFitFrameProcessor.Builder().setRotationDegrees(45).build()); + new ScaleToFitTransformation.Builder().setRotationDegrees(45).build()); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(TRANSLATE_THEN_ROTATE_PNG_ASSET_PATH); Bitmap actualBitmap = processFirstFrameAndEnd(); @@ -176,7 +176,7 @@ public void processData_withScaleToFitAndMatrixTransformation_producesExpectedOu translateRightMatrix.postTranslate(/* dx= */ 1, /* dy= */ 0); setUpAndPrepareFirstFrame( DEFAULT_PIXEL_WIDTH_HEIGHT_RATIO, - () -> new ScaleToFitFrameProcessor.Builder().setRotationDegrees(45).build(), + new ScaleToFitTransformation.Builder().setRotationDegrees(45).build(), (MatrixTransformation) (long presentationTimeUs) -> translateRightMatrix); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(ROTATE_THEN_TRANSLATE_PNG_ASSET_PATH); @@ -195,8 +195,7 @@ public void processData_withScaleToFitAndMatrixTransformation_producesExpectedOu public void processData_withPresentation_setResolution_producesExpectedOutput() throws Exception { String testId = "processData_withPresentation_setResolution"; setUpAndPrepareFirstFrame( - DEFAULT_PIXEL_WIDTH_HEIGHT_RATIO, - () -> new PresentationFrameProcessor.Builder().setResolution(480).build()); + DEFAULT_PIXEL_WIDTH_HEIGHT_RATIO, new Presentation.Builder().setResolution(480).build()); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(REQUEST_OUTPUT_HEIGHT_PNG_ASSET_PATH); Bitmap actualBitmap = processFirstFrameAndEnd(); @@ -216,7 +215,7 @@ public void processData_withScaleToFitTransformation_rotate45_producesExpectedOu String testId = "processData_withScaleToFitTransformation_rotate45"; setUpAndPrepareFirstFrame( DEFAULT_PIXEL_WIDTH_HEIGHT_RATIO, - () -> new ScaleToFitFrameProcessor.Builder().setRotationDegrees(45).build()); + new ScaleToFitTransformation.Builder().setRotationDegrees(45).build()); Bitmap expectedBitmap = BitmapTestUtil.readBitmap(ROTATE45_SCALE_TO_FIT_PNG_ASSET_PATH); Bitmap actualBitmap = processFirstFrameAndEnd(); diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/PresentationFrameProcessorPixelTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/PresentationPixelTest.java similarity index 92% rename from libraries/transformer/src/androidTest/java/androidx/media3/transformer/PresentationFrameProcessorPixelTest.java rename to libraries/transformer/src/androidTest/java/androidx/media3/transformer/PresentationPixelTest.java index aaeb2176227..e76e4963b99 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/PresentationFrameProcessorPixelTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/PresentationPixelTest.java @@ -35,7 +35,7 @@ import org.junit.runner.RunWith; /** - * Pixel test for frame processing via {@link PresentationFrameProcessor}. + * Pixel test for frame processing via {@link Presentation}. * *

Expected images are taken from an emulator, so tests on different emulators or physical * devices may fail. To test on other devices, please increase the {@link @@ -43,7 +43,7 @@ * as recommended in {@link FrameProcessorChainPixelTest}. */ @RunWith(AndroidJUnit4.class) -public final class PresentationFrameProcessorPixelTest { +public final class PresentationPixelTest { public static final String ORIGINAL_PNG_ASSET_PATH = "media/bitmap/sample_mp4_first_frame/original.png"; public static final String CROP_SMALLER_PNG_ASSET_PATH = @@ -97,7 +97,7 @@ public void release() { @Test public void drawFrame_noEdits_producesExpectedOutput() throws Exception { String testId = "drawFrame_noEdits"; - presentationFrameProcessor = new PresentationFrameProcessor.Builder().build(); + presentationFrameProcessor = new Presentation.Builder().build().toGlFrameProcessor(); presentationFrameProcessor.initialize( getApplicationContext(), inputTexId, inputWidth, inputHeight); Size outputSize = presentationFrameProcessor.getOutputSize(); @@ -122,9 +122,10 @@ public void drawFrame_noEdits_producesExpectedOutput() throws Exception { public void drawFrame_cropSmaller_producesExpectedOutput() throws Exception { String testId = "drawFrame_cropSmaller"; GlFrameProcessor presentationFrameProcessor = - new PresentationFrameProcessor.Builder() + new Presentation.Builder() .setCrop(/* left= */ -.9f, /* right= */ .1f, /* bottom= */ -1f, /* top= */ .5f) - .build(); + .build() + .toGlFrameProcessor(); presentationFrameProcessor.initialize( getApplicationContext(), inputTexId, inputWidth, inputHeight); Size outputSize = presentationFrameProcessor.getOutputSize(); @@ -149,9 +150,10 @@ public void drawFrame_cropSmaller_producesExpectedOutput() throws Exception { public void drawFrame_cropLarger_producesExpectedOutput() throws Exception { String testId = "drawFrame_cropSmaller"; GlFrameProcessor presentationFrameProcessor = - new PresentationFrameProcessor.Builder() + new Presentation.Builder() .setCrop(/* left= */ -2f, /* right= */ 2f, /* bottom= */ -1f, /* top= */ 2f) - .build(); + .build() + .toGlFrameProcessor(); presentationFrameProcessor.initialize( getApplicationContext(), inputTexId, inputWidth, inputHeight); Size outputSize = presentationFrameProcessor.getOutputSize(); @@ -177,9 +179,10 @@ public void drawFrame_changeAspectRatio_scaleToFit_narrow_producesExpectedOutput throws Exception { String testId = "drawFrame_changeAspectRatio_scaleToFit_narrow"; presentationFrameProcessor = - new PresentationFrameProcessor.Builder() - .setAspectRatio(1f, PresentationFrameProcessor.LAYOUT_SCALE_TO_FIT) - .build(); + new Presentation.Builder() + .setAspectRatio(1f, Presentation.LAYOUT_SCALE_TO_FIT) + .build() + .toGlFrameProcessor(); presentationFrameProcessor.initialize( getApplicationContext(), inputTexId, inputWidth, inputHeight); Size outputSize = presentationFrameProcessor.getOutputSize(); @@ -206,9 +209,10 @@ public void drawFrame_changeAspectRatio_scaleToFit_wide_producesExpectedOutput() throws Exception { String testId = "drawFrame_changeAspectRatio_scaleToFit_wide"; presentationFrameProcessor = - new PresentationFrameProcessor.Builder() - .setAspectRatio(2f, PresentationFrameProcessor.LAYOUT_SCALE_TO_FIT) - .build(); + new Presentation.Builder() + .setAspectRatio(2f, Presentation.LAYOUT_SCALE_TO_FIT) + .build() + .toGlFrameProcessor(); presentationFrameProcessor.initialize( getApplicationContext(), inputTexId, inputWidth, inputHeight); Size outputSize = presentationFrameProcessor.getOutputSize(); @@ -235,9 +239,10 @@ public void drawFrame_changeAspectRatio_scaleToFitWithCrop_narrow_producesExpect throws Exception { String testId = "drawFrame_changeAspectRatio_scaleToFitWithCrop_narrow"; presentationFrameProcessor = - new PresentationFrameProcessor.Builder() - .setAspectRatio(1f, PresentationFrameProcessor.LAYOUT_SCALE_TO_FIT_WITH_CROP) - .build(); + new Presentation.Builder() + .setAspectRatio(1f, Presentation.LAYOUT_SCALE_TO_FIT_WITH_CROP) + .build() + .toGlFrameProcessor(); presentationFrameProcessor.initialize( getApplicationContext(), inputTexId, inputWidth, inputHeight); Size outputSize = presentationFrameProcessor.getOutputSize(); @@ -264,9 +269,10 @@ public void drawFrame_changeAspectRatio_scaleToFitWithCrop_wide_producesExpected throws Exception { String testId = "drawFrame_changeAspectRatio_scaleToFitWithCrop_wide"; presentationFrameProcessor = - new PresentationFrameProcessor.Builder() - .setAspectRatio(2f, PresentationFrameProcessor.LAYOUT_SCALE_TO_FIT_WITH_CROP) - .build(); + new Presentation.Builder() + .setAspectRatio(2f, Presentation.LAYOUT_SCALE_TO_FIT_WITH_CROP) + .build() + .toGlFrameProcessor(); presentationFrameProcessor.initialize( getApplicationContext(), inputTexId, inputWidth, inputHeight); Size outputSize = presentationFrameProcessor.getOutputSize(); @@ -293,9 +299,10 @@ public void drawFrame_changeAspectRatio_stretchToFit_narrow_producesExpectedOutp throws Exception { String testId = "drawFrame_changeAspectRatio_stretchToFit_narrow"; presentationFrameProcessor = - new PresentationFrameProcessor.Builder() - .setAspectRatio(1f, PresentationFrameProcessor.LAYOUT_STRETCH_TO_FIT) - .build(); + new Presentation.Builder() + .setAspectRatio(1f, Presentation.LAYOUT_STRETCH_TO_FIT) + .build() + .toGlFrameProcessor(); presentationFrameProcessor.initialize( getApplicationContext(), inputTexId, inputWidth, inputHeight); Size outputSize = presentationFrameProcessor.getOutputSize(); @@ -322,9 +329,10 @@ public void drawFrame_changeAspectRatio_stretchToFit_wide_producesExpectedOutput throws Exception { String testId = "drawFrame_changeAspectRatio_stretchToFit_wide"; presentationFrameProcessor = - new PresentationFrameProcessor.Builder() - .setAspectRatio(2f, PresentationFrameProcessor.LAYOUT_STRETCH_TO_FIT) - .build(); + new Presentation.Builder() + .setAspectRatio(2f, Presentation.LAYOUT_STRETCH_TO_FIT) + .build() + .toGlFrameProcessor(); presentationFrameProcessor.initialize( getApplicationContext(), inputTexId, inputWidth, inputHeight); Size outputSize = presentationFrameProcessor.getOutputSize(); @@ -346,7 +354,7 @@ public void drawFrame_changeAspectRatio_stretchToFit_wide_producesExpectedOutput assertThat(averagePixelAbsoluteDifference).isAtMost(MAXIMUM_AVERAGE_PIXEL_ABSOLUTE_DIFFERENCE); } - private void setupOutputTexture(int outputWidth, int outputHeight) throws IOException { + private void setupOutputTexture(int outputWidth, int outputHeight) { outputTexId = GlUtil.createTexture(outputWidth, outputHeight); int frameBuffer = GlUtil.createFboForTexture(outputTexId); GlUtil.focusFramebuffer( diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/EncoderCompatibilityFrameProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/EncoderCompatibilityTransformation.java similarity index 59% rename from libraries/transformer/src/main/java/androidx/media3/transformer/EncoderCompatibilityFrameProcessor.java rename to libraries/transformer/src/main/java/androidx/media3/transformer/EncoderCompatibilityTransformation.java index 0cd45fa9ac3..b326c480c1d 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/EncoderCompatibilityFrameProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/EncoderCompatibilityTransformation.java @@ -20,23 +20,22 @@ import static androidx.media3.common.util.Assertions.checkStateNotNull; import android.content.Context; +import android.graphics.Matrix; import android.util.Size; -import androidx.annotation.VisibleForTesting; import androidx.media3.common.C; import androidx.media3.common.Format; import androidx.media3.common.util.GlUtil; -import java.io.IOException; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** - * Copies frames from a texture and applies {@link Format#rotationDegrees} for encoder - * compatibility, if needed. + * Specifies a {@link Format#rotationDegrees} to apply to each frame for encoder compatibility, if + * needed. * *

Encoders commonly support higher maximum widths than maximum heights. This may rotate the * decoded frame before encoding, so the encoded frame's width >= height, and set {@link * Format#rotationDegrees} to ensure the frame is displayed in the correct orientation. */ -/* package */ class EncoderCompatibilityFrameProcessor implements GlFrameProcessor { +/* package */ class EncoderCompatibilityTransformation implements MatrixTransformation { // TODO(b/218488308): Allow reconfiguration of the output size, as encoders may not support the // requested output resolution. @@ -45,26 +44,32 @@ } private int outputRotationDegrees; - private @MonotonicNonNull ScaleToFitFrameProcessor rotateFrameProcessor; + private @MonotonicNonNull Matrix transformationMatrix; /** Creates a new instance. */ - /* package */ EncoderCompatibilityFrameProcessor() { - + public EncoderCompatibilityTransformation() { outputRotationDegrees = C.LENGTH_UNSET; } @Override - public void initialize(Context context, int inputTexId, int inputWidth, int inputHeight) - throws IOException { - configureOutputSizeAndRotation(inputWidth, inputHeight); - rotateFrameProcessor = - new ScaleToFitFrameProcessor.Builder().setRotationDegrees(outputRotationDegrees).build(); - rotateFrameProcessor.initialize(context, inputTexId, inputWidth, inputHeight); + public Size configure(int inputWidth, int inputHeight) { + checkArgument(inputWidth > 0, "inputWidth must be positive"); + checkArgument(inputHeight > 0, "inputHeight must be positive"); + + transformationMatrix = new Matrix(); + if (inputHeight > inputWidth) { + outputRotationDegrees = 90; + transformationMatrix.postRotate(outputRotationDegrees); + return new Size(inputHeight, inputWidth); + } else { + outputRotationDegrees = 0; + return new Size(inputWidth, inputHeight); + } } @Override - public Size getOutputSize() { - return checkStateNotNull(rotateFrameProcessor).getOutputSize(); + public Matrix getMatrix(long presentationTimeUs) { + return checkStateNotNull(transformationMatrix, "configure must be called first"); } /** @@ -78,28 +83,7 @@ public Size getOutputSize() { public int getOutputRotationDegrees() { checkState( outputRotationDegrees != C.LENGTH_UNSET, - "configureOutputSizeAndTransformationMatrix must be called before" - + " getOutputRotationDegrees"); + "configure must be called before getOutputRotationDegrees"); return outputRotationDegrees; } - - @Override - public void drawFrame(long presentationTimeUs) { - checkStateNotNull(rotateFrameProcessor).drawFrame(presentationTimeUs); - } - - @Override - public void release() { - if (rotateFrameProcessor != null) { - rotateFrameProcessor.release(); - } - } - - @VisibleForTesting // Allows robolectric testing of output size calculation without OpenGL. - /* package */ void configureOutputSizeAndRotation(int inputWidth, int inputHeight) { - checkArgument(inputWidth > 0, "inputWidth must be positive"); - checkArgument(inputHeight > 0, "inputHeight must be positive"); - - outputRotationDegrees = (inputHeight > inputWidth) ? 90 : 0; - } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java index 52df7d267ac..a61d74699f1 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java @@ -190,14 +190,16 @@ private static ImmutableList getFrameProcessors( // Scale to expand the frame to apply the pixelWidthHeightRatio. if (pixelWidthHeightRatio > 1f) { frameProcessors.add( - new ScaleToFitFrameProcessor.Builder() + new ScaleToFitTransformation.Builder() .setScale(/* scaleX= */ pixelWidthHeightRatio, /* scaleY= */ 1f) - .build()); + .build() + .toGlFrameProcessor()); } else if (pixelWidthHeightRatio < 1f) { frameProcessors.add( - new ScaleToFitFrameProcessor.Builder() + new ScaleToFitTransformation.Builder() .setScale(/* scaleX= */ 1f, /* scaleY= */ 1f / pixelWidthHeightRatio) - .build()); + .build() + .toGlFrameProcessor()); } for (int i = 0; i < effects.size(); i++) { diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java index 0c500e9e6b9..78888af90f0 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java @@ -32,8 +32,7 @@ * Applies a transformation matrix in the vertex shader, and copies input pixels into an output * frame based on their locations after applying this matrix. * - *

Operations are done on normalized device coordinates (-1 to 1 on x and y axes). No automatic - * adjustments (like done in {@link ScaleToFitFrameProcessor}) are applied on the transformation. + *

Operations are done on normalized device coordinates (-1 to 1 on x and y axes). * *

The background color of the output frame will be black. */ @@ -41,7 +40,7 @@ // after each matrix. @UnstableApi @SuppressWarnings("FunctionalInterfaceClash") // b/228192298 -public final class MatrixTransformationFrameProcessor implements GlFrameProcessor { +/* package */ final class MatrixTransformationFrameProcessor implements GlFrameProcessor { static { GlUtil.glAssertionsEnabled = true; diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/PresentationFrameProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Presentation.java similarity index 82% rename from libraries/transformer/src/main/java/androidx/media3/transformer/PresentationFrameProcessor.java rename to libraries/transformer/src/main/java/androidx/media3/transformer/Presentation.java index 48fb9131d92..7823a601ef3 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/PresentationFrameProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Presentation.java @@ -21,36 +21,30 @@ import static java.lang.annotation.ElementType.TYPE_USE; import static java.lang.annotation.RetentionPolicy.SOURCE; -import android.content.Context; import android.graphics.Matrix; import android.util.Size; import androidx.annotation.IntDef; -import androidx.annotation.VisibleForTesting; import androidx.media3.common.C; import androidx.media3.common.util.GlUtil; import androidx.media3.common.util.UnstableApi; -import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.Target; -import org.checkerframework.checker.nullness.qual.EnsuresNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull; /** - * Controls how a frame is presented, by copying input pixels into an output frame, with options to - * set the output resolution, crop the input, and choose how to map the input pixels onto the output - * frame geometry (for example, by stretching the input frame to match the specified output frame, - * or fitting the input frame using letterboxing). + * Controls how a frame is presented with options to set the output resolution, crop the input, and + * choose how to map the input pixels onto the output frame geometry (for example, by stretching the + * input frame to match the specified output frame, or fitting the input frame using letterboxing). * *

Cropping or aspect ratio is applied before setting resolution. * *

The background color of the output frame will be black. */ @UnstableApi -// TODO(b/227625423): Implement MatrixTransformation instead of wrapping -// MatrixTransformationFrameProcessor. -public final class PresentationFrameProcessor implements GlFrameProcessor { +public final class Presentation implements MatrixTransformation { + /** * Strategies controlling the layout of input pixels in the output frame. * @@ -108,7 +102,7 @@ public final class PresentationFrameProcessor implements GlFrameProcessor { */ public static final int LAYOUT_STRETCH_TO_FIT = 2; - /** A builder for {@link PresentationFrameProcessor} instances. */ + /** A builder for {@link Presentation} instances. */ public static final class Builder { // Optional fields. @@ -161,7 +155,7 @@ public Builder setResolution(int height) { * applied after cropping changes. * *

Only one of {@code setCrop} or {@link #setAspectRatio(float, int)} can be called for one - * {@link PresentationFrameProcessor}. + * {@link Presentation}. * * @param left The left edge of the output frame, in NDC. Must be less than {@code right}. * @param right The right edge of the output frame, in NDC. Must be greater than {@code left}. @@ -196,7 +190,7 @@ public Builder setCrop(float left, float right, float bottom, float top) { * applied after aspect ratio changes. * *

Only one of {@link #setCrop(float, float, float, float)} or {@code setAspectRatio} can be - * called for one {@link PresentationFrameProcessor}. + * called for one {@link Presentation}. * * @param aspectRatio The aspect ratio (width/height ratio) of the output frame. Must be * positive. @@ -217,8 +211,8 @@ public Builder setAspectRatio(float aspectRatio, @Layout int layout) { return this; } - public PresentationFrameProcessor build() { - return new PresentationFrameProcessor( + public Presentation build() { + return new Presentation( heightPixels, cropLeft, cropRight, cropBottom, cropTop, aspectRatio, layout); } } @@ -237,12 +231,10 @@ public PresentationFrameProcessor build() { private float outputWidth; private float outputHeight; - private @MonotonicNonNull Size outputSize; private @MonotonicNonNull Matrix transformationMatrix; - private @MonotonicNonNull MatrixTransformationFrameProcessor matrixTransformationFrameProcessor; /** Creates a new instance. */ - private PresentationFrameProcessor( + private Presentation( int requestedHeightPixels, float cropLeft, float cropRight, @@ -264,39 +256,7 @@ private PresentationFrameProcessor( } @Override - public void initialize(Context context, int inputTexId, int inputWidth, int inputHeight) - throws IOException { - configureOutputSizeAndTransformationMatrix(inputWidth, inputHeight); - matrixTransformationFrameProcessor = - new MatrixTransformationFrameProcessor( - /* matrixTransformation= */ (long presentationTimeUs) -> - checkStateNotNull(transformationMatrix)); - matrixTransformationFrameProcessor.initialize(context, inputTexId, inputWidth, inputHeight); - } - - @Override - public Size getOutputSize() { - checkStateNotNull( - outputSize, - "configureOutputSizeAndTransformationMatrix must be called before getOutputSize"); - return outputSize; - } - - @Override - public void drawFrame(long presentationTimeUs) { - checkStateNotNull(matrixTransformationFrameProcessor).drawFrame(presentationTimeUs); - } - - @Override - public void release() { - if (matrixTransformationFrameProcessor != null) { - matrixTransformationFrameProcessor.release(); - } - } - - @EnsuresNonNull("transformationMatrix") - @VisibleForTesting // Allows robolectric testing of output size calculation without OpenGL. - /* package */ void configureOutputSizeAndTransformationMatrix(int inputWidth, int inputHeight) { + public Size configure(int inputWidth, int inputHeight) { checkArgument(inputWidth > 0, "inputWidth must be positive"); checkArgument(inputHeight > 0, "inputHeight must be positive"); @@ -318,7 +278,12 @@ public void release() { outputWidth = requestedHeightPixels * outputWidth / outputHeight; outputHeight = requestedHeightPixels; } - outputSize = new Size(Math.round(outputWidth), Math.round(outputHeight)); + return new Size(Math.round(outputWidth), Math.round(outputHeight)); + } + + @Override + public Matrix getMatrix(long presentationTimeUs) { + return checkStateNotNull(transformationMatrix, "configure must be called first"); } @RequiresNonNull("transformationMatrix") diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/ScaleToFitFrameProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/ScaleToFitTransformation.java similarity index 70% rename from libraries/transformer/src/main/java/androidx/media3/transformer/ScaleToFitFrameProcessor.java rename to libraries/transformer/src/main/java/androidx/media3/transformer/ScaleToFitTransformation.java index f9612367b13..55eddb6aeca 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/ScaleToFitFrameProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/ScaleToFitTransformation.java @@ -20,18 +20,14 @@ import static java.lang.Math.max; import static java.lang.Math.min; -import android.content.Context; import android.graphics.Matrix; import android.util.Size; -import androidx.annotation.VisibleForTesting; import androidx.media3.common.util.GlUtil; import androidx.media3.common.util.UnstableApi; -import java.io.IOException; -import org.checkerframework.checker.nullness.qual.EnsuresNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** - * Applies a simple rotation and/or scale in the vertex shader. + * Specifies a simple rotation and/or scale to apply in the vertex shader. * *

All input frames' pixels will be preserved and copied into an output frame, potentially * changing the width and height of the frame by scaling dimensions to fit. @@ -39,11 +35,9 @@ *

The background color of the output frame will be black. */ @UnstableApi -// TODO(b/227625423): Implement MatrixTransformation instead of wrapping -// MatrixTransformationFrameProcessor. -public final class ScaleToFitFrameProcessor implements GlFrameProcessor { +public final class ScaleToFitTransformation implements MatrixTransformation { - /** A builder for {@link ScaleToFitFrameProcessor} instances. */ + /** A builder for {@link ScaleToFitTransformation} instances. */ public static final class Builder { // Optional fields. @@ -86,8 +80,8 @@ public Builder setRotationDegrees(float rotationDegrees) { return this; } - public ScaleToFitFrameProcessor build() { - return new ScaleToFitFrameProcessor(scaleX, scaleY, rotationDegrees); + public ScaleToFitTransformation build() { + return new ScaleToFitTransformation(scaleX, scaleY, rotationDegrees); } } @@ -96,9 +90,6 @@ public ScaleToFitFrameProcessor build() { } private final Matrix transformationMatrix; - - private @MonotonicNonNull MatrixTransformationFrameProcessor matrixTransformationFrameProcessor; - private @MonotonicNonNull Size outputSize; private @MonotonicNonNull Matrix adjustedTransformationMatrix; /** @@ -108,51 +99,21 @@ public ScaleToFitFrameProcessor build() { * @param scaleY The multiplier by which the frame will scale vertically, along the y-axis. * @param rotationDegrees How much to rotate the frame counterclockwise, in degrees. */ - private ScaleToFitFrameProcessor(float scaleX, float scaleY, float rotationDegrees) { + private ScaleToFitTransformation(float scaleX, float scaleY, float rotationDegrees) { this.transformationMatrix = new Matrix(); this.transformationMatrix.postScale(scaleX, scaleY); this.transformationMatrix.postRotate(rotationDegrees); } @Override - public void initialize(Context context, int inputTexId, int inputWidth, int inputHeight) - throws IOException { - configureOutputSizeAndTransformationMatrix(inputWidth, inputHeight); - matrixTransformationFrameProcessor = - new MatrixTransformationFrameProcessor( - /* matrixTransformation= */ (long presentationTimeUs) -> - checkStateNotNull(adjustedTransformationMatrix)); - matrixTransformationFrameProcessor.initialize(context, inputTexId, inputWidth, inputHeight); - } - - @Override - public Size getOutputSize() { - return checkStateNotNull(outputSize); - } - - @Override - public void drawFrame(long presentationTimeUs) { - checkStateNotNull(matrixTransformationFrameProcessor).drawFrame(presentationTimeUs); - } - - @Override - public void release() { - if (matrixTransformationFrameProcessor != null) { - matrixTransformationFrameProcessor.release(); - } - } - - @EnsuresNonNull("adjustedTransformationMatrix") - @VisibleForTesting // Allows robolectric testing of output size calculation without OpenGL. - /* package */ void configureOutputSizeAndTransformationMatrix(int inputWidth, int inputHeight) { + public Size configure(int inputWidth, int inputHeight) { checkArgument(inputWidth > 0, "inputWidth must be positive"); checkArgument(inputHeight > 0, "inputHeight must be positive"); adjustedTransformationMatrix = new Matrix(transformationMatrix); if (transformationMatrix.isIdentity()) { - outputSize = new Size(inputWidth, inputHeight); - return; + return new Size(inputWidth, inputHeight); } float inputAspectRatio = (float) inputWidth / inputHeight; @@ -181,6 +142,11 @@ public void release() { float scaleX = (maxX - minX) / GlUtil.LENGTH_NDC; float scaleY = (maxY - minY) / GlUtil.LENGTH_NDC; adjustedTransformationMatrix.postScale(1f / scaleX, 1f / scaleY); - outputSize = new Size(Math.round(inputWidth * scaleX), Math.round(inputHeight * scaleY)); + return new Size(Math.round(inputWidth * scaleX), Math.round(inputHeight * scaleY)); + } + + @Override + public Matrix getMatrix(long presentationTimeUs) { + return checkStateNotNull(adjustedTransformationMatrix, "configure must be called first"); } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java index 6d105085c09..6d28f8925fa 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java @@ -74,22 +74,18 @@ public VideoTranscodingSamplePipeline( || transformationRequest.scaleY != 1f || transformationRequest.rotationDegrees != 0f) { effectsListBuilder.add( - () -> - new ScaleToFitFrameProcessor.Builder() - .setScale(transformationRequest.scaleX, transformationRequest.scaleY) - .setRotationDegrees(transformationRequest.rotationDegrees) - .build()); + new ScaleToFitTransformation.Builder() + .setScale(transformationRequest.scaleX, transformationRequest.scaleY) + .setRotationDegrees(transformationRequest.rotationDegrees) + .build()); } if (transformationRequest.outputHeight != C.LENGTH_UNSET) { effectsListBuilder.add( - () -> - new PresentationFrameProcessor.Builder() - .setResolution(transformationRequest.outputHeight) - .build()); + new Presentation.Builder().setResolution(transformationRequest.outputHeight).build()); } - EncoderCompatibilityFrameProcessor encoderCompatibilityFrameProcessor = - new EncoderCompatibilityFrameProcessor(); - effectsListBuilder.add(() -> encoderCompatibilityFrameProcessor); + EncoderCompatibilityTransformation encoderCompatibilityTransformation = + new EncoderCompatibilityTransformation(); + effectsListBuilder.add(encoderCompatibilityTransformation); frameProcessorChain = FrameProcessorChain.create( context, @@ -99,7 +95,7 @@ public VideoTranscodingSamplePipeline( effectsListBuilder.build(), transformationRequest.enableHdrEditing); Size requestedEncoderSize = frameProcessorChain.getOutputSize(); - outputRotationDegrees = encoderCompatibilityFrameProcessor.getOutputRotationDegrees(); + outputRotationDegrees = encoderCompatibilityTransformation.getOutputRotationDegrees(); Format requestedEncoderFormat = new Format.Builder() diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/EncoderCompatibilityFrameProcessorTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/EncoderCompatibilityFrameProcessorTest.java deleted file mode 100644 index 4fb73c90245..00000000000 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/EncoderCompatibilityFrameProcessorTest.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package androidx.media3.transformer; - -import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assert.assertThrows; - -import androidx.test.ext.junit.runners.AndroidJUnit4; -import org.junit.Test; -import org.junit.runner.RunWith; - -/** Unit tests for {@link EncoderCompatibilityFrameProcessor}. */ -@RunWith(AndroidJUnit4.class) -public final class EncoderCompatibilityFrameProcessorTest { - @Test - public void getOutputSize_noEditsLandscape_leavesOrientationUnchanged() { - int inputWidth = 200; - int inputHeight = 150; - EncoderCompatibilityFrameProcessor encoderCompatibilityFrameProcessor = - new EncoderCompatibilityFrameProcessor(); - - encoderCompatibilityFrameProcessor.configureOutputSizeAndRotation(inputWidth, inputHeight); - - assertThat(encoderCompatibilityFrameProcessor.getOutputRotationDegrees()).isEqualTo(0); - } - - @Test - public void getOutputSize_noEditsSquare_leavesOrientationUnchanged() { - int inputWidth = 150; - int inputHeight = 150; - EncoderCompatibilityFrameProcessor encoderCompatibilityFrameProcessor = - new EncoderCompatibilityFrameProcessor(); - - encoderCompatibilityFrameProcessor.configureOutputSizeAndRotation(inputWidth, inputHeight); - - assertThat(encoderCompatibilityFrameProcessor.getOutputRotationDegrees()).isEqualTo(0); - } - - @Test - public void getOutputSize_noEditsPortrait_flipsOrientation() { - int inputWidth = 150; - int inputHeight = 200; - EncoderCompatibilityFrameProcessor encoderCompatibilityFrameProcessor = - new EncoderCompatibilityFrameProcessor(); - - encoderCompatibilityFrameProcessor.configureOutputSizeAndRotation(inputWidth, inputHeight); - - assertThat(encoderCompatibilityFrameProcessor.getOutputRotationDegrees()).isEqualTo(90); - } - - @Test - public void getOutputRotationDegreesBeforeConfigure_throwsIllegalStateException() { - EncoderCompatibilityFrameProcessor encoderCompatibilityFrameProcessor = - new EncoderCompatibilityFrameProcessor(); - - // configureOutputSize not called before getOutputRotationDegrees. - assertThrows( - IllegalStateException.class, encoderCompatibilityFrameProcessor::getOutputRotationDegrees); - } -} diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/EncoderCompatibilityTransformationTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/EncoderCompatibilityTransformationTest.java new file mode 100644 index 00000000000..3eb95008d16 --- /dev/null +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/EncoderCompatibilityTransformationTest.java @@ -0,0 +1,80 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package androidx.media3.transformer; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertThrows; + +import android.util.Size; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** Unit tests for {@link EncoderCompatibilityTransformation}. */ +@RunWith(AndroidJUnit4.class) +public final class EncoderCompatibilityTransformationTest { + @Test + public void configure_noEditsLandscape_leavesOrientationUnchanged() { + int inputWidth = 200; + int inputHeight = 150; + EncoderCompatibilityTransformation encoderCompatibilityTransformation = + new EncoderCompatibilityTransformation(); + + Size outputSize = encoderCompatibilityTransformation.configure(inputWidth, inputHeight); + + assertThat(encoderCompatibilityTransformation.getOutputRotationDegrees()).isEqualTo(0); + assertThat(outputSize.getWidth()).isEqualTo(inputWidth); + assertThat(outputSize.getHeight()).isEqualTo(inputHeight); + } + + @Test + public void configure_noEditsSquare_leavesOrientationUnchanged() { + int inputWidth = 150; + int inputHeight = 150; + EncoderCompatibilityTransformation encoderCompatibilityTransformation = + new EncoderCompatibilityTransformation(); + + Size outputSize = encoderCompatibilityTransformation.configure(inputWidth, inputHeight); + + assertThat(encoderCompatibilityTransformation.getOutputRotationDegrees()).isEqualTo(0); + assertThat(outputSize.getWidth()).isEqualTo(inputWidth); + assertThat(outputSize.getHeight()).isEqualTo(inputHeight); + } + + @Test + public void configure_noEditsPortrait_flipsOrientation() { + int inputWidth = 150; + int inputHeight = 200; + EncoderCompatibilityTransformation encoderCompatibilityTransformation = + new EncoderCompatibilityTransformation(); + + Size outputSize = encoderCompatibilityTransformation.configure(inputWidth, inputHeight); + + assertThat(encoderCompatibilityTransformation.getOutputRotationDegrees()).isEqualTo(90); + assertThat(outputSize.getWidth()).isEqualTo(inputHeight); + assertThat(outputSize.getHeight()).isEqualTo(inputWidth); + } + + @Test + public void getOutputRotationDegreesBeforeConfigure_throwsIllegalStateException() { + EncoderCompatibilityTransformation encoderCompatibilityTransformation = + new EncoderCompatibilityTransformation(); + + // configure not called before getOutputRotationDegrees. + assertThrows( + IllegalStateException.class, encoderCompatibilityTransformation::getOutputRotationDegrees); + } +} diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/PresentationFrameProcessorTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/PresentationTest.java similarity index 56% rename from libraries/transformer/src/test/java/androidx/media3/transformer/PresentationFrameProcessorTest.java rename to libraries/transformer/src/test/java/androidx/media3/transformer/PresentationTest.java index 09b999241e7..aa0c69995d1 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/PresentationFrameProcessorTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/PresentationTest.java @@ -25,55 +25,49 @@ import org.junit.runner.RunWith; /** - * Unit tests for {@link PresentationFrameProcessor}. + * Unit tests for {@link Presentation}. * - *

See {@code PresentationFrameProcessorPixelTest} for pixel tests testing {@link - * PresentationFrameProcessor}. + *

See {@code PresentationFrameProcessorPixelTest} for pixel tests testing {@link Presentation}. */ @RunWith(AndroidJUnit4.class) -public final class PresentationFrameProcessorTest { +public final class PresentationTest { @Test - public void getOutputSize_noEdits_leavesFramesUnchanged() { + public void configure_noEdits_leavesFramesUnchanged() { int inputWidth = 200; int inputHeight = 150; - PresentationFrameProcessor presentationFrameProcessor = - new PresentationFrameProcessor.Builder().build(); + Presentation presentation = new Presentation.Builder().build(); - presentationFrameProcessor.configureOutputSizeAndTransformationMatrix(inputWidth, inputHeight); - Size outputSize = presentationFrameProcessor.getOutputSize(); + Size outputSize = presentation.configure(inputWidth, inputHeight); assertThat(outputSize.getWidth()).isEqualTo(inputWidth); assertThat(outputSize.getHeight()).isEqualTo(inputHeight); } @Test - public void getOutputSize_setResolution_changesDimensions() { + public void configure_setResolution_changesDimensions() { int inputWidth = 200; int inputHeight = 150; int requestedHeight = 300; - PresentationFrameProcessor presentationFrameProcessor = - new PresentationFrameProcessor.Builder().setResolution(requestedHeight).build(); + Presentation presentation = new Presentation.Builder().setResolution(requestedHeight).build(); - presentationFrameProcessor.configureOutputSizeAndTransformationMatrix(inputWidth, inputHeight); - Size outputSize = presentationFrameProcessor.getOutputSize(); + Size outputSize = presentation.configure(inputWidth, inputHeight); assertThat(outputSize.getWidth()).isEqualTo(requestedHeight * inputWidth / inputHeight); assertThat(outputSize.getHeight()).isEqualTo(requestedHeight); } @Test - public void getOutputSize_setCrop_changesDimensions() { + public void configure_setCrop_changesDimensions() { int inputWidth = 300; int inputHeight = 200; float left = -.5f; float right = .5f; float bottom = .5f; float top = 1f; - PresentationFrameProcessor presentationFrameProcessor = - new PresentationFrameProcessor.Builder().setCrop(left, right, bottom, top).build(); + Presentation presentation = + new Presentation.Builder().setCrop(left, right, bottom, top).build(); - presentationFrameProcessor.configureOutputSizeAndTransformationMatrix(inputWidth, inputHeight); - Size outputSize = presentationFrameProcessor.getOutputSize(); + Size outputSize = presentation.configure(inputWidth, inputHeight); int expectedPostCropWidth = Math.round(inputWidth * (right - left) / GlUtil.LENGTH_NDC); int expectedPostCropHeight = Math.round(inputHeight * (top - bottom) / GlUtil.LENGTH_NDC); @@ -82,7 +76,7 @@ public void getOutputSize_setCrop_changesDimensions() { } @Test - public void getOutputSize_setCropAndSetResolution_changesDimensions() { + public void configure_setCropAndSetResolution_changesDimensions() { int inputWidth = 300; int inputHeight = 200; float left = -.5f; @@ -90,14 +84,13 @@ public void getOutputSize_setCropAndSetResolution_changesDimensions() { float bottom = .5f; float top = 1f; int requestedHeight = 100; - PresentationFrameProcessor presentationFrameProcessor = - new PresentationFrameProcessor.Builder() + Presentation presentation = + new Presentation.Builder() .setCrop(left, right, bottom, top) .setResolution(requestedHeight) .build(); - presentationFrameProcessor.configureOutputSizeAndTransformationMatrix(inputWidth, inputHeight); - Size outputSize = presentationFrameProcessor.getOutputSize(); + Size outputSize = presentation.configure(inputWidth, inputHeight); int expectedPostCropWidth = Math.round(inputWidth * (right - left) / GlUtil.LENGTH_NDC); int expectedPostCropHeight = Math.round(inputHeight * (top - bottom) / GlUtil.LENGTH_NDC); @@ -108,7 +101,7 @@ public void getOutputSize_setCropAndSetResolution_changesDimensions() { } @Test - public void getOutputSize_setResolutionAndCrop_changesDimensions() { + public void configure_setResolutionAndCrop_changesDimensions() { int inputWidth = 300; int inputHeight = 200; float left = -.5f; @@ -116,14 +109,13 @@ public void getOutputSize_setResolutionAndCrop_changesDimensions() { float bottom = .5f; float top = 1f; int requestedHeight = 100; - PresentationFrameProcessor presentationFrameProcessor = - new PresentationFrameProcessor.Builder() + Presentation presentation = + new Presentation.Builder() .setResolution(requestedHeight) .setCrop(left, right, bottom, top) .build(); - presentationFrameProcessor.configureOutputSizeAndTransformationMatrix(inputWidth, inputHeight); - Size outputSize = presentationFrameProcessor.getOutputSize(); + Size outputSize = presentation.configure(inputWidth, inputHeight); int expectedPostCropWidth = Math.round(inputWidth * (right - left) / GlUtil.LENGTH_NDC); int expectedPostCropHeight = Math.round(inputHeight * (top - bottom) / GlUtil.LENGTH_NDC); @@ -134,46 +126,44 @@ public void getOutputSize_setResolutionAndCrop_changesDimensions() { } @Test - public void getOutputSize_setAspectRatio_changesDimensions() { + public void configure_setAspectRatio_changesDimensions() { int inputWidth = 300; int inputHeight = 200; float aspectRatio = 2f; - PresentationFrameProcessor presentationFrameProcessor = - new PresentationFrameProcessor.Builder() - .setAspectRatio(aspectRatio, PresentationFrameProcessor.LAYOUT_SCALE_TO_FIT) + Presentation presentation = + new Presentation.Builder() + .setAspectRatio(aspectRatio, Presentation.LAYOUT_SCALE_TO_FIT) .build(); - presentationFrameProcessor.configureOutputSizeAndTransformationMatrix(inputWidth, inputHeight); - Size outputSize = presentationFrameProcessor.getOutputSize(); + Size outputSize = presentation.configure(inputWidth, inputHeight); assertThat(outputSize.getWidth()).isEqualTo(Math.round(aspectRatio * inputHeight)); assertThat(outputSize.getHeight()).isEqualTo(inputHeight); } @Test - public void getOutputSize_setAspectRatioAndResolution_changesDimensions() { + public void configure_setAspectRatioAndResolution_changesDimensions() { int inputWidth = 300; int inputHeight = 200; float aspectRatio = 2f; int requestedHeight = 100; - PresentationFrameProcessor presentationFrameProcessor = - new PresentationFrameProcessor.Builder() - .setAspectRatio(aspectRatio, PresentationFrameProcessor.LAYOUT_SCALE_TO_FIT) + Presentation presentation = + new Presentation.Builder() + .setAspectRatio(aspectRatio, Presentation.LAYOUT_SCALE_TO_FIT) .setResolution(requestedHeight) .build(); - presentationFrameProcessor.configureOutputSizeAndTransformationMatrix(inputWidth, inputHeight); - Size outputSize = presentationFrameProcessor.getOutputSize(); + Size outputSize = presentation.configure(inputWidth, inputHeight); assertThat(outputSize.getWidth()).isEqualTo(Math.round(aspectRatio * requestedHeight)); assertThat(outputSize.getHeight()).isEqualTo(requestedHeight); } @Test - public void getOutputSize_setAspectRatioAndCrop_throwsIllegalStateException() { - PresentationFrameProcessor.Builder presentationFrameProcessor = - new PresentationFrameProcessor.Builder() - .setAspectRatio(/* aspectRatio= */ 2f, PresentationFrameProcessor.LAYOUT_SCALE_TO_FIT); + public void configure_setAspectRatioAndCrop_throwsIllegalStateException() { + Presentation.Builder presentationFrameProcessor = + new Presentation.Builder() + .setAspectRatio(/* aspectRatio= */ 2f, Presentation.LAYOUT_SCALE_TO_FIT); assertThrows( IllegalStateException.class, @@ -183,15 +173,15 @@ public void getOutputSize_setAspectRatioAndCrop_throwsIllegalStateException() { } @Test - public void getOutputSize_setCropAndAspectRatio_throwsIllegalStateException() { - PresentationFrameProcessor.Builder presentationFrameProcessor = - new PresentationFrameProcessor.Builder() + public void configure_setCropAndAspectRatio_throwsIllegalStateException() { + Presentation.Builder presentationFrameProcessor = + new Presentation.Builder() .setCrop(/* left= */ -.5f, /* right= */ .5f, /* bottom= */ .5f, /* top= */ 1f); assertThrows( IllegalStateException.class, () -> presentationFrameProcessor.setAspectRatio( - /* aspectRatio= */ 2f, PresentationFrameProcessor.LAYOUT_SCALE_TO_FIT)); + /* aspectRatio= */ 2f, Presentation.LAYOUT_SCALE_TO_FIT)); } } diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/ScaleToFitFrameProcessorTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/ScaleToFitTransformationTest.java similarity index 50% rename from libraries/transformer/src/test/java/androidx/media3/transformer/ScaleToFitFrameProcessorTest.java rename to libraries/transformer/src/test/java/androidx/media3/transformer/ScaleToFitTransformationTest.java index 6f270e1b4a1..abd3b8b9d00 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/ScaleToFitFrameProcessorTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/ScaleToFitTransformationTest.java @@ -23,96 +23,90 @@ import org.junit.runner.RunWith; /** - * Unit tests for {@link ScaleToFitFrameProcessor}. + * Unit tests for {@link ScaleToFitTransformation}. * - *

See {@code AdvancedFrameProcessorPixelTest} for pixel tests testing {@link - * AdvancedFrameProcessor} given a transformation matrix. + *

See {@code MatrixTransformationFrameProcessorText} for pixel tests testing {@link + * MatrixTransformationFrameProcessor} given a transformation matrix. */ @RunWith(AndroidJUnit4.class) -public final class ScaleToFitFrameProcessorTest { +public final class ScaleToFitTransformationTest { @Test - public void getOutputSize_noEdits_leavesFramesUnchanged() { + public void configure_noEdits_leavesFramesUnchanged() { int inputWidth = 200; int inputHeight = 150; - ScaleToFitFrameProcessor scaleToFitFrameProcessor = - new ScaleToFitFrameProcessor.Builder().build(); + ScaleToFitTransformation scaleToFitTransformation = + new ScaleToFitTransformation.Builder().build(); - scaleToFitFrameProcessor.configureOutputSizeAndTransformationMatrix(inputWidth, inputHeight); - Size outputSize = scaleToFitFrameProcessor.getOutputSize(); + Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); assertThat(outputSize.getWidth()).isEqualTo(inputWidth); assertThat(outputSize.getHeight()).isEqualTo(inputHeight); } @Test - public void getOutputSize_scaleNarrow_decreasesWidth() { + public void configure_scaleNarrow_decreasesWidth() { int inputWidth = 200; int inputHeight = 150; - ScaleToFitFrameProcessor scaleToFitFrameProcessor = - new ScaleToFitFrameProcessor.Builder() + ScaleToFitTransformation scaleToFitTransformation = + new ScaleToFitTransformation.Builder() .setScale(/* scaleX= */ .5f, /* scaleY= */ 1f) .build(); - scaleToFitFrameProcessor.configureOutputSizeAndTransformationMatrix(inputWidth, inputHeight); - Size outputSize = scaleToFitFrameProcessor.getOutputSize(); + Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); assertThat(outputSize.getWidth()).isEqualTo(Math.round(inputWidth * .5f)); assertThat(outputSize.getHeight()).isEqualTo(inputHeight); } @Test - public void getOutputSize_scaleWide_increasesWidth() { + public void configure_scaleWide_increasesWidth() { int inputWidth = 200; int inputHeight = 150; - ScaleToFitFrameProcessor scaleToFitFrameProcessor = - new ScaleToFitFrameProcessor.Builder().setScale(/* scaleX= */ 2f, /* scaleY= */ 1f).build(); + ScaleToFitTransformation scaleToFitTransformation = + new ScaleToFitTransformation.Builder().setScale(/* scaleX= */ 2f, /* scaleY= */ 1f).build(); - scaleToFitFrameProcessor.configureOutputSizeAndTransformationMatrix(inputWidth, inputHeight); - Size outputSize = scaleToFitFrameProcessor.getOutputSize(); + Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); assertThat(outputSize.getWidth()).isEqualTo(inputWidth * 2); assertThat(outputSize.getHeight()).isEqualTo(inputHeight); } @Test - public void getOutputSize_scaleTall_increasesHeight() { + public void configure_scaleTall_increasesHeight() { int inputWidth = 200; int inputHeight = 150; - ScaleToFitFrameProcessor scaleToFitFrameProcessor = - new ScaleToFitFrameProcessor.Builder().setScale(/* scaleX= */ 1f, /* scaleY= */ 2f).build(); + ScaleToFitTransformation scaleToFitTransformation = + new ScaleToFitTransformation.Builder().setScale(/* scaleX= */ 1f, /* scaleY= */ 2f).build(); - scaleToFitFrameProcessor.configureOutputSizeAndTransformationMatrix(inputWidth, inputHeight); - Size outputSize = scaleToFitFrameProcessor.getOutputSize(); + Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); assertThat(outputSize.getWidth()).isEqualTo(inputWidth); assertThat(outputSize.getHeight()).isEqualTo(inputHeight * 2); } @Test - public void getOutputSize_rotate90_swapsDimensions() { + public void configure_rotate90_swapsDimensions() { int inputWidth = 200; int inputHeight = 150; - ScaleToFitFrameProcessor scaleToFitFrameProcessor = - new ScaleToFitFrameProcessor.Builder().setRotationDegrees(90).build(); + ScaleToFitTransformation scaleToFitTransformation = + new ScaleToFitTransformation.Builder().setRotationDegrees(90).build(); - scaleToFitFrameProcessor.configureOutputSizeAndTransformationMatrix(inputWidth, inputHeight); - Size outputSize = scaleToFitFrameProcessor.getOutputSize(); + Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); assertThat(outputSize.getWidth()).isEqualTo(inputHeight); assertThat(outputSize.getHeight()).isEqualTo(inputWidth); } @Test - public void getOutputSize_rotate45_changesDimensions() { + public void configure_rotate45_changesDimensions() { int inputWidth = 200; int inputHeight = 150; - ScaleToFitFrameProcessor scaleToFitFrameProcessor = - new ScaleToFitFrameProcessor.Builder().setRotationDegrees(45).build(); + ScaleToFitTransformation scaleToFitTransformation = + new ScaleToFitTransformation.Builder().setRotationDegrees(45).build(); long expectedOutputWidthHeight = 247; - scaleToFitFrameProcessor.configureOutputSizeAndTransformationMatrix(inputWidth, inputHeight); - Size outputSize = scaleToFitFrameProcessor.getOutputSize(); + Size outputSize = scaleToFitTransformation.configure(inputWidth, inputHeight); assertThat(outputSize.getWidth()).isEqualTo(expectedOutputWidthHeight); assertThat(outputSize.getHeight()).isEqualTo(expectedOutputWidthHeight); From 80928e730c53729d147264a910fb327ba88be257 Mon Sep 17 00:00:00 2001 From: yschimke Date: Thu, 5 May 2022 09:15:06 +0100 Subject: [PATCH 052/182] Workaround for OkHttp Interrupt issues. Relates to https://github.com/square/okhttp/issues/3146. This was from https://github.com/androidx/media/pull/71. There is a draft PR https://github.com/square/okhttp/pull/7185/files which documents OkHttp's ideal handling of cancellation including interrupts. But a few key points 1) This is a target state, and OkHttp does not currently handle interrupts correctly. In the past this has been identified, and the advice is to avoid interrupts on Http threads, see discussion on https://github.com/square/okhttp/issues/1902. Also an attempt at a fix here https://github.com/square/okhttp/pull/7023 which wasn't in a form to land. 2) Even with this fixed, it is likely to never be optimal, because of OkHttp sharing a socket connection for multiple inflight requests. From https://github.com/square/okhttp/pull/7185 ``` Thread.interrupt() is Clumsy ---------------------------- `Thread.interrupt()` is Java's built-in mechanism to cancel an in-flight `Thread`, regardless of what work it's currently performing. We recommend against using `Thread.interrupt()` with OkHttp because it may disrupt shared resources including HTTP/2 connections and cache files. In particular, calling `Thread.interrupt()` may cause unrelated threads' call to fail with an `IOException`. ``` This PR leaves the Loader/DataSource thread parked on a countdown latch, while this may seem wasteful and an additional context switch. However in practice the response isn't returned until the Http2Connection and Http2Reader have a response from the server and these means effectively parking in a `wait()` statement here https://github.com/square/okhttp/blob/9e039e94123defbfd5f11dc64ae146c46b7230eb/okhttp/src/jvmMain/kotlin/okhttp3/internal/http2/Http2Stream.kt#L140 PiperOrigin-RevId: 446652468 --- RELEASENOTES.md | 1 + .../datasource/okhttp/OkHttpDataSource.java | 38 ++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 59cac86f2a6..7c87e71a8e1 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -89,6 +89,7 @@ * Data sources: * Rename `DummyDataSource` to `PlaceHolderDataSource`. + * Workaround OkHttp interrupt handling. * Remove deprecated symbols: * Remove `Player.Listener.onTracksChanged`. Use `Player.Listener.onTracksInfoChanged` instead. diff --git a/libraries/datasource_okhttp/src/main/java/androidx/media3/datasource/okhttp/OkHttpDataSource.java b/libraries/datasource_okhttp/src/main/java/androidx/media3/datasource/okhttp/OkHttpDataSource.java index 42ed4225509..aaa3fe87663 100644 --- a/libraries/datasource_okhttp/src/main/java/androidx/media3/datasource/okhttp/OkHttpDataSource.java +++ b/libraries/datasource_okhttp/src/main/java/androidx/media3/datasource/okhttp/OkHttpDataSource.java @@ -32,10 +32,14 @@ import androidx.media3.datasource.DataSourceException; import androidx.media3.datasource.DataSpec; import androidx.media3.datasource.HttpDataSource; +import androidx.media3.datasource.HttpDataSource.HttpDataSourceException; +import androidx.media3.datasource.HttpDataSource.InvalidContentTypeException; +import androidx.media3.datasource.HttpDataSource.InvalidResponseCodeException; import androidx.media3.datasource.HttpUtil; import androidx.media3.datasource.TransferListener; import com.google.common.base.Predicate; import com.google.common.net.HttpHeaders; +import com.google.common.util.concurrent.SettableFuture; import java.io.IOException; import java.io.InputStream; import java.io.InterruptedIOException; @@ -43,8 +47,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.ExecutionException; import okhttp3.CacheControl; import okhttp3.Call; +import okhttp3.Callback; import okhttp3.HttpUrl; import okhttp3.MediaType; import okhttp3.OkHttpClient; @@ -299,8 +305,9 @@ public long open(DataSpec dataSpec) throws HttpDataSourceException { Request request = makeRequest(dataSpec); Response response; ResponseBody responseBody; + Call call = callFactory.newCall(request); try { - this.response = callFactory.newCall(request).execute(); + this.response = executeCall(call); response = this.response; responseBody = Assertions.checkNotNull(response.body()); responseByteStream = responseBody.byteStream(); @@ -448,6 +455,35 @@ private Request makeRequest(DataSpec dataSpec) throws HttpDataSourceException { return builder.build(); } + /** + * This method is an interrupt safe replacement of OkHttp Call.execute() which can get in bad + * states if interrupted while writing to the shared connection socket. + */ + private Response executeCall(Call call) throws IOException { + SettableFuture future = SettableFuture.create(); + call.enqueue( + new Callback() { + @Override + public void onFailure(Call call, IOException e) { + future.setException(e); + } + + @Override + public void onResponse(Call call, Response response) { + future.set(response); + } + }); + + try { + return future.get(); + } catch (InterruptedException e) { + call.cancel(); + throw new InterruptedIOException(); + } catch (ExecutionException ee) { + throw new IOException(ee); + } + } + /** * Attempts to skip the specified number of bytes in full. * From 3dec4266a361d343b9fcd0e7ef0f7989ec690d93 Mon Sep 17 00:00:00 2001 From: christosts Date: Thu, 5 May 2022 12:57:47 +0100 Subject: [PATCH 053/182] Remove unused classes from session module Remove PlayerNotificationManager and DefaultMediaDescriptionAdapter which are unused in session. The functionality is covered by the MediaNotification.Provider. PiperOrigin-RevId: 446687875 --- .../DefaultMediaDescriptionAdapter.java | 73 -- .../session/PlayerNotificationManager.java | 1148 ----------------- 2 files changed, 1221 deletions(-) delete mode 100644 libraries/session/src/main/java/androidx/media3/session/DefaultMediaDescriptionAdapter.java delete mode 100644 libraries/session/src/main/java/androidx/media3/session/PlayerNotificationManager.java diff --git a/libraries/session/src/main/java/androidx/media3/session/DefaultMediaDescriptionAdapter.java b/libraries/session/src/main/java/androidx/media3/session/DefaultMediaDescriptionAdapter.java deleted file mode 100644 index e70c4185eca..00000000000 --- a/libraries/session/src/main/java/androidx/media3/session/DefaultMediaDescriptionAdapter.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2021 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package androidx.media3.session; - -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.text.TextUtils; -import androidx.annotation.Nullable; -import androidx.media3.common.Player; -import androidx.media3.common.util.UnstableApi; -import androidx.media3.session.PlayerNotificationManager.BitmapCallback; -import androidx.media3.session.PlayerNotificationManager.MediaDescriptionAdapter; - -/** - * Default implementation of {@link MediaDescriptionAdapter}. - * - *

Uses values from the {@link Player#getMediaMetadata() player mediaMetadata} to populate the - * notification. - */ -@UnstableApi -public final class DefaultMediaDescriptionAdapter implements MediaDescriptionAdapter { - - /** Creates a default {@link MediaDescriptionAdapter}. */ - public DefaultMediaDescriptionAdapter() {} - - @Override - public CharSequence getCurrentContentTitle(MediaSession session) { - Player player = session.getPlayer(); - @Nullable CharSequence displayTitle = player.getMediaMetadata().displayTitle; - if (!TextUtils.isEmpty(displayTitle)) { - return displayTitle; - } - - @Nullable CharSequence title = player.getMediaMetadata().title; - return title != null ? title : ""; - } - - @Nullable - @Override - public CharSequence getCurrentContentText(MediaSession session) { - Player player = session.getPlayer(); - @Nullable CharSequence artist = player.getMediaMetadata().artist; - if (!TextUtils.isEmpty(artist)) { - return artist; - } - - return player.getMediaMetadata().albumArtist; - } - - @Nullable - @Override - public Bitmap getCurrentLargeIcon(MediaSession session, BitmapCallback callback) { - Player player = session.getPlayer(); - @Nullable byte[] data = player.getMediaMetadata().artworkData; - if (data == null) { - return null; - } - return BitmapFactory.decodeByteArray(data, /* offset= */ 0, data.length); - } -} diff --git a/libraries/session/src/main/java/androidx/media3/session/PlayerNotificationManager.java b/libraries/session/src/main/java/androidx/media3/session/PlayerNotificationManager.java deleted file mode 100644 index 7796aa2624e..00000000000 --- a/libraries/session/src/main/java/androidx/media3/session/PlayerNotificationManager.java +++ /dev/null @@ -1,1148 +0,0 @@ -/* - * Copyright 2021 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package androidx.media3.session; - -import static androidx.media3.common.Player.COMMAND_INVALID; -import static androidx.media3.common.Player.COMMAND_PLAY_PAUSE; -import static androidx.media3.common.Player.COMMAND_SEEK_BACK; -import static androidx.media3.common.Player.COMMAND_SEEK_FORWARD; -import static androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT; -import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS; -import static androidx.media3.common.Player.EVENT_IS_PLAYING_CHANGED; -import static androidx.media3.common.Player.EVENT_MEDIA_METADATA_CHANGED; -import static androidx.media3.common.Player.EVENT_PLAYBACK_PARAMETERS_CHANGED; -import static androidx.media3.common.Player.EVENT_PLAYBACK_STATE_CHANGED; -import static androidx.media3.common.Player.EVENT_PLAY_WHEN_READY_CHANGED; -import static androidx.media3.common.Player.EVENT_POSITION_DISCONTINUITY; -import static androidx.media3.common.Player.EVENT_REPEAT_MODE_CHANGED; -import static androidx.media3.common.Player.EVENT_SHUFFLE_MODE_ENABLED_CHANGED; -import static androidx.media3.common.Player.EVENT_TIMELINE_CHANGED; -import static androidx.media3.common.util.Assertions.checkArgument; -import static androidx.media3.common.util.Assertions.checkStateNotNull; -import static java.lang.annotation.ElementType.TYPE_USE; - -import android.app.Notification; -import android.app.NotificationChannel; -import android.app.PendingIntent; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.graphics.Bitmap; -import android.graphics.Color; -import android.net.Uri; -import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; -import android.os.Message; -import androidx.annotation.DrawableRes; -import androidx.annotation.IntDef; -import androidx.annotation.IntRange; -import androidx.annotation.Nullable; -import androidx.core.app.NotificationCompat; -import androidx.core.app.NotificationManagerCompat; -import androidx.core.content.ContextCompat; -import androidx.media3.common.C; -import androidx.media3.common.Player; -import androidx.media3.common.util.Assertions; -import androidx.media3.common.util.BundleableUtil; -import androidx.media3.common.util.Log; -import androidx.media3.common.util.NotificationUtil; -import androidx.media3.common.util.UnstableApi; -import androidx.media3.common.util.Util; -import androidx.media3.session.MediaStyleNotificationHelper.MediaStyle; -import com.google.common.util.concurrent.ListenableFuture; -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; -import org.checkerframework.checker.initialization.qual.Initialized; - -/** - * Starts, updates and cancels a media style notification for a {@link MediaSession}. The actions - * included in the notification can be customized along with their drawables, as described below. - * - *

When notification is no longer required, call {@link #release()} to release resources. - * - *

Overriding drawables

- * - * The drawables used by PlayerNotificationManager can be overridden by drawables with the same - * names defined in your application. The drawables that can be overridden are: - * - *
    - *
  • {@code media3_notification_small_icon} - The icon passed by default to {@link - * NotificationCompat.Builder#setSmallIcon(int)}. A different icon can also be specified - * programmatically by calling {@link #setSmallIcon(int)}. - *
  • {@code media3_notification_play} - The play icon. - *
  • {@code media3_notification_pause} - The pause icon. - *
  • {@code media3_notification_rewind} - The rewind icon. - *
  • {@code media3_notification_fastforward} - The fast forward icon. - *
  • {@code media3_notification_previous} - The previous icon. - *
  • {@code media3_notification_next} - The next icon. - *
- * - *

Alternatively, the action icons can be set programatically by using the {@link Builder}. - * - *

Unlike the drawables above, the large icon (i.e. the icon passed to {@link - * NotificationCompat.Builder#setLargeIcon(Bitmap)} cannot be overridden in this way. Instead, the - * large icon is obtained from the {@link MediaDescriptionAdapter} passed to {@link - * Builder#setMediaDescriptionAdapter(MediaDescriptionAdapter)}. - */ -@UnstableApi -public class PlayerNotificationManager { - - /** An adapter to provide content assets of the media currently playing. */ - public interface MediaDescriptionAdapter { - - /** - * Gets the content title for the current media item. - * - *

See {@link NotificationCompat.Builder#setContentTitle(CharSequence)}. - * - * @param session The {@link MediaSession} for which a notification is being built. - * @return The content title for the current media item. - */ - CharSequence getCurrentContentTitle(MediaSession session); - - /** - * Gets the content text for the current media item. - * - *

See {@link NotificationCompat.Builder#setContentText(CharSequence)}. - * - * @param session The {@link MediaSession} for which a notification is being built. - * @return The content text for the current media item, or null if no context text should be - * displayed. - */ - @Nullable - CharSequence getCurrentContentText(MediaSession session); - - /** - * Gets the content sub text for the current media item. - * - *

See {@link NotificationCompat.Builder#setSubText(CharSequence)}. - * - * @param session The {@link MediaSession} for which a notification is being built. - * @return The content subtext for the current media item, or null if no subtext should be - * displayed. - */ - @Nullable - default CharSequence getCurrentSubText(MediaSession session) { - return null; - } - - /** - * Gets the large icon for the current media item. - * - *

When a bitmap needs to be loaded asynchronously, a placeholder bitmap (or null) should be - * returned. The actual bitmap should be passed to the {@link BitmapCallback} once it has been - * loaded. Because the adapter may be called multiple times for the same media item, bitmaps - * should be cached by the app and returned synchronously when possible. - * - *

See {@link NotificationCompat.Builder#setLargeIcon(Bitmap)}. - * - * @param session The {@link MediaSession} for which a notification is being built. - * @param callback A {@link BitmapCallback} to provide a {@link Bitmap} asynchronously. - * @return The large icon for the current media item, or null if the icon will be returned - * through the {@link BitmapCallback} or if no icon should be displayed. - */ - @Nullable - Bitmap getCurrentLargeIcon(MediaSession session, BitmapCallback callback); - } - - /** A listener for changes to the notification. */ - public interface NotificationListener { - - /** - * Called after the notification has been cancelled. - * - * @param notificationId The id of the notification which has been cancelled. - * @param dismissedByUser {@code true} if the notification is cancelled because the user - * dismissed the notification. - */ - default void onNotificationCancelled(int notificationId, boolean dismissedByUser) {} - - /** - * Called each time after the notification has been posted. - * - *

For a service, the {@code ongoing} flag can be used as an indicator as to whether it - * should be in the foreground. - * - * @param notificationId The id of the notification which has been posted. - * @param notification The {@link Notification}. - * @param ongoing Whether the notification is ongoing. - */ - default void onNotificationPosted( - int notificationId, Notification notification, boolean ongoing) {} - } - - /** A builder for {@link PlayerNotificationManager} instances. */ - public static class Builder { - - protected final Context context; - protected final int notificationId; - protected final String channelId; - - protected MediaSession session; - protected Bundle connectionHints; - @Nullable protected NotificationListener notificationListener; - protected MediaDescriptionAdapter mediaDescriptionAdapter; - protected int channelNameResourceId; - protected int channelDescriptionResourceId; - protected int channelImportance; - protected int smallIconResourceId; - @Nullable protected String groupKey; - - /** - * Creates an instance. - * - * @param context The {@link Context}. - * @param notificationId The id of the notification to be posted. Must be greater than 0. - * @param session The session to build notification with. - * @param channelId The id of the notification channel. - */ - public Builder( - Context context, - MediaSession session, - @IntRange(from = 1) int notificationId, - String channelId) { - checkArgument(notificationId > 0); - this.context = context; - this.session = session; - this.notificationId = notificationId; - this.channelId = channelId; - connectionHints = Bundle.EMPTY; - channelImportance = NotificationUtil.IMPORTANCE_LOW; - mediaDescriptionAdapter = new DefaultMediaDescriptionAdapter(); - smallIconResourceId = R.drawable.media3_notification_small_icon; - } - - /** - * The connection hints for identify {@link MediaController} to deliver commands from the - * notification. - * - * @return This builder - */ - public Builder setConnectionHints(Bundle connectionHints) { - this.connectionHints = Assertions.checkNotNull(connectionHints); - return this; - } - - /** - * The name of the channel. If set to a value other than {@code 0}, the channel is automatically - * created when {@link #build()} is called. If the application has already created the - * notification channel, then this method should not be called. - * - *

The default is {@code 0}. - * - * @return This builder. - */ - public Builder setChannelNameResourceId(int channelNameResourceId) { - this.channelNameResourceId = channelNameResourceId; - return this; - } - - /** - * The description of the channel. Ignored if {@link #setChannelNameResourceId(int)} is not - * called with a value other than {@code 0}. If the application has already created the - * notification channel, then this method should not be called. - * - *

The default is {@code 0}. - * - * @return This builder. - */ - public Builder setChannelDescriptionResourceId(int channelDescriptionResourceId) { - this.channelDescriptionResourceId = channelDescriptionResourceId; - return this; - } - - /** - * The importance of the channel. Ignored if {@link #setChannelNameResourceId(int)} is not - * called with a value other than {@code 0}. If the application has already created the - * notification channel, then this method should not be called. - * - *

The default is {@link NotificationUtil#IMPORTANCE_LOW}. - * - * @return This builder. - */ - public Builder setChannelImportance(@NotificationUtil.Importance int channelImportance) { - this.channelImportance = channelImportance; - return this; - } - - /** - * The {@link NotificationListener} to be used. - * - *

The default is {@code null}. - * - * @return This builder. - */ - public Builder setNotificationListener(NotificationListener notificationListener) { - this.notificationListener = notificationListener; - return this; - } - - /** - * The resource id of the small icon of the notification shown in the status bar. See {@link - * NotificationCompat.Builder#setSmallIcon(int)}. - * - *

The default is {@code R.drawable#media3_notification_small_icon}. - * - * @return This builder. - */ - public Builder setSmallIconResourceId(int smallIconResourceId) { - this.smallIconResourceId = smallIconResourceId; - return this; - } - - /** - * The key of the group the media notification should belong to. - * - *

The default is {@code null} - * - * @return This builder. - */ - public Builder setGroup(String groupKey) { - this.groupKey = groupKey; - return this; - } - - /** - * The {@link MediaDescriptionAdapter} to be queried for the notification contents. - * - *

The default is {@link DefaultMediaDescriptionAdapter} with no {@link PendingIntent} - * - * @return This builder. - */ - public Builder setMediaDescriptionAdapter(MediaDescriptionAdapter mediaDescriptionAdapter) { - this.mediaDescriptionAdapter = mediaDescriptionAdapter; - return this; - } - - /** Builds the {@link PlayerNotificationManager}. */ - public PlayerNotificationManager build() { - if (channelNameResourceId != 0) { - NotificationUtil.createNotificationChannel( - context, - channelId, - channelNameResourceId, - channelDescriptionResourceId, - channelImportance); - } - - return new PlayerNotificationManager( - context, - session, - connectionHints, - channelId, - notificationId, - mediaDescriptionAdapter, - notificationListener, - smallIconResourceId, - groupKey); - } - } - - /** Receives a {@link Bitmap}. */ - public final class BitmapCallback { - private final int notificationTag; - - /** Create the receiver. */ - private BitmapCallback(int notificationTag) { - this.notificationTag = notificationTag; - } - - /** - * Called when {@link Bitmap} is available. - * - * @param bitmap The bitmap to use as the large icon of the notification. - */ - public void onBitmap(final Bitmap bitmap) { - if (bitmap != null) { - postUpdateNotificationBitmap(bitmap, notificationTag); - } - } - } - - /** The action which is executed when a button in the notification is clicked. */ - private static final String INTENT_ACTION_COMMAND = "androidx.media3.session.command"; - - /** - * The action which is executed when the notification is dismissed. It cancels the notification - * and calls {@link NotificationListener#onNotificationCancelled(int, boolean)}. - */ - private static final String INTENT_ACTION_DISMISS = - "androidx.media3.session.notification.dismiss"; - - private static final String INTENT_EXTRA_PLAYER_COMMAND = - "androidx.media3.session.EXTRA_PLAYER_COMMAND"; - private static final String INTENT_EXTRA_SESSION_COMMAND = - "androidx.media3.session.EXTRA_SESSION_COMMAND"; - private static final String INTENT_EXTRA_INSTANCE_ID = - "androidx.media3.session.notificaiton.EXTRA_INSTANCE_ID"; - private static final String INTENT_SCHEME = "media3"; - - private static final String TAG = "NotificationManager"; - - // Internal messages. - - private static final int MSG_START_OR_UPDATE_NOTIFICATION = 1; - private static final int MSG_UPDATE_NOTIFICATION_BITMAP = 2; - - /** - * Visibility of notification on the lock screen. One of {@link - * NotificationCompat#VISIBILITY_PRIVATE}, {@link NotificationCompat#VISIBILITY_PUBLIC} or {@link - * NotificationCompat#VISIBILITY_SECRET}. - */ - @Documented - @Retention(RetentionPolicy.SOURCE) - @Target(TYPE_USE) - @IntDef({ - NotificationCompat.VISIBILITY_PRIVATE, - NotificationCompat.VISIBILITY_PUBLIC, - NotificationCompat.VISIBILITY_SECRET - }) - public @interface Visibility {} - - /** - * Priority of the notification (required for API 25 and lower). One of {@link - * NotificationCompat#PRIORITY_DEFAULT}, {@link NotificationCompat#PRIORITY_MAX}, {@link - * NotificationCompat#PRIORITY_HIGH}, {@link NotificationCompat#PRIORITY_LOW }or {@link - * NotificationCompat#PRIORITY_MIN}. - */ - @Documented - @Retention(RetentionPolicy.SOURCE) - @Target(TYPE_USE) - @IntDef({ - NotificationCompat.PRIORITY_DEFAULT, - NotificationCompat.PRIORITY_MAX, - NotificationCompat.PRIORITY_HIGH, - NotificationCompat.PRIORITY_LOW, - NotificationCompat.PRIORITY_MIN - }) - public @interface Priority {} - - private static int instanceIdCounter; - - private final Context context; - private final MediaSession session; - private final ListenableFuture controllerFuture; - private final String channelId; - private final int notificationId; - private final MediaDescriptionAdapter mediaDescriptionAdapter; - @Nullable private final NotificationListener notificationListener; - private final Handler mainHandler; - private final NotificationManagerCompat notificationManager; - private final IntentFilter intentFilter; - private final NotificationBroadcastReceiver notificationBroadcastReceiver; - private final PendingIntent dismissPendingIntent; - private final int instanceId; - private final CommandButton playButton; - private final CommandButton pauseButton; - private final CommandButton seekToPreviousButton; - private final CommandButton seekToNextButton; - private final CommandButton seekBackButton; - private final CommandButton seekForwardButton; - - @Nullable private NotificationCompat.Builder builder; - private boolean isNotificationStarted; - private int currentNotificationTag; - private int badgeIconType; - private boolean colorized; - private int defaults; - private int color; - @DrawableRes private int smallIconResourceId; - private int visibility; - @Priority private int priority; - private boolean useChronometer; - @Nullable private String groupKey; - - protected PlayerNotificationManager( - Context context, - MediaSession session, - Bundle connectionHints, - String channelId, - int notificationId, - MediaDescriptionAdapter mediaDescriptionAdapter, - @Nullable NotificationListener notificationListener, - int smallIconResourceId, - @Nullable String groupKey) { - context = context.getApplicationContext(); - this.context = context; - this.session = session; - this.channelId = channelId; - this.notificationId = notificationId; - this.mediaDescriptionAdapter = mediaDescriptionAdapter; - this.notificationListener = notificationListener; - this.smallIconResourceId = smallIconResourceId; - this.groupKey = groupKey; - instanceId = instanceIdCounter++; - // This fails the nullness checker because handleMessage() is 'called' while `this` is still - // @UnderInitialization. No tasks are scheduled on mainHandler before the constructor completes, - // so this is safe and we can suppress the warning. - @SuppressWarnings("nullness:methodref.receiver.bound") - Handler mainHandler = Util.createHandler(Looper.getMainLooper(), this::handleMessage); - this.mainHandler = mainHandler; - controllerFuture = - new MediaController.Builder(context, session.getToken()) - .setApplicationLooper(Looper.getMainLooper()) - .setConnectionHints(connectionHints) - .setListener(new MediaControllerListener()) - .buildAsync(); - controllerFuture.addListener( - () -> { - @SuppressWarnings("nullness:assignment") - @Initialized - PlayerNotificationManager thisRef = this; - MediaController controller = thisRef.getMediaControllerOrNull(); - if (controller != null) { - controller.addListener(new PlayerListener()); - } - }, - ContextCompat.getMainExecutor(context)); - notificationManager = NotificationManagerCompat.from(context); - notificationBroadcastReceiver = new NotificationBroadcastReceiver(); - intentFilter = new IntentFilter(); - colorized = true; - useChronometer = true; - color = Color.TRANSPARENT; - defaults = 0; - priority = NotificationCompat.PRIORITY_LOW; - badgeIconType = NotificationCompat.BADGE_ICON_SMALL; - visibility = NotificationCompat.VISIBILITY_PUBLIC; - - // initialize default buttons - playButton = - new CommandButton.Builder() - .setDisplayName(context.getText(R.string.media3_controls_play_description)) - .setIconResId(R.drawable.media3_notification_play) - .setPlayerCommand(COMMAND_PLAY_PAUSE) - .build(); - pauseButton = - new CommandButton.Builder() - .setDisplayName(context.getText(R.string.media3_controls_pause_description)) - .setIconResId(R.drawable.media3_notification_pause) - .setPlayerCommand(COMMAND_PLAY_PAUSE) - .build(); - seekToPreviousButton = - new CommandButton.Builder() - .setDisplayName(context.getText(R.string.media3_controls_seek_to_previous_description)) - .setIconResId(R.drawable.media3_notification_seek_to_previous) - .setPlayerCommand(COMMAND_SEEK_TO_PREVIOUS) - .build(); - seekToNextButton = - new CommandButton.Builder() - .setDisplayName(context.getText(R.string.media3_controls_seek_to_next_description)) - .setIconResId(R.drawable.media3_notification_seek_to_next) - .setPlayerCommand(COMMAND_SEEK_TO_NEXT) - .build(); - seekBackButton = - new CommandButton.Builder() - .setDisplayName(context.getText(R.string.media3_controls_seek_back_description)) - .setIconResId(R.drawable.media3_notification_seek_back) - .setPlayerCommand(COMMAND_SEEK_BACK) - .build(); - seekForwardButton = - new CommandButton.Builder() - .setDisplayName(context.getText(R.string.media3_controls_seek_forward_description)) - .setIconResId(R.drawable.media3_notification_seek_forward) - .setPlayerCommand(COMMAND_SEEK_FORWARD) - .build(); - intentFilter.addAction(INTENT_ACTION_COMMAND); - intentFilter.addAction(INTENT_ACTION_DISMISS); - intentFilter.addDataScheme(INTENT_SCHEME); - dismissPendingIntent = createBroadcastIntent(context, INTENT_ACTION_DISMISS, instanceId); - } - - /* Releases all resources, such as internal {@link MediaController}. */ - public void release() { - // This will indirectly call stopNotification(/* dismissedByUser= */ false). - MediaController.releaseFuture(controllerFuture); - } - - /** - * Sets the badge icon type of the notification. - * - *

See {@link NotificationCompat.Builder#setBadgeIconType(int)}. - * - * @param badgeIconType The badge icon type. - */ - public final void setBadgeIconType(@NotificationCompat.BadgeIconType int badgeIconType) { - if (this.badgeIconType == badgeIconType) { - return; - } - switch (badgeIconType) { - case NotificationCompat.BADGE_ICON_NONE: - case NotificationCompat.BADGE_ICON_SMALL: - case NotificationCompat.BADGE_ICON_LARGE: - this.badgeIconType = badgeIconType; - break; - default: - throw new IllegalArgumentException(); - } - invalidate(); - } - - /** - * Sets whether the notification should be colorized. When set, the color set with {@link - * #setColor(int)} will be used as the background color for the notification. - * - *

See {@link NotificationCompat.Builder#setColorized(boolean)}. - * - * @param colorized Whether to colorize the notification. - */ - public final void setColorized(boolean colorized) { - if (this.colorized != colorized) { - this.colorized = colorized; - invalidate(); - } - } - - /** - * Sets the defaults. - * - *

See {@link NotificationCompat.Builder#setDefaults(int)}. - * - * @param defaults The default notification options. - */ - public final void setDefaults(int defaults) { - if (this.defaults != defaults) { - this.defaults = defaults; - invalidate(); - } - } - - /** - * Sets the accent color of the notification. - * - *

See {@link NotificationCompat.Builder#setColor(int)}. - * - * @param color The color, in ARGB integer form like the constants in {@link Color}. - */ - public final void setColor(int color) { - if (this.color != color) { - this.color = color; - invalidate(); - } - } - - /** - * Sets the priority of the notification required for API 25 and lower. - * - *

See {@link NotificationCompat.Builder#setPriority(int)}. - * - *

To set the priority for API levels above 25, you can create your own {@link - * NotificationChannel} with a given importance level and pass the id of the channel to {@link - * Builder#Builder(Context, MediaSession, int, String)}. - * - * @param priority The priority which can be one of {@link NotificationCompat#PRIORITY_DEFAULT}, - * {@link NotificationCompat#PRIORITY_MAX}, {@link NotificationCompat#PRIORITY_HIGH}, {@link - * NotificationCompat#PRIORITY_LOW} or {@link NotificationCompat#PRIORITY_MIN}. If not set - * {@link NotificationCompat#PRIORITY_LOW} is used by default. - */ - public final void setPriority(@Priority int priority) { - if (this.priority == priority) { - return; - } - switch (priority) { - case NotificationCompat.PRIORITY_DEFAULT: - case NotificationCompat.PRIORITY_MAX: - case NotificationCompat.PRIORITY_HIGH: - case NotificationCompat.PRIORITY_LOW: - case NotificationCompat.PRIORITY_MIN: - this.priority = priority; - break; - default: - throw new IllegalArgumentException(); - } - invalidate(); - } - - /** - * Sets the small icon of the notification which is also shown in the system status bar. - * - *

See {@link NotificationCompat.Builder#setSmallIcon(int)}. - * - * @param smallIconResourceId The resource id of the small icon. - */ - public final void setSmallIcon(@DrawableRes int smallIconResourceId) { - if (this.smallIconResourceId != smallIconResourceId) { - this.smallIconResourceId = smallIconResourceId; - invalidate(); - } - } - - /** - * Sets whether the elapsed time of the media playback should be displayed. - * - *

Note that this setting only works if all of the following are true: - * - *

    - *
  • The media is {@link Player#isPlaying() actively playing}. - *
  • The media is not {@link Player#isCurrentWindowDynamic() dynamically changing its - * duration} (like for example a live stream). - *
  • The media is not {@link Player#isPlayingAd() interrupted by an ad}. - *
  • The media is played at {@link Player#getPlaybackParameters() regular speed}. - *
  • The device is running at least API 21 (Lollipop). - *
- * - *

See {@link NotificationCompat.Builder#setUsesChronometer(boolean)}. - * - * @param useChronometer Whether to use chronometer. - */ - public final void setUseChronometer(boolean useChronometer) { - if (this.useChronometer != useChronometer) { - this.useChronometer = useChronometer; - invalidate(); - } - } - - /** - * Sets the visibility of the notification which determines whether and how the notification is - * shown when the device is in lock screen mode. - * - *

See {@link NotificationCompat.Builder#setVisibility(int)}. - * - * @param visibility The visibility which must be one of {@link - * NotificationCompat#VISIBILITY_PUBLIC}, {@link NotificationCompat#VISIBILITY_PRIVATE} or - * {@link NotificationCompat#VISIBILITY_SECRET}. - */ - public final void setVisibility(@Visibility int visibility) { - if (this.visibility == visibility) { - return; - } - switch (visibility) { - case NotificationCompat.VISIBILITY_PRIVATE: - case NotificationCompat.VISIBILITY_PUBLIC: - case NotificationCompat.VISIBILITY_SECRET: - this.visibility = visibility; - break; - default: - throw new IllegalStateException(); - } - invalidate(); - } - - /** Forces an update of the notification if already started. */ - public final void invalidate() { - if (isNotificationStarted) { - postStartOrUpdateNotification(); - } - } - - /** - * Gets the {@link MediaController} to send command to the session with. Can be {@code null} if - * the media controller isn't connected. - */ - @Nullable - public final MediaController getMediaControllerOrNull() { - try { - MediaController controller = controllerFuture.get(0, TimeUnit.MILLISECONDS); - return controller.isConnected() ? controller : null; - } catch (ExecutionException | InterruptedException | TimeoutException e) { - return null; - } - } - - private void startOrUpdateNotification(@Nullable Bitmap bitmap) { - boolean ongoing = getOngoing(); - builder = createNotification(builder, ongoing, bitmap); - if (builder == null) { - stopNotification(/* dismissedByUser= */ false); - return; - } - Notification notification = builder.build(); - notificationManager.notify(notificationId, notification); - if (!isNotificationStarted) { - context.registerReceiver(notificationBroadcastReceiver, intentFilter); - } - if (notificationListener != null) { - // Always pass true for ongoing with the first notification to tell a service to go into - // foreground even when paused. - notificationListener.onNotificationPosted( - notificationId, notification, ongoing || !isNotificationStarted); - } - isNotificationStarted = true; - } - - private void stopNotification(boolean dismissedByUser) { - if (isNotificationStarted) { - isNotificationStarted = false; - mainHandler.removeMessages(MSG_START_OR_UPDATE_NOTIFICATION); - notificationManager.cancel(notificationId); - context.unregisterReceiver(notificationBroadcastReceiver); - if (notificationListener != null) { - notificationListener.onNotificationCancelled(notificationId, dismissedByUser); - } - } - } - - /** - * Creates the notification given the current session state. - * - * @param builder The builder used to build the last notification, or {@code null}. Re-using the - * builder when possible can prevent notification flicker when {@code Util#SDK_INT} < 21. - * @param ongoing Whether the notification should be ongoing. - * @param largeIcon The large icon to be used. - * @return The {@link NotificationCompat.Builder} on which to call {@link - * NotificationCompat.Builder#build()} to obtain the notification, or {@code null} if no - * notification should be displayed. - */ - @Nullable - protected NotificationCompat.Builder createNotification( - @Nullable NotificationCompat.Builder builder, boolean ongoing, @Nullable Bitmap largeIcon) { - Player player = session.getPlayer(); - if (player.getPlaybackState() == Player.STATE_IDLE && player.getCurrentTimeline().isEmpty()) { - return null; - } - - if (builder == null) { - builder = new NotificationCompat.Builder(context, channelId); - } - List actionButtons = getActionButtons(); - for (int i = 0; i < actionButtons.size(); i++) { - CommandButton button = actionButtons.get(i); - NotificationCompat.Action action = - new NotificationCompat.Action( - button.iconResId, - button.displayName, - createBroadcastIntent(context, button, instanceId)); - builder.addAction(action); - } - - MediaStyle mediaStyle = new MediaStyle(session); - mediaStyle.setShowActionsInCompactView(getActionButtonIndicesForCompactView(actionButtons)); - // Configure dismiss action prior to API 21 ('x' button). - mediaStyle.setShowCancelButton(!ongoing); - mediaStyle.setCancelButtonIntent(dismissPendingIntent); - builder.setStyle(mediaStyle); - - // Set intent which is sent if the user selects 'clear all' - builder.setDeleteIntent(dismissPendingIntent); - - // Set notification properties from getters. - builder - .setBadgeIconType(badgeIconType) - .setOngoing(ongoing) - .setColor(color) - .setColorized(colorized) - .setSmallIcon(smallIconResourceId) - .setVisibility(visibility) - .setPriority(priority) - .setDefaults(defaults); - - // Changing "showWhen" causes notification flicker if SDK_INT < 21. - if (Util.SDK_INT >= 21 - && useChronometer - && player.isPlaying() - && !player.isPlayingAd() - && !player.isCurrentWindowDynamic() - && player.getPlaybackParameters().speed == 1f) { - builder - .setWhen(System.currentTimeMillis() - player.getContentPosition()) - .setShowWhen(true) - .setUsesChronometer(true); - } else { - builder.setShowWhen(false).setUsesChronometer(false); - } - - // Set media specific notification properties from MediaDescriptionAdapter. - builder.setContentTitle(mediaDescriptionAdapter.getCurrentContentTitle(session)); - builder.setContentText(mediaDescriptionAdapter.getCurrentContentText(session)); - builder.setSubText(mediaDescriptionAdapter.getCurrentSubText(session)); - if (largeIcon == null) { - largeIcon = - mediaDescriptionAdapter.getCurrentLargeIcon( - session, new BitmapCallback(++currentNotificationTag)); - } - setLargeIcon(builder, largeIcon); - MediaController controller = getMediaControllerOrNull(); - if (controller != null) { - builder.setContentIntent(controller.getSessionActivity()); - } - - if (groupKey != null) { - builder.setGroup(groupKey); - } - - builder.setOnlyAlertOnce(true); - return builder; - } - - /** - * Gets the names and order of the actions to be included in the notification at the current - * player state. - * - *

The playback and custom actions are combined and placed in the following order if not - * omitted: - * - *

-   *   +------------------------------------------------+
-   *   | prev | << | play/pause | >> | next |
-   *   +------------------------------------------------+
-   * 
- * - *

This method can be safely overridden. - */ - protected List getActionButtons() { - Player player = session.getPlayer(); - boolean enablePrevious = player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS); - boolean enableRewind = player.isCommandAvailable(COMMAND_SEEK_BACK); - boolean enableFastForward = player.isCommandAvailable(COMMAND_SEEK_FORWARD); - boolean enableNext = player.isCommandAvailable(COMMAND_SEEK_TO_NEXT); - - List buttons = new ArrayList<>(); - if (enablePrevious) { - buttons.add(seekToPreviousButton); - } - if (enableRewind) { - buttons.add(seekBackButton); - } - if (shouldShowPauseButton()) { - buttons.add(pauseButton); - } else { - buttons.add(playButton); - } - if (enableFastForward) { - buttons.add(seekForwardButton); - } - if (enableNext) { - buttons.add(seekToNextButton); - } - return buttons; - } - - /** - * Gets an array with the indices of the buttons to be shown in compact mode. - * - *

This method can be overridden. The indices must refer to the list of actions passed as the - * first parameter. - * - * @param actionButtons The buttons of the actions included in the notification. - */ - @SuppressWarnings("unused") - protected int[] getActionButtonIndicesForCompactView(List actionButtons) { - int previousIndex = C.INDEX_UNSET; - int nextIndex = C.INDEX_UNSET; - int playPauseIndex = C.INDEX_UNSET; - for (int i = 0; i < actionButtons.size(); i++) { - CommandButton button = actionButtons.get(i); - switch (button.playerCommand) { - case COMMAND_PLAY_PAUSE: - playPauseIndex = i; - break; - case COMMAND_SEEK_TO_PREVIOUS: - previousIndex = i; - break; - case COMMAND_SEEK_TO_NEXT: - nextIndex = i; - break; - default: - // Do nothing - } - } - int[] actionIndices = new int[3]; - int actionCounter = 0; - if (previousIndex != C.INDEX_UNSET) { - actionIndices[actionCounter++] = previousIndex; - } - if (playPauseIndex != C.INDEX_UNSET) { - actionIndices[actionCounter++] = playPauseIndex; - } - if (nextIndex != C.INDEX_UNSET) { - actionIndices[actionCounter++] = nextIndex; - } - return Arrays.copyOf(actionIndices, actionCounter); - } - - /** Returns whether the generated notification should be ongoing. */ - protected boolean getOngoing() { - Player player = session.getPlayer(); - int playbackState = player.getPlaybackState(); - return (playbackState == Player.STATE_BUFFERING || playbackState == Player.STATE_READY) - && player.getPlayWhenReady(); - } - - private boolean shouldShowPauseButton() { - Player player = session.getPlayer(); - return player.getPlaybackState() != Player.STATE_ENDED - && player.getPlaybackState() != Player.STATE_IDLE - && player.getPlayWhenReady(); - } - - private void postStartOrUpdateNotification() { - if (!mainHandler.hasMessages(MSG_START_OR_UPDATE_NOTIFICATION)) { - mainHandler.sendEmptyMessage(MSG_START_OR_UPDATE_NOTIFICATION); - } - } - - private void postUpdateNotificationBitmap(Bitmap bitmap, int notificationTag) { - mainHandler - .obtainMessage( - MSG_UPDATE_NOTIFICATION_BITMAP, notificationTag, C.INDEX_UNSET /* ignored */, bitmap) - .sendToTarget(); - } - - private boolean handleMessage(Message msg) { - switch (msg.what) { - case MSG_START_OR_UPDATE_NOTIFICATION: - startOrUpdateNotification(/* bitmap= */ null); - break; - case MSG_UPDATE_NOTIFICATION_BITMAP: - if (isNotificationStarted && currentNotificationTag == msg.arg1) { - startOrUpdateNotification((Bitmap) msg.obj); - } - break; - default: - return false; - } - return true; - } - - private static PendingIntent createBroadcastIntent( - Context context, CommandButton button, int instanceId) { - Intent intent = new Intent(INTENT_ACTION_COMMAND).setPackage(context.getPackageName()); - intent.putExtra(INTENT_EXTRA_INSTANCE_ID, instanceId); - intent.putExtra(INTENT_EXTRA_PLAYER_COMMAND, button.playerCommand); - intent.putExtra( - INTENT_EXTRA_SESSION_COMMAND, BundleableUtil.toNullableBundle(button.sessionCommand)); - // Make intent distinguishable by Intent#filterEquals() due to the PendingIntent requirement. - Uri intentUri = - new Uri.Builder() - .scheme(INTENT_SCHEME) - .appendPath(Integer.toString(instanceId)) - .appendPath(Integer.toString(button.playerCommand)) - .appendPath(button.sessionCommand == null ? "null" : button.sessionCommand.customAction) - .build(); - intent.setData(intentUri); - return PendingIntent.getBroadcast(context, instanceId, intent, getPendingIntentFlags()); - } - - private static PendingIntent createBroadcastIntent( - Context context, String action, int instanceId) { - Intent intent = new Intent(action).setPackage(context.getPackageName()); - intent.putExtra(INTENT_EXTRA_INSTANCE_ID, instanceId); - return PendingIntent.getBroadcast(context, instanceId, intent, getPendingIntentFlags()); - } - - @SuppressWarnings("nullness:argument") - private static void setLargeIcon(NotificationCompat.Builder builder, @Nullable Bitmap largeIcon) { - builder.setLargeIcon(largeIcon); - } - - private static int getPendingIntentFlags() { - return Util.SDK_INT >= 23 - ? PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE - : PendingIntent.FLAG_UPDATE_CURRENT; - } - - private class PlayerListener implements Player.Listener { - - @Override - public void onEvents(Player player, Player.Events events) { - if (events.containsAny( - EVENT_PLAYBACK_STATE_CHANGED, - EVENT_PLAY_WHEN_READY_CHANGED, - EVENT_IS_PLAYING_CHANGED, - EVENT_TIMELINE_CHANGED, - EVENT_PLAYBACK_PARAMETERS_CHANGED, - EVENT_POSITION_DISCONTINUITY, - EVENT_REPEAT_MODE_CHANGED, - EVENT_SHUFFLE_MODE_ENABLED_CHANGED, - EVENT_MEDIA_METADATA_CHANGED)) { - postStartOrUpdateNotification(); - } - } - } - - private class MediaControllerListener implements MediaController.Listener { - - @Override - public void onDisconnected(MediaController controller) { - stopNotification(/* dismissedByUser= */ false); - } - - @Override - public void onAvailableSessionCommandsChanged( - MediaController controller, SessionCommands commands) { - postStartOrUpdateNotification(); - } - } - - private class NotificationBroadcastReceiver extends BroadcastReceiver { - - @SuppressWarnings("deprecation") - @Override - public void onReceive(Context context, Intent intent) { - MediaController controller = getMediaControllerOrNull(); - if (controller == null - || !isNotificationStarted - || intent.getIntExtra(INTENT_EXTRA_INSTANCE_ID, instanceId) != instanceId) { - return; - } - String action = intent.getAction(); - if (INTENT_ACTION_COMMAND.equals(action)) { - @Player.Command - int playerCommand = intent.getIntExtra(INTENT_EXTRA_PLAYER_COMMAND, COMMAND_INVALID); - switch (playerCommand) { - case COMMAND_PLAY_PAUSE: - if (!controller.getPlayWhenReady()) { - if (controller.getPlaybackState() == controller.STATE_IDLE) { - controller.prepare(); - } else if (controller.getPlaybackState() == controller.STATE_ENDED) { - controller.seekToDefaultPosition(controller.getCurrentWindowIndex()); - } - controller.setPlayWhenReady(true); - } else { - controller.setPlayWhenReady(false); - } - break; - case COMMAND_SEEK_TO_PREVIOUS: - controller.seekToPrevious(); - break; - case COMMAND_SEEK_BACK: - controller.seekBack(); - break; - case COMMAND_SEEK_FORWARD: - controller.seekForward(); - break; - case COMMAND_SEEK_TO_NEXT: - controller.seekToNext(); - break; - case COMMAND_INVALID: - SessionCommand sessionCommand = - checkStateNotNull( - BundleableUtil.fromNullableBundle( - SessionCommand.CREATOR, - intent.getBundleExtra(INTENT_EXTRA_SESSION_COMMAND))); - ListenableFuture unused = - controller.sendCustomCommand(sessionCommand, /* args= */ Bundle.EMPTY); - break; - default: - Log.w(TAG, "Unsupported controller command, playerCommand=" + playerCommand); - break; - } - } else if (INTENT_ACTION_DISMISS.equals(action)) { - stopNotification(/* dismissedByUser= */ true); - } - } - } -} From e9919f6da12c66996a481b31e4c6b0b92a0ec77f Mon Sep 17 00:00:00 2001 From: hschlueter Date: Thu, 5 May 2022 19:24:44 +0100 Subject: [PATCH 054/182] Remove redundant attribute from matrix transformation vertex shader. The texture coordinates can be derived from the frame coordinates. PiperOrigin-RevId: 446770538 --- demos/transformer/src/main/assets/vertex_shader_copy_es2.glsl | 3 +-- .../media3/demo/transformer/BitmapOverlayFrameProcessor.java | 2 -- .../demo/transformer/PeriodicVignetteFrameProcessor.java | 2 -- .../media3/demo/transformer/MediaPipeFrameProcessor.java | 4 ---- .../main/assets/shaders/vertex_shader_tex_transform_es2.glsl | 4 ++-- .../main/assets/shaders/vertex_shader_tex_transform_es3.glsl | 4 ++-- .../main/assets/shaders/vertex_shader_transformation_es2.glsl | 3 +-- .../media3/transformer/ExternalCopyFrameProcessor.java | 2 -- .../transformer/MatrixTransformationFrameProcessor.java | 2 -- 9 files changed, 6 insertions(+), 20 deletions(-) diff --git a/demos/transformer/src/main/assets/vertex_shader_copy_es2.glsl b/demos/transformer/src/main/assets/vertex_shader_copy_es2.glsl index b4c1673d25e..c603e252aca 100644 --- a/demos/transformer/src/main/assets/vertex_shader_copy_es2.glsl +++ b/demos/transformer/src/main/assets/vertex_shader_copy_es2.glsl @@ -16,9 +16,8 @@ // ES 2 vertex shader that leaves the coordinates unchanged. attribute vec4 aFramePosition; -attribute vec4 aTexSamplingCoord; varying vec2 vTexSamplingCoord; void main() { gl_Position = aFramePosition; - vTexSamplingCoord = aTexSamplingCoord.xy; + vTexSamplingCoord = vec2(aFramePosition.x * 0.5 + 0.5, aFramePosition.y * 0.5 + 0.5); } diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayFrameProcessor.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayFrameProcessor.java index ca9d71f18ce..c6cd2c39ec7 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayFrameProcessor.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayFrameProcessor.java @@ -102,8 +102,6 @@ public void initialize(Context context, int inputTexId, int inputWidth, int inpu // Draw the frame on the entire normalized device coordinate space, from -1 to 1, for x and y. glProgram.setBufferAttribute( "aFramePosition", GlUtil.getNormalizedCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); - glProgram.setBufferAttribute( - "aTexSamplingCoord", GlUtil.getTextureCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); glProgram.setSamplerTexIdUniform("uTexSampler0", inputTexId, /* texUnitIndex= */ 0); glProgram.setSamplerTexIdUniform("uTexSampler1", bitmapTexId, /* texUnitIndex= */ 1); glProgram.setFloatUniform("uScaleX", bitmapScaleX); diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteFrameProcessor.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteFrameProcessor.java index 6faf7f4b71d..6d4ff4289cc 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteFrameProcessor.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteFrameProcessor.java @@ -88,8 +88,6 @@ public void initialize(Context context, int inputTexId, int inputWidth, int inpu // Draw the frame on the entire normalized device coordinate space, from -1 to 1, for x and y. glProgram.setBufferAttribute( "aFramePosition", GlUtil.getNormalizedCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); - glProgram.setBufferAttribute( - "aTexSamplingCoord", GlUtil.getTextureCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); } @Override diff --git a/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java b/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java index 9d9b0b9dd36..08e069fbd95 100644 --- a/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java +++ b/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java @@ -145,10 +145,6 @@ public void drawFrame(long presentationTimeUs) { "aFramePosition", GlUtil.getNormalizedCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); - glProgram.setBufferAttribute( - "aTexSamplingCoord", - GlUtil.getTextureCoordinateBounds(), - GlUtil.RECTANGLE_VERTICES_COUNT); glProgram.bindAttributesAndUniforms(); GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); GlUtil.checkGlError(); diff --git a/libraries/transformer/src/main/assets/shaders/vertex_shader_tex_transform_es2.glsl b/libraries/transformer/src/main/assets/shaders/vertex_shader_tex_transform_es2.glsl index f521d2fedb1..20f3058ce2d 100644 --- a/libraries/transformer/src/main/assets/shaders/vertex_shader_tex_transform_es2.glsl +++ b/libraries/transformer/src/main/assets/shaders/vertex_shader_tex_transform_es2.glsl @@ -18,10 +18,10 @@ // locations. attribute vec4 aFramePosition; -attribute vec4 aTexSamplingCoord; uniform mat4 uTexTransform; varying vec2 vTexSamplingCoord; void main() { gl_Position = aFramePosition; - vTexSamplingCoord = (uTexTransform * aTexSamplingCoord).xy; + vec4 texturePosition = vec4(aFramePosition.x * 0.5 + 0.5, aFramePosition.y * 0.5 + 0.5, 0.0, 1.0); + vTexSamplingCoord = (uTexTransform * texturePosition).xy; } diff --git a/libraries/transformer/src/main/assets/shaders/vertex_shader_tex_transform_es3.glsl b/libraries/transformer/src/main/assets/shaders/vertex_shader_tex_transform_es3.glsl index 00dd9bc711f..f732294c901 100644 --- a/libraries/transformer/src/main/assets/shaders/vertex_shader_tex_transform_es3.glsl +++ b/libraries/transformer/src/main/assets/shaders/vertex_shader_tex_transform_es3.glsl @@ -18,10 +18,10 @@ // locations. in vec4 aFramePosition; -in vec4 aTexSamplingCoord; uniform mat4 uTexTransform; out vec2 vTexSamplingCoord; void main() { gl_Position = aFramePosition; - vTexSamplingCoord = (uTexTransform * aTexSamplingCoord).xy; + vec4 texturePosition = vec4(aFramePosition.x * 0.5 + 0.5, aFramePosition.y * 0.5 + 0.5, 0.0, 1.0); + vTexSamplingCoord = (uTexTransform * texturePosition).xy; } diff --git a/libraries/transformer/src/main/assets/shaders/vertex_shader_transformation_es2.glsl b/libraries/transformer/src/main/assets/shaders/vertex_shader_transformation_es2.glsl index 5ac512a0cbe..2491e3d2a22 100644 --- a/libraries/transformer/src/main/assets/shaders/vertex_shader_transformation_es2.glsl +++ b/libraries/transformer/src/main/assets/shaders/vertex_shader_transformation_es2.glsl @@ -17,10 +17,9 @@ // uTransformationMatrix. attribute vec4 aFramePosition; -attribute vec4 aTexSamplingCoord; uniform mat4 uTransformationMatrix; varying vec2 vTexSamplingCoord; void main() { gl_Position = uTransformationMatrix * aFramePosition; - vTexSamplingCoord = aTexSamplingCoord.xy; + vTexSamplingCoord = vec2(aFramePosition.x * 0.5 + 0.5, aFramePosition.y * 0.5 + 0.5); } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java index 6559894a71b..05835db6dfa 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java @@ -80,8 +80,6 @@ public void initialize(Context context, int inputTexId, int inputWidth, int inpu // Draw the frame on the entire normalized device coordinate space, from -1 to 1, for x and y. glProgram.setBufferAttribute( "aFramePosition", GlUtil.getNormalizedCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); - glProgram.setBufferAttribute( - "aTexSamplingCoord", GlUtil.getTextureCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); if (enableExperimentalHdrEditing) { // In HDR editing mode the decoder output is sampled in YUV. glProgram.setFloatsUniform("uColorTransform", MATRIX_YUV_TO_BT2020_COLOR_TRANSFORM); diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java index 78888af90f0..bcde12b5040 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java @@ -89,8 +89,6 @@ public void initialize(Context context, int inputTexId, int inputWidth, int inpu // Draw the frame on the entire normalized device coordinate space, from -1 to 1, for x and y. glProgram.setBufferAttribute( "aFramePosition", GlUtil.getNormalizedCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); - glProgram.setBufferAttribute( - "aTexSamplingCoord", GlUtil.getTextureCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); } @Override From 4f616d60034e13e2236f321cbb3187ac92a2709d Mon Sep 17 00:00:00 2001 From: ibaker Date: Fri, 6 May 2022 12:05:37 +0100 Subject: [PATCH 055/182] Remove ExoPlayer's RawCcExtractor RawCC is a Google-internal subtitle format, and is no longer used with ExoPlayer. PiperOrigin-RevId: 446950691 --- RELEASENOTES.md | 18 +- .../source/chunk/BundledChunkExtractor.java | 10 +- .../dash/manifest/DashManifestParser.java | 6 +- .../dash/manifest/DashManifestParserTest.java | 15 +- .../extractor/rawcc/RawCcExtractor.java | 172 ------------------ .../extractor/rawcc/RawCcExtractorTest.java | 49 ----- .../src/test/assets/media/mpd/sample_mpd_text | 7 - 7 files changed, 18 insertions(+), 259 deletions(-) delete mode 100644 libraries/extractor/src/main/java/androidx/media3/extractor/rawcc/RawCcExtractor.java delete mode 100644 libraries/extractor/src/test/java/androidx/media3/extractor/rawcc/RawCcExtractorTest.java diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 7c87e71a8e1..a9ead31b88c 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -25,14 +25,16 @@ * Audio: * Use LG AC3 audio decoder advertising non-standard MIME type. * Ad playback / IMA: - * Decrease ad polling rate from every 100ms to every 200ms, to line up with - Media Rating Council (MRC) recommendations. + * Decrease ad polling rate from every 100ms to every 200ms, to line up + with Media Rating Council (MRC) recommendations. * Text: * SSA: Support `OutlineColour` style setting when `BorderStyle == 3` (i.e. `OutlineColour` sets the background of the cue) ([#8435](https://github.com/google/ExoPlayer/issues/8435)). * CEA-708: Parse data into multiple service blocks and ignore blocks not associated with the currently selected service number. + * Remove `RawCcExtractor`, which was only used to handle a Google-internal + subtitle format. * Extractors: * Matroska: Parse `DiscardPadding` for Opus tracks. * Parse bitrates from `esds` boxes. @@ -60,16 +62,16 @@ re-enables audio passthrough for DTS streams ([#10159](https://github.com/google/ExoPlayer/issues/10159)). * HLS: - * Fallback to chunkful preparation if the playlist CODECS attribute - does not contain the audio codec + * Fallback to chunkful preparation if the playlist CODECS attribute does + not contain the audio codec ([#10065](https://github.com/google/ExoPlayer/issues/10065)). * RTSP: * Add RTP reader for MPEG4 ([#35](https://github.com/androidx/media/pull/35)). * Add RTP reader for HEVC ([#36](https://github.com/androidx/media/pull/36)). - * Add RTP reader for AMR. Currently only mono-channel, non-interleaved - AMR streams are supported. Compound AMR RTP payload is not supported. + * Add RTP reader for AMR. Currently only mono-channel, non-interleaved AMR + streams are supported. Compound AMR RTP payload is not supported. ([#46](https://github.com/androidx/media/pull/46)) * Add RTP reader for VP8 ([#47](https://github.com/androidx/media/pull/47)). @@ -82,15 +84,19 @@ * Throw checked exception when parsing RTSP timing ([#10165](https://github.com/google/ExoPlayer/issues/10165)). * Session: + * Fix NPE in MediaControllerImplLegacy ([#59](https://github.com/androidx/media/pull/59)) * Update session position info on timeline change([#51](https://github.com/androidx/media/issues/51)) * Data sources: + * Rename `DummyDataSource` to `PlaceHolderDataSource`. * Workaround OkHttp interrupt handling. + * Remove deprecated symbols: + * Remove `Player.Listener.onTracksChanged`. Use `Player.Listener.onTracksInfoChanged` instead. * Remove `Player.getCurrentTrackGroups` and diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/BundledChunkExtractor.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/BundledChunkExtractor.java index 924eb0c4f0a..99c15aa65f2 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/BundledChunkExtractor.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/BundledChunkExtractor.java @@ -36,7 +36,6 @@ import androidx.media3.extractor.TrackOutput; import androidx.media3.extractor.mkv.MatroskaExtractor; import androidx.media3.extractor.mp4.FragmentedMp4Extractor; -import androidx.media3.extractor.rawcc.RawCcExtractor; import java.io.IOException; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; @@ -58,13 +57,8 @@ public final class BundledChunkExtractor implements ExtractorOutput, ChunkExtrac @Nullable String containerMimeType = format.containerMimeType; Extractor extractor; if (MimeTypes.isText(containerMimeType)) { - if (MimeTypes.APPLICATION_RAWCC.equals(containerMimeType)) { - // RawCC is special because it's a text specific container format. - extractor = new RawCcExtractor(format); - } else { - // All other text types are raw formats that do not need an extractor. - return null; - } + // Text types do not need an extractor. + return null; } else if (MimeTypes.isMatroska(containerMimeType)) { extractor = new MatroskaExtractor(MatroskaExtractor.FLAG_DISABLE_SEEK_FOR_CUES); } else { diff --git a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/manifest/DashManifestParser.java b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/manifest/DashManifestParser.java index 7f5ef633732..36c3695193d 100644 --- a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/manifest/DashManifestParser.java +++ b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/manifest/DashManifestParser.java @@ -1675,11 +1675,7 @@ private static String getSampleMimeType( } else if (MimeTypes.isVideo(containerMimeType)) { return MimeTypes.getVideoMediaMimeType(codecs); } else if (MimeTypes.isText(containerMimeType)) { - if (MimeTypes.APPLICATION_RAWCC.equals(containerMimeType)) { - // RawCC is special because it's a text specific container format. - return MimeTypes.getTextMediaMimeType(codecs); - } - // All other text types are raw formats. + // Text types are raw formats. return containerMimeType; } else if (MimeTypes.isImage(containerMimeType)) { // Image types are raw formats. diff --git a/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/manifest/DashManifestParserTest.java b/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/manifest/DashManifestParserTest.java index 1238d756fdd..667f55c197e 100644 --- a/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/manifest/DashManifestParserTest.java +++ b/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/manifest/DashManifestParserTest.java @@ -274,14 +274,6 @@ public void parseMediaPresentationDescription_text() throws IOException { List adaptationSets = manifest.getPeriod(0).adaptationSets; Format format = adaptationSets.get(0).representations.get(0).format; - assertThat(format.containerMimeType).isEqualTo(MimeTypes.APPLICATION_RAWCC); - assertThat(format.sampleMimeType).isEqualTo(MimeTypes.APPLICATION_CEA608); - assertThat(format.codecs).isEqualTo("cea608"); - assertThat(format.roleFlags).isEqualTo(C.ROLE_FLAG_SUBTITLE | C.ROLE_FLAG_MAIN); - assertThat(format.selectionFlags).isEqualTo(0); - assertThat(adaptationSets.get(0).type).isEqualTo(C.TRACK_TYPE_TEXT); - - format = adaptationSets.get(1).representations.get(0).format; assertThat(format.containerMimeType).isEqualTo(MimeTypes.APPLICATION_MP4); assertThat(format.sampleMimeType).isEqualTo(MimeTypes.APPLICATION_TTML); assertThat(format.codecs).isEqualTo("stpp.ttml.im1t"); @@ -291,11 +283,11 @@ public void parseMediaPresentationDescription_text() throws IOException { // Ensure that forced-subtitle and forced_subtitle are both parsed as a 'forced' text track. // https://github.com/google/ExoPlayer/issues/9727 - format = adaptationSets.get(2).representations.get(0).format; + format = adaptationSets.get(1).representations.get(0).format; assertThat(format.roleFlags).isEqualTo(C.ROLE_FLAG_SUBTITLE); assertThat(format.selectionFlags).isEqualTo(C.SELECTION_FLAG_FORCED); - format = adaptationSets.get(3).representations.get(0).format; + format = adaptationSets.get(2).representations.get(0).format; assertThat(format.containerMimeType).isEqualTo(MimeTypes.APPLICATION_TTML); assertThat(format.sampleMimeType).isEqualTo(MimeTypes.APPLICATION_TTML); assertThat(format.codecs).isNull(); @@ -627,11 +619,10 @@ public void availabilityTimeOffset_staticManifest_setToTimeUnset() throws IOExce assertThat(manifest.getPeriodCount()).isEqualTo(1); List adaptationSets = manifest.getPeriod(0).adaptationSets; - assertThat(adaptationSets).hasSize(4); + assertThat(adaptationSets).hasSize(3); assertThat(getAvailabilityTimeOffsetUs(adaptationSets.get(0))).isEqualTo(C.TIME_UNSET); assertThat(getAvailabilityTimeOffsetUs(adaptationSets.get(1))).isEqualTo(C.TIME_UNSET); assertThat(getAvailabilityTimeOffsetUs(adaptationSets.get(2))).isEqualTo(C.TIME_UNSET); - assertThat(getAvailabilityTimeOffsetUs(adaptationSets.get(3))).isEqualTo(C.TIME_UNSET); } @Test diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/rawcc/RawCcExtractor.java b/libraries/extractor/src/main/java/androidx/media3/extractor/rawcc/RawCcExtractor.java deleted file mode 100644 index 45f80353d57..00000000000 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/rawcc/RawCcExtractor.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package androidx.media3.extractor.rawcc; - -import androidx.media3.common.C; -import androidx.media3.common.Format; -import androidx.media3.common.ParserException; -import androidx.media3.common.util.Assertions; -import androidx.media3.common.util.ParsableByteArray; -import androidx.media3.common.util.UnstableApi; -import androidx.media3.extractor.Extractor; -import androidx.media3.extractor.ExtractorInput; -import androidx.media3.extractor.ExtractorOutput; -import androidx.media3.extractor.PositionHolder; -import androidx.media3.extractor.SeekMap; -import androidx.media3.extractor.TrackOutput; -import java.io.IOException; -import org.checkerframework.checker.nullness.qual.MonotonicNonNull; -import org.checkerframework.checker.nullness.qual.RequiresNonNull; - -/** Extracts data from the RawCC container format. */ -@UnstableApi -public final class RawCcExtractor implements Extractor { - - private static final int SCRATCH_SIZE = 9; - private static final int HEADER_SIZE = 8; - private static final int HEADER_ID = 0x52434301; - private static final int TIMESTAMP_SIZE_V0 = 4; - private static final int TIMESTAMP_SIZE_V1 = 8; - - // Parser states. - private static final int STATE_READING_HEADER = 0; - private static final int STATE_READING_TIMESTAMP_AND_COUNT = 1; - private static final int STATE_READING_SAMPLES = 2; - - private final Format format; - private final ParsableByteArray dataScratch; - - private @MonotonicNonNull TrackOutput trackOutput; - private int parserState; - private int version; - private long timestampUs; - private int remainingSampleCount; - private int sampleBytesWritten; - - public RawCcExtractor(Format format) { - this.format = format; - dataScratch = new ParsableByteArray(SCRATCH_SIZE); - parserState = STATE_READING_HEADER; - } - - @Override - public void init(ExtractorOutput output) { - output.seekMap(new SeekMap.Unseekable(C.TIME_UNSET)); - trackOutput = output.track(0, C.TRACK_TYPE_TEXT); - trackOutput.format(format); - output.endTracks(); - } - - @Override - public boolean sniff(ExtractorInput input) throws IOException { - dataScratch.reset(/* limit= */ HEADER_SIZE); - input.peekFully(dataScratch.getData(), 0, HEADER_SIZE); - return dataScratch.readInt() == HEADER_ID; - } - - @Override - public int read(ExtractorInput input, PositionHolder seekPosition) throws IOException { - Assertions.checkStateNotNull(trackOutput); // Asserts that init has been called. - while (true) { - switch (parserState) { - case STATE_READING_HEADER: - if (parseHeader(input)) { - parserState = STATE_READING_TIMESTAMP_AND_COUNT; - } else { - return RESULT_END_OF_INPUT; - } - break; - case STATE_READING_TIMESTAMP_AND_COUNT: - if (parseTimestampAndSampleCount(input)) { - parserState = STATE_READING_SAMPLES; - } else { - parserState = STATE_READING_HEADER; - return RESULT_END_OF_INPUT; - } - break; - case STATE_READING_SAMPLES: - parseSamples(input); - parserState = STATE_READING_TIMESTAMP_AND_COUNT; - return RESULT_CONTINUE; - default: - throw new IllegalStateException(); - } - } - } - - @Override - public void seek(long position, long timeUs) { - parserState = STATE_READING_HEADER; - } - - @Override - public void release() { - // Do nothing - } - - private boolean parseHeader(ExtractorInput input) throws IOException { - dataScratch.reset(/* limit= */ HEADER_SIZE); - if (input.readFully(dataScratch.getData(), 0, HEADER_SIZE, true)) { - if (dataScratch.readInt() != HEADER_ID) { - throw new IOException("Input not RawCC"); - } - version = dataScratch.readUnsignedByte(); - // no versions use the flag fields yet - return true; - } else { - return false; - } - } - - private boolean parseTimestampAndSampleCount(ExtractorInput input) throws IOException { - if (version == 0) { - dataScratch.reset(/* limit= */ TIMESTAMP_SIZE_V0 + 1); - if (!input.readFully(dataScratch.getData(), 0, TIMESTAMP_SIZE_V0 + 1, true)) { - return false; - } - // version 0 timestamps are 45kHz, so we need to convert them into us - timestampUs = dataScratch.readUnsignedInt() * 1000 / 45; - } else if (version == 1) { - dataScratch.reset(/* limit= */ TIMESTAMP_SIZE_V1 + 1); - if (!input.readFully(dataScratch.getData(), 0, TIMESTAMP_SIZE_V1 + 1, true)) { - return false; - } - timestampUs = dataScratch.readLong(); - } else { - throw ParserException.createForMalformedContainer( - "Unsupported version number: " + version, /* cause= */ null); - } - - remainingSampleCount = dataScratch.readUnsignedByte(); - sampleBytesWritten = 0; - return true; - } - - @RequiresNonNull("trackOutput") - private void parseSamples(ExtractorInput input) throws IOException { - for (; remainingSampleCount > 0; remainingSampleCount--) { - dataScratch.reset(/* limit= */ 3); - input.readFully(dataScratch.getData(), 0, 3); - - trackOutput.sampleData(dataScratch, 3); - sampleBytesWritten += 3; - } - - if (sampleBytesWritten > 0) { - trackOutput.sampleMetadata(timestampUs, C.BUFFER_FLAG_KEY_FRAME, sampleBytesWritten, 0, null); - } - } -} diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/rawcc/RawCcExtractorTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/rawcc/RawCcExtractorTest.java deleted file mode 100644 index 4d2ef45ef0e..00000000000 --- a/libraries/extractor/src/test/java/androidx/media3/extractor/rawcc/RawCcExtractorTest.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package androidx.media3.extractor.rawcc; - -import androidx.media3.common.Format; -import androidx.media3.common.MimeTypes; -import androidx.media3.test.utils.ExtractorAsserts; -import com.google.common.collect.ImmutableList; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.ParameterizedRobolectricTestRunner; - -/** Tests for {@link RawCcExtractor}. */ -@RunWith(ParameterizedRobolectricTestRunner.class) -public final class RawCcExtractorTest { - - @ParameterizedRobolectricTestRunner.Parameters(name = "{0}") - public static ImmutableList params() { - return ExtractorAsserts.configs(); - } - - @ParameterizedRobolectricTestRunner.Parameter(0) - public ExtractorAsserts.SimulationConfig simulationConfig; - - @Test - public void rawCcSample() throws Exception { - Format format = - new Format.Builder() - .setSampleMimeType(MimeTypes.APPLICATION_CEA608) - .setCodecs("cea608") - .setAccessibilityChannel(1) - .build(); - ExtractorAsserts.assertBehavior( - () -> new RawCcExtractor(format), "media/rawcc/sample.rawcc", simulationConfig); - } -} diff --git a/libraries/test_data/src/test/assets/media/mpd/sample_mpd_text b/libraries/test_data/src/test/assets/media/mpd/sample_mpd_text index 9af9e24915d..adadafaef5d 100644 --- a/libraries/test_data/src/test/assets/media/mpd/sample_mpd_text +++ b/libraries/test_data/src/test/assets/media/mpd/sample_mpd_text @@ -6,13 +6,6 @@ - - - - - https://test.com/0 - - From e60ba54ddf309832647dff2f38da022b679ed9ad Mon Sep 17 00:00:00 2001 From: huangdarwin Date: Fri, 6 May 2022 12:06:40 +0100 Subject: [PATCH 056/182] Transformer GL: Remove obsolete TODOs. We won't try to provide/rethrow helpful error messages that are already provided by GL, as this sort of task would expand into writing a GL verifier. A Gl verifier is unnecessarily complex for minimal payoff, especially as Apps expected to read GL error messages would mostly be those writing custom GlFrameProcessors, who should be already be familiar with reading GL error messages anyways. PiperOrigin-RevId: 446950837 --- .../androidx/media3/transformer/ExternalCopyFrameProcessor.java | 2 -- .../media3/transformer/MatrixTransformationFrameProcessor.java | 2 -- 2 files changed, 4 deletions(-) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java index 05835db6dfa..dcd5bcb4637 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java @@ -65,8 +65,6 @@ public void initialize(Context context, int inputTexId, int inputWidth, int inpu checkArgument(inputHeight > 0, "inputHeight must be positive"); size = new Size(inputWidth, inputHeight); - // TODO(b/205002913): check the loaded program is consistent with the attributes and uniforms - // expected in the code. String vertexShaderFilePath = enableExperimentalHdrEditing ? VERTEX_SHADER_TEX_TRANSFORM_ES3_PATH diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java index bcde12b5040..b81dd74da89 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java @@ -82,8 +82,6 @@ public void initialize(Context context, int inputTexId, int inputWidth, int inpu checkArgument(inputHeight > 0, "inputHeight must be positive"); outputSize = matrixTransformation.configure(inputWidth, inputHeight); - // TODO(b/205002913): check the loaded program is consistent with the attributes and uniforms - // expected in the code. glProgram = new GlProgram(context, VERTEX_SHADER_TRANSFORMATION_PATH, FRAGMENT_SHADER_PATH); glProgram.setSamplerTexIdUniform("uTexSampler", inputTexId, /* texUnitIndex= */ 0); // Draw the frame on the entire normalized device coordinate space, from -1 to 1, for x and y. From e008a78ea65415b6948b6384642d8c6c5c67e176 Mon Sep 17 00:00:00 2001 From: aquilescanta Date: Fri, 6 May 2022 15:54:21 +0100 Subject: [PATCH 057/182] Disable transcoding when reading content URIs Before this change, we list the formats for which we don't want transcoding. This change disables transcoding altogether. This was tested by checking that transcoding takes place on a short camera recording only when the added flag is not present (and AndroidManifest does not declare support for HEVC). PiperOrigin-RevId: 446986580 --- .../media3/datasource/ContentDataSource.java | 29 ++----------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/libraries/datasource/src/main/java/androidx/media3/datasource/ContentDataSource.java b/libraries/datasource/src/main/java/androidx/media3/datasource/ContentDataSource.java index 32bdeebca46..78d8793d2ae 100644 --- a/libraries/datasource/src/main/java/androidx/media3/datasource/ContentDataSource.java +++ b/libraries/datasource/src/main/java/androidx/media3/datasource/ContentDataSource.java @@ -21,19 +21,13 @@ import android.content.ContentResolver; import android.content.Context; import android.content.res.AssetFileDescriptor; -import android.media.ApplicationMediaCapabilities; -import android.media.MediaFeature; -import android.media.MediaFormat; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; -import androidx.annotation.DoNotInline; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.C; import androidx.media3.common.PlaybackException; import androidx.media3.common.util.UnstableApi; -import androidx.media3.common.util.Util; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; @@ -78,6 +72,7 @@ public ContentDataSource(Context context) { } @Override + @SuppressWarnings("InlinedApi") // We are inlining EXTRA_ACCEPT_ORIGINAL_MEDIA_FORMAT. public long open(DataSpec dataSpec) throws ContentDataSourceException { try { Uri uri = dataSpec.uri; @@ -88,9 +83,8 @@ public long open(DataSpec dataSpec) throws ContentDataSourceException { AssetFileDescriptor assetFileDescriptor; if ("content".equals(dataSpec.uri.getScheme())) { Bundle providerOptions = new Bundle(); - if (Util.SDK_INT >= 31) { - Api31.disableTranscoding(providerOptions); - } + // We don't want compatible media transcoding. + providerOptions.putBoolean(MediaStore.EXTRA_ACCEPT_ORIGINAL_MEDIA_FORMAT, true); assetFileDescriptor = resolver.openTypedAssetFileDescriptor(uri, /* mimeType= */ "*/*", providerOptions); } else { @@ -232,21 +226,4 @@ public void close() throws ContentDataSourceException { } } } - - @RequiresApi(31) - private static final class Api31 { - - @DoNotInline - public static void disableTranscoding(Bundle providerOptions) { - ApplicationMediaCapabilities mediaCapabilities = - new ApplicationMediaCapabilities.Builder() - .addSupportedVideoMimeType(MediaFormat.MIMETYPE_VIDEO_HEVC) - .addSupportedHdrType(MediaFeature.HdrType.DOLBY_VISION) - .addSupportedHdrType(MediaFeature.HdrType.HDR10) - .addSupportedHdrType(MediaFeature.HdrType.HDR10_PLUS) - .addSupportedHdrType(MediaFeature.HdrType.HLG) - .build(); - providerOptions.putParcelable(MediaStore.EXTRA_MEDIA_CAPABILITIES, mediaCapabilities); - } - } } From ff7629aba5a519afd590259853cf2651c5b39445 Mon Sep 17 00:00:00 2001 From: samrobinson Date: Fri, 6 May 2022 16:03:18 +0100 Subject: [PATCH 058/182] Match the suggested bitrate to the actual Kush Gauge formula. As defined in Kush Amerasinghe's paper 'H.264 For the rest of us'. PiperOrigin-RevId: 446988272 --- .../transformer/DefaultEncoderFactory.java | 19 ++++++++++++++++--- .../DefaultEncoderFactoryTest.java | 8 ++++---- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultEncoderFactory.java b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultEncoderFactory.java index 5ec10391ecd..ff638e8eb8b 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultEncoderFactory.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultEncoderFactory.java @@ -504,11 +504,24 @@ private static boolean mimeTypeIsSupported( && allowedMimeTypes.contains(mimeType); } - /** Computes the video bit rate using the Kush Gauge. */ + /** + * Computes the video bit rate using the Kush Gauge. + * + *

{@code kushGaugeBitrate = height * width * frameRate * 0.07 * motionFactor}. + * + *

Motion factors: + * + *

    + *
  • Low motion video - 1 + *
  • Medium motion video - 2 + *
  • High motion video - 4 + *
+ */ private static int getSuggestedBitrate(int width, int height, float frameRate) { // TODO(b/210591626) Implement bitrate estimation. - // 1080p30 -> 6.2Mbps, 720p30 -> 2.7Mbps. - return (int) (width * height * frameRate * 0.1); + // Assume medium motion factor. + // 1080p60 -> 16.6Mbps, 720p30 -> 3.7Mbps. + return (int) (width * height * frameRate * 0.07 * 2); } @RequiresNonNull("#1.sampleMimeType") diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/DefaultEncoderFactoryTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/DefaultEncoderFactoryTest.java index 6fd88d043b0..4078e3eeb41 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/DefaultEncoderFactoryTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/DefaultEncoderFactoryTest.java @@ -74,8 +74,8 @@ public void createForVideoEncoding_withFallbackOnAndSupportedInputFormat_configu assertThat(actualVideoFormat.sampleMimeType).isEqualTo(MimeTypes.VIDEO_H264); assertThat(actualVideoFormat.width).isEqualTo(1920); assertThat(actualVideoFormat.height).isEqualTo(1080); - // 1920 * 1080 * 30 * 0.1 - assertThat(actualVideoFormat.averageBitrate).isEqualTo(6_220_800); + // 1920 * 1080 * 30 * 0.07 * 2. + assertThat(actualVideoFormat.averageBitrate).isEqualTo(8_709_120); } @Test @@ -92,8 +92,8 @@ public void createForVideoEncoding_withFallbackOnAndUnsupportedMimeType_configur assertThat(actualVideoFormat.sampleMimeType).isEqualTo(MimeTypes.VIDEO_H264); assertThat(actualVideoFormat.width).isEqualTo(1920); assertThat(actualVideoFormat.height).isEqualTo(1080); - // 1920 * 1080 * 30 * 0.1 - assertThat(actualVideoFormat.averageBitrate).isEqualTo(6_220_800); + // 1920 * 1080 * 30 * 0.07 * 2. + assertThat(actualVideoFormat.averageBitrate).isEqualTo(8_709_120); } @Test From aae9f23c79fe1e2ea0bc3274b3604c75f91b0dd8 Mon Sep 17 00:00:00 2001 From: Rakesh Kumar Date: Mon, 9 May 2022 19:07:11 +0530 Subject: [PATCH 059/182] Fix some minor review comments in RTPH263Reader Change-Id: I0d728c695c9e11c5a50ef6f211bde614df4bbe71 --- .../exoplayer/rtsp/reader/RtpH263Reader.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java index e3bb0b144a2..df721474d9a 100644 --- a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java +++ b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java @@ -16,7 +16,6 @@ package androidx.media3.exoplayer.rtsp.reader; import static androidx.media3.common.util.Assertions.checkStateNotNull; -import static androidx.media3.common.util.Util.castNonNull; import androidx.media3.common.C; import androidx.media3.common.ParserException; @@ -99,9 +98,9 @@ public void consume(ParsableByteArray data, long timestamp, int sequenceNumber, return; } - if (pBitIsSet == true) { + if (pBitIsSet) { int startCodePayload = data.peekUnsignedByte() & 0xfc; - // Packets that begin with a Picture Start Code(100000). Refer RFC4629 Section 6.1.1. + // Packets that begin with a Picture Start Code(100000). Refer RFC4629 Section 6.1. if (startCodePayload < PICTURE_START_CODE) { Log.w(TAG, "Picture start Code (PSC) missing, Dropping packet."); return; @@ -125,7 +124,7 @@ public void consume(ParsableByteArray data, long timestamp, int sequenceNumber, } if (fragmentedSampleSizeBytes == 0) { - getBufferFlagsAndResolutionFromVop(data, isOutputFormatSet); + parseVopHeader(data, isOutputFormatSet); if (!isOutputFormatSet && isKeyFrame) { if (width != payloadFormat.format.width || height != payloadFormat.format.height) { trackOutput.format( @@ -167,14 +166,21 @@ public void seek(long nextRtpTimestamp, long timeUs) { /** * Parses VOP Coding type and resolution. */ - private void getBufferFlagsAndResolutionFromVop(ParsableByteArray data, boolean gotResolution) { + private void parseVopHeader(ParsableByteArray data, boolean gotResolution) { // Picture Segment Packets (RFC4629 Section 6.1). // Search for SHORT_VIDEO_START_MARKER (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0). int currDataOffset = data.getPosition(); + /** + * Parsing short header. + * + *

These values are taken from Android's software H263 decoder. + */ long shortHeader = data.readUnsignedInt(); - if ((shortHeader & 0xffff) >> 10 == 0x20) { + if (((shortHeader >> 10) & 0xffff) == 0x20) { int header = data.peekUnsignedByte(); - int vopType = ((header >> 1) & 0x01); + int vopType = ((header >> 1) & 0x1); if (!gotResolution && vopType == I_VOP) { /** * Parsing resolution from source format. From dfc424dbe651bc1e2d8f126834baaaf076bbcea6 Mon Sep 17 00:00:00 2001 From: Rakesh Kumar Date: Mon, 9 May 2022 19:13:55 +0530 Subject: [PATCH 060/182] Fix review comment in RTPH263Reader Change-Id: I6ae45dc710245769f36130ead4077d8e9980bf54 --- .../androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java index df721474d9a..558bbacacf3 100644 --- a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java +++ b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpH263Reader.java @@ -178,7 +178,7 @@ private void parseVopHeader(ParsableByteArray data, boolean gotResolution) { * >Android's software H263 decoder. */ long shortHeader = data.readUnsignedInt(); - if (((shortHeader >> 10) & 0xffff) == 0x20) { + if (((shortHeader >> 10) & 0x3f) == 0x20) { int header = data.peekUnsignedByte(); int vopType = ((header >> 1) & 0x1); if (!gotResolution && vopType == I_VOP) { From 2e544224c253aa78f326aa7e3b4d0e0b9de0a543 Mon Sep 17 00:00:00 2001 From: hschlueter Date: Mon, 9 May 2022 11:33:52 +0100 Subject: [PATCH 061/182] Fix GlUtil vector size constant name. This constant is used for https://docs.gl/es2/glVertexAttribPointer which takes the number of components per generic vertex attribute (meaning the size of the individual coordinate vectors here) not the number of attributes (the number of vertices that the old constant name referred to). PiperOrigin-RevId: 447427241 --- .../media3/demo/gl/BitmapOverlayVideoProcessor.java | 8 ++++++-- .../demo/transformer/BitmapOverlayFrameProcessor.java | 4 +++- .../demo/transformer/PeriodicVignetteFrameProcessor.java | 4 +++- .../media3/demo/transformer/MediaPipeFrameProcessor.java | 2 +- .../src/main/java/androidx/media3/common/util/GlUtil.java | 4 ++-- .../media3/transformer/ExternalCopyFrameProcessor.java | 4 +++- .../transformer/MatrixTransformationFrameProcessor.java | 4 +++- 7 files changed, 21 insertions(+), 9 deletions(-) diff --git a/demos/gl/src/main/java/androidx/media3/demo/gl/BitmapOverlayVideoProcessor.java b/demos/gl/src/main/java/androidx/media3/demo/gl/BitmapOverlayVideoProcessor.java index a9329b53435..735abf4cfa0 100644 --- a/demos/gl/src/main/java/androidx/media3/demo/gl/BitmapOverlayVideoProcessor.java +++ b/demos/gl/src/main/java/androidx/media3/demo/gl/BitmapOverlayVideoProcessor.java @@ -87,9 +87,13 @@ public void initialize() { throw new IllegalStateException(e); } program.setBufferAttribute( - "aFramePosition", GlUtil.getNormalizedCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); + "aFramePosition", + GlUtil.getNormalizedCoordinateBounds(), + GlUtil.HOMOGENEOUS_COORDINATE_VECTOR_SIZE); program.setBufferAttribute( - "aTexCoords", GlUtil.getTextureCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); + "aTexCoords", + GlUtil.getTextureCoordinateBounds(), + GlUtil.HOMOGENEOUS_COORDINATE_VECTOR_SIZE); GLES20.glGenTextures(1, textures, 0); GLES20.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]); GLES20.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST); diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayFrameProcessor.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayFrameProcessor.java index c6cd2c39ec7..e4eba6e3bfb 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayFrameProcessor.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayFrameProcessor.java @@ -101,7 +101,9 @@ public void initialize(Context context, int inputTexId, int inputWidth, int inpu glProgram = new GlProgram(context, VERTEX_SHADER_PATH, FRAGMENT_SHADER_PATH); // Draw the frame on the entire normalized device coordinate space, from -1 to 1, for x and y. glProgram.setBufferAttribute( - "aFramePosition", GlUtil.getNormalizedCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); + "aFramePosition", + GlUtil.getNormalizedCoordinateBounds(), + GlUtil.HOMOGENEOUS_COORDINATE_VECTOR_SIZE); glProgram.setSamplerTexIdUniform("uTexSampler0", inputTexId, /* texUnitIndex= */ 0); glProgram.setSamplerTexIdUniform("uTexSampler1", bitmapTexId, /* texUnitIndex= */ 1); glProgram.setFloatUniform("uScaleX", bitmapScaleX); diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteFrameProcessor.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteFrameProcessor.java index 6d4ff4289cc..760c681d971 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteFrameProcessor.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteFrameProcessor.java @@ -87,7 +87,9 @@ public void initialize(Context context, int inputTexId, int inputWidth, int inpu glProgram.setFloatsUniform("uOuterRadius", new float[] {outerRadius}); // Draw the frame on the entire normalized device coordinate space, from -1 to 1, for x and y. glProgram.setBufferAttribute( - "aFramePosition", GlUtil.getNormalizedCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); + "aFramePosition", + GlUtil.getNormalizedCoordinateBounds(), + GlUtil.HOMOGENEOUS_COORDINATE_VECTOR_SIZE); } @Override diff --git a/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java b/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java index 08e069fbd95..163fa91cad5 100644 --- a/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java +++ b/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java @@ -144,7 +144,7 @@ public void drawFrame(long presentationTimeUs) { glProgram.setBufferAttribute( "aFramePosition", GlUtil.getNormalizedCoordinateBounds(), - GlUtil.RECTANGLE_VERTICES_COUNT); + GlUtil.HOMOGENEOUS_COORDINATE_VECTOR_SIZE); glProgram.bindAttributesAndUniforms(); GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); GlUtil.checkGlError(); diff --git a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java index b3f55812fb5..a28bca30f04 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java @@ -53,8 +53,8 @@ public GlException(String message) { /** Whether to throw a {@link GlException} in case of an OpenGL error. */ public static boolean glAssertionsEnabled = false; - /** Number of vertices in a rectangle. */ - public static final int RECTANGLE_VERTICES_COUNT = 4; + /** Number of elements in a 3d homogeneous coordinate vector describing a vertex. */ + public static final int HOMOGENEOUS_COORDINATE_VECTOR_SIZE = 4; /** Length of the normalized device coordinate (NDC) space, which spans from -1 to 1. */ public static final float LENGTH_NDC = 2f; diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java index dcd5bcb4637..05b291512e0 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java @@ -77,7 +77,9 @@ public void initialize(Context context, int inputTexId, int inputWidth, int inpu glProgram.setSamplerTexIdUniform("uTexSampler", inputTexId, /* texUnitIndex= */ 0); // Draw the frame on the entire normalized device coordinate space, from -1 to 1, for x and y. glProgram.setBufferAttribute( - "aFramePosition", GlUtil.getNormalizedCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); + "aFramePosition", + GlUtil.getNormalizedCoordinateBounds(), + GlUtil.HOMOGENEOUS_COORDINATE_VECTOR_SIZE); if (enableExperimentalHdrEditing) { // In HDR editing mode the decoder output is sampled in YUV. glProgram.setFloatsUniform("uColorTransform", MATRIX_YUV_TO_BT2020_COLOR_TRANSFORM); diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java index b81dd74da89..48f53dbcc6e 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java @@ -86,7 +86,9 @@ public void initialize(Context context, int inputTexId, int inputWidth, int inpu glProgram.setSamplerTexIdUniform("uTexSampler", inputTexId, /* texUnitIndex= */ 0); // Draw the frame on the entire normalized device coordinate space, from -1 to 1, for x and y. glProgram.setBufferAttribute( - "aFramePosition", GlUtil.getNormalizedCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT); + "aFramePosition", + GlUtil.getNormalizedCoordinateBounds(), + GlUtil.HOMOGENEOUS_COORDINATE_VECTOR_SIZE); } @Override From 1b15d5c370379a2a33f2a20681626e3975e26e38 Mon Sep 17 00:00:00 2001 From: christosts Date: Mon, 9 May 2022 12:26:50 +0100 Subject: [PATCH 062/182] MediaSessionService: allow apps to opt-out from notifications Issue: androidx/media#50 PiperOrigin-RevId: 447435259 --- .../session/MediaNotificationManager.java | 42 +++++++------ .../media3/session/MediaSessionService.java | 60 +++++++++++++++---- 2 files changed, 73 insertions(+), 29 deletions(-) diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaNotificationManager.java b/libraries/session/src/main/java/androidx/media3/session/MediaNotificationManager.java index 397d0e2bcbe..6376ba641d6 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaNotificationManager.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaNotificationManager.java @@ -73,7 +73,7 @@ public void addSession(MediaSession session) { if (controllerMap.containsKey(session)) { return; } - MediaControllerListener listener = new MediaControllerListener(session); + MediaControllerListener listener = new MediaControllerListener(mediaSessionService, session); ListenableFuture controllerFuture = new MediaController.Builder(mediaSessionService, session.getToken()) .setListener(listener) @@ -118,7 +118,7 @@ public void onCustomAction(MediaSession session, String action, Bundle extras) { } } - private void updateNotification(MediaSession session) { + public void updateNotification(MediaSession session) { @Nullable ListenableFuture controllerFuture = controllerMap.get(session); if (controllerFuture == null) { return; @@ -132,6 +132,11 @@ private void updateNotification(MediaSession session) { throw new IllegalStateException(e); } + if (!mediaSessionService.isSessionAdded(session) || !canStartPlayback(session.getPlayer())) { + maybeStopForegroundService(/* removeNotifications= */ true); + return; + } + int notificationSequence = ++totalNotificationCount; MediaNotification.Provider.Callback callback = notification -> @@ -140,17 +145,18 @@ private void updateNotification(MediaSession session) { MediaNotification mediaNotification = this.mediaNotificationProvider.createNotification(mediaController, actionFactory, callback); - updateNotification(session, mediaNotification); + updateNotificationInternal(session, mediaNotification); } private void onNotificationUpdated( int notificationSequence, MediaSession session, MediaNotification mediaNotification) { if (notificationSequence == totalNotificationCount) { - updateNotification(session, mediaNotification); + updateNotificationInternal(session, mediaNotification); } } - private void updateNotification(MediaSession session, MediaNotification mediaNotification) { + private void updateNotificationInternal( + MediaSession session, MediaNotification mediaNotification) { if (Util.SDK_INT >= 21) { // Call Notification.MediaStyle#setMediaSession() indirectly. android.media.session.MediaSession.Token fwkToken = @@ -188,7 +194,7 @@ private void maybeStopForegroundService(boolean removeNotifications) { } } // To hide the notification on all API levels, we need to call both Service.stopForeground(true) - // and notificationManagerCompat.cancelAll(). For pre-L devices, we must also call + // and notificationManagerCompat.cancel(notificationId). For pre-L devices, we must also call // Service.stopForeground(true) anyway as a workaround that prevents the media notification from // being undismissable. mediaSessionService.stopForeground(removeNotifications || Util.SDK_INT < 21); @@ -209,40 +215,40 @@ private static boolean canStartPlayback(Player player) { return player.getPlaybackState() != Player.STATE_IDLE && !player.getCurrentTimeline().isEmpty(); } - private final class MediaControllerListener implements MediaController.Listener, Player.Listener { + private static final class MediaControllerListener + implements MediaController.Listener, Player.Listener { + private final MediaSessionService mediaSessionService; private final MediaSession session; - public MediaControllerListener(MediaSession session) { + public MediaControllerListener(MediaSessionService mediaSessionService, MediaSession session) { + this.mediaSessionService = mediaSessionService; this.session = session; } public void onConnected() { if (canStartPlayback(session.getPlayer())) { - updateNotification(session); + // We need to present a notification. + mediaSessionService.onUpdateNotification(session); } } @Override public void onEvents(Player player, Player.Events events) { - if (!canStartPlayback(player)) { - maybeStopForegroundService(/* removeNotifications= */ true); - return; - } - - // Limit the events on which we may update the notification to ensure we don't update the - // notification too frequently, otherwise the system may suppress notifications. + // We must limit the frequency of notification updates, otherwise the system may suppress + // them. if (events.containsAny( Player.EVENT_PLAYBACK_STATE_CHANGED, Player.EVENT_PLAY_WHEN_READY_CHANGED, Player.EVENT_MEDIA_METADATA_CHANGED)) { - updateNotification(session); + mediaSessionService.onUpdateNotification(session); } } @Override public void onDisconnected(MediaController controller) { mediaSessionService.removeSession(session); - maybeStopForegroundService(/* removeNotifications= */ true); + // We may need to hide the notification. + mediaSessionService.onUpdateNotification(session); } } } diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java index f2a0ca9fc34..e6fd108f641 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java @@ -94,14 +94,17 @@ * controller. If it's accepted, the controller will be available and keep the binding. If it's * rejected, the controller will unbind. * - *

When a playback is started on the service, the service will obtain a {@link MediaNotification} - * from the {@link MediaNotification.Provider} that's set with {@link #setMediaNotificationProvider} - * (or {@link DefaultMediaNotificationProvider}, if no provider is set), and the service will become - * a foreground - * service. It's required to keep the playback after the controller is destroyed. The service - * will become a background service when all playbacks are stopped. Apps targeting {@code SDK_INT >= - * 28} must request the permission, {@link android.Manifest.permission#FOREGROUND_SERVICE}, in order - * to make the service foreground. + *

{@link #onUpdateNotification(MediaSession)} will be called whenever a notification needs to be + * shown, updated or cancelled. The default implementation will display notifications using a + * default UI or using a {@link MediaNotification.Provider} that's set with {@link + * #setMediaNotificationProvider}. In addition, when playback starts, the service will become a foreground service. + * It's required to keep the playback after the controller is destroyed. The service will become a + * background service when all playbacks are stopped. Apps targeting {@code SDK_INT >= 28} must + * request the permission, {@link android.Manifest.permission#FOREGROUND_SERVICE}, in order to make + * the service foreground. You can control when to show or hide notifications by overriding {@link + * #onUpdateNotification(MediaSession)}. In this case, you must also start or stop the service from + * the foreground, when playback starts or stops respectively. * *

The service will be destroyed when all sessions are closed, or no controller is binding to the * service while the service is in the background. @@ -263,6 +266,16 @@ public final List getSessions() { } } + /** + * Returns whether {@code session} has been added to this service via {@link #addSession} or + * {@link #onGetSession(ControllerInfo)}. + */ + public final boolean isSessionAdded(MediaSession session) { + synchronized (lock) { + return sessions.containsKey(session.getId()); + } + } + /** * Called when a component is about to bind to the service. * @@ -373,12 +386,37 @@ public void onDestroy() { } } + /** + * Called when a notification needs to be updated. Override this method to show or cancel your own + * notifications. + * + *

This method is called whenever the service has detected a change that requires to show, + * update or cancel a notification. The method will be called on the application thread of the app + * that the service belongs to. + * + *

Override this method to create your own notification and customize the foreground handling + * of your service. + * + *

The default implementation will present a default notification or the notification provided + * by the {@link MediaNotification.Provider} that is {@link + * #setMediaNotificationProvider(MediaNotification.Provider) set} by the app. Further, the service + * is started in the foreground when + * playback is ongoing and put back into background otherwise. + * + *

Apps targeting {@code SDK_INT >= 28} must request the permission, {@link + * android.Manifest.permission#FOREGROUND_SERVICE}. + * + * @param session A session that needs notification update. + */ + public void onUpdateNotification(MediaSession session) { + getMediaNotificationManager().updateNotification(session); + } + /** * Sets the {@link MediaNotification.Provider} to customize notifications. * - *

This should be called before any session is attached to this service via {@link - * #onGetSession(ControllerInfo)} or {@link #addSession(MediaSession)}. Otherwise a default UX - * will be shown with {@link DefaultMediaNotificationProvider}. + *

This should be called before {@link #onCreate()} returns. */ @UnstableApi protected final void setMediaNotificationProvider( From 63dcdf58033963f06056358a0884ebfb891a1109 Mon Sep 17 00:00:00 2001 From: hschlueter Date: Mon, 9 May 2022 14:46:53 +0100 Subject: [PATCH 063/182] Add listener for FrameProcessingExceptions. This listener replaces FrameProcessorChain#getAndRethrowBackgroundExceptions. The listener uses a new exception type FrameProcessingException separate from TransformationException as the frame processing components will be made reusable outside of transformer soon. PiperOrigin-RevId: 447455746 --- .../BitmapOverlayFrameProcessor.java | 49 +++-- .../PeriodicVignetteFrameProcessor.java | 22 +- .../transformer/MediaPipeFrameProcessor.java | 7 +- .../androidx/media3/common/util/GlUtil.java | 2 + .../FrameProcessorChainPixelTest.java | 42 +++- .../transformer/FrameProcessorChainTest.java | 13 +- .../ExternalCopyFrameProcessor.java | 15 +- .../transformer/FrameProcessingException.java | 92 ++++++++ .../transformer/FrameProcessorChain.java | 205 ++++++++++-------- .../media3/transformer/GlFrameProcessor.java | 4 +- .../MatrixTransformationFrameProcessor.java | 24 +- .../media3/transformer/Transformer.java | 26 ++- .../transformer/TransformerVideoRenderer.java | 4 + .../VideoTranscodingSamplePipeline.java | 24 +- 14 files changed, 377 insertions(+), 152 deletions(-) create mode 100644 libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessingException.java diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayFrameProcessor.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayFrameProcessor.java index e4eba6e3bfb..5de56cd0e07 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayFrameProcessor.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayFrameProcessor.java @@ -31,6 +31,7 @@ import androidx.media3.common.C; import androidx.media3.common.util.GlProgram; import androidx.media3.common.util.GlUtil; +import androidx.media3.transformer.FrameProcessingException; import androidx.media3.transformer.GlFrameProcessor; import java.io.IOException; import java.util.Locale; @@ -116,28 +117,32 @@ public Size getOutputSize() { } @Override - public void drawFrame(long presentationTimeUs) { - checkStateNotNull(glProgram); - glProgram.use(); - - // Draw to the canvas and store it in a texture. - String text = - String.format(Locale.US, "%.02f", presentationTimeUs / (float) C.MICROS_PER_SECOND); - overlayBitmap.eraseColor(Color.TRANSPARENT); - overlayCanvas.drawBitmap(checkStateNotNull(logoBitmap), /* left= */ 3, /* top= */ 378, paint); - overlayCanvas.drawText(text, /* x= */ 160, /* y= */ 466, paint); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, bitmapTexId); - GLUtils.texSubImage2D( - GLES20.GL_TEXTURE_2D, - /* level= */ 0, - /* xoffset= */ 0, - /* yoffset= */ 0, - flipBitmapVertically(overlayBitmap)); - GlUtil.checkGlError(); - - glProgram.bindAttributesAndUniforms(); - // The four-vertex triangle strip forms a quad. - GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); + public void drawFrame(long presentationTimeUs) throws FrameProcessingException { + try { + checkStateNotNull(glProgram).use(); + + // Draw to the canvas and store it in a texture. + String text = + String.format(Locale.US, "%.02f", presentationTimeUs / (float) C.MICROS_PER_SECOND); + overlayBitmap.eraseColor(Color.TRANSPARENT); + overlayCanvas.drawBitmap(checkStateNotNull(logoBitmap), /* left= */ 3, /* top= */ 378, paint); + overlayCanvas.drawText(text, /* x= */ 160, /* y= */ 466, paint); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, bitmapTexId); + GLUtils.texSubImage2D( + GLES20.GL_TEXTURE_2D, + /* level= */ 0, + /* xoffset= */ 0, + /* yoffset= */ 0, + flipBitmapVertically(overlayBitmap)); + GlUtil.checkGlError(); + + glProgram.bindAttributesAndUniforms(); + // The four-vertex triangle strip forms a quad. + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); + GlUtil.checkGlError(); + } catch (GlUtil.GlException e) { + throw new FrameProcessingException(e); + } } @Override diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteFrameProcessor.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteFrameProcessor.java index 760c681d971..1b91e106878 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteFrameProcessor.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteFrameProcessor.java @@ -23,6 +23,7 @@ import android.util.Size; import androidx.media3.common.util.GlProgram; import androidx.media3.common.util.GlUtil; +import androidx.media3.transformer.FrameProcessingException; import androidx.media3.transformer.GlFrameProcessor; import java.io.IOException; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; @@ -98,14 +99,19 @@ public Size getOutputSize() { } @Override - public void drawFrame(long presentationTimeUs) { - checkStateNotNull(glProgram).use(); - double theta = presentationTimeUs * 2 * Math.PI / DIMMING_PERIOD_US; - float innerRadius = minInnerRadius + deltaInnerRadius * (0.5f - 0.5f * (float) Math.cos(theta)); - glProgram.setFloatsUniform("uInnerRadius", new float[] {innerRadius}); - glProgram.bindAttributesAndUniforms(); - // The four-vertex triangle strip forms a quad. - GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); + public void drawFrame(long presentationTimeUs) throws FrameProcessingException { + try { + checkStateNotNull(glProgram).use(); + double theta = presentationTimeUs * 2 * Math.PI / DIMMING_PERIOD_US; + float innerRadius = + minInnerRadius + deltaInnerRadius * (0.5f - 0.5f * (float) Math.cos(theta)); + glProgram.setFloatsUniform("uInnerRadius", new float[] {innerRadius}); + glProgram.bindAttributesAndUniforms(); + // The four-vertex triangle strip forms a quad. + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); + } catch (GlUtil.GlException e) { + throw new FrameProcessingException(e); + } } @Override diff --git a/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java b/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java index 163fa91cad5..49651c9c0d4 100644 --- a/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java +++ b/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java @@ -26,6 +26,7 @@ import androidx.media3.common.util.GlProgram; import androidx.media3.common.util.GlUtil; import androidx.media3.common.util.LibraryLoader; +import androidx.media3.transformer.FrameProcessingException; import androidx.media3.transformer.GlFrameProcessor; import com.google.mediapipe.components.FrameProcessor; import com.google.mediapipe.framework.AppTextureFrame; @@ -112,7 +113,7 @@ public Size getOutputSize() { } @Override - public void drawFrame(long presentationTimeUs) { + public void drawFrame(long presentationTimeUs) throws FrameProcessingException { frameProcessorConditionVariable.close(); // Pass the input frame to MediaPipe. @@ -133,7 +134,7 @@ public void drawFrame(long presentationTimeUs) { } if (frameProcessorPendingError != null) { - throw new IllegalStateException(frameProcessorPendingError); + throw new FrameProcessingException(frameProcessorPendingError); } // Copy from MediaPipe's output texture to the current output. @@ -148,6 +149,8 @@ public void drawFrame(long presentationTimeUs) { glProgram.bindAttributesAndUniforms(); GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); GlUtil.checkGlError(); + } catch (GlUtil.GlException e) { + throw new FrameProcessingException(e); } finally { checkStateNotNull(outputFrame).release(); } diff --git a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java index a28bca30f04..6aaaedbe395 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java @@ -50,6 +50,8 @@ public GlException(String message) { } } + // TODO(b/231937416): Consider removing this flag, enabling assertions by default, and making + // GlException checked. /** Whether to throw a {@link GlException} in case of an OpenGL error. */ public static boolean glAssertionsEnabled = false; diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainPixelTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainPixelTest.java index 7e3ec259c63..cef6f29d1ea 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainPixelTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainPixelTest.java @@ -16,6 +16,7 @@ package androidx.media3.transformer; import static androidx.media3.common.util.Assertions.checkNotNull; +import static androidx.media3.common.util.Assertions.checkStateNotNull; import static androidx.media3.transformer.BitmapTestUtil.MAXIMUM_AVERAGE_PIXEL_ABSOLUTE_DIFFERENCE; import static androidx.test.core.app.ApplicationProvider.getApplicationContext; import static com.google.common.truth.Truth.assertThat; @@ -36,6 +37,7 @@ import androidx.media3.common.MimeTypes; import androidx.test.ext.junit.runners.AndroidJUnit4; import java.nio.ByteBuffer; +import java.util.concurrent.atomic.AtomicReference; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.junit.After; import org.junit.Test; @@ -78,6 +80,9 @@ public final class FrameProcessorChainPixelTest { /** The ratio of width over height, for each pixel in a frame. */ private static final float DEFAULT_PIXEL_WIDTH_HEIGHT_RATIO = 1; + private final AtomicReference frameProcessingException = + new AtomicReference<>(); + private @MonotonicNonNull FrameProcessorChain frameProcessorChain; private @MonotonicNonNull ImageReader outputImageReader; private @MonotonicNonNull MediaFormat mediaFormat; @@ -229,6 +234,15 @@ public void processData_withScaleToFitTransformation_rotate45_producesExpectedOu assertThat(averagePixelAbsoluteDifference).isAtMost(MAXIMUM_AVERAGE_PIXEL_ABSOLUTE_DIFFERENCE); } + @Test + public void processData_withFrameProcessingException_callsListener() throws Exception { + setUpAndPrepareFirstFrame(DEFAULT_PIXEL_WIDTH_HEIGHT_RATIO, ThrowingFrameProcessor::new); + + Thread.sleep(FRAME_PROCESSING_WAIT_MS); + + assertThat(frameProcessingException.get()).isNotNull(); + } + /** * Set up and prepare the first frame from an input video, as well as relevant test * infrastructure. The frame will be sent towards the {@link FrameProcessorChain}, and may be @@ -258,6 +272,7 @@ private void setUpAndPrepareFirstFrame(float pixelWidthHeightRatio, GlEffect... frameProcessorChain = FrameProcessorChain.create( context, + /* listener= */ this.frameProcessingException::set, pixelWidthHeightRatio, inputWidth, inputHeight, @@ -321,11 +336,11 @@ private void setUpAndPrepareFirstFrame(float pixelWidthHeightRatio, GlEffect... } } - private Bitmap processFirstFrameAndEnd() throws InterruptedException, TransformationException { + private Bitmap processFirstFrameAndEnd() throws InterruptedException { checkNotNull(frameProcessorChain).signalEndOfInputStream(); Thread.sleep(FRAME_PROCESSING_WAIT_MS); assertThat(frameProcessorChain.isEnded()).isTrue(); - frameProcessorChain.getAndRethrowBackgroundExceptions(); + assertThat(frameProcessingException.get()).isNull(); Image frameProcessorChainOutputImage = checkNotNull(outputImageReader).acquireLatestImage(); Bitmap actualBitmap = @@ -333,4 +348,27 @@ private Bitmap processFirstFrameAndEnd() throws InterruptedException, Transforma frameProcessorChainOutputImage.close(); return actualBitmap; } + + private static class ThrowingFrameProcessor implements GlFrameProcessor { + + private @MonotonicNonNull Size outputSize; + + @Override + public void initialize(Context context, int inputTexId, int inputWidth, int inputHeight) { + outputSize = new Size(inputWidth, inputHeight); + } + + @Override + public Size getOutputSize() { + return checkStateNotNull(outputSize); + } + + @Override + public void drawFrame(long presentationTimeUs) throws FrameProcessingException { + throw new FrameProcessingException("An exception occurred."); + } + + @Override + public void release() {} + } } diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainTest.java index ae247be4a20..99c29fbfb56 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainTest.java @@ -23,6 +23,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.common.collect.ImmutableList; import java.util.List; +import java.util.concurrent.atomic.AtomicReference; import org.junit.Test; import org.junit.runner.RunWith; @@ -33,6 +34,8 @@ */ @RunWith(AndroidJUnit4.class) public final class FrameProcessorChainTest { + private final AtomicReference frameProcessingException = + new AtomicReference<>(); @Test public void getOutputSize_noOperation_returnsInputSize() throws Exception { @@ -46,6 +49,7 @@ public void getOutputSize_noOperation_returnsInputSize() throws Exception { Size outputSize = frameProcessorChain.getOutputSize(); assertThat(outputSize).isEqualTo(inputSize); + assertThat(frameProcessingException.get()).isNull(); } @Test @@ -60,6 +64,7 @@ public void getOutputSize_withWidePixels_returnsWiderOutputSize() throws Excepti Size outputSize = frameProcessorChain.getOutputSize(); assertThat(outputSize).isEqualTo(new Size(400, 100)); + assertThat(frameProcessingException.get()).isNull(); } @Test @@ -74,6 +79,7 @@ public void getOutputSize_withTallPixels_returnsTallerOutputSize() throws Except Size outputSize = frameProcessorChain.getOutputSize(); assertThat(outputSize).isEqualTo(new Size(200, 200)); + assertThat(frameProcessingException.get()).isNull(); } @Test @@ -89,6 +95,7 @@ public void getOutputSize_withOneFrameProcessor_returnsItsOutputSize() throws Ex Size frameProcessorChainOutputSize = frameProcessorChain.getOutputSize(); assertThat(frameProcessorChainOutputSize).isEqualTo(frameProcessorOutputSize); + assertThat(frameProcessingException.get()).isNull(); } @Test @@ -107,17 +114,19 @@ public void getOutputSize_withThreeFrameProcessors_returnsLastOutputSize() throw Size frameProcessorChainOutputSize = frameProcessorChain.getOutputSize(); assertThat(frameProcessorChainOutputSize).isEqualTo(outputSize3); + assertThat(frameProcessingException.get()).isNull(); } - private static FrameProcessorChain createFrameProcessorChainWithFakeFrameProcessors( + private FrameProcessorChain createFrameProcessorChainWithFakeFrameProcessors( float pixelWidthHeightRatio, Size inputSize, List frameProcessorOutputSizes) - throws TransformationException { + throws FrameProcessingException { ImmutableList.Builder effects = new ImmutableList.Builder<>(); for (Size element : frameProcessorOutputSizes) { effects.add(() -> new FakeFrameProcessor(element)); } return FrameProcessorChain.create( getApplicationContext(), + /* listener= */ this.frameProcessingException::set, pixelWidthHeightRatio, inputSize.getWidth(), inputSize.getHeight(), diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java index 05b291512e0..83c3abffde0 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalCopyFrameProcessor.java @@ -104,12 +104,17 @@ public void setTextureTransformMatrix(float[] textureTransformMatrix) { } @Override - public void drawFrame(long presentationTimeUs) { + public void drawFrame(long presentationTimeUs) throws FrameProcessingException { checkStateNotNull(glProgram); - glProgram.use(); - glProgram.bindAttributesAndUniforms(); - // The four-vertex triangle strip forms a quad. - GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); + try { + glProgram.use(); + glProgram.bindAttributesAndUniforms(); + // The four-vertex triangle strip forms a quad. + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); + GlUtil.checkGlError(); + } catch (GlUtil.GlException e) { + throw new FrameProcessingException(e); + } } @Override diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessingException.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessingException.java new file mode 100644 index 00000000000..6d413fd38ad --- /dev/null +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessingException.java @@ -0,0 +1,92 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package androidx.media3.transformer; + +import androidx.media3.common.C; +import androidx.media3.common.util.UnstableApi; + +/** Thrown when an exception occurs while applying effects to video frames. */ +@UnstableApi +public final class FrameProcessingException extends Exception { + + /** + * The microsecond timestamp of the frame being processed while the exception occurred or {@link + * C#TIME_UNSET} if unknown. + */ + public final long presentationTimeUs; + + /** + * Creates an instance. + * + * @param message The detail message for this exception. + */ + public FrameProcessingException(String message) { + this(message, /* presentationTimeUs= */ C.TIME_UNSET); + } + + /** + * Creates an instance. + * + * @param message The detail message for this exception. + * @param presentationTimeUs The timestamp of the frame for which the exception occurred. + */ + public FrameProcessingException(String message, long presentationTimeUs) { + super(message); + this.presentationTimeUs = presentationTimeUs; + } + + /** + * Creates an instance. + * + * @param message The detail message for this exception. + * @param cause The cause of this exception. + */ + public FrameProcessingException(String message, Throwable cause) { + this(message, cause, /* presentationTimeUs= */ C.TIME_UNSET); + } + + /** + * Creates an instance. + * + * @param message The detail message for this exception. + * @param cause The cause of this exception. + * @param presentationTimeUs The timestamp of the frame for which the exception occurred. + */ + public FrameProcessingException(String message, Throwable cause, long presentationTimeUs) { + super(message, cause); + this.presentationTimeUs = presentationTimeUs; + } + + /** + * Creates an instance. + * + * @param cause The cause of this exception. + */ + public FrameProcessingException(Throwable cause) { + this(cause, /* presentationTimeUs= */ C.TIME_UNSET); + } + + /** + * Creates an instance. + * + * @param cause The cause of this exception. + * @param presentationTimeUs The timestamp of the frame for which the exception occurred. + */ + public FrameProcessingException(Throwable cause, long presentationTimeUs) { + super(cause); + this.presentationTimeUs = presentationTimeUs; + } +} diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java index a61d74699f1..6512b5bdb9d 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java @@ -47,6 +47,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; import java.util.concurrent.RejectedExecutionException; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull; @@ -67,10 +68,21 @@ GlUtil.glAssertionsEnabled = true; } + /** + * Listener for asynchronous frame processing events. + * + *

This listener is only called from the {@link FrameProcessorChain}'s background thread. + */ + public interface Listener { + /** Called when an exception occurs during asynchronous frame processing. */ + void onFrameProcessingError(FrameProcessingException exception); + } + /** * Creates a new instance. * * @param context A {@link Context}. + * @param listener A {@link Listener}. * @param pixelWidthHeightRatio The ratio of width over height for each pixel. Pixels are expanded * by this ratio so that the output frame's pixels have a ratio of 1. * @param inputWidth The input frame width, in pixels. @@ -78,17 +90,18 @@ * @param effects The {@link GlEffect GlEffects} to apply to each frame. * @param enableExperimentalHdrEditing Whether to attempt to process the input as an HDR signal. * @return A new instance. - * @throws TransformationException If reading shader files fails, or an OpenGL error occurs while + * @throws FrameProcessingException If reading shader files fails, or an OpenGL error occurs while * creating and configuring the OpenGL components. */ public static FrameProcessorChain create( Context context, + Listener listener, float pixelWidthHeightRatio, int inputWidth, int inputHeight, List effects, boolean enableExperimentalHdrEditing) - throws TransformationException { + throws FrameProcessingException { checkArgument(inputWidth > 0, "inputWidth must be positive"); checkArgument(inputHeight > 0, "inputHeight must be positive"); @@ -100,6 +113,7 @@ public static FrameProcessorChain create( () -> createOpenGlObjectsAndFrameProcessorChain( context, + listener, pixelWidthHeightRatio, inputWidth, inputHeight, @@ -108,12 +122,10 @@ public static FrameProcessorChain create( singleThreadExecutorService)) .get(); } catch (ExecutionException e) { - throw TransformationException.createForFrameProcessorChain( - e, TransformationException.ERROR_CODE_GL_INIT_FAILED); + throw new FrameProcessingException(e); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - throw TransformationException.createForFrameProcessorChain( - e, TransformationException.ERROR_CODE_GL_INIT_FAILED); + throw new FrameProcessingException(e); } } @@ -127,6 +139,7 @@ public static FrameProcessorChain create( @WorkerThread private static FrameProcessorChain createOpenGlObjectsAndFrameProcessorChain( Context context, + Listener listener, float pixelWidthHeightRatio, int inputWidth, int inputHeight, @@ -177,6 +190,7 @@ private static FrameProcessorChain createOpenGlObjectsAndFrameProcessorChain( inputExternalTexId, framebuffers, frameProcessors, + listener, enableExperimentalHdrEditing); } @@ -241,6 +255,13 @@ private static ImmutableList getFrameProcessors( */ private final int[] framebuffers; + private final Listener listener; + /** + * Prevents further frame processing tasks from being scheduled or executed after {@link + * #release()} is called or an exception occurred. + */ + private final AtomicBoolean stopProcessing; + private int outputWidth; private int outputHeight; /** @@ -258,8 +279,6 @@ private static ImmutableList getFrameProcessors( private @MonotonicNonNull EGLSurface debugPreviewEglSurface; private boolean inputStreamEnded; - /** Prevents further frame processing tasks from being scheduled after {@link #release()}. */ - private volatile boolean releaseRequested; private FrameProcessorChain( EGLDisplay eglDisplay, @@ -268,6 +287,7 @@ private FrameProcessorChain( int inputExternalTexId, int[] framebuffers, ImmutableList frameProcessors, + Listener listener, boolean enableExperimentalHdrEditing) { checkState(!frameProcessors.isEmpty()); @@ -276,6 +296,8 @@ private FrameProcessorChain( this.singleThreadExecutorService = singleThreadExecutorService; this.framebuffers = framebuffers; this.frameProcessors = frameProcessors; + this.listener = listener; + this.stopProcessing = new AtomicBoolean(); this.enableExperimentalHdrEditing = enableExperimentalHdrEditing; futures = new ConcurrentLinkedQueue<>(); @@ -331,7 +353,7 @@ public void setOutputSurface( inputSurfaceTexture.setOnFrameAvailableListener( surfaceTexture -> { - if (releaseRequested) { + if (stopProcessing.get()) { // Frames can still become available after a transformation is cancelled but they can be // ignored. return; @@ -339,7 +361,7 @@ public void setOutputSurface( try { futures.add(singleThreadExecutorService.submit(this::processFrame)); } catch (RejectedExecutionException e) { - if (!releaseRequested) { + if (!stopProcessing.get()) { throw e; } } @@ -371,28 +393,6 @@ public int getPendingFrameCount() { return pendingFrameCount.get(); } - /** - * Checks whether any exceptions occurred during asynchronous frame processing and rethrows the - * first exception encountered. - */ - public void getAndRethrowBackgroundExceptions() throws TransformationException { - @Nullable Future oldestGlProcessingFuture = futures.peek(); - while (oldestGlProcessingFuture != null && oldestGlProcessingFuture.isDone()) { - futures.poll(); - try { - oldestGlProcessingFuture.get(); - } catch (ExecutionException e) { - throw TransformationException.createForFrameProcessorChain( - e, TransformationException.ERROR_CODE_GL_PROCESSING_FAILED); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - throw TransformationException.createForFrameProcessorChain( - e, TransformationException.ERROR_CODE_GL_PROCESSING_FAILED); - } - oldestGlProcessingFuture = futures.peek(); - } - } - /** Informs the {@code FrameProcessorChain} that no further input frames should be accepted. */ public void signalEndOfInputStream() { inputStreamEnded = true; @@ -413,18 +413,12 @@ public boolean isEnded() { *

This method blocks until all OpenGL resources are released or releasing times out. */ public void release() { - releaseRequested = true; + stopProcessing.set(true); while (!futures.isEmpty()) { checkNotNull(futures.poll()).cancel(/* mayInterruptIfRunning= */ true); } futures.add( - singleThreadExecutorService.submit( - () -> { - for (int i = 0; i < frameProcessors.size(); i++) { - frameProcessors.get(i).release(); - } - GlUtil.destroyEglContext(eglDisplay, eglContext); - })); + singleThreadExecutorService.submit(this::releaseFrameProcessorsAndDestroyGlContext)); if (inputSurfaceTexture != null) { inputSurfaceTexture.release(); } @@ -448,22 +442,26 @@ public void release() { */ @WorkerThread private void createOpenGlSurfaces(Surface outputSurface, @Nullable SurfaceView debugSurfaceView) { - checkState(Thread.currentThread().getName().equals(THREAD_NAME)); - checkStateNotNull(eglDisplay); - - if (enableExperimentalHdrEditing) { - // TODO(b/209404935): Don't assume BT.2020 PQ input/output. - eglSurface = GlUtil.getEglSurfaceBt2020Pq(eglDisplay, outputSurface); - if (debugSurfaceView != null) { - debugPreviewEglSurface = - GlUtil.getEglSurfaceBt2020Pq(eglDisplay, checkNotNull(debugSurfaceView.getHolder())); - } - } else { - eglSurface = GlUtil.getEglSurface(eglDisplay, outputSurface); - if (debugSurfaceView != null) { - debugPreviewEglSurface = - GlUtil.getEglSurface(eglDisplay, checkNotNull(debugSurfaceView.getHolder())); + try { + checkState(Thread.currentThread().getName().equals(THREAD_NAME)); + checkStateNotNull(eglDisplay); + + if (enableExperimentalHdrEditing) { + // TODO(b/209404935): Don't assume BT.2020 PQ input/output. + eglSurface = GlUtil.getEglSurfaceBt2020Pq(eglDisplay, outputSurface); + if (debugSurfaceView != null) { + debugPreviewEglSurface = + GlUtil.getEglSurfaceBt2020Pq(eglDisplay, checkNotNull(debugSurfaceView.getHolder())); + } + } else { + eglSurface = GlUtil.getEglSurface(eglDisplay, outputSurface); + if (debugSurfaceView != null) { + debugPreviewEglSurface = + GlUtil.getEglSurface(eglDisplay, checkNotNull(debugSurfaceView.getHolder())); + } } + } catch (RuntimeException e) { + listener.onFrameProcessingError(new FrameProcessingException(e)); } } @@ -475,44 +473,58 @@ private void createOpenGlSurfaces(Surface outputSurface, @Nullable SurfaceView d @WorkerThread @RequiresNonNull("inputSurfaceTexture") private void processFrame() { - checkState(Thread.currentThread().getName().equals(THREAD_NAME)); - checkStateNotNull(eglSurface, "No output surface set."); - - inputSurfaceTexture.updateTexImage(); - long presentationTimeNs = inputSurfaceTexture.getTimestamp(); - long presentationTimeUs = presentationTimeNs / 1000; - inputSurfaceTexture.getTransformMatrix(textureTransformMatrix); - ((ExternalCopyFrameProcessor) frameProcessors.get(0)) - .setTextureTransformMatrix(textureTransformMatrix); - - for (int i = 0; i < frameProcessors.size() - 1; i++) { - Size intermediateSize = frameProcessors.get(i).getOutputSize(); - GlUtil.focusFramebuffer( - eglDisplay, - eglContext, - eglSurface, - framebuffers[i], - intermediateSize.getWidth(), - intermediateSize.getHeight()); - clearOutputFrame(); - frameProcessors.get(i).drawFrame(presentationTimeUs); + if (stopProcessing.get()) { + return; } - GlUtil.focusEglSurface(eglDisplay, eglContext, eglSurface, outputWidth, outputHeight); - clearOutputFrame(); - getLast(frameProcessors).drawFrame(presentationTimeUs); - - EGLExt.eglPresentationTimeANDROID(eglDisplay, eglSurface, presentationTimeNs); - EGL14.eglSwapBuffers(eglDisplay, eglSurface); - if (debugPreviewEglSurface != null) { - GlUtil.focusEglSurface( - eglDisplay, eglContext, debugPreviewEglSurface, debugPreviewWidth, debugPreviewHeight); + long presentationTimeUs = C.TIME_UNSET; + try { + checkState(Thread.currentThread().getName().equals(THREAD_NAME)); + checkStateNotNull(eglSurface, "No output surface set."); + + inputSurfaceTexture.updateTexImage(); + long presentationTimeNs = inputSurfaceTexture.getTimestamp(); + presentationTimeUs = presentationTimeNs / 1000; + inputSurfaceTexture.getTransformMatrix(textureTransformMatrix); + ((ExternalCopyFrameProcessor) frameProcessors.get(0)) + .setTextureTransformMatrix(textureTransformMatrix); + + for (int i = 0; i < frameProcessors.size() - 1; i++) { + Size intermediateSize = frameProcessors.get(i).getOutputSize(); + GlUtil.focusFramebuffer( + eglDisplay, + eglContext, + eglSurface, + framebuffers[i], + intermediateSize.getWidth(), + intermediateSize.getHeight()); + clearOutputFrame(); + frameProcessors.get(i).drawFrame(presentationTimeUs); + } + GlUtil.focusEglSurface(eglDisplay, eglContext, eglSurface, outputWidth, outputHeight); clearOutputFrame(); getLast(frameProcessors).drawFrame(presentationTimeUs); - EGL14.eglSwapBuffers(eglDisplay, debugPreviewEglSurface); - } - checkState(pendingFrameCount.getAndDecrement() > 0); + EGLExt.eglPresentationTimeANDROID(eglDisplay, eglSurface, presentationTimeNs); + EGL14.eglSwapBuffers(eglDisplay, eglSurface); + + if (debugPreviewEglSurface != null) { + GlUtil.focusEglSurface( + eglDisplay, eglContext, debugPreviewEglSurface, debugPreviewWidth, debugPreviewHeight); + clearOutputFrame(); + getLast(frameProcessors).drawFrame(presentationTimeUs); + EGL14.eglSwapBuffers(eglDisplay, debugPreviewEglSurface); + } + + checkState(pendingFrameCount.getAndDecrement() > 0); + } catch (FrameProcessingException | RuntimeException e) { + if (!stopProcessing.getAndSet(true)) { + listener.onFrameProcessingError( + e instanceof FrameProcessingException + ? (FrameProcessingException) e + : new FrameProcessingException(e, presentationTimeUs)); + } + } } private static void clearOutputFrame() { @@ -520,4 +532,21 @@ private static void clearOutputFrame() { GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); GlUtil.checkGlError(); } + + /** + * Releases the {@link GlFrameProcessor GlFrameProcessors} and destroys the OpenGL context. + * + *

This method must be called on the {@linkplain #THREAD_NAME background thread}. + */ + @WorkerThread + private void releaseFrameProcessorsAndDestroyGlContext() { + try { + for (int i = 0; i < frameProcessors.size(); i++) { + frameProcessors.get(i).release(); + } + GlUtil.destroyEglContext(eglDisplay, eglContext); + } catch (RuntimeException e) { + listener.onFrameProcessingError(new FrameProcessingException(e)); + } + } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/GlFrameProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/GlFrameProcessor.java index d2e80327e3f..edecda427c0 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/GlFrameProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/GlFrameProcessor.java @@ -46,6 +46,7 @@ public interface GlFrameProcessor { * @param inputTexId Identifier of a 2D OpenGL texture. * @param inputWidth The input width, in pixels. * @param inputHeight The input height, in pixels. + * @throws IOException If an error occurs while reading resources. */ void initialize(Context context, int inputTexId, int inputWidth, int inputHeight) throws IOException; @@ -69,8 +70,9 @@ void initialize(Context context, int inputTexId, int inputWidth, int inputHeight * program's vertex attributes and uniforms, and issue a drawing command. * * @param presentationTimeUs The presentation timestamp of the current frame, in microseconds. + * @throws FrameProcessingException If an error occurs while processing or drawing the frame. */ - void drawFrame(long presentationTimeUs); + void drawFrame(long presentationTimeUs) throws FrameProcessingException; /** Releases all resources. */ void release(); diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java index 48f53dbcc6e..cace85cbdcf 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java @@ -97,16 +97,20 @@ public Size getOutputSize() { } @Override - public void drawFrame(long presentationTimeUs) { - checkStateNotNull(glProgram).use(); - float[] transformationMatrix = matrixTransformation.getGlMatrixArray(presentationTimeUs); - checkState( - transformationMatrix.length == 16, "A 4x4 transformation matrix must have 16 elements"); - glProgram.setFloatsUniform("uTransformationMatrix", transformationMatrix); - glProgram.bindAttributesAndUniforms(); - // The four-vertex triangle strip forms a quad. - GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); - GlUtil.checkGlError(); + public void drawFrame(long presentationTimeUs) throws FrameProcessingException { + try { + checkStateNotNull(glProgram).use(); + float[] transformationMatrix = matrixTransformation.getGlMatrixArray(presentationTimeUs); + checkState( + transformationMatrix.length == 16, "A 4x4 transformation matrix must have 16 elements"); + glProgram.setFloatsUniform("uTransformationMatrix", transformationMatrix); + glProgram.bindAttributesAndUniforms(); + // The four-vertex triangle strip forms a quad. + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); + GlUtil.checkGlError(); + } catch (GlUtil.GlException e) { + throw new FrameProcessingException(e); + } } @Override diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java index ceb28250a56..3981edfe62a 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java @@ -721,6 +721,8 @@ private void startTransformation(MediaItem mediaItem, Muxer muxer) { DEFAULT_BUFFER_FOR_PLAYBACK_MS / 10, DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS / 10) .build(); + TransformerPlayerListener playerListener = + new TransformerPlayerListener(mediaItem, muxerWrapper, looper); ExoPlayer.Builder playerBuilder = new ExoPlayer.Builder( context, @@ -734,6 +736,7 @@ private void startTransformation(MediaItem mediaItem, Muxer muxer) { encoderFactory, decoderFactory, new FallbackListener(mediaItem, listeners, transformationRequest), + playerListener, debugViewProvider)) .setMediaSourceFactory(mediaSourceFactory) .setTrackSelector(trackSelector) @@ -748,7 +751,7 @@ private void startTransformation(MediaItem mediaItem, Muxer muxer) { player = playerBuilder.build(); player.setMediaItem(mediaItem); - player.addListener(new TransformerPlayerListener(mediaItem, muxerWrapper)); + player.addListener(playerListener); player.prepare(); progressState = PROGRESS_STATE_WAITING_FOR_AVAILABILITY; @@ -846,6 +849,7 @@ private static final class TransformerRenderersFactory implements RenderersFacto private final Codec.EncoderFactory encoderFactory; private final Codec.DecoderFactory decoderFactory; private final FallbackListener fallbackListener; + private final FrameProcessorChain.Listener frameProcessorChainListener; private final Transformer.DebugViewProvider debugViewProvider; public TransformerRenderersFactory( @@ -858,6 +862,7 @@ public TransformerRenderersFactory( Codec.EncoderFactory encoderFactory, Codec.DecoderFactory decoderFactory, FallbackListener fallbackListener, + FrameProcessorChain.Listener frameProcessorChainListener, Transformer.DebugViewProvider debugViewProvider) { this.context = context; this.muxerWrapper = muxerWrapper; @@ -868,6 +873,7 @@ public TransformerRenderersFactory( this.encoderFactory = encoderFactory; this.decoderFactory = decoderFactory; this.fallbackListener = fallbackListener; + this.frameProcessorChainListener = frameProcessorChainListener; this.debugViewProvider = debugViewProvider; mediaClock = new TransformerMediaClock(); } @@ -904,6 +910,7 @@ public Renderer[] createRenderers( encoderFactory, decoderFactory, fallbackListener, + frameProcessorChainListener, debugViewProvider); index++; } @@ -911,14 +918,18 @@ public Renderer[] createRenderers( } } - private final class TransformerPlayerListener implements Player.Listener { + private final class TransformerPlayerListener + implements Player.Listener, FrameProcessorChain.Listener { private final MediaItem mediaItem; private final MuxerWrapper muxerWrapper; + private final Handler handler; - public TransformerPlayerListener(MediaItem mediaItem, MuxerWrapper muxerWrapper) { + public TransformerPlayerListener( + MediaItem mediaItem, MuxerWrapper muxerWrapper, Looper looper) { this.mediaItem = mediaItem; this.muxerWrapper = muxerWrapper; + handler = new Handler(looper); } @Override @@ -1013,5 +1024,14 @@ private void handleTransformationEnded(@Nullable TransformationException excepti } listeners.flushEvents(); } + + @Override + public void onFrameProcessingError(FrameProcessingException exception) { + handler.post( + () -> + handleTransformationEnded( + TransformationException.createForFrameProcessorChain( + exception, TransformationException.ERROR_CODE_GL_PROCESSING_FAILED))); + } } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java index f4d8dabc7ea..e0bf43732c9 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java @@ -38,6 +38,7 @@ private final ImmutableList effects; private final Codec.EncoderFactory encoderFactory; private final Codec.DecoderFactory decoderFactory; + private final FrameProcessorChain.Listener frameProcessorChainListener; private final Transformer.DebugViewProvider debugViewProvider; private final DecoderInputBuffer decoderInputBuffer; @@ -52,12 +53,14 @@ public TransformerVideoRenderer( Codec.EncoderFactory encoderFactory, Codec.DecoderFactory decoderFactory, FallbackListener fallbackListener, + FrameProcessorChain.Listener frameProcessorChainListener, Transformer.DebugViewProvider debugViewProvider) { super(C.TRACK_TYPE_VIDEO, muxerWrapper, mediaClock, transformationRequest, fallbackListener); this.context = context; this.effects = effects; this.encoderFactory = encoderFactory; this.decoderFactory = decoderFactory; + this.frameProcessorChainListener = frameProcessorChainListener; this.debugViewProvider = debugViewProvider; decoderInputBuffer = new DecoderInputBuffer(DecoderInputBuffer.BUFFER_REPLACEMENT_MODE_DISABLED); @@ -95,6 +98,7 @@ protected boolean ensureConfigured() throws TransformationException { encoderFactory, muxerWrapper.getSupportedSampleMimeTypes(getTrackType()), fallbackListener, + frameProcessorChainListener, debugViewProvider); } if (transformationRequest.flattenForSlowMotion) { diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java index 6d28f8925fa..534ae5d6678 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java @@ -55,6 +55,7 @@ public VideoTranscodingSamplePipeline( Codec.EncoderFactory encoderFactory, List allowedOutputMimeTypes, FallbackListener fallbackListener, + FrameProcessorChain.Listener frameProcessorChainListener, Transformer.DebugViewProvider debugViewProvider) throws TransformationException { decoderInputBuffer = @@ -86,14 +87,20 @@ public VideoTranscodingSamplePipeline( EncoderCompatibilityTransformation encoderCompatibilityTransformation = new EncoderCompatibilityTransformation(); effectsListBuilder.add(encoderCompatibilityTransformation); - frameProcessorChain = - FrameProcessorChain.create( - context, - inputFormat.pixelWidthHeightRatio, - /* inputWidth= */ decodedWidth, - /* inputHeight= */ decodedHeight, - effectsListBuilder.build(), - transformationRequest.enableHdrEditing); + try { + frameProcessorChain = + FrameProcessorChain.create( + context, + frameProcessorChainListener, + inputFormat.pixelWidthHeightRatio, + /* inputWidth= */ decodedWidth, + /* inputHeight= */ decodedHeight, + effectsListBuilder.build(), + transformationRequest.enableHdrEditing); + } catch (FrameProcessingException e) { + throw TransformationException.createForFrameProcessorChain( + e, TransformationException.ERROR_CODE_GL_INIT_FAILED); + } Size requestedEncoderSize = frameProcessorChain.getOutputSize(); outputRotationDegrees = encoderCompatibilityTransformation.getOutputRotationDegrees(); @@ -146,7 +153,6 @@ public void queueInputBuffer() throws TransformationException { @Override public boolean processData() throws TransformationException { - frameProcessorChain.getAndRethrowBackgroundExceptions(); if (frameProcessorChain.isEnded()) { if (!signaledEndOfStreamToEncoder) { encoder.signalEndOfInputStream(); From 54d8b5bc7c53106a6bfe3878a2b6935f314b62f4 Mon Sep 17 00:00:00 2001 From: ibaker Date: Mon, 9 May 2022 15:45:54 +0100 Subject: [PATCH 064/182] Don't implement Player.Listener from SubtitleView We never register SubtitleView as a Player.Listener directly, it's always done via PlayerView. PiperOrigin-RevId: 447467037 --- .../ui/src/main/java/androidx/media3/ui/SubtitleView.java | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/libraries/ui/src/main/java/androidx/media3/ui/SubtitleView.java b/libraries/ui/src/main/java/androidx/media3/ui/SubtitleView.java index f996337eaac..c5b4fc048d2 100644 --- a/libraries/ui/src/main/java/androidx/media3/ui/SubtitleView.java +++ b/libraries/ui/src/main/java/androidx/media3/ui/SubtitleView.java @@ -31,7 +31,6 @@ import androidx.annotation.Dimension; import androidx.annotation.IntDef; import androidx.annotation.Nullable; -import androidx.media3.common.Player; import androidx.media3.common.text.Cue; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; @@ -44,7 +43,7 @@ /** A view for displaying subtitle {@link Cue}s. */ @UnstableApi -public final class SubtitleView extends FrameLayout implements Player.Listener { +public final class SubtitleView extends FrameLayout { /** * An output for displaying subtitles. @@ -152,11 +151,6 @@ public SubtitleView(Context context, @Nullable AttributeSet attrs) { viewType = VIEW_TYPE_CANVAS; } - @Override - public void onCues(List cues) { - setCues(cues); - } - /** * Sets the cues to be displayed by the view. * From 7a631f4050a0d5a438cd764bd6a1bf687217a90c Mon Sep 17 00:00:00 2001 From: christosts Date: Mon, 9 May 2022 15:47:30 +0100 Subject: [PATCH 065/182] MediaSessionService: define foregroundServiceType PiperOrigin-RevId: 447467287 --- demos/session/src/main/AndroidManifest.xml | 1 + .../session/MediaNotificationManager.java | 39 ++++++++++++++++++- .../media3/session/MediaSessionService.java | 12 ++++-- .../src/main/AndroidManifest.xml | 3 ++ 4 files changed, 49 insertions(+), 6 deletions(-) diff --git a/demos/session/src/main/AndroidManifest.xml b/demos/session/src/main/AndroidManifest.xml index f86bcd86bb6..e94b527e83d 100644 --- a/demos/session/src/main/AndroidManifest.xml +++ b/demos/session/src/main/AndroidManifest.xml @@ -45,6 +45,7 @@ diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaNotificationManager.java b/libraries/session/src/main/java/androidx/media3/session/MediaNotificationManager.java index 6376ba641d6..75c168f575e 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaNotificationManager.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaNotificationManager.java @@ -19,13 +19,17 @@ import android.app.Notification; import android.content.Intent; +import android.content.pm.ServiceInfo; import android.os.Bundle; import android.os.Handler; import android.os.Looper; +import androidx.annotation.DoNotInline; import androidx.annotation.Nullable; +import androidx.annotation.RequiresApi; import androidx.core.app.NotificationManagerCompat; import androidx.core.content.ContextCompat; import androidx.media3.common.Player; +import androidx.media3.common.util.Log; import androidx.media3.common.util.Util; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; @@ -44,6 +48,8 @@ */ /* package */ final class MediaNotificationManager { + private static final String TAG = "MediaNtfMng"; + private final MediaSessionService mediaSessionService; private final MediaNotification.Provider mediaNotificationProvider; private final MediaNotification.ActionFactory actionFactory; @@ -170,8 +176,12 @@ private void updateNotificationInternal( Player player = session.getPlayer(); if (player.getPlayWhenReady() && canStartPlayback(player)) { ContextCompat.startForegroundService(mediaSessionService, startSelfIntent); - mediaSessionService.startForeground( - mediaNotification.notificationId, mediaNotification.notification); + if (Util.SDK_INT >= 29) { + Api29.startForeground(mediaSessionService, mediaNotification); + } else { + mediaSessionService.startForeground( + mediaNotification.notificationId, mediaNotification.notification); + } } else { maybeStopForegroundService(/* removeNotifications= */ false); notificationManagerCompat.notify( @@ -251,4 +261,29 @@ public void onDisconnected(MediaController controller) { mediaSessionService.onUpdateNotification(session); } } + + @RequiresApi(29) + private static class Api29 { + + @DoNotInline + public static void startForeground( + MediaSessionService mediaSessionService, MediaNotification mediaNotification) { + try { + // startForeground() will throw if the service's foregroundServiceType is not defined in the + // manifest to include mediaPlayback. + mediaSessionService.startForeground( + mediaNotification.notificationId, + mediaNotification.notification, + ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK); + } catch (RuntimeException e) { + Log.e( + TAG, + "The service must be declared with a foregroundServiceType that includes " + + " mediaPlayback"); + throw e; + } + } + + private Api29() {} + } } diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java index e6fd108f641..41b34453305 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java @@ -60,7 +60,9 @@ *

To extend this class, declare the intent filter in your {@code AndroidManifest.xml}: * *

{@code
- * 
+ * 
  *   
  *     
  *   
@@ -85,9 +87,11 @@
  *
  * 

Service Lifecycle

* - *

A media session service is a bound service. When a {@link MediaController} is created for the - * service, the controller binds to the service. {@link #onGetSession(ControllerInfo)} will be - * called from {@link #onBind(Intent)}. + *

A media session service is a bound service and its foreground + * service type must include mediaPlayback. When a {@link MediaController} is created + * for the service, the controller binds to the service. {@link #onGetSession(ControllerInfo)} will + * be called from {@link #onBind(Intent)}. * *

After binding, the session's {@link MediaSession.SessionCallback#onConnect(MediaSession, * MediaSession.ControllerInfo)} will be called to accept or reject the connection request from the diff --git a/libraries/test_session_current/src/main/AndroidManifest.xml b/libraries/test_session_current/src/main/AndroidManifest.xml index 71c443bf25a..457b099fd8c 100644 --- a/libraries/test_session_current/src/main/AndroidManifest.xml +++ b/libraries/test_session_current/src/main/AndroidManifest.xml @@ -81,6 +81,7 @@ @@ -89,6 +90,7 @@ @@ -96,6 +98,7 @@ From 4c838043d34fbc530004aef561738354cb15576a Mon Sep 17 00:00:00 2001 From: bachinger Date: Mon, 9 May 2022 17:19:09 +0100 Subject: [PATCH 066/182] Dispatch custom action in MediaSessionLegacyStub A custom action sent by legacy controllers as for instance the System UI mini player arrive at MediaSessionCompat.Callback.onCustomAction() and need to be dispatched to the session callback as a such. PiperOrigin-RevId: 447486859 --- .../session/MediaSessionLegacyStub.java | 15 ++++-- ...CallbackWithMediaControllerCompatTest.java | 52 +++++++++++++++++++ .../session/RemoteMediaControllerCompat.java | 5 ++ 3 files changed, 67 insertions(+), 5 deletions(-) diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java index 41219049558..0f476641f58 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java @@ -189,6 +189,16 @@ public void onCommand(String commandName, @Nullable Bundle args, @Nullable Resul }); } + @Override + public void onCustomAction(String action, @Nullable Bundle extras) { + Bundle args = extras == null ? Bundle.EMPTY : extras; + SessionCommand command = new SessionCommand(action, args); + dispatchSessionTaskWithSessionCommand( + command, + controller -> + ignoreFuture(sessionImpl.onCustomCommandOnHandler(controller, command, args))); + } + @Override public boolean onMediaButtonEvent(Intent mediaButtonEvent) { @Nullable KeyEvent keyEvent = mediaButtonEvent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); @@ -457,11 +467,6 @@ public void onSetRating(RatingCompat ratingCompat, @Nullable Bundle unusedExtras }); } - @Override - public void onCustomAction(String action, @Nullable Bundle extras) { - // no-op - } - @Override public void onSetCaptioningEnabled(boolean enabled) { // no-op diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java index d3288697266..4e9b368b878 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java @@ -701,6 +701,58 @@ public ListenableFuture onCustomCommand( assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); } + @Test + public void sendCustomCommand() throws Exception { + String testCommand = "test_custom_command"; + Bundle testArgs = new Bundle(); + testArgs.putString("args", "test_custom_args"); + SessionCommand customCommand = new SessionCommand(testCommand, /* extras= */ Bundle.EMPTY); + CountDownLatch latch = new CountDownLatch(1); + SessionCallback callback = + new SessionCallback() { + @Override + public MediaSession.ConnectionResult onConnect( + MediaSession session, ControllerInfo controller) { + if (EXPECTED_CONTROLLER_PACKAGE_NAME.equals(controller.getPackageName())) { + MediaSession.ConnectionResult connectionResult = + SessionCallback.super.onConnect(session, controller); + SessionCommands.Builder builder = + connectionResult.availableSessionCommands.buildUpon().add(customCommand); + return MediaSession.ConnectionResult.accept( + /* availableSessionCommands= */ builder.build(), + connectionResult.availablePlayerCommands); + } else { + return MediaSession.ConnectionResult.reject(); + } + } + + @Override + public ListenableFuture onCustomCommand( + MediaSession session, + ControllerInfo controller, + SessionCommand sessionCommand, + Bundle args) { + if (sessionCommand.customAction.equals(testCommand) + && TestUtils.equals(testArgs, args)) { + latch.countDown(); + } + return Futures.immediateFuture(new SessionResult(RESULT_SUCCESS)); + } + }; + session = + new MediaSession.Builder(context, player) + .setId("sendCommand") + .setSessionCallback(callback) + .build(); + controller = + new RemoteMediaControllerCompat( + context, session.getSessionCompat().getSessionToken(), /* waitForConnection= */ true); + + controller.sendCustomCommand(customCommand, testArgs); + + assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); + } + @Test public void controllerCallback_sessionRejects() throws Exception { SessionCallback sessionCallback = diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaControllerCompat.java b/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaControllerCompat.java index 679cc82b024..9d496bf30e8 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaControllerCompat.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaControllerCompat.java @@ -120,6 +120,11 @@ public void sendCommand(String command, Bundle params, ResultReceiver cb) throws binder.sendCommand(controllerId, command, params, cb); } + public void sendCustomCommand(SessionCommand customCommand, Bundle params) + throws RemoteException { + binder.sendCustomActionWithName(controllerId, customCommand.customAction, params); + } + //////////////////////////////////////////////////////////////////////////////// // MediaControllerCompat.TransportControls methods //////////////////////////////////////////////////////////////////////////////// From f8f1a4d1ed52d7e62084fd7b8ee1abd923634ca7 Mon Sep 17 00:00:00 2001 From: samrobinson Date: Tue, 10 May 2022 15:08:51 +0100 Subject: [PATCH 067/182] Expose the codec name to the analysis files. PiperOrigin-RevId: 447724152 --- .../TransformerAndroidTestRunner.java | 62 ++++++++++++++++++- .../androidx/media3/transformer/Codec.java | 3 + .../media3/transformer/DefaultCodec.java | 21 ++++++- .../media3/transformer/Transformer.java | 4 +- 4 files changed, 85 insertions(+), 5 deletions(-) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java index a977796149e..eddd5a17cb0 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java @@ -21,17 +21,20 @@ import android.content.Context; import android.net.Uri; import androidx.annotation.Nullable; +import androidx.media3.common.Format; import androidx.media3.common.MediaItem; import androidx.media3.common.util.Log; import androidx.media3.common.util.SystemClock; import androidx.test.platform.app.InstrumentationRegistry; import java.io.File; import java.io.IOException; +import java.util.List; import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicReference; import org.checkerframework.checker.nullness.compatqual.NullableType; +import org.json.JSONException; import org.json.JSONObject; /** An android instrumentation test runner for {@link Transformer}. */ @@ -140,6 +143,7 @@ public TransformerAndroidTestRunner build() { } private final Context context; + private final CodecNameForwardingEncoderFactory transformerEncoderFactory; private final Transformer transformer; private final int timeoutSeconds; private final boolean calculateSsim; @@ -154,7 +158,9 @@ private TransformerAndroidTestRunner( boolean suppressAnalysisExceptions, @Nullable Map inputValues) { this.context = context; - this.transformer = transformer; + this.transformerEncoderFactory = + new CodecNameForwardingEncoderFactory(transformer.encoderFactory); + this.transformer = transformer.buildUpon().setEncoderFactory(transformerEncoderFactory).build(); this.timeoutSeconds = timeoutSeconds; this.calculateSsim = calculateSsim; this.suppressAnalysisExceptions = suppressAnalysisExceptions; @@ -186,6 +192,7 @@ public TransformationTestResult run(String testId, String uriString) throws Exce resultJson.put("exception", AndroidTestUtil.exceptionAsJsonObject(e)); throw e; } finally { + resultJson.put("codecDetails", transformerEncoderFactory.getCodecNamesAsJsonObject()); AndroidTestUtil.writeTestSummaryToFile(context, testId, resultJson); } } @@ -307,4 +314,57 @@ public void onTransformationError( } return resultBuilder.build(); } + + /** + * A {@link Codec.EncoderFactory} that forwards all methods to another encoder factory, whilst + * providing visibility into the names of last codecs created by it. + */ + private static class CodecNameForwardingEncoderFactory implements Codec.EncoderFactory { + + @Nullable public String audioEncoderName; + @Nullable public String videoEncoderName; + + private final Codec.EncoderFactory encoderFactory; + + public CodecNameForwardingEncoderFactory(Codec.EncoderFactory encoderFactory) { + this.encoderFactory = encoderFactory; + } + + @Override + public Codec createForAudioEncoding(Format format, List allowedMimeTypes) + throws TransformationException { + Codec audioEncoder = encoderFactory.createForAudioEncoding(format, allowedMimeTypes); + audioEncoderName = audioEncoder.getName(); + return audioEncoder; + } + + @Override + public Codec createForVideoEncoding(Format format, List allowedMimeTypes) + throws TransformationException { + Codec videoEncoder = encoderFactory.createForVideoEncoding(format, allowedMimeTypes); + videoEncoderName = videoEncoder.getName(); + return videoEncoder; + } + + @Override + public boolean audioNeedsEncoding() { + return encoderFactory.audioNeedsEncoding(); + } + + @Override + public boolean videoNeedsEncoding() { + return encoderFactory.videoNeedsEncoding(); + } + + public JSONObject getCodecNamesAsJsonObject() throws JSONException { + JSONObject detailsJson = new JSONObject(); + if (audioEncoderName != null) { + detailsJson.put("audioEncoderName", audioEncoderName); + } + if (videoEncoderName != null) { + detailsJson.put("videoEncoderName", videoEncoderName); + } + return detailsJson; + } + } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Codec.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Codec.java index 122470b1117..d345aa63d68 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Codec.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Codec.java @@ -133,6 +133,9 @@ default boolean videoNeedsEncoding() { */ Format getConfigurationFormat(); + /** Returns the name of the underlying codec. */ + String getName(); + /** * Returns the input {@link Surface} of an underlying video encoder. * diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultCodec.java b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultCodec.java index 85033f8efc2..5c723705b8a 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultCodec.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultCodec.java @@ -19,6 +19,7 @@ import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.common.util.Assertions.checkState; import static androidx.media3.common.util.Assertions.checkStateNotNull; +import static androidx.media3.common.util.Util.SDK_INT; import android.media.MediaCodec; import android.media.MediaCodec.BufferInfo; @@ -30,7 +31,6 @@ import androidx.media3.common.MimeTypes; import androidx.media3.common.util.TraceUtil; import androidx.media3.common.util.UnstableApi; -import androidx.media3.common.util.Util; import androidx.media3.decoder.DecoderInputBuffer; import com.google.common.base.Ascii; import com.google.common.collect.ImmutableList; @@ -124,7 +124,7 @@ public Surface getInputSurface() { @Override public int getMaxPendingFrameCount() { - if (Util.SDK_INT < 29) { + if (SDK_INT < 29) { // Prior to API 29, decoders may drop frames to keep their output surface from growing out of // bounds. From API 29, the {@link MediaFormat#KEY_ALLOW_FRAME_DROP} key prevents frame // dropping even when the surface is full. Frame dropping is never desired, so allow a maximum @@ -257,6 +257,23 @@ public void release() { mediaCodec.release(); } + /** + * {@inheritDoc} + * + *

This name is of the actual codec, which may not be the same as the {@code mediaCodecName} + * passed to {@link #DefaultCodec(Format, MediaFormat, String, boolean, Surface)}. + * + * @see MediaCodec#getCanonicalName() + */ + @Override + public String getName() { + if (SDK_INT >= 29) { + return mediaCodec.getCanonicalName(); + } + + return mediaCodec.getName(); + } + /** * Attempts to dequeue an output buffer if there is no output buffer pending. Does nothing * otherwise. diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java index 3981edfe62a..b786027fbcf 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java @@ -557,10 +557,10 @@ public interface DebugViewProvider { private final ImmutableList videoFrameEffects; private final Looper looper; private final Clock clock; - private final Codec.EncoderFactory encoderFactory; - private final Codec.DecoderFactory decoderFactory; private final Transformer.DebugViewProvider debugViewProvider; private final ListenerSet listeners; + private final Codec.DecoderFactory decoderFactory; + @VisibleForTesting /* package */ final Codec.EncoderFactory encoderFactory; @Nullable private MuxerWrapper muxerWrapper; @Nullable private ExoPlayer player; From 8d2597acc64abad62c4f0890fb048e53f0c68414 Mon Sep 17 00:00:00 2001 From: samrobinson Date: Tue, 10 May 2022 20:16:45 +0100 Subject: [PATCH 068/182] Force encoding for the on-device regression tests. transformWithDecodeEncode is now transformWithoutDecodeEncode, to test the passthrough path. PiperOrigin-RevId: 447796892 --- .../transformer/mh/TransformationTest.java | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java index 5fd35d7a2d3..d0cc4dac833 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java @@ -15,6 +15,7 @@ */ package androidx.media3.transformer.mh; +import static androidx.media3.transformer.AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_SEF_URI_STRING; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_URI_STRING; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING; @@ -45,7 +46,10 @@ public class TransformationTest { public void transform() throws Exception { String testId = TAG + "_transform"; Context context = ApplicationProvider.getApplicationContext(); - Transformer transformer = new Transformer.Builder(context).build(); + Transformer transformer = + new Transformer.Builder(context) + .setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY) + .build(); new TransformerAndroidTestRunner.Builder(context, transformer) .setCalculateSsim(true) .build() @@ -53,15 +57,12 @@ public void transform() throws Exception { } @Test - public void transformWithDecodeEncode() throws Exception { - String testId = TAG + "_transformWithDecodeEncode"; + public void transformWithoutDecodeEncode() throws Exception { + String testId = TAG + "_transformWithoutDecodeEncode"; Context context = ApplicationProvider.getApplicationContext(); - Transformer transformer = - new Transformer.Builder(context) - .setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY) - .build(); + Transformer transformer = new Transformer.Builder(context).build(); + // No need to calculate SSIM because no decode/encoding, so input frames match output frames. new TransformerAndroidTestRunner.Builder(context, transformer) - .setCalculateSsim(true) .build() .run(testId, MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING); } @@ -89,7 +90,8 @@ public void transformToSpecificBitrate() throws Exception { public void transform4K60() throws Exception { String testId = TAG + "_transform4K60"; Context context = ApplicationProvider.getApplicationContext(); - Transformer transformer = new Transformer.Builder(context).build(); + Transformer transformer = + new Transformer.Builder(context).setEncoderFactory(FORCE_ENCODE_ENCODER_FACTORY).build(); new TransformerAndroidTestRunner.Builder(context, transformer) .setCalculateSsim(true) .build() @@ -100,7 +102,11 @@ public void transform4K60() throws Exception { public void transformNoAudio() throws Exception { String testId = TAG + "_transformNoAudio"; Context context = ApplicationProvider.getApplicationContext(); - Transformer transformer = new Transformer.Builder(context).setRemoveAudio(true).build(); + Transformer transformer = + new Transformer.Builder(context) + .setEncoderFactory(FORCE_ENCODE_ENCODER_FACTORY) + .setRemoveAudio(true) + .build(); new TransformerAndroidTestRunner.Builder(context, transformer) .setCalculateSsim(true) .build() @@ -111,7 +117,11 @@ public void transformNoAudio() throws Exception { public void transformNoVideo() throws Exception { String testId = TAG + "_transformNoVideo"; Context context = ApplicationProvider.getApplicationContext(); - Transformer transformer = new Transformer.Builder(context).setRemoveVideo(true).build(); + Transformer transformer = + new Transformer.Builder(context) + .setEncoderFactory(FORCE_ENCODE_ENCODER_FACTORY) + .setRemoveVideo(true) + .build(); new TransformerAndroidTestRunner.Builder(context, transformer) .build() .run(testId, MP4_ASSET_URI_STRING); From 1bcabd3450b7c2dc33cd1ce7f0600f67608c4014 Mon Sep 17 00:00:00 2001 From: christosts Date: Wed, 11 May 2022 10:18:09 +0100 Subject: [PATCH 069/182] Session: Misc change from link tag to linkplain PiperOrigin-RevId: 447939097 --- .../media3/session/MediaNotification.java | 17 +++++++++-------- .../media3/session/MediaSessionService.java | 4 ++-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaNotification.java b/libraries/session/src/main/java/androidx/media3/session/MediaNotification.java index 9c0ed3f0db9..140d5b10af8 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaNotification.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaNotification.java @@ -31,8 +31,8 @@ public final class MediaNotification { /** - * Creates {@link NotificationCompat.Action actions} and {@link PendingIntent pending intents} for - * notifications. + * Creates {@linkplain NotificationCompat.Action actions} and {@linkplain PendingIntent pending + * intents} for notifications. */ @UnstableApi public interface ActionFactory { @@ -51,7 +51,7 @@ NotificationCompat.Action createMediaAction( /** * Creates a {@link NotificationCompat.Action} for a notification with a custom action. Actions * created with this method are not expected to be handled by the library and will be forwarded - * to the {@link MediaNotification.Provider#handleCustomAction notification provider} that + * to the {@linkplain MediaNotification.Provider#handleCustomAction notification provider} that * provided them. * * @param icon The icon to show for this action. @@ -72,11 +72,11 @@ NotificationCompat.Action createCustomAction( } /** - * Provides {@link MediaNotification media notifications} to be posted as notifications that + * Provides {@linkplain MediaNotification media notifications} to be posted as notifications that * reflect the state of a {@link MediaController} and to send media commands to a {@link * MediaSession}. * - *

The provider is required to create a {@link androidx.core.app.NotificationChannelCompat + *

The provider is required to create a {@linkplain androidx.core.app.NotificationChannelCompat * notification channel}, which is required to show notification for {@code SDK_INT >= 26}. */ @UnstableApi @@ -98,7 +98,7 @@ interface Callback { * Creates a new {@link MediaNotification}. * * @param mediaController The controller of the session. - * @param actionFactory The {@link ActionFactory} for creating notification {@link + * @param actionFactory The {@link ActionFactory} for creating notification {@linkplain * NotificationCompat.Action actions}. * @param onNotificationChangedCallback A callback that the provider needs to notify when the * notification has changed and needs to be posted again, for example after a bitmap has @@ -136,8 +136,9 @@ MediaNotification createNotification( * and to send media commands to a {@link MediaSession}. The notification may be used to start * a service in the foreground. - * It's highly recommended to use a {@link androidx.media.app.NotificationCompat.MediaStyle - * media style} {@link Notification notification}. + * It's highly recommended to use a {@linkplain + * androidx.media.app.NotificationCompat.MediaStyle media style} {@linkplain Notification + * notification}. */ public MediaNotification(@IntRange(from = 1) int notificationId, Notification notification) { this.notificationId = notificationId; diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java index 41b34453305..6a03baa1d61 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java @@ -261,8 +261,8 @@ public final void removeSession(MediaSession session) { } /** - * Returns the list of {@link MediaSession sessions} that you've added to this service via {@link - * #addSession} or {@link #onGetSession(ControllerInfo)}. + * Returns the list of {@linkplain MediaSession sessions} that you've added to this service via + * {@link #addSession} or {@link #onGetSession(ControllerInfo)}. */ public final List getSessions() { synchronized (lock) { From d72ffe4ba1561af04d242fc39ccc26e31e96ca12 Mon Sep 17 00:00:00 2001 From: samrobinson Date: Wed, 11 May 2022 11:34:57 +0100 Subject: [PATCH 070/182] Expose decoder name to analysis files. PiperOrigin-RevId: 447950623 --- .../TransformerAndroidTestRunner.java | 55 ++++++++++++++++--- .../media3/transformer/Transformer.java | 21 ++++++- 2 files changed, 66 insertions(+), 10 deletions(-) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java index eddd5a17cb0..45d3bd77f69 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java @@ -20,6 +20,7 @@ import android.content.Context; import android.net.Uri; +import android.view.Surface; import androidx.annotation.Nullable; import androidx.media3.common.Format; import androidx.media3.common.MediaItem; @@ -143,7 +144,7 @@ public TransformerAndroidTestRunner build() { } private final Context context; - private final CodecNameForwardingEncoderFactory transformerEncoderFactory; + private final CodecNameForwardingCodecFactory transformerCodecFactory; private final Transformer transformer; private final int timeoutSeconds; private final boolean calculateSsim; @@ -158,9 +159,14 @@ private TransformerAndroidTestRunner( boolean suppressAnalysisExceptions, @Nullable Map inputValues) { this.context = context; - this.transformerEncoderFactory = - new CodecNameForwardingEncoderFactory(transformer.encoderFactory); - this.transformer = transformer.buildUpon().setEncoderFactory(transformerEncoderFactory).build(); + this.transformerCodecFactory = + new CodecNameForwardingCodecFactory(transformer.decoderFactory, transformer.encoderFactory); + this.transformer = + transformer + .buildUpon() + .setDecoderFactory(transformerCodecFactory) + .setEncoderFactory(transformerCodecFactory) + .build(); this.timeoutSeconds = timeoutSeconds; this.calculateSsim = calculateSsim; this.suppressAnalysisExceptions = suppressAnalysisExceptions; @@ -192,7 +198,7 @@ public TransformationTestResult run(String testId, String uriString) throws Exce resultJson.put("exception", AndroidTestUtil.exceptionAsJsonObject(e)); throw e; } finally { - resultJson.put("codecDetails", transformerEncoderFactory.getCodecNamesAsJsonObject()); + resultJson.put("codecDetails", transformerCodecFactory.getCodecNamesAsJsonObject()); AndroidTestUtil.writeTestSummaryToFile(context, testId, resultJson); } } @@ -319,17 +325,44 @@ public void onTransformationError( * A {@link Codec.EncoderFactory} that forwards all methods to another encoder factory, whilst * providing visibility into the names of last codecs created by it. */ - private static class CodecNameForwardingEncoderFactory implements Codec.EncoderFactory { - + private static class CodecNameForwardingCodecFactory + implements Codec.DecoderFactory, Codec.EncoderFactory { + + /** The name of the last audio {@link Codec decoder} created. */ + @Nullable public String audioDecoderName; + /** The name of the last video {@link Codec decoder} created. */ + @Nullable public String videoDecoderName; + /** The name of the last audio {@link Codec encoder} created. */ @Nullable public String audioEncoderName; + /** The name of the last video {@link Codec encoder} created. */ @Nullable public String videoEncoderName; + private final Codec.DecoderFactory decoderFactory; private final Codec.EncoderFactory encoderFactory; - public CodecNameForwardingEncoderFactory(Codec.EncoderFactory encoderFactory) { + public CodecNameForwardingCodecFactory( + Codec.DecoderFactory decoderFactory, Codec.EncoderFactory encoderFactory) { + this.decoderFactory = decoderFactory; this.encoderFactory = encoderFactory; } + @Override + public Codec createForAudioDecoding(Format format) throws TransformationException { + Codec audioDecoder = decoderFactory.createForAudioDecoding(format); + audioDecoderName = audioDecoder.getName(); + return audioDecoder; + } + + @Override + public Codec createForVideoDecoding( + Format format, Surface outputSurface, boolean enableRequestSdrToneMapping) + throws TransformationException { + Codec videoDecoder = + decoderFactory.createForVideoDecoding(format, outputSurface, enableRequestSdrToneMapping); + videoDecoderName = videoDecoder.getName(); + return videoDecoder; + } + @Override public Codec createForAudioEncoding(Format format, List allowedMimeTypes) throws TransformationException { @@ -358,6 +391,12 @@ public boolean videoNeedsEncoding() { public JSONObject getCodecNamesAsJsonObject() throws JSONException { JSONObject detailsJson = new JSONObject(); + if (audioDecoderName != null) { + detailsJson.put("audioDecoderName", audioDecoderName); + } + if (videoDecoderName != null) { + detailsJson.put("videoDecoderName", videoDecoderName); + } if (audioEncoderName != null) { detailsJson.put("audioEncoderName", audioEncoderName); } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java index b786027fbcf..6cea6addbe0 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java @@ -110,6 +110,7 @@ public static final class Builder { private Looper looper; private Clock clock; private Codec.EncoderFactory encoderFactory; + private Codec.DecoderFactory decoderFactory; /** * @deprecated Use {@link #Builder(Context)} instead. @@ -121,6 +122,7 @@ public Builder() { clock = Clock.DEFAULT; listeners = new ListenerSet<>(looper, clock, (listener, flags) -> {}); encoderFactory = Codec.EncoderFactory.DEFAULT; + decoderFactory = Codec.DecoderFactory.DEFAULT; debugViewProvider = DebugViewProvider.NONE; containerMimeType = MimeTypes.VIDEO_MP4; transformationRequest = new TransformationRequest.Builder().build(); @@ -139,6 +141,7 @@ public Builder(Context context) { clock = Clock.DEFAULT; listeners = new ListenerSet<>(looper, clock, (listener, flags) -> {}); encoderFactory = Codec.EncoderFactory.DEFAULT; + decoderFactory = Codec.DecoderFactory.DEFAULT; debugViewProvider = DebugViewProvider.NONE; containerMimeType = MimeTypes.VIDEO_MP4; transformationRequest = new TransformationRequest.Builder().build(); @@ -158,6 +161,7 @@ private Builder(Transformer transformer) { this.listeners = transformer.listeners; this.looper = transformer.looper; this.encoderFactory = transformer.encoderFactory; + this.decoderFactory = transformer.decoderFactory; this.debugViewProvider = transformer.debugViewProvider; this.clock = transformer.clock; } @@ -349,6 +353,19 @@ public Builder setEncoderFactory(Codec.EncoderFactory encoderFactory) { return this; } + /** + * Sets the {@link Codec.DecoderFactory} that will be used by the transformer. + * + *

The default value is {@link Codec.DecoderFactory#DEFAULT}. + * + * @param decoderFactory The {@link Codec.DecoderFactory} instance. + * @return This builder. + */ + public Builder setDecoderFactory(Codec.DecoderFactory decoderFactory) { + this.decoderFactory = decoderFactory; + return this; + } + /** * Sets a provider for views to show diagnostic information (if available) during * transformation. @@ -437,7 +454,7 @@ public Transformer build() { looper, clock, encoderFactory, - Codec.DecoderFactory.DEFAULT, + decoderFactory, debugViewProvider); } @@ -559,7 +576,7 @@ public interface DebugViewProvider { private final Clock clock; private final Transformer.DebugViewProvider debugViewProvider; private final ListenerSet listeners; - private final Codec.DecoderFactory decoderFactory; + @VisibleForTesting /* package */ final Codec.DecoderFactory decoderFactory; @VisibleForTesting /* package */ final Codec.EncoderFactory encoderFactory; @Nullable private MuxerWrapper muxerWrapper; From 1d89c35f7bd469bc6ae08e746ff22b1510fcfab3 Mon Sep 17 00:00:00 2001 From: bachinger Date: Wed, 11 May 2022 13:11:22 +0100 Subject: [PATCH 071/182] Add MediaSession.setCustomLayout(List) This provides a way for apps to send a custom layout to media3 controllers and legacy controllers by making sure to include custom actions in the legacy playback state when built in the PlayerWrapper for broadcasting. PiperOrigin-RevId: 447967600 --- .../androidx/media3/session/MediaSession.java | 11 ++++ .../media3/session/MediaSessionImpl.java | 7 +++ .../session/MediaSessionLegacyStub.java | 13 +++-- .../media3/session/PlayerWrapper.java | 34 ++++++++++++- ...lerCompatCallbackWithMediaSessionTest.java | 50 +++++++++++++++++++ .../session/MediaSessionProviderService.java | 10 ++-- 6 files changed, 113 insertions(+), 12 deletions(-) diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java index 0cb74a5d7c5..9dac8c175e0 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java @@ -622,6 +622,17 @@ public ListenableFuture setCustomLayout( return impl.setCustomLayout(controller, layout); } + /** + * Sets the custom layout and broadcasts it to all connected controllers including the legacy + * controllers. + * + * @param layout The ordered list of {@link CommandButton}. + */ + public void setCustomLayout(List layout) { + checkNotNull(layout, "layout must not be null"); + impl.setCustomLayout(layout); + } + /** * Sets the new available commands for the controller. * diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java index 07caa4e5ef9..f7f83018d69 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java @@ -70,6 +70,7 @@ import androidx.media3.session.MediaSession.MediaItemFiller; import androidx.media3.session.MediaSession.SessionCallback; import androidx.media3.session.SequencedFutureManager.SequencedFuture; +import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import java.lang.ref.WeakReference; @@ -343,6 +344,12 @@ public ListenableFuture setCustomLayout( controller, (controller1, seq) -> controller1.setCustomLayout(seq, layout)); } + public void setCustomLayout(List layout) { + playerWrapper.setCustomLayout(ImmutableList.copyOf(layout)); + dispatchRemoteControllerTaskWithoutReturn( + (controller, seq) -> controller.setCustomLayout(seq, layout)); + } + public void setAvailableCommands( ControllerInfo controller, SessionCommands sessionCommands, Player.Commands playerCommands) { if (sessionStub.getConnectedControllersManager().isConnected(controller)) { diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java index 0f476641f58..8b92613b67b 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java @@ -34,6 +34,7 @@ import static androidx.media3.common.util.Assertions.checkStateNotNull; import static androidx.media3.common.util.Util.postOrRun; import static androidx.media3.session.MediaUtils.TRANSACTION_SIZE_LIMIT_IN_BYTES; +import static androidx.media3.session.SessionCommand.COMMAND_CODE_CUSTOM; import static androidx.media3.session.SessionResult.RESULT_ERROR_UNKNOWN; import static androidx.media3.session.SessionResult.RESULT_INFO_SKIPPED; import static androidx.media3.session.SessionResult.RESULT_SUCCESS; @@ -640,10 +641,7 @@ private void dispatchSessionTaskWithSessionCommand( private void dispatchSessionTaskWithSessionCommand( SessionCommand sessionCommand, SessionTask task) { dispatchSessionTaskWithSessionCommandInternal( - sessionCommand, - SessionCommand.COMMAND_CODE_CUSTOM, - task, - sessionCompat.getCurrentControllerInfo()); + sessionCommand, COMMAND_CODE_CUSTOM, task, sessionCompat.getCurrentControllerInfo()); } private void dispatchSessionTaskWithSessionCommandInternal( @@ -880,6 +878,13 @@ public void onPlayerError(int seq, @Nullable PlaybackException playerError) { .setPlaybackState(sessionImpl.getPlayerWrapper().createPlaybackStateCompat()); } + @Override + public void setCustomLayout(int seq, List layout) { + sessionImpl + .getSessionCompat() + .setPlaybackState(sessionImpl.getPlayerWrapper().createPlaybackStateCompat()); + } + @Override public void onPlayWhenReadyChanged( int seq, boolean playWhenReady, @Player.PlaybackSuppressionReason int reason) diff --git a/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java b/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java index 300f7bfd03e..41716c5edd8 100644 --- a/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java +++ b/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java @@ -45,6 +45,7 @@ import androidx.media3.common.text.Cue; import androidx.media3.common.util.Log; import androidx.media3.common.util.Util; +import com.google.common.collect.ImmutableList; import java.util.List; /** @@ -59,10 +60,12 @@ private int legacyStatusCode; @Nullable private String legacyErrorMessage; @Nullable private Bundle legacyErrorExtras; + private ImmutableList customLayout; public PlayerWrapper(Player player) { super(player); legacyStatusCode = STATUS_CODE_SUCCESS_COMPAT; + customLayout = ImmutableList.of(); } /** @@ -91,6 +94,11 @@ public int getLegacyStatusCode() { return legacyStatusCode; } + /** Sets the custom layout. */ + public void setCustomLayout(ImmutableList customLayout) { + this.customLayout = customLayout; + } + /** Clears the legacy error status. */ public void clearLegacyErrorStatus() { legacyStatusCode = STATUS_CODE_SUCCESS_COMPAT; @@ -766,8 +774,6 @@ public PlaybackStateCompat createPlaybackStateCompat() { | PlaybackStateCompat.ACTION_PAUSE | PlaybackStateCompat.ACTION_PLAY | PlaybackStateCompat.ACTION_REWIND - | PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS - | PlaybackStateCompat.ACTION_SKIP_TO_NEXT | PlaybackStateCompat.ACTION_FAST_FORWARD | PlaybackStateCompat.ACTION_SET_RATING | PlaybackStateCompat.ACTION_SEEK_TO @@ -783,6 +789,14 @@ public PlaybackStateCompat createPlaybackStateCompat() { | PlaybackStateCompat.ACTION_SET_REPEAT_MODE | PlaybackStateCompat.ACTION_SET_SHUFFLE_MODE | PlaybackStateCompat.ACTION_SET_CAPTIONING_ENABLED; + if (getAvailableCommands().contains(COMMAND_SEEK_TO_PREVIOUS) + || getAvailableCommands().contains(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM)) { + allActions |= PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS; + } + if (getAvailableCommands().contains(COMMAND_SEEK_TO_NEXT) + || getAvailableCommands().contains(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM)) { + allActions |= PlaybackStateCompat.ACTION_SKIP_TO_NEXT; + } long queueItemId = MediaUtils.convertToQueueItemId(getCurrentMediaItemIndex()); PlaybackStateCompat.Builder builder = new PlaybackStateCompat.Builder() @@ -794,6 +808,22 @@ public PlaybackStateCompat createPlaybackStateCompat() { .setActions(allActions) .setActiveQueueItemId(queueItemId) .setBufferedPosition(getBufferedPosition()); + + for (int i = 0; i < customLayout.size(); i++) { + CommandButton commandButton = customLayout.get(i); + if (commandButton.sessionCommand != null) { + SessionCommand sessionCommand = commandButton.sessionCommand; + if (sessionCommand.commandCode == SessionCommand.COMMAND_CODE_CUSTOM) { + builder.addCustomAction( + new PlaybackStateCompat.CustomAction.Builder( + sessionCommand.customAction, + commandButton.displayName, + commandButton.iconResId) + .setExtras(sessionCommand.customExtras) + .build()); + } + } + } if (playerError != null) { builder.setErrorMessage( PlaybackStateCompat.ERROR_CODE_UNKNOWN_ERROR, Util.castNonNull(playerError.getMessage())); diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerCompatCallbackWithMediaSessionTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerCompatCallbackWithMediaSessionTest.java index 830b04d1ae8..61f3e5742b7 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerCompatCallbackWithMediaSessionTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerCompatCallbackWithMediaSessionTest.java @@ -57,6 +57,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.LargeTest; import com.google.common.collect.ImmutableList; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @@ -767,6 +768,55 @@ public void onPlaybackStateChanged(PlaybackStateCompat state) { assertThat(controllerCompat.getPlaybackState().getPosition()).isEqualTo(testSeekPosition); } + @Test + public void customLayoutChanged_updatesPlaybackStateCompat() throws Exception { + + AtomicReference playbackStateRef = new AtomicReference<>(); + CountDownLatch latch = new CountDownLatch(1); + MediaControllerCompat.Callback callback = + new MediaControllerCompat.Callback() { + @Override + public void onPlaybackStateChanged(PlaybackStateCompat state) { + playbackStateRef.set(state); + latch.countDown(); + } + }; + controllerCompat.registerCallback(callback, handler); + + List customLayout = new ArrayList<>(); + Bundle customCommandBundle1 = new Bundle(); + customCommandBundle1.putString("customKey1", "customValue1"); + customLayout.add( + new CommandButton.Builder() + .setDisplayName("customCommandName1") + .setIconResId(1) + .setSessionCommand(new SessionCommand("customCommandAction1", customCommandBundle1)) + .build()); + Bundle customCommandBundle2 = new Bundle(); + customCommandBundle2.putString("customKey2", "customValue2"); + customLayout.add( + new CommandButton.Builder() + .setDisplayName("customCommandName2") + .setIconResId(2) + .setSessionCommand(new SessionCommand("customCommandAction2", customCommandBundle2)) + .build()); + + session.setCustomLayout(customLayout); + + assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); + List customActions = + playbackStateRef.get().getCustomActions(); + assertThat(customActions).hasSize(2); + assertThat(customActions.get(0).getAction()).isEqualTo("customCommandAction1"); + assertThat(customActions.get(0).getName()).isEqualTo("customCommandName1"); + assertThat(customActions.get(0).getIcon()).isEqualTo(1); + assertThat(TestUtils.equals(customActions.get(0).getExtras(), customCommandBundle1)).isTrue(); + assertThat(customActions.get(1).getAction()).isEqualTo("customCommandAction2"); + assertThat(customActions.get(1).getName()).isEqualTo("customCommandName2"); + assertThat(customActions.get(1).getIcon()).isEqualTo(2); + assertThat(TestUtils.equals(customActions.get(1).getExtras(), customCommandBundle2)).isTrue(); + } + @Test public void currentMediaItemChange() throws Exception { int testItemIndex = 3; diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java index e8b5c6dafd4..c005fd5cd21 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java @@ -89,6 +89,7 @@ import androidx.media3.test.session.common.TestHandler; import androidx.media3.test.session.common.TestHandler.TestRunnable; import androidx.media3.test.session.common.TestUtils; +import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -398,15 +399,12 @@ public void setCustomLayout(String sessionId, List layout) throws Remote } runOnHandler( () -> { - List buttons = new ArrayList<>(); + ImmutableList.Builder builder = new ImmutableList.Builder<>(); for (Bundle bundle : layout) { - buttons.add(CommandButton.CREATOR.fromBundle(bundle)); + builder.add(CommandButton.CREATOR.fromBundle(bundle)); } MediaSession session = sessionMap.get(sessionId); - List controllerInfos = MediaTestUtils.getTestControllerInfos(session); - for (ControllerInfo info : controllerInfos) { - session.setCustomLayout(info, buttons); - } + session.setCustomLayout(builder.build()); }); } From efb49f285e7a83ec39ca5364eb73894b8ec49dc5 Mon Sep 17 00:00:00 2001 From: hmzh Date: Wed, 11 May 2022 14:12:13 +0100 Subject: [PATCH 072/182] Refactor MIDI and Flac extractor loaders for deduplication Add MIDI filetype information for use in the ExtractorsFactory PiperOrigin-RevId: 447976272 --- .../androidx/media3/common/FileTypes.java | 16 +++- .../extractor/DefaultExtractorsFactory.java | 79 ++++++++++++++----- 2 files changed, 72 insertions(+), 23 deletions(-) diff --git a/libraries/common/src/main/java/androidx/media3/common/FileTypes.java b/libraries/common/src/main/java/androidx/media3/common/FileTypes.java index cc5fd41deef..a7ba44cdccc 100644 --- a/libraries/common/src/main/java/androidx/media3/common/FileTypes.java +++ b/libraries/common/src/main/java/androidx/media3/common/FileTypes.java @@ -37,13 +37,14 @@ public final class FileTypes { /** * File types. One of {@link #UNKNOWN}, {@link #AC3}, {@link #AC4}, {@link #ADTS}, {@link #AMR}, * {@link #FLAC}, {@link #FLV}, {@link #MATROSKA}, {@link #MP3}, {@link #MP4}, {@link #OGG}, - * {@link #PS}, {@link #TS}, {@link #WAV}, {@link #WEBVTT} and {@link #JPEG}. + * {@link #PS}, {@link #TS}, {@link #WAV}, {@link #WEBVTT}, {@link #JPEG} and {@link #MIDI}. */ @Documented @Retention(RetentionPolicy.SOURCE) @Target(TYPE_USE) @IntDef({ - UNKNOWN, AC3, AC4, ADTS, AMR, FLAC, FLV, MATROSKA, MP3, MP4, OGG, PS, TS, WAV, WEBVTT, JPEG + UNKNOWN, AC3, AC4, ADTS, AMR, FLAC, FLV, MATROSKA, MP3, MP4, OGG, PS, TS, WAV, WEBVTT, JPEG, + MIDI }) public @interface Type {} /** Unknown file type. */ @@ -78,6 +79,8 @@ public final class FileTypes { public static final int WEBVTT = 13; /** File type for the JPEG format. */ public static final int JPEG = 14; + /** File type for the MIDI format. */ + public static final int MIDI = 15; @VisibleForTesting /* package */ static final String HEADER_CONTENT_TYPE = "Content-Type"; @@ -89,6 +92,9 @@ public final class FileTypes { private static final String EXTENSION_AMR = ".amr"; private static final String EXTENSION_FLAC = ".flac"; private static final String EXTENSION_FLV = ".flv"; + private static final String EXTENSION_MID = ".mid"; + private static final String EXTENSION_MIDI = ".midi"; + private static final String EXTENSION_SMF = ".smf"; private static final String EXTENSION_PREFIX_MK = ".mk"; private static final String EXTENSION_WEBM = ".webm"; private static final String EXTENSION_PREFIX_OG = ".og"; @@ -147,6 +153,8 @@ private FileTypes() {} return FileTypes.FLAC; case MimeTypes.VIDEO_FLV: return FileTypes.FLV; + case MimeTypes.AUDIO_MIDI: + return FileTypes.MIDI; case MimeTypes.VIDEO_MATROSKA: case MimeTypes.AUDIO_MATROSKA: case MimeTypes.VIDEO_WEBM: @@ -193,6 +201,10 @@ private FileTypes() {} return FileTypes.FLAC; } else if (filename.endsWith(EXTENSION_FLV)) { return FileTypes.FLV; + } else if (filename.endsWith(EXTENSION_MID) + || filename.endsWith(EXTENSION_MIDI) + || filename.endsWith(EXTENSION_SMF)) { + return FileTypes.MIDI; } else if (filename.startsWith( EXTENSION_PREFIX_MK, /* toffset= */ filename.length() - (EXTENSION_PREFIX_MK.length() + 1)) diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/DefaultExtractorsFactory.java b/libraries/extractor/src/main/java/androidx/media3/extractor/DefaultExtractorsFactory.java index 5470d906a81..65aff22e3a7 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/DefaultExtractorsFactory.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/DefaultExtractorsFactory.java @@ -44,6 +44,7 @@ import androidx.media3.extractor.ts.TsPayloadReader; import androidx.media3.extractor.wav.WavExtractor; import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -76,6 +77,8 @@ * the FLAC extension or the FFmpeg extension. * *

  • JPEG ({@link JpegExtractor}) + *
  • MIDI, if available, the MIDI extension's {@code androidx.media3.decoder.midi.MidiExtractor} + * is used. * */ @UnstableApi @@ -101,9 +104,13 @@ public final class DefaultExtractorsFactory implements ExtractorsFactory { FileTypes.AC4, FileTypes.MP3, FileTypes.JPEG, + FileTypes.MIDI, }; - private static final FlacExtensionLoader FLAC_EXTENSION_LOADER = new FlacExtensionLoader(); + private static final ExtensionLoader FLAC_EXTENSION_LOADER = + new ExtensionLoader(DefaultExtractorsFactory::getFlacExtractorConstructor); + private static final ExtensionLoader MIDI_EXTENSION_LOADER = + new ExtensionLoader(DefaultExtractorsFactory::getMidiExtractorConstructor); private boolean constantBitrateSeekingEnabled; private boolean constantBitrateSeekingAlwaysEnabled; @@ -399,6 +406,12 @@ private void addExtractorsForFileType(@FileTypes.Type int fileType, List getMidiExtractorConstructor() + throws ClassNotFoundException, NoSuchMethodException { + return Class.forName("androidx.media3.decoder.midi.MidiExtractor") + .asSubclass(Extractor.class) + .getConstructor(); + } + + @Nullable + private static Constructor getFlacExtractorConstructor() + throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, + IllegalAccessException { + @SuppressWarnings("nullness:argument") + boolean isFlacNativeLibraryAvailable = + Boolean.TRUE.equals( + Class.forName("androidx.media3.decoder.flac.FlacLibrary") + .getMethod("isAvailable") + .invoke(/* obj= */ null)); + if (isFlacNativeLibraryAvailable) { + return Class.forName("androidx.media3.decoder.flac.FlacExtractor") + .asSubclass(Extractor.class) + .getConstructor(int.class); + } + return null; + } + + private static final class ExtensionLoader { + + public interface ConstructorSupplier { + @Nullable + Constructor getConstructor() + throws InvocationTargetException, IllegalAccessException, NoSuchMethodException, + ClassNotFoundException; + } + + private final ConstructorSupplier constructorSupplier; private final AtomicBoolean extensionLoaded; @GuardedBy("extensionLoaded") @Nullable private Constructor extractorConstructor; - public FlacExtensionLoader() { + public ExtensionLoader(ConstructorSupplier constructorSupplier) { + this.constructorSupplier = constructorSupplier; extensionLoaded = new AtomicBoolean(false); } @Nullable - public Extractor getExtractor(int flags) { + public Extractor getExtractor(Object... constructorParams) { @Nullable Constructor extractorConstructor = maybeLoadExtractorConstructor(); if (extractorConstructor == null) { return null; } try { - return extractorConstructor.newInstance(flags); + return extractorConstructor.newInstance(constructorParams); } catch (Exception e) { - throw new IllegalStateException("Unexpected error creating FLAC extractor", e); + throw new IllegalStateException("Unexpected error creating extractor", e); } } @@ -438,23 +486,12 @@ private Constructor maybeLoadExtractorConstructor() { return extractorConstructor; } try { - @SuppressWarnings("nullness:argument") - boolean isFlacNativeLibraryAvailable = - Boolean.TRUE.equals( - Class.forName("androidx.media3.decoder.flac.FlacLibrary") - .getMethod("isAvailable") - .invoke(/* obj= */ null)); - if (isFlacNativeLibraryAvailable) { - extractorConstructor = - Class.forName("androidx.media3.decoder.flac.FlacExtractor") - .asSubclass(Extractor.class) - .getConstructor(int.class); - } + return constructorSupplier.getConstructor(); } catch (ClassNotFoundException e) { - // Expected if the app was built without the FLAC extension. + // Expected if the app was built without the extension. } catch (Exception e) { - // The FLAC extension is present, but instantiation failed. - throw new RuntimeException("Error instantiating FLAC extension", e); + // The extension is present, but instantiation failed. + throw new RuntimeException("Error instantiating extension", e); } extensionLoaded.set(true); return extractorConstructor; From 9b07d71f6684470b60656d2eb318268decee0f64 Mon Sep 17 00:00:00 2001 From: bachinger Date: Thu, 12 May 2022 11:37:14 +0100 Subject: [PATCH 073/182] Remove all handler messages when controller is released Issue: androidx/media#74 PiperOrigin-RevId: 448205908 --- RELEASENOTES.md | 2 ++ .../androidx/media3/session/MediaControllerImplBase.java | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index a9ead31b88c..9f3a980d7c4 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -89,6 +89,8 @@ ([#59](https://github.com/androidx/media/pull/59)) * Update session position info on timeline change([#51](https://github.com/androidx/media/issues/51)) + * Fix NPE in MediaControllerImplBase after releasing controller + ([#74](https://github.com/androidx/media/issues/74)) * Data sources: diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java index 9c5efc8be63..b2420b835a9 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java @@ -309,6 +309,7 @@ public void release() { serviceConnection = null; } connectedToken = null; + flushCommandQueueHandler.removeCallbacksAndMessages(/* token= */ null); this.iSession = null; controllerStub.destroy(); if (iSession != null) { @@ -3046,9 +3047,9 @@ public void handleMessage(Message msg) { } public void sendFlushCommandQueueMessage() { - // Send message to notify the end of the transaction. It will be handled when the current - // looper iteration is over. - if (!hasMessages(MSG_FLUSH_COMMAND_QUEUE)) { + if (iSession != null && !hasMessages(MSG_FLUSH_COMMAND_QUEUE)) { + // Send message to notify the end of the transaction. It will be handled when the current + // looper iteration is over. sendEmptyMessage(MSG_FLUSH_COMMAND_QUEUE); } } From 2725b4c4798a95d34ecb7a33d7ee70d25370c1ee Mon Sep 17 00:00:00 2001 From: hmzh Date: Thu, 12 May 2022 12:19:08 +0100 Subject: [PATCH 074/182] Adds key functionality for basic MIDI synthesization - Add a MidiRenderer skeleton with basic playback - Add MidiDecoder with placeholder synthesizer (JSyn) impl - Make MidiExtractor feed placeholder data - Add Renderer extension loaders for MIDI PiperOrigin-RevId: 448212797 --- .../media3/exoplayer/DefaultRenderersFactory.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/DefaultRenderersFactory.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/DefaultRenderersFactory.java index b817109c2b7..e78a2f1b03c 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/DefaultRenderersFactory.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/DefaultRenderersFactory.java @@ -484,6 +484,19 @@ protected void buildAudioRenderers( extensionRendererIndex--; } + try { + Class clazz = Class.forName("androidx.media3.decoder.midi.MidiRenderer"); + Constructor constructor = clazz.getConstructor(); + Renderer renderer = (Renderer) constructor.newInstance(); + out.add(extensionRendererIndex++, renderer); + Log.i(TAG, "Loaded MidiRenderer."); + } catch (ClassNotFoundException e) { + // Expected if the app was built without the extension. + } catch (Exception e) { + // The extension is present, but instantiation failed. + throw new RuntimeException("Error instantiating MIDI extension", e); + } + try { // Full class names used for constructor args so the LINT rule triggers if any of them move. Class clazz = Class.forName("androidx.media3.decoder.opus.LibopusAudioRenderer"); From 5067a8da0dccc2fe99bb910b2c2fd7e03eea697e Mon Sep 17 00:00:00 2001 From: huangdarwin Date: Thu, 12 May 2022 13:35:58 +0100 Subject: [PATCH 075/182] Transformer GL: Update test name reference. The prior test does not exist, and is not a pixel test. PiperOrigin-RevId: 448224929 --- .../media3/transformer/ScaleToFitTransformationTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/ScaleToFitTransformationTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/ScaleToFitTransformationTest.java index abd3b8b9d00..de7ec0014ee 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/ScaleToFitTransformationTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/ScaleToFitTransformationTest.java @@ -25,7 +25,7 @@ /** * Unit tests for {@link ScaleToFitTransformation}. * - *

    See {@code MatrixTransformationFrameProcessorText} for pixel tests testing {@link + *

    See {@code MatrixTransformationFrameProcessorPixelTest} for pixel tests testing {@link * MatrixTransformationFrameProcessor} given a transformation matrix. */ @RunWith(AndroidJUnit4.class) From 4c34160a96de9c6b5beb321b67f60d1f369f7b3e Mon Sep 17 00:00:00 2001 From: claincly Date: Thu, 12 May 2022 15:07:20 +0100 Subject: [PATCH 076/182] Add support for static RTP payload types. Some RTP foramts are statically assigned, so they don't have the rtpmap attribute. Create the missing rtpmap attribute in this case. PiperOrigin-RevId: 448239724 --- .../exoplayer/rtsp/MediaDescription.java | 58 +++++++- .../exoplayer/rtsp/RtspMediaTrackTest.java | 127 ++++++++++++++++++ 2 files changed, 181 insertions(+), 4 deletions(-) diff --git a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/MediaDescription.java b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/MediaDescription.java index 9a6c9b8387b..c3bffe8db6d 100644 --- a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/MediaDescription.java +++ b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/MediaDescription.java @@ -17,7 +17,6 @@ package androidx.media3.exoplayer.rtsp; import static androidx.media3.common.util.Assertions.checkArgument; -import static androidx.media3.common.util.Assertions.checkState; import static androidx.media3.common.util.Util.castNonNull; import static androidx.media3.exoplayer.rtsp.RtspMessageUtil.parseInt; import static androidx.media3.exoplayer.rtsp.SessionDescription.ATTR_FMTP; @@ -105,6 +104,17 @@ public int hashCode() { /** Builder class for {@link MediaDescription}. */ public static final class Builder { + + /** + * RTPMAP attribute format: {@code //}. + */ + private static final String RTP_MAP_ATTR_AUDIO_FMT = "%d %s/%d/%d"; + + private static final int RTP_STATIC_PAYLOAD_TYPE_PCMU = 0; + private static final int RTP_STATIC_PAYLOAD_TYPE_PCMA = 8; + private static final int RTP_STATIC_PAYLOAD_TYPE_L16_STEREO = 10; + private static final int RTP_STATIC_PAYLOAD_TYPE_L16_MONO = 11; + private final String mediaType; private final int port; private final String transportProtocol; @@ -199,15 +209,55 @@ public Builder addAttribute(String attributeName, String attributeValue) { */ public MediaDescription build() { try { - // rtpmap attribute is mandatory in RTSP (RFC2326 Section C.1.3). - checkState(attributes.containsKey(ATTR_RTPMAP)); RtpMapAttribute rtpMapAttribute = - RtpMapAttribute.parse(castNonNull(attributes.get(ATTR_RTPMAP))); + attributes.containsKey(ATTR_RTPMAP) + ? RtpMapAttribute.parse(castNonNull(attributes.get(ATTR_RTPMAP))) + : RtpMapAttribute.parse(getRtpMapStringByPayloadType(payloadType)); return new MediaDescription(this, ImmutableMap.copyOf(attributes), rtpMapAttribute); } catch (ParserException e) { throw new IllegalStateException(e); } } + + private static String getRtpMapStringByPayloadType(int rtpPayloadType) { + checkArgument(rtpPayloadType < 96); + + switch (rtpPayloadType) { + // See RFC3551 Section 6. + case RTP_STATIC_PAYLOAD_TYPE_PCMU: + return constructAudioRtpMap( + RTP_STATIC_PAYLOAD_TYPE_PCMU, + /* mediaEncoding= */ "PCMU", + /* clockRate= */ 8_000, + /* channelCount= */ 1); + case RTP_STATIC_PAYLOAD_TYPE_PCMA: + return constructAudioRtpMap( + RTP_STATIC_PAYLOAD_TYPE_PCMA, + /* mediaEncoding= */ "PCMA", + /* clockRate= */ 8_000, + /* channelCount= */ 1); + case RTP_STATIC_PAYLOAD_TYPE_L16_STEREO: + return constructAudioRtpMap( + RTP_STATIC_PAYLOAD_TYPE_L16_STEREO, + /* mediaEncoding= */ "L16", + /* clockRate= */ 44_100, + /* channelCount= */ 2); + case RTP_STATIC_PAYLOAD_TYPE_L16_MONO: + return constructAudioRtpMap( + RTP_STATIC_PAYLOAD_TYPE_L16_MONO, + /* mediaEncoding= */ "L16", + /* clockRate= */ 44_100, + /* channelCount= */ 1); + default: + throw new IllegalStateException("Unsupported static paylod type " + rtpPayloadType); + } + } + + private static String constructAudioRtpMap( + int payloadType, String mediaEncoding, int clockRate, int channelCount) { + return Util.formatInvariant( + RTP_MAP_ATTR_AUDIO_FMT, payloadType, mediaEncoding, clockRate, channelCount); + } } /** The media types allowed in a SDP media description. */ diff --git a/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMediaTrackTest.java b/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMediaTrackTest.java index b84c156a7a6..6f5b6fbc025 100644 --- a/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMediaTrackTest.java +++ b/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMediaTrackTest.java @@ -25,6 +25,7 @@ import static org.junit.Assert.assertThrows; import android.net.Uri; +import androidx.media3.common.C; import androidx.media3.common.Format; import androidx.media3.common.MimeTypes; import androidx.media3.extractor.AacUtil; @@ -80,6 +81,132 @@ public void generatePayloadFormat_withH264MediaDescription_succeeds() { assertThat(format).isEqualTo(expectedFormat); } + @Test + public void generatePayloadFormat_withPcmuMediaDescription_succeeds() { + + MediaDescription mediaDescription = + new MediaDescription.Builder( + MEDIA_TYPE_AUDIO, /* port= */ 0, RTP_AVP_PROFILE, /* payloadType= */ 0) + .setConnection("IN IP4 0.0.0.0") + .addAttribute(ATTR_CONTROL, "track2") + .build(); + + RtpPayloadFormat format = RtspMediaTrack.generatePayloadFormat(mediaDescription); + RtpPayloadFormat expectedFormat = + new RtpPayloadFormat( + new Format.Builder() + .setSampleMimeType(MimeTypes.AUDIO_MLAW) + .setChannelCount(1) + .setSampleRate(8_000) + .build(), + /* rtpPayloadType= */ 0, + /* clockRate= */ 8_000, + /* fmtpParameters= */ ImmutableMap.of()); + + assertThat(format).isEqualTo(expectedFormat); + } + + @Test + public void generatePayloadFormat_withPcmaMediaDescription_succeeds() { + // m=audio 0 RTP/AVP 0 + // c=IN IP4 0.0.0.0 + // a=control:track2 + int pcmaPayloadType = 8; + int pcmaClockRate = 8_000; + + MediaDescription mediaDescription = + new MediaDescription.Builder( + MEDIA_TYPE_AUDIO, + /* port= */ 0, + RTP_AVP_PROFILE, + /* payloadType= */ pcmaPayloadType) + .setConnection("IN IP4 0.0.0.0") + .addAttribute(ATTR_CONTROL, "track2") + .build(); + + RtpPayloadFormat format = RtspMediaTrack.generatePayloadFormat(mediaDescription); + RtpPayloadFormat expectedFormat = + new RtpPayloadFormat( + new Format.Builder() + .setSampleMimeType(MimeTypes.AUDIO_ALAW) + .setChannelCount(1) + .setSampleRate(pcmaClockRate) + .build(), + /* rtpPayloadType= */ pcmaPayloadType, + /* clockRate= */ pcmaClockRate, + /* fmtpParameters= */ ImmutableMap.of()); + + assertThat(format).isEqualTo(expectedFormat); + } + + @Test + public void generatePayloadFormat_withL16StereoMediaDescription_succeeds() { + // m=audio 0 RTP/AVP 0 + // c=IN IP4 0.0.0.0 + // a=control:track2 + int l16StereoPayloadType = 10; + int l16StereoClockRate = 44_100; + + MediaDescription mediaDescription = + new MediaDescription.Builder( + MEDIA_TYPE_AUDIO, + /* port= */ 0, + RTP_AVP_PROFILE, + /* payloadType= */ l16StereoPayloadType) + .setConnection("IN IP4 0.0.0.0") + .addAttribute(ATTR_CONTROL, "track2") + .build(); + + RtpPayloadFormat format = RtspMediaTrack.generatePayloadFormat(mediaDescription); + RtpPayloadFormat expectedFormat = + new RtpPayloadFormat( + new Format.Builder() + .setSampleMimeType(MimeTypes.AUDIO_RAW) + .setChannelCount(2) + .setSampleRate(l16StereoClockRate) + .setPcmEncoding(C.ENCODING_PCM_16BIT_BIG_ENDIAN) + .build(), + /* rtpPayloadType= */ l16StereoPayloadType, + /* clockRate= */ l16StereoClockRate, + /* fmtpParameters= */ ImmutableMap.of()); + + assertThat(format).isEqualTo(expectedFormat); + } + + @Test + public void generatePayloadFormat_withL16MonoMediaDescription_succeeds() { + // m=audio 0 RTP/AVP 0 + // c=IN IP4 0.0.0.0 + // a=control:track2 + int l16MonoPayloadType = 11; + int l16MonoClockRate = 44_100; + + MediaDescription mediaDescription = + new MediaDescription.Builder( + MEDIA_TYPE_AUDIO, + /* port= */ 0, + RTP_AVP_PROFILE, + /* payloadType= */ l16MonoPayloadType) + .setConnection("IN IP4 0.0.0.0") + .addAttribute(ATTR_CONTROL, "track2") + .build(); + + RtpPayloadFormat format = RtspMediaTrack.generatePayloadFormat(mediaDescription); + RtpPayloadFormat expectedFormat = + new RtpPayloadFormat( + new Format.Builder() + .setSampleMimeType(MimeTypes.AUDIO_RAW) + .setChannelCount(1) + .setSampleRate(l16MonoClockRate) + .setPcmEncoding(C.ENCODING_PCM_16BIT_BIG_ENDIAN) + .build(), + /* rtpPayloadType= */ l16MonoPayloadType, + /* clockRate= */ l16MonoClockRate, + /* fmtpParameters= */ ImmutableMap.of()); + + assertThat(format).isEqualTo(expectedFormat); + } + @Test public void generatePayloadFormat_withFmtpTrailingSemicolon_succeeds() { MediaDescription mediaDescription = From fe9e6da8a521c8a3dbf4ef31c243a50f89aa89c7 Mon Sep 17 00:00:00 2001 From: tonihei Date: Thu, 12 May 2022 15:11:24 +0100 Subject: [PATCH 077/182] Remove network type test restrictions for API 29/30 Network type detection on these API levels couldn't be tested yet because of a missing Robolectric feature. This was fixed by the recent Robolectric upgrade and the restrictions can be removed. This also requires to replicate the platform hack we rely on on these API levels. PiperOrigin-RevId: 448240431 --- .../upstream/DefaultBandwidthMeterTest.java | 65 +++++-------------- 1 file changed, 15 insertions(+), 50 deletions(-) diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/upstream/DefaultBandwidthMeterTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/upstream/DefaultBandwidthMeterTest.java index 039223393aa..60b10f87b97 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/upstream/DefaultBandwidthMeterTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/upstream/DefaultBandwidthMeterTest.java @@ -25,6 +25,7 @@ import android.net.NetworkInfo; import android.net.NetworkInfo.DetailedState; import android.net.Uri; +import android.telephony.ServiceState; import android.telephony.TelephonyDisplayInfo; import android.telephony.TelephonyManager; import androidx.media3.common.C; @@ -189,13 +190,6 @@ public void defaultInitialBitrateEstimate_forEthernet_isGreaterThanEstimateFor3G @Test public void defaultInitialBitrateEstimate_for4G_isGreaterThanEstimateFor2G() { - if (Util.SDK_INT == 29 || Util.SDK_INT == 30) { - // Robolectric doesn't support listening to service state changes, which we need on APIs 29 - // and 30 to run this test successfully. - // TODO(b/190021699): Update once Robolectric released support for this. - return; - } - setActiveNetworkInfo(networkInfo4g); DefaultBandwidthMeter bandwidthMeter4g = new DefaultBandwidthMeter.Builder(ApplicationProvider.getApplicationContext()).build(); @@ -211,13 +205,6 @@ public void defaultInitialBitrateEstimate_for4G_isGreaterThanEstimateFor2G() { @Test public void defaultInitialBitrateEstimate_for4G_isGreaterThanEstimateFor3G() { - if (Util.SDK_INT == 29 || Util.SDK_INT == 30) { - // Robolectric doesn't support listening to service state changes, which we need on APIs 29 - // and 30 to run this test successfully. - // TODO(b/190021699): Update once Robolectric released support for this. - return; - } - setActiveNetworkInfo(networkInfo4g); DefaultBandwidthMeter bandwidthMeter4g = new DefaultBandwidthMeter.Builder(ApplicationProvider.getApplicationContext()).build(); @@ -249,13 +236,6 @@ public void defaultInitialBitrateEstimate_for3G_isGreaterThanEstimateFor2G() { @Test @Config(minSdk = 29) // 5G detection support was added in API 29. public void defaultInitialBitrateEstimate_for5gNsa_isGreaterThanEstimateFor4g() { - if (Util.SDK_INT == 29 || Util.SDK_INT == 30) { - // Robolectric doesn't support listening to service state changes, which we need on APIs 29 - // and 30 to run this test successfully. - // TODO(b/190021699): Update once Robolectric released support for this. - return; - } - setActiveNetworkInfo(networkInfo4g); DefaultBandwidthMeter bandwidthMeter4g = new DefaultBandwidthMeter.Builder(ApplicationProvider.getApplicationContext()).build(); @@ -367,13 +347,6 @@ public void defaultInitialBitrateEstimate_forOffline_isReasonable() { @Test public void defaultInitialBitrateEstimate_for4g_forFastCountry_isGreaterThanEstimateForSlowCountry() { - if (Util.SDK_INT == 29 || Util.SDK_INT == 30) { - // Robolectric doesn't support listening to service state changes, which we need on APIs 29 - // and 30 to run this test successfully. - // TODO(b/190021699): Update once Robolectric released support for this. - return; - } - setActiveNetworkInfo(networkInfo4g); setNetworkCountryIso(FAST_COUNTRY_ISO); DefaultBandwidthMeter bandwidthMeterFast = @@ -392,13 +365,6 @@ public void defaultInitialBitrateEstimate_forOffline_isReasonable() { @Config(minSdk = 29) // 5G detection support was added in API 29. public void defaultInitialBitrateEstimate_for5gNsa_forFastCountry_isGreaterThanEstimateForSlowCountry() { - if (Util.SDK_INT == 29 || Util.SDK_INT == 30) { - // Robolectric doesn't support listening to service state changes, which we need on APIs 29 - // and 30 to run this test successfully. - // TODO(b/190021699): Update once Robolectric released support for this. - return; - } - setActiveNetworkInfo(networkInfo4g, TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA); setNetworkCountryIso(FAST_COUNTRY_ISO); DefaultBandwidthMeter bandwidthMeterFast = @@ -558,13 +524,6 @@ public void initialBitrateEstimateOverwrite_for3G_whileConnectedTo3G_setsInitial @Test public void initialBitrateEstimateOverwrite_for4G_whileConnectedTo4G_setsInitialEstimate() { - if (Util.SDK_INT == 29 || Util.SDK_INT == 30) { - // Robolectric doesn't support listening to service state changes, which we need on APIs 29 - // and 30 to run this test successfully. - // TODO(b/190021699): Update once Robolectric released support for this. - return; - } - setActiveNetworkInfo(networkInfo4g); DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter.Builder(ApplicationProvider.getApplicationContext()) @@ -591,13 +550,6 @@ public void initialBitrateEstimateOverwrite_for4G_whileConnectedTo4G_setsInitial @Test @Config(minSdk = 29) // 5G detection support was added in API 29. public void initialBitrateEstimateOverwrite_for5gNsa_whileConnectedTo5gNsa_setsInitialEstimate() { - if (Util.SDK_INT == 29 || Util.SDK_INT == 30) { - // Robolectric doesn't support listening to service state changes, which we need on APIs 29 - // and 30 to run this test successfully. - // TODO(b/190021699): Update once Robolectric released support for this. - return; - } - setActiveNetworkInfo(networkInfo4g, TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA); DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter.Builder(ApplicationProvider.getApplicationContext()) @@ -762,6 +714,19 @@ private void setActiveNetworkInfo(NetworkInfo networkInfo, int networkTypeOverri ShadowTelephonyManager.createTelephonyDisplayInfo( networkInfo.getType(), networkTypeOverride); Shadows.shadowOf(telephonyManager).setTelephonyDisplayInfo(displayInfo); + } else if (Util.SDK_INT >= 29) { + ServiceState serviceState = new ServiceState(); + if (networkTypeOverride == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA) { + // Replicate known platform hack that includes special string indicating 5G-NSA. + serviceState = + new ServiceState() { + @Override + public String toString() { + return "...nrState=CONNECTED..."; + } + }; + } + Shadows.shadowOf(telephonyManager).setServiceState(serviceState); } // Create a sticky broadcast for the connectivity action because Robolectric isn't replying with // the current network state if a receiver for this intent is registered. @@ -789,7 +754,7 @@ private static long[] simulateTransfers(DefaultBandwidthMeter bandwidthMeter, Fa dataSource, dataSpec, /* isNetwork= */ true, - /* bytes= */ random.nextInt(5 * 1024 * 1024)); + /* bytesTransferred= */ random.nextInt(5 * 1024 * 1024)); bandwidthMeter.onTransferEnd(dataSource, dataSpec, /* isNetwork= */ true); bitrateEstimates[i] = bandwidthMeter.getBitrateEstimate(); } From de33eee6ecd446c3e7d8731c81489fa9479642a9 Mon Sep 17 00:00:00 2001 From: samrobinson Date: Thu, 12 May 2022 15:36:04 +0100 Subject: [PATCH 078/182] Increase test timeout for 4k60 regression test. Pixel 5 was occasionally reaching the 2 minute limit. PiperOrigin-RevId: 448244803 --- .../java/androidx/media3/transformer/mh/TransformationTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java index d0cc4dac833..42022a83a8d 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java @@ -94,6 +94,7 @@ public void transform4K60() throws Exception { new Transformer.Builder(context).setEncoderFactory(FORCE_ENCODE_ENCODER_FACTORY).build(); new TransformerAndroidTestRunner.Builder(context, transformer) .setCalculateSsim(true) + .setTimeoutSeconds(180) .build() .run(testId, MP4_REMOTE_4K60_PORTRAIT_URI_STRING); } From 25279ad477fad0a0bbe137d911b2723db36ed0e1 Mon Sep 17 00:00:00 2001 From: ibaker Date: Thu, 12 May 2022 16:10:51 +0100 Subject: [PATCH 079/182] Add DefaultMediaSourceFactory.{set,clear}LocalAdInsertionConfig Deprecate the setAdsLoaderProvider and setAdViewProvider methods these replace. PiperOrigin-RevId: 448251423 --- .../media3/demo/main/PlayerActivity.java | 4 +- .../source/DefaultMediaSourceFactory.java | 49 ++++++++++++++++++- .../source/DefaultMediaSourceFactoryTest.java | 21 +++++++- 3 files changed, 70 insertions(+), 4 deletions(-) diff --git a/demos/main/src/main/java/androidx/media3/demo/main/PlayerActivity.java b/demos/main/src/main/java/androidx/media3/demo/main/PlayerActivity.java index 0bfee73e10e..a2e960114db 100644 --- a/demos/main/src/main/java/androidx/media3/demo/main/PlayerActivity.java +++ b/demos/main/src/main/java/androidx/media3/demo/main/PlayerActivity.java @@ -314,8 +314,8 @@ private MediaSource.Factory createMediaSourceFactory() { serverSideAdsLoader, new DefaultMediaSourceFactory(dataSourceFactory)); return new DefaultMediaSourceFactory(dataSourceFactory) .setDrmSessionManagerProvider(drmSessionManagerProvider) - .setAdsLoaderProvider(this::getClientSideAdsLoader) - .setAdViewProvider(playerView) + .setLocalAdInsertionComponents( + this::getClientSideAdsLoader, /* adViewProvider= */ playerView) .setServerSideAdInsertionMediaSourceFactory(imaServerSideAdInsertionMediaSourceFactory); } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java index 1131f30a2bf..5ffb33a7cd8 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java @@ -193,9 +193,16 @@ public DefaultMediaSourceFactory experimentalUseProgressiveMediaSourceForSubtitl * Sets the {@link AdsLoader.Provider} that provides {@link AdsLoader} instances for media items * that have {@link MediaItem.LocalConfiguration#adsConfiguration ads configurations}. * + *

    This will override or clear the {@link AdsLoader.Provider} set by {@link + * #setLocalAdInsertionComponents(AdsLoader.Provider, AdViewProvider)}. + * * @param adsLoaderProvider A provider for {@link AdsLoader} instances. * @return This factory, for convenience. + * @deprecated Use {@link #setLocalAdInsertionComponents(AdsLoader.Provider, AdViewProvider)} + * instead. */ + @UnstableApi + @Deprecated public DefaultMediaSourceFactory setAdsLoaderProvider( @Nullable AdsLoader.Provider adsLoaderProvider) { this.adsLoaderProvider = adsLoaderProvider; @@ -205,14 +212,54 @@ public DefaultMediaSourceFactory setAdsLoaderProvider( /** * Sets the {@link AdViewProvider} that provides information about views for the ad playback UI. * - * @param adViewProvider A provider for {@link AdsLoader} instances. + *

    This will override or clear the {@link AdViewProvider} set by {@link + * #setLocalAdInsertionComponents(AdsLoader.Provider, AdViewProvider)}. + * + * @param adViewProvider A provider for information about views for the ad playback UI. * @return This factory, for convenience. + * @deprecated Use {@link #setLocalAdInsertionComponents(AdsLoader.Provider, AdViewProvider)} + * instead. */ + @UnstableApi + @Deprecated public DefaultMediaSourceFactory setAdViewProvider(@Nullable AdViewProvider adViewProvider) { this.adViewProvider = adViewProvider; return this; } + /** + * Sets the components required for local ad insertion for media items that have {@link + * MediaItem.LocalConfiguration#adsConfiguration ads configurations} + * + *

    This will override the values set by {@link #setAdsLoaderProvider(AdsLoader.Provider)} and + * {@link #setAdViewProvider(AdViewProvider)}. + * + * @param adsLoaderProvider A provider for {@link AdsLoader} instances. + * @param adViewProvider A provider for information about views for the ad playback UI. + * @return This factory, for convenience. + */ + public DefaultMediaSourceFactory setLocalAdInsertionComponents( + AdsLoader.Provider adsLoaderProvider, AdViewProvider adViewProvider) { + this.adsLoaderProvider = checkNotNull(adsLoaderProvider); + this.adViewProvider = checkNotNull(adViewProvider); + return this; + } + + /** + * Clear any values set via {@link #setLocalAdInsertionComponents(AdsLoader.Provider, + * AdViewProvider)}. + * + *

    This will also clear any values set by {@link #setAdsLoaderProvider(AdsLoader.Provider)} and + * {@link #setAdViewProvider(AdViewProvider)}. + * + * @return This factory, for convenience. + */ + public DefaultMediaSourceFactory clearLocalAdInsertionComponents() { + this.adsLoaderProvider = null; + this.adViewProvider = null; + return this; + } + /** * Sets the {@link MediaSource.Factory} used to handle {@link MediaItem} instances containing a * {@link Uri} identified as resolving to content with server side ad insertion (SSAI). diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java index 0c8221f95a3..a87d86f8a88 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java @@ -191,8 +191,9 @@ public void getSupportedTypes_coreModule_onlyOther() { assertThat(supportedTypes).asList().containsExactly(C.CONTENT_TYPE_OTHER); } + @SuppressWarnings("deprecation") // Testing deprecated setters. @Test - public void createMediaSource_withAdsConfiguration_callsAdsLoader() { + public void createMediaSource_withDeprecatedAdsConfiguration_callsAdsLoader() { Uri adTagUri = Uri.parse(URI_MEDIA); MediaItem mediaItem = new MediaItem.Builder() @@ -209,6 +210,24 @@ public void createMediaSource_withAdsConfiguration_callsAdsLoader() { assertThat(mediaSource).isInstanceOf(AdsMediaSource.class); } + @Test + public void createMediaSource_withAdsConfiguration_callsAdsLoader() { + Uri adTagUri = Uri.parse(URI_MEDIA); + MediaItem mediaItem = + new MediaItem.Builder() + .setUri(URI_MEDIA) + .setAdsConfiguration(new MediaItem.AdsConfiguration.Builder(adTagUri).build()) + .build(); + DefaultMediaSourceFactory defaultMediaSourceFactory = + new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext()) + .setLocalAdInsertionComponents( + ignoredAdsConfiguration -> mock(AdsLoader.class), mock(AdViewProvider.class)); + + MediaSource mediaSource = defaultMediaSourceFactory.createMediaSource(mediaItem); + + assertThat(mediaSource).isInstanceOf(AdsMediaSource.class); + } + @Test public void createMediaSource_withAdsConfiguration_adProvidersNotSet_playsWithoutAdNoException() { MediaItem mediaItem = From 4ce60968b2bba64f7fe15f160933b64055f8899e Mon Sep 17 00:00:00 2001 From: ibaker Date: Thu, 12 May 2022 18:40:48 +0100 Subject: [PATCH 080/182] Fix warning about ambiguous `@EnsuresNonNull` annotation ``` [expression.parameter.name.shadows.field] The postcondition EnsuresNonNull on the declaration of method 'setContentTimeline' contains ambiguous identifier 'contentTimeline'. Use "this.contentTimeline" for the field, or "#1" for the formal parameter. private void setContentTimeline(Timeline contentTimeline) { ^ ``` PiperOrigin-RevId: 448285571 --- .../exoplayer/ima/ImaServerSideAdInsertionMediaSource.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java b/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java index a6d23908605..d6278fe69ae 100644 --- a/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java +++ b/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java @@ -607,7 +607,7 @@ private void setAdPlaybackState(AdPlaybackState adPlaybackState) { } @MainThread - @EnsuresNonNull("contentTimeline") + @EnsuresNonNull("this.contentTimeline") private void setContentTimeline(Timeline contentTimeline) { if (contentTimeline.equals(this.contentTimeline)) { return; From f3dd36107670785814198f74e040f50e5320cbfc Mon Sep 17 00:00:00 2001 From: bachinger Date: Fri, 13 May 2022 11:28:32 +0100 Subject: [PATCH 081/182] Improve JavaDoc of MediaSession.release Specifically mention that releasing the session does not release the player and the app needs to take care to release the player. Issue: androidx/media#73 PiperOrigin-RevId: 448454338 --- .../java/androidx/media3/session/MediaSession.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java index 9dac8c175e0..a01abb97700 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java @@ -516,7 +516,7 @@ public String toString() { } /** - * Sets the underlying {@link Player} for this session to dispatch incoming event to. + * Sets the underlying {@link Player} for this session to dispatch incoming events to. * * @param player A player that handles actual media playback in your app. * @throws IllegalArgumentException if the new player's application looper differs from the @@ -532,7 +532,16 @@ public void setPlayer(Player player) { impl.setPlayer(player); } - /** Releases the session. */ + /** + * Releases the session and disconnects all connected controllers. + * + *

    The session must not be used after calling this method. + * + *

    Releasing the session removes the session's listeners from the player but does not + * {@linkplain Player#stop() stop} or {@linkplain Player#release() release} the player. An app can + * further use the player after the session is released and needs to make sure to eventually + * release the player. + */ public void release() { try { synchronized (STATIC_LOCK) { From d59186e53c7c2bd2c74c615f7ca8c4a4467f9925 Mon Sep 17 00:00:00 2001 From: hschlueter Date: Fri, 13 May 2022 18:06:44 +0100 Subject: [PATCH 082/182] Combine multiple matrix transformations in one shader. When using a MatrixTransformationFrameProcessor per transformation matrix, each frame processor's shader applies the matrix to the vertices and clips the result to the NDC range when drawing the output frame. This change combines consecutive MatrixTransformations into a single MatrixTransformationFrameProcessor by multiplying the individual matrices while updating and clipping the visible polygon after each matrix and mapping the resulting visible polygon back to the input space so that its vertices and the combined transformation matrix can be used in the shader. PiperOrigin-RevId: 448521068 --- .../androidx/media3/common/util/GlUtil.java | 15 ++ .../rotate_then_translate.png | Bin 345767 -> 357254 bytes .../translate_then_rotate.png | Bin 425868 -> 428655 bytes .../FrameProcessorChainPixelTest.java | 77 ++++++-- .../transformer/FrameProcessorChain.java | 40 +++- .../MatrixTransformationFrameProcessor.java | 162 +++++++++++++--- .../media3/transformer/MatrixUtils.java | 166 +++++++++++++++- .../media3/transformer/MatrixUtilsTest.java | 177 ++++++++++++++++++ 8 files changed, 587 insertions(+), 50 deletions(-) create mode 100644 libraries/transformer/src/test/java/androidx/media3/transformer/MatrixUtilsTest.java diff --git a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java index 6aaaedbe395..3fb355bcc1e 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java @@ -35,6 +35,7 @@ import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.FloatBuffer; +import java.util.List; import javax.microedition.khronos.egl.EGL10; /** OpenGL ES utilities. */ @@ -122,6 +123,20 @@ public static float[] getTextureCoordinateBounds() { }; } + /** Flattens the list of 4 element NDC coordinate vectors into a buffer. */ + public static float[] createVertexBuffer(List vertexList) { + float[] vertexBuffer = new float[HOMOGENEOUS_COORDINATE_VECTOR_SIZE * vertexList.size()]; + for (int i = 0; i < vertexList.size(); i++) { + System.arraycopy( + /* src= */ vertexList.get(i), + /* srcPos= */ 0, + /* dest= */ vertexBuffer, + /* destPos= */ HOMOGENEOUS_COORDINATE_VECTOR_SIZE * i, + /* length= */ HOMOGENEOUS_COORDINATE_VECTOR_SIZE); + } + return vertexBuffer; + } + /** * Returns whether creating a GL context with {@value #EXTENSION_PROTECTED_CONTENT} is possible. * diff --git a/libraries/test_data/src/test/assets/media/bitmap/sample_mp4_first_frame/rotate_then_translate.png b/libraries/test_data/src/test/assets/media/bitmap/sample_mp4_first_frame/rotate_then_translate.png index 5cd7a9e9899fadab5da07f0b3df20eac452d53d1..a07e7475477ae1c049484ad2a149b46d163bfce9 100644 GIT binary patch literal 357254 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 Y^(j^Z{3LVcdup*-lAo?dt9TM2!T6 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�nJY$GGb5nIub5+W*j2PPo{d&-x}jwU1@8Eu~> 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

    @Q&np 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 z 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

    AoNSjhvFq^bRjhSxYOLAZY{S2;ayeY)rrFljye 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 z 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 diff --git a/libraries/test_data/src/test/assets/media/bitmap/sample_mp4_first_frame/translate_then_rotate.png b/libraries/test_data/src/test/assets/media/bitmap/sample_mp4_first_frame/translate_then_rotate.png index a2efe9118c153516e64ab4c4134223ce2a38569a..a4f212bc59925d0ce0cb11dfd34aa2e662119060 100644 GIT binary patch literal 428655 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

    OyIcA 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 z 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 @$Y`?eXi`&U?o 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

  • a)~KlvaIi=vqBYs=L#6F9 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ⅆ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
    scltup>RWUSFs#k<9e1Q9%w!Q|5RUip; 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

    ?w}}*lQ1~q?Lx0RUted(vI*a3Z4Xvj2Z`N6 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 ^$%TgJtxIjE<&F=mlcp%szdok|@Z_aZ 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%0D7WH;=T)k=B-TWpt1_C^^lat#4%#JUT` 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

    +*SK$ryek+r9jieLK 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

    TfTgN623_%~cm6TFi?$ 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%0A4suS956-y$EG}Q7pn7SkhZ?+a4 zNVWt<1h)6v;@{W>G4GrEsO9RO`d_6mR z+rdMeg4c1$_S|muR!ydPwgWb(RwbVilf_Jh;wp+ba>?x&YlW;WZBHc!QPwVJOr8RN ze2nigNczzzUT?%Nxb5X6V&K}i<4xE12Zr)71%_)4K&gEe6z&VR6T>y~+fovtU?Oc* z8}<0H6i7x*4>4^VmXp#bw>12yU)VKG0+KFz>}5dofY?7fD$xt$KKuI*`=~4na!P(w znS`(H%sc>Hb|9VMGAOZ{-bOh{KD;L_?YkjQITxb=#9{hqPw09IeYYd^@V)kbX@o3N znWD z5``%EFj%lvY9G1!_(fXD|^OV)yeVkyx5Y)Fgd>56W{J3S{+3K6}llMo= z^dB|qk|ilr)p)oAuS%n{QY4ifntJ?i0huJJZR5=@qa;pfL&cMUP87at3nEJ-Q|r^? zA^^fEFHsg~^En8$kEfNCeEq(7C*XX|#i(53j{(mwt3cQ{4+>OgKQusz#FTaX+1E3E z#gmjUp^du*|9vjP0)^N8pJlpEK(>2Ek3C2_3Vl6@4!u0$10m}ex!XIzT-S#9P!9ct z0FmFXO{0YP3RvvbXp+6D_r^r-E+kT%t52|)5g*n^eyi0I6Lb#K>z`Js zT6^nIyd~pLve)z;Da5NUw~CWtL3R=%##t-6hH*G}EHU&@t!G>s3DCBU)0Oo(-))s% zc)uI1AX)QE)AQwJwU7O15zUzwYl@$v=LbH4$NZ(6nA(stYxo$ikt zxBBC_J^9E~;~4+T;~?+RhU~XyYZ?AQ57k0qwVhF2jtom-s4#SR3QgO`y!o1)IWLi<$~!T}@bhO5tS_HOYgdm)dDKeC5VzK* zeCXECDyc9Q1mUf8%QmR6B&1j(VKVJK-S z1%_sj7+`>*YXpAByViYQuYZ8L=6ugN`|SNZpT|)gs2;Pi{OwgZmlET@9z?sFrXlIZ zI67D$5r?}RH_igU(rwNIkn7u27*2b0jwIe~9Gmy?Fe?bl_oZ=mcL|sj0wr5Hbf=c^ zB_2icXX(HzRjx+0jJg1y)+w#I9}4qVj0kbzK#si$!mwD^yXg|{3kHuHEiwL#h(KXS ztDuj|-A)*vazRVI8*E`MA)R?uBkBx8y=$88^7d3H<(Kw6kDjX))ZHKIvu;yxpqdKt zOlbARmw)|<=2dUE&T6;}S0ulvEG0p8p^(&i3vrOTZRFqqBK2{^Puip^N?CqdO3LuR zS6W6K-73}|A?uhJCAsrRK~k4@aYaum*cbfn@>)AHXq&Cs*IMjF5j$^Lu4oZ{JTSKI z);oKPxC(i(X3hLGIUS((SpbblP=Mleru(~&~OGe#<;mUfp3XoHN zE&g}Q>G}tZd8!ffj`&fFymw^C4w4efIi0wO#)}}vv3|N# zGPe&o>#FK%+*ZA@=iVTA>DL_p)I>)W3+kF%`TBPA9G*Yl=I!5fF~nAIEI(xv*?!pQ zJ`VzQLW&%De1wvlwl3a~c_B`d>D1RPMJl)}detiP`*#476$@CO0#{M^DO&_Rjd}C!#y4^{Ui9@k;EXJsz-8TvJPeXuBo zdgiGSP&>um!24D9*V6Dts{O4*dg2;(_BBE66BW87S?g-*wFt~$}|e{Z`aAK1(Pwz|}RCVc&;1rm5QBTmz1vV6?%czZc; zG$VC>vuIbv3bM3J&OcvMaJvJ}G`6p+0(`GKtyEksVn3x_*Po zRfl^j9P%cdc-zEfWnAC?UXNbH*(}ge%S5lJS%+>smk6U3#=N9+8S&;wb)ANLd89cJJsk7!LQw_7zYcyeyPml;Ys8E97}aJ;c<0 zfikH!uG}{U-Y(9ekN$dQaXs{rC8$(|iIeR2W<0FF@{_Pxsnl^jv-g(iZJ3DsUr?}U zJqcHn@Vd>IrOuY&tL&8&G2_+?66@do;s=e70ZYYfd5-+SYThs^+t1YtyIy{Vd%MHF zpu5&`nGLKssOZ57R!b4%+8e9kwzS4EBkAYAq+gK2zT`mv6?yzVmJ5d6kKOjmuo#28 z%VuHu?ZAG&?0}z4iNyoaRTh?@1ps!4+0X48-|%y13VNpHZvvW+uTGKdK48)#1yA@T znm7^G5Wu-19(Ip8e6Ba;BSexs|KT5}lFDvqq^&nXJ0EFjn{cY$0e^N*Y#}D6jB;L1_$1NY=S+bfKCQn_X#!oH_S`E~t+?Z->g-05Ud9Y+ z_tXgPeP*oExl4Wv`K0bc(&slOJ~k^L6w=9yvGXP)G{%+LuNa0ZFBB3i5~8&&DWk8T zR1X=UOdAPlQ4fm#?4+z^R?)LEu18?&@9sKmC&0?*aw9aB=NGLlMVO(RmKGTB>PbMo z4|hK_I4)HgJMNK|mP)Ly#Dt3*x?P{&kDB)-&npEB6uH%?PLz0y9haLLZN0lZHq}eD z?j)sm%LE_|X+Sfk|P>pLX8ju9HPgEt^&p#R}; z&9{Sj_f?nWpmlFUA-B?f`n}w8H1o#6&Hh_f7!mPp5ro4vN8b%{K7h-bj$c228O5Q3 zL`{#wkAk;P7c$YJ5bob?94$)U@V1e`i`71eDm+)S`JEJ#aYryWaxwROa%RxBom?H3Wbee*= zxGsHghsX^e5Va#KS@McKs7lAP;cEn(Hm(oM>buS2M~J_Wi!jV4w>%^xJ8cDd)jI7y zuk@0Ww1VvQl0)&452dKTIDtITeA!gnPbishhfb;8_qP{*DYcU$T02E!Y6W|>9wGn_ zW{u7}@2|UX&cL`m0K|6R)VH$Kd!9{W&9#XQt0_O+#4Q4#b4^g_V>FnB&BXlPtgI zkKCy-n9j#bM`pQwH%x7Fl~`GAp-lIs@QT)LZNO9c>Mz*0=_u~Go1X^L4duY$d)=iG zEt-gvoyBCH)u$W7PmPw{6)`6jL;L>`VCD_;tgj%STm5m!t654Vn}|%`bc;^Hws?rC zA=(=Y{h2;D$8QqoIt(b!p=M8$!H=j?^km8#h)-gAaL~KEUZ;Qelc$+qQLjkkPrb0R zw?KJ-^VlvV8Sn7~q3TbrZi^RLH*@Fcta2 z>2kmpW82+V-RKdY<@qA-tXBHZUsvsw_P@rdo;&QP4LDmnGwDjCfJ0IqLrtmMa zZrfR#8jM{eCi&1`C~`I*h#%{-Q%Gz4Xs)EH^T7aN*cSFf?sDCmop|{B$>mdA4vaux!xtJZgU0HBrW3a$meD^R^&P|?0KReWWVdtw1 z`p0=)uIleX*?e*~1)^{YJaOUt8f*)m&%n);|6oL3ZQY5Vv7Rm#9rj(3D?=#=lJw?% zVn}B$2<3gIh38~lu0ZJJF1~Us+yEFw&n=#2zY>s?c>w}rko(KQ4UXu$lm<1%#C~C3 zz24tGRtzaeZy;QSu0&c7t1s#uk?P;)J(km%4xTVa>){ILyON?xb?xD-U)YBPo_Dj> z&ZL$BFV%S_>YVD+CQroLI%i>5`Uh@J{*#Z#KHV-&zb_Yj!2nm67hVn*-y%3`{mNup zD|KjCpxIAhU15u5QmoIMU3B4R(;JCF$p?j((% z4JKWVuQICVaiGb35sOC}Z(5AjrT1@;9!H;>N9}~4Vm;5oZoMtMbld-QJ(tcR^ASty zXD_`V+T5_hZ*oEoLDdm$H+LnFj735+TzlrU_)(dRS>pQpuJg?lNes7>d9lgb$LYEYpf;ZF&nRbPnknOxnyP zm>*~S1*Ztm$8jEDslWS@#44Rba!#te5tvN*#K*ME@L09pMquZuD}N-hW9o{K$+jwnQEI&fWsqe`0;ef{ zMv{KlIR51QX9Dfa{EVup!%w{P64h6-K(+32eH9G!)Td;`Ae$oBIm}6mAkd_}nLxG49vq_5*G+o76u&r4X8op#Hq6eiO(C(S(LJuyQ{Su}R+XkF|(37Pti zewl$92^k^U7R?|TUG7oSkj^YifLWs;puO{*KrfqVkSU;_>^0t9l3Um*OD$g)hPMO? z%*a3N4Az}U4g0e%F$8YTw`sq%1b+%L+K;bcs)9kP?(tF|5Sazy%!RVPD4Rh&YSYD@ zXkhK?Sz{l~kp_V|k28jKe<1UsqDEflTfFd$I5n+!(_ZO)Ek!xyb$WGQs*+^HduuDG zu3p?xQB9v!aV*Vk(kEDHla|+R&M@e@C+9rv@8Hz=U#$a+uD{rZ_;EZ`<6fw1Vii>c%S!}@D0CE2l~VbH=1h?){@&nCFi*++k9i6nS&f=CBeI~ zW9v((qfG%m#6;ZkHTWwGssCgIAP^Q^?6V$erqA@E@Ls5Lrj0YFfgbvr1 zSLlkHh)(Hr`2b(qr_Ay(Yl=H7Ck{iXO5^=dlcu#@50J=L0PS{X>eA~rd3_Uc8>E0B zv+OImCCpd z9=0QKoHajN1%~>~-pS#1bnqvImn90Js_$LlJ3EYs7^OP+DQzaH={Q#he76k8@ABiF z5zNcRC$x`Od>Sr|S4ylI8V8aUEIurUAKgK8%jXs|@ z%nM=V5_P^pLM6+DwkOFl1Hay5Gh+#8+&&w-C(HkCA%fM`IFqKbGqT#C68rm;2p`uD zIyklhTdOVl0UWnktm^(rp1~N6VL)DD7^1p})C_hU+@s&v+KL#^7%rcn#mVqBa}68? z6=JKmGJ#cvMA3-TE_r1KghZ=|O#<)Xckbqp!%nQP&+^=EG!kIk&NjQx)%@Y&<+Og8 zkvtldYq2$)jg5whZ}1LhGLJ8?&DUJe-N#=nysCZ@*?t)=XqeH_jKt}s1w@5jvC>l6 zdm@ym4OyWghnOVmth~?oRH4`YI!?WK;-+CA#?v+=12N8a6Glcaqsa4Wre=UfNhJ z4TI9=x3x1azOEot5Z%<&R45jPoP1jwBds2mnb(`TR{%+T7aqUdq-^cbdXe#q>gpt0 z{Q5lSV)O4|H~#No$B-BK)TF=LjrnF)?z^2=m;3e1?;WV=VL#{Yi75tr#xlA65wjVT z;4t(49YBK3`M6{bH-q%I9hemP5je3VkNgwiJDMhbV!+SnSXn|LV&5g+w{TNVgCp7h z4#Kux8ee*jVEQiP>+_{Z=&;6$wAj>QYeGT^PNkfwh^T|8GmpaM$!_qX+nLmc>mlOF zvrxYNDqX>^9#LgizmJ8l_E{UlG7is(uV+~P zTD2J}DWMtvPvagpzBy(jd?9h;)$ql>xG7EgR!^Usp-~3p?91E~&hJnLjv5kp7w#w- z{+@f^PYA4gc~20etVzAVoYU^PNB(T{YLHaMh6Pw}JDoovaT6eEkeKW%3BaI=k`v_I z8YgMvi@4C z5^HbdANSt8y54Cg@~J)+dOyA;tK5iUuWK({!H~c_HV=r0B4MxY*5Goc8j)^r*6FrK zeMRz4EMdZ3LK!|j7p0pc2G1D9hSZc7WhtVXuq%i|?V~lq6dPC#g@y#QQS33g-r_@4 ziv~4H8cBFWG^Y7vJ+iHbJAylHrWMHbbwSSt078(&Ttc%Zo1w)ILTgFKZ^e9)u~+K1 zphXM6W;D`S?Bia*KHEKKK9Gv=kiO2j`j0x5>R&E~V^Tbmzs6oJ4))Ig$B9P~v#TTHcsMtH^i5zuA1Q2IOugVx(0w-{p+Ki8b)}2(A?0my zXHJ1c#=Bh=&AFx6nw3h_c^9N8n{Vm}Wlq3kA)klzd>QcldN2FeMzO}NG*eEY*BSI0 z;x$U2ki<~X`nG-Aiacf*I=#N~-Q7i3X*uo86e&6=$sq`}-0L`99&Ye>1+<>tAwrYL za{gG(WE~O!%2XJq9&d_-?^Wzq)f^{x_a1Y83!w)CHJK8lh7i4>JL!zb(_0E*Q4b9IlT)aJfYsb|+5^I#Mf?!%}<}`rLEZU`)8b zgHSq$5!j~L{?!b}Y2aT3?4&XJcV4n;kl1{zA{-R%bkhi`wDp`{I?s;02|jNSwr1Bb zSKlAOAF<}r>31b6=XTdHUDtCv-4@a-+9AC5+xNS8^T)eY9yW99x-64?eUCN_rKI>e zZ=QHVOsvP&QpE+<<1Ri=u}?iD3!KE^ZSBK`y*(GzE?ql8Qa)FEtL+D}}IAml5s8@a^d;J=CPy_Gn8>aHpJZE)41F|gWO9OzWQUk(U6CDPkAIUv{4$2$A`rHaCG+asKT4u!vmb``8;fQM zFN!NII)oQbl(gVisVwyC3L69@l4?$Jg1qHLm(N(@B*w!(@jf1AlY&+Eyz53RaLa;yqGD?DJQddFLtY-sq7yywLD%=dZ}%l76JUanO|kN0g9 zW#~Z&Ik64roo4*3I(|oF_JWyeHqy|z-21ABMxqV2zI72j=`(3Oq{x-70US{$x_9S6 zQV!6V>6o;wUtMMIT*hNCIG&yj6Lo#G3GO%0&4-j4w<8q0zQaD}Y7+b*W&Q2{h@~St zX1Di|e;XorJ0IV2vo>P)iD#}Ogs2T6AIxdPHRk*9tv$19pS6?nGN~-} zM%JOZVjaumyXUhLA}ox4SfM2+Pkhl`;mhn{BpK;)?zyEWfOy7R$?JXfM|3nta^+xv zsr?-Fx1)ShWM(M14?i3&PkfSvRp; zLrcroA>A)QS+~xWHw^W>FPmI>WPFnmQ5*w*9}QQ)?+M&hy;k}QeNgRSV{0cSeP zu}F{>n>qI#3)n`VOo_!-%&-U<8XCI*G8&DE#M;G-hIW}eXK~&WMJ|9yt7U9;^7Z_C zd9>_g3p*|y{HNCw5Lyig%0;AiMq41a%eKguvu$0&qhIiB<@tn5bMl8PR?_mjVU&$jOJX|UaS0F8~y)T8y$eOTQ<2)XtgempfQJW%iw>_@+4)bPz{m2 zcdv-d@xrV{$V$gbMeK$@N6^?kPEo-PiVcP^q5xb(1|N0Oo0oc|a&BJ@Eq1P?ert(Z zQZev}eh786lSc(+6vz6Ko&jkYu&)4GORj5jTpvH)S=Y(Uv1q1m4#9BpPN%=q@cxjadrgiOj^iB1^wHt5VESk^gA=2==Xk@q0ba;rl1#coNYr1i{8;yX>D&X@iSiTK&^m`6bqx%aJ5Z^tjW}k z;^`kIZr{DDIqmf-;eQXY7(SS38_cvR{q@LUDzR#TTYrw#gT93wNynwO<*R^hpuzUW zoIGr3XxJ~e_4{G8WvKDJyKcAbEpy!zc>cep+&M;9^Z#i$PwP2F1d^Z&Lj$l(AAHl^ z$0z;_U>Xg^|KKG39~=cf86v_0UNg4_~n>5>xQ2Z zYOFETMe-9@wbcV~4VHzH=}!m0Ay4>WpGp60e<$*Rgq5FQq-(*7hZ+wkb& zxsj_IWs3TfDTRCX%qI^@kaJQosj+z2|QBH>E{Z5K>6t;pDmQ zg?p1sI`kd#dmK?@h5de)CvB|O6MKB|aq{Bhn$Js7{4C@TD_3olV3~U(ehLb2%}ym7 zDPlF?rXuF>7b|8%U=Qzy!Yw@Pwx?txRf)FY_V}xB0NYhg? zval!?8d)jtZc*DPfZDcJZzypR=VgvI!UDPuk)xc^YEA__F3%+Nk*rD6y7i}2V3AsV zG0C2ejx*@f?Nj`6_kH@wDC^eKyu|0kr(NE|hhsYZEi_#La>dZNyg^cy?ihK>%f6ua zQ55xFPxP-5{Tc~{q&?!mlm8&74E{$HD0tC+y?cFLlR7*pePSWKFN?&ZQOy>}8Leh^ zqhJ&==F-##-MpG?B^rLWM{j90SS^K%zFpkufOA5koV~WJ4Wz@2hLMo-5eO_b!L~`a z20*VWlEFzHoo{DSifOU!X5#1=7;j{8cT=7t-H1)_x3fQl*-;Wu6LZJn2-E9 z5gGGuaerRqI!Z8E$u&;yOOU|235t3Sg&}@FD{Nh+mwm$@HhYkDwwAoPiLgyBrhV({ zF~8F!!PG3isLk4Un5ROCCZD91raS%Be&Y7nWCu?~GTuUDy1hnF47`uAYCjBbIhkCr!hUGYh20S!Btnl7|K#lYn zzuxl90!^obcMnBQa!-LkmgVHfI&pH0x7)Wjv=${>+^cJ@q*f@}E21JHgrr_twc%Ss zV`CS0?}5or#L#R*{v4Vld5Q!z4S4d7!zf0$VZOCxc{szfH4t<>w~CcXYN=XNbY<=a zN!r?HNUJ_85MatqTO?!je~751Hn$dNW08KQNzxq$hmzSR;i^TQ>ROx)1uiE5rC<`S zW&147i~rK&6fexS0{^gFVWg{ddCo$wK_H=BGL5dr-86HPohE-wgq%_JoWtJpX|0G0 zwbys@bR)ewmJ3UubCEdQuq%aAtx0vIx|f9L!3A(7mtI3)Yc^ft2cAn>UJu8{HIy!F5pvHh!{D0w$49zI)DE3 zZyzdJVSFf#?KduZI_5`` zz}nUKz8hYRVfzW(`Sj{x#!h?&h6#gth<0?CUUW1K1c^aOL9T*R zKHvMCo@{dKG#gV54X{z($}=W0>uz~B=J}&lKMO?FrKV2`h@DN@zI_An3$@8VfcT}U zvFyG4Ga4BJ`$YOw+JOmc7`XHu#IP<@nC2{GOy>ITVl7#mh}Rt@wLJWj=JffPMu~c6 z16eB0e{yo~qF>{Usf0hlNER_6Gxfs8!B@!%g~r4SUP-!2dpS3(Bpn#-g$@!wle@1*cgNMVQ!jj^ zBfTo8bqtpy7l%@D6ub3+-nGfHUA$_EuX?K2|3PVUZ!^7xo!b!IVrxs>=Nb$7*&lh2 z^EipiZ`<5u^k7bS{%$PIqK()4;)oD+oT-H1}%D~a} zD`pEu?vYS_YDXiU`Eklygh*qiHAxb0EF&JFTR-t|`;q1&lAEH+-3eSouZ1$Xme!uy zbMslH^{xPqi6T8$IO_g?5zGD$jy=L^Q<=VlIb4YA7?jq64H^bTU@w@Q-9Fbv$bB%WZU#w5Pe{RL%IICSal z)PZlKq96t z+Om{~`_2Orh&!Uf(iv8UFSI-}EN&O7wN0NFRYIH5PK&q+nS|pzWaf=OJmG}|oZP&csZd6bteES13?3Y=!;}0f>F26&Y*8wwM~wj??y@6o_zV16v&HBdI?kzx`2)BQ`^>&(7onY=gK@on3hK|7cmJ(F zD<+q&dQAM%Yztw3c1&R8GN?onsiDW~F`{dJ&!sY|Ijy`p5PCn7Dc3Sxglw;=^%LKmxM)J*^Ej^sTN#oJRs5zSCJ-ttoV)xS?}n>O=0eg2%t z)vJ6;V|wz#7@ z$v`awlTynFnM!=0-1b}y+4;RfwBXL?m)^LUs1$XI-p|e!G0wVZ9M;Z<F>41mNX?mx`HdGKQ z?!_kph*goeGR2xda=tSBoELq7@je6nur;DA!MU?kMaZ+K*=u)%1SZs&M24thdNR>| zNS5E5wYCQmNY$&pz5jT`S?NC@5H@g z<)=JWuIsgUddV8AAW%NNhLdxUu~0B=guKw1AZ;q@Cude(oh)kXx$H4X`X6&e%@~6} zxRi7_ux2R#lxfzRIxsm4f3yI4I(pQU@{3}rLD2l&G@TWxZ=(2T7dz6xaDnf~vUrUz z*X)`*D$RV9W%HGJnRfeuCgmG)?Mu!MxWUxuCfto2T8IeSf|%Hzq7t_Itwr&W7w`mg zAElM8MzSUxh7NfB8`^x|t$87GU7ttqATJF1Ih1WfJohQ^l#|4=^A?@IJyO@i)e*%^ z-nOj22ahHanTVI$*@JbokbkySjy*VDHX)(j%{3Nh$#uuM2>GS_;He;QyHXF!y(fCm z0as-`n*&*mB-5-ys3Gy0l6`+oETHUVOSK^eeo=WZ%KSjoh;Q3EIP7|1PMFZfOMoF& zyp>)`6fgPCsVbqIPe1PSVE;klH5q~TMW%g#I_(b=h{t#d2O^(XZF7D4$q0N|H0=%8 z^tI=)fQ9mjL+4Mr$stoVApfXdFE3?*3-IUvE*r2ZogchmewtH+<4@ET!y!xMsz!%W z6SFd=jQSZhIPfhu>G?~qeQj@*B4F8;Tfup6|X=!liC~c^F{3Mu1`waWk0Rh!u4GAx-=)#gkB{MA)tLi=D#<=587DRxr9j|oy zz8_O!0=}Wg-7)xsD-0q4IKx(4ehRjEhHE7eK~>Wkz1!wJLsulQu9}S{je9;2+ee`& zS8W*`R-ChM*vWNxZPAX3VHXl_GR9kYiDr?6$DjV_$eaDM^Au(_w_?utYlS}Yj%ueO z3u{jP+vi!Md!?o=qoS$N7~jVB(GoCqWhND$W&s3G3K!z3XV%ZpkaBsm)Qu-b{$f{J z&3gB(Z|XhA2oK#EqMDL*Coh$Yb6rl?=cSSGJqi0d3NKHlm}q*$;{I@ce*R!<($-p7k%)_GJej%W4LQtxNineaq{26?Z zs;RnM$Cd?kCerOwBT^~bhg0IoW#ri{#+7NKNJ?*tLqqrLjLIbX#JYDZI;R4=7G^hI z_vKoYPr0AH7+S#JYhy-WoOBlCK(+x^JpTrRCVoKf^^LtO8`r_(sj!(7co_u(b;`=o zVN&2kn!)I|>DcAJ zV|U{*p$>lH#IhycD(A}d4Bn|h_gsTurLorhg1z_Y+dj;xfy3gGYhVNDO@W|A0G}@% zykqUrLS$iRVA`cm*fAO$bGQTXgLuElz^2^vzp+PMK2D2zG-Y1CX71m4{EIj{(7Ds+ zX4(yn$lr7$+`A5F@5_sao@ik^bOU245opk-3QbJ;vP4^c>rv74yzHg5WMUc|CV5W; zPq)E(Q>?b@uOspugbXC-PyBexJ~SCUG$cqvLjzu-PVRMYs|j{jb1vHc(*%1-_OFEP zOR?0(5CPv5bwA}DdJP6rcX|Kfftp+6A=I7cd-|xm)Zh4Zs1zFz9byVa?mVsRglqrR z0)$a??Z}S6rk{uV1<7YO+(84s)4U__bNC8n+`JESi_r!+oa8e0q2p*5p}V6s8_><5 z*SEX8aowLo%kOs3biUxkbspprB6<)2=?5MM2Dbp%<=x~?euQ}Yjy0pe=TIoaaxU|C zI&vzQuvvw&p#J1;nQJ!FgRp_;oPt_EEFovVSu<&eX!qjaOb;2JD)1@AAI?{w%6-IW z>B?W&cen3r=C~eX@kbiL&G0wHXe?IlFgi*@{Mw{?k>Z&RRX_O2az6K#fXz3Tg__3v-b@{C2426y4M^=i=!(db#jW812~9-U3Eh$vbaH%>r{vNwn5NyGIEkLkmhf zn;};R*x$Tj<4$dP4(5sn&N;BBfI$LOYE1#nhzp+)A9fy^&YQaM?8~Xz1!k|q^_!k( zPrF?*#uM>YnsQ>9%Ja?+@5q?X9a`cE*c3lSk=EICPk5y!5d)9<-%e#7>RMG7^@{cN z^nBz{g*LV}|Nd>x#OR0G6AqKJ4Y+PU82$S!JRPwo?0L`;azIMO74VfHwW-BHw zE!Xy$Jb7$Q@-hBt{?#%U^1~%>^nP51ysS!lZ^b>u*_1cz(Go)it~^0?85ss318&Aa z$gbWXvo4DBV8cTXs?DSQ>TRu_8$l`a6VXqq%GjB&gRe4g_}xst9sg*gq&4^}aC>6G zo+5wkj2=&32Vn2LB-1C6OO7P3rJJLe_zgO3fiOAM{8dX%hrsg!$Wod=areCEO8v^t z#2I(uaua>?qKaJ4I+_w8zF5gvA&&aZ;7|Pr!mNn%PPK`+uTP@7y{LkwvmlrR_*M%% z((NmzSs1~rx25G_WOs0BDM+lG2M+V57Ars!}f#Gg`MC_&@64#F2_UOySlk6&D5teA^?TDK(h(fete?J z{Z`c!31p4l$CI{;t&7gSt_tqc%O9pXzqhjEM9@C^C3mb1jP=A|(u;NY&tEtLz zR=dVM78St`z0DuCZERxVba|9+rJ7Tt|B!1a1YCnXJpxBa$w0*EB^1p1KQfp6GsF4# z{Gum?&x9>M0F{!r1;r`{&;RNvVEJvijF))un>Y~X;$CxxAIT|`coZ(uaHTsMM1kK? zP6|^ql2{Zajl{{=Np6Nx6mnTTp5mAAtkzdgX4j8242tW1aUWuGm+sal>YhwoKl?e- zBaj8sR`1_`=nYxQJv77g9Sywe5Uz{4D`@86=j zIP*bZTW(Ae0(osS-#epxOBD(h{iQ}kC=_@rDk^>934wa)0>5=Q{y{n zL-_>(CwQ$2JoM&z?8(TdHM+$}n`ZDWH<#`Qjko}_F95r(iHV)nl>5`|Mlxpm zK5*!!nyY8l-w?n$3+ipdA%nm?IKI!ELE<{cXGT;*e+*20<=%{!ez3W|Mu}iJ{whVW z7mU{Gu|E-asZtij_^kNQ?hy_)d|f*P6Vz&Y+1e6VuZqM6v$~~CXU5S!O_NL4`_<@x zoQ2D$@cSQ2svjIMB3yr3qHte}D(bcJiWa}x6Ko-JIE|O9<51BqrY_TT!`9(^4K%1u zU7|EDH`c|v^<($}tjK@{5zt@-sAvoJ01R#?#9-XkynJ#Qk&z(|a*9CMfMmvS_OQRQ zk#8)PpO?^&WU81#xtK29<=w@-tw|=6%gcuu%1*bq(dN!KS)$EWMbos4&+KY?e;YX+ zzDu9GCu_iDntyr&$uvb*Uh!xOo4Qc)@I3b1e8gPT%D;O3;vza`h?tj;7rZwqy+QA9 zRsQ)W2e8|Amp=S0IPw3T%YC_hVasO%n_%0@iOS`JNbD`DF>#k4TUX3s6J|pQ3`y({ z&uF)(gK==-M)MuMELbXGv{GR$Tool-(aoemd_%6FPy);hP+;1DYYxQ7!&k;>>_7h5 z%Xu8cS1KOexAS}XCsTnk^U99`{3+(~Hgl5X=Q)KqG71Y)kh2Sm3%{U*`dNW90CJ(P zgV=WTsr(rA0@isGoR#NBIj&3ZZHPoNZ^U-1&8`HrI3Hv7WACP6WYnI`KDf9?iGIis zNfsIW-B(^l^L;TkI((K!m+Z6i_Nkz|R-QX`Zuar^$=p=hv=l>^G8wN3eI03&s6Wnp zW+4=%raY%>qY?T`1Ua+q0a6JU7wsBAIRo&2cDtV2^;D6iH});{IuE+?v^ej4Yojr~ zMs!>*#CHcIOx;@Wl6_5$rMRU=G4GooNQyG_66&#vQ17zS{?0|#^8}LFpsRyVTb!Hv z4!~McQXWj9KHEFPtL(ogpw#n!rVH#@<0c95u)r|7;{kj)ENC1ud~%?Z5mg z7B%f4yn&v6?}JOVVlq6@*nGe$P<=CqW^(bX86PP{cnW#x1M?F0?xxJ@7xY` zLSjn#&=4LR#aPjOh+1H1Y$vu5sDInOgr!D_w;1`zf~xQBLtR@i3-Dy!xAud2qxq*0 ztv6LG3C_qtKa?khJp~kkMkX%a)o-hHADLJtz2T&^w17&XnH1ee^8+tUF0B5xvo2oz zTSOcMT|LM3Z$JLK2<|T&9GRH=cCR4DYWk5jDT`+IJg#(0GoR5<1<=mCtH@g{5Vh;L zDc`-3@Ol4y5d1DN3T`?cFxp^SA5^b)aln^S3686#goP@Me|DQcxebK3=K!Ma-vN)W z()r*~4vcyMCcw}j!$w&Bo(voIRCnXMmo(m9oRYKL*BP83$5u4|s$HLw1cyc+mkaLM zZ%$Q4q_y6!zSk{;9m3;%_ZW{ZJ%0KBdQd~5Lt+#K)3JNo%ED5~-du&a@_{G5nhcvI zW)o{XbGj3)xMo?pt~T0O`NSQFgAKN3)h8pm&0cBgRLgqwzy6B*?MWgmFxF_gyzZ|q zM&D*-c2rs3fT9y4m9L3)p%+sf!Sg`Rh*KLCqQ%Gv zxaf|2%>_4>Xum!!Vq^F#mi@OVV9o=|JI<}ysyVIJmZqm=x_@ND)eO-Vg$pNzv=^p* z3c^ZW;|Y*F^ig+cf=W5<$Fgs1Lr=W33+m#5y2WfwQci7xSdu9;jo_>+#VpDJpHAvF z0%d=~np=sbcG<>^oYeSazbt_e$2PdRhw9AggGhz@Nd{F)k2KE5jIC9Q-vlSshRa@@ z%j8WDR)s@hLC?Ob9SP9tZ#PNQ231@$cxn=^j_jYA4(w%Xz@IJ{$x1@rPj-H_{C8=^c_f{t5RU z=&Z)1V6>WiLz+5EU?zc+X1FZFw3^p<-%R4Bmsw>LYk!BO-Yx^4utU6*6q<5v;`JeR zy&{~k3B9m>J>kfk2%IZK`w8Fuzcuyye%Q|gvQ|z8j)Ugh^Jj1m(jdDp^OLsB;-S)dG za;KhDD^8f$7bp{=NWa+PiZ4hXH)~_x}FwbpKOI;cqy$g60BOVZZ@6iY9t%r8QYwseypU zeoYB&q*L4#$>{&ApZc*=53_GoesBnG$Jtk?ypz+9;tOH<%GpKFJ1Br6{My&cY1uP+QPwF z>ZhRb$*mA`A=-2A5r|MbFkI}oK_EqNrouP}NL}4>YaH;nryE>n;?MwbH)I@!`S`uk z$y|IBeh$XA4RSlTeo1xZ`=L#*inRQ9=c?#I8zp~)nr|%Oq-!|Nlr|^(>UagxCviy5 z;Jx@s{1jcCdo?1VI{_;GI%EXg1%PY7`AA4Y7$k-Y9AgEQR#*%S&MTHh{|L(0!NUyOcJRPSlo+vO?#$m`aC z^PDN@-I}jVx33r)j`Y3W4br==%_sYL!<6W`eS(oz7Gr{z^y;siK`arf=%E#?r9BLg z1T4m9xR9}Ge;oKF;K3w>Z~z_h)5jiiD)GS%iy_TpbDx69)D*~fHC5VvB|1uI6C92= zsbhAU@dn8fDwxm&i_A}@2v6w*(yi&3%1)z_I0puLs^7%jU9FkRAYoWJalJW0tSE8l z5)suU%8;vP_v_4t0l)H))PiSfE|sBD^g1sqdhg+oz&GtE>db~bf(YwpcZUAsPE2Qe zz!^<-I74C)eu)J<-gD7%?j5u=UGL>V50Z6xW=%2@h$`hsrI0pB)`J2T{?!PepyB1? z1MhcJ?H^#!0lb@U2&+{TURWj8E^LFzA}Ep_92}gd4jx~xqyO`wc>F(AYQoskRgN)i zLa{8zZ(rQF)%TiL2G*#Obca`S>Km_!H};Bil#Q&tkLW_;~#Z!0LaZFv9?+|sLTlYQ2!h|rBoux0Fn*F9d^5;Q>?t2(z zf4ky;vcrsb24S0LV(zeRDM(yjZ~oxH`1NFR=P$w4CE{W-GNg1$b>>4wVF zZssuuXhOh-gO0>og0tr8XNZCC$Gk!Y#0kO=_GSPpSSF8D^D1)xJ7kcVJY`kX)kS`os>lr zH@In?!Sn6dM_%;7xZ($-Z1%gP5jDk?Ofq>{rCyKPwFQi)-|?gYc!SQMJ^v_3VWb)g~BSRV*L=`wUcLJV>a$g&}(Lg+F$3}NCR35^a!$ueUvDTggYiTS`Z~`A2 zR^Tki$PsV_>F^ws5xu!3g|(;rLxJT;IYC*i_$lUYy*uu?ilN-?pi0r~fc`_#4mheD zc_qH+;3CmBskng!n>KL^t+!Xn?7p$5%v{+aawN>Ni^zL4h~~hW7Bw<3WGOrVeNtNQ%&X5w4 zA_7V?q%_hsH0X^21IW-r58W`sP~YYAez))Yti{h+taY8|K6f3*KDOua^`BDEsw3!^ zTPL962MD2DxBclVL&*Q@yzia(U#|J!bS^~A`3 z02tyY)hb27m z^F0v%?`R$m0&MZ>Ti3S7gWoB^(ZbrNN5Xmg-Z(Jaici<{anJa;1S?zpzq=^6e-GEkWAdzFllz-jAQZVrBG8|~Vn(%A<^DV|O)G~|d&MT8! z(N|&Bu#nzzpbG`)HTanW+Lpq;zl1Ko{F!`vvT%*oD5zSJra@`9lsw zU?}+NanG3!@nFBWDwkk&%gqiEAxVugGQi-h}(rTMLE zC0JI4#$)VUsQc7@$+kiNB(T5$hjr{u!H#mr5=yc29%{`5(C0pE#5Fh_y!`sX-Q#-3 zumsl{bJ=`cghecW@x-M(?n`j+Cf*Fv^;>MuBm!S`!bXTMATQ$kSuMvhJk%ZNA9+F# z%ewO6AB7R#2gQVFU)NUW)&=DY{)7B3H5nTe|1XPZ*WS~`ie9N`Q6iKJMwp$f1*g(K z;(UTvM%myJ-YuEr+s(Bh<5&rZRp3&ZbxD6BjufOK*^UGB*KAt=R@UanQ|Epcy^pWE zeM=uuUzC>NW5TblyZqYL_OC*!1COx+O#s8@EbYoRNjR$W1a)olCo!?E`#;hn8rT;yc->{FCG6OTF!!tl{1dn+l0w$0lfD;@#cZyCMQR;dr{LZ3$N}T zoQk>Rj{!=CE4!~3eHbHnPeVbqH-U5R7MN~e5kd8vFH&Z~cNOk3fl*8$%1ze(yI=1O zA{a#|Evq^-Lo8kpFmxf1R=5-^WbLmU`Hh6^eJwrQ!X`~IbmjKabiC_CsO$vE18NG! z^39B?VfEJS~W z1_19JsI$Gq)^EFp=jqpTovD9%Vs{k(EAdmiI{IU8 z$6iu4IEQHKyz%T!3dEK7R_3wXo4u57K-m2)$(lm=Q=XG4R`aG+`jZy;_BpVLS`y$9 zDUL=vk{)Dl)v;nE2{A<5MD}kT!DCV76sNVJ)$^_RKV*4Iw3}%G4cv^;LpERP)(b#@ z{0D?M>oXF!{$5Bs*h4UA@c!VG8-(MeaoUX@F-tQ^--LdWFxer*fgq=lOX%Jtv`U-! z4T$t(D!p?!MgVN>MM8t?Wr;}+33ZJ|`85P?G@ZBA1C!c15ax8=byskcR z8czp$%;^0E4?!g7L0#l7hr8XR&eW~ zOnxWs6yxcv50W*S2_M!tPq1+z1=wBaMD!Lw2)RSAg)gV$fB9sp*w;O0w6MGibpn3I zz4V1(w8Tt(>2OYVfXe@}#eerZApE^2eS5v?hHeDolYN_y_I~_VMtgtJr0zw`i3q|i zBsC@r2R!<^<);Ua%IjxFd37JlqROhi{>tg?_9*pZDw8#HqWDdV;$Kh}9-?G##<3fxB>$&fa1`!MF7?Xs8tXa)<7J4>Xp63G%=vZO5q~@hXxyXwMAonwJ3{5GXe+) zhm^s&Z_drp$W8K}=3#Kme`O7zQK69iwm(HnGV=1C&;z`DqPX`>xCe@t+lMf|u|9Xl1Xq{e*~pgG3l^-icr{Gk4VGV!NO6 z>(9W1{?!X$a8(YrvL@Syh>p7#>h5uQ^^oc)`(w;tzT%T_FO+Ks3c_S3$?{5p@rni$ zP)l0~>+zJN0j*6nI;V_6ay$MjKGQKv5x8`Cmuc9DnEj`igm>>%?(6#+4*4IeM2^=E zB!J0nr%_>%8Rz3hf@khODR_gS0PrbdsVaDai0UMp%+z7yu1p`n>fhlE|WMN3s5=x%-dH6C1l{+ zZEjvaWv?Mt5S+!#8RRYZJUPD+<;t^dRgO{s>Xc=}k7{evRw6KdTEf zTA2KxwXCA#ti%_!ky1?m)09}u)6%m&>Dr$Q*hs$n#5W7EUn=jEXWO^aJ?8KA9Woj% zqAID)n#XOBeyXwZjqr8;sOtOG3{&pR{U3|p2P&< zOL6)1SeFM}SI+;1!dL5co^?w2pRX`JS2 z3q}Ud!dYnvKZ6@+l|H+V+q52mO2#QFogf4O7mEUNLW^%*LX@XYN@Ww3lxJ_48kFtU zR#`%2$(M!|Ve9VrFld}k#-;z@?49&eK8akfk*|su^dZ516s#1}%#qY&2f7rnr$Z%2 zoBbVq|BUw4=H7z9aKYS(>?e0aOYTLEhmU1UFNdE7^?S7xDwe9s{L2N%TKlOn2=?su z5-rJk^rnvM^_RNOBLH#ZXS!ruKU3w?thzrF8MGVxKYcBCr{|EP3brWz24NG>fy5`r zzD(Mx_n&oD5fc*LT_$u(dHvE(in+(avn6Pr)R)wfb<^?F9O|gI0F;2xagb>N*7}qm zxVJU5zpYy-XKi2lZESsbwo4AEBlo&R4|3e)J-=Q9M&llB8f*PmO#6i`+J~TvV)W&Y zGDCIV1RbVn!Qy)G3>jvsK zIo6aE_Zn8*->Ma?xQ)+i5E1dtM>9#kX7;sMOGa!uzl$U&AC>BTPv4}a5SHn@{QMs#Uf_L=X1 zFrC-xX}-n&T3!%W~4_?8N?%ZHzc5rgPZ+wpAj9z(# z1n|^vcXm3>i3A7}<6(N|Yb z%C{=!(ZiIFces0L1KZxxe*E?#Y;ANjj9M|yWpK}Ytk`1raFzg&pI5{}$zP0M?BS%!xU;l}Z zkNH{V9d^Cg#P1R0wFSLO(=^zEuB(LpT4zY*-O{jijcc4fCt_S?@Q-P#ZS40$_%tZY zPByE&5vDW*dtBgyG2Oy)#}FEA9Rf34U&1UVT;zq|!NxcUm|a+cm!z9iHvw>#u5h;K zRmTlh=;Z;`QAYkM=Q~OzV)j*eYvfWWsESPJLhAm8 zc3-$qAvIpis^tU8of!J$j~g)@x2zi%HP3_vuvU$WjOHcu=abBtw2+U%Jn;7iPiepm zLxMLPKJqMaJ!IP_M|@1Xgx0~VPK7ql56+Lb)YA#9r(XKm*Qr=vUUEG8!k?m|pvLRT zPh%`93DZd|e!Gzb{KB6?8BW*!B@B7~jL;HUkJwk6thlx^fl| zZmF;p&_!q(7$&UQh5bGx9pvUN-6Hknl8}?^ncjS)t)t@!2ESWbc{wK~-@p0eeWraw z7yOVaG0{ju*6NS8v=zVZZ<;hs^vnLDGq*;Ng|&R-GjfnXS{ws3RpHO$cvM^$n#;&%O9-rJ#XqFd2MQY-!z3O93)*2TSFH)SII*^CjB|v zcOQ(uiwED_z$j_1=ICxtAlzO`2CO*N+(V=|_HWN`Ax)Gk=*aX^5}v&?d0%i7<%`D4 zzs~T1auRbX)bCeGaea1+CxMH1__3Q&v@Aa5e5z9|T0K11yfMT%8KgvDEi^4+E?&4d zz~RFCr1Ci8$4AcWAg;uXrzz-)=X)-SSQZ}aKb!UJv9;|!lOqjs+Dxu^CytfUebvKRSC#1D1>RAy zE;5=3N;AY328T$?1vI<*gucke`IvZ_JK^eB8Ks?C*bmd_NUESUsdgUhL7p z(AgzZyJq#S5ykV+GU|bPOmxVFI1h$6P&x0f*&hEw-h>DmsP11a=E9KTiwfKiE9k(G z1i3Df@+uDNC%N~SCN(*zIWes#z1qR=hzL3+7|XlSW0BU1C*+8K`loe|$O&0LsPJgJ zvCs78TnZQuO&2_)eVw2QGdbXbx~LqSqAIs-q}ee&-ah7^ONW}( zPx{d!0UW^#n5T@hb>q>0{+YnYmLrJiru^QcZf@HI_?; zEbElVcfj>Fkt3Iynps)=wUpg{4hIkua`5q;>&?iREmS8)8Ldpfx|r$JmmE|jppFO;XJOQRm25P2CHf_*td>9P z3-p3l#oF|sU*Dbnkufb;(V2)uj5)u=&*f@qY60^6sJ-{Rdyk7)M*aB#*M3o3-SWA~ zfp7BXj3N*Uk>~GM0QWYV8oGV=+~{)%&v`MLs&j-B+v-bt*Rw3x_KBRzU5y7VWTjCf zN_j@D^e?)U3~dV4K)7N3M<=vK>guK2gt{cR=fph`;+$$lU2dpr5$R0=>lmcVOyl@@ zFv9AD1epCXQ&hD{P%NV1t<*K9F)AO=&bY*6{l(z=q>S1Q)c zF1z0}w=Yv2Cw%nAU;(H;q;T8v~QjfLu2-HAF z@4tJKz%bbK@N{EBRoV_eX4~(QeKI)+9Uk>rJ5C~EZ=?bWfe3)1=(`7W(vHo z{xypG3Ck6|YNgsQIgO@L#Q?LgDaVeQG~#&G^h7=m2`R~bJKu?4ZTIME9V%^_@WmME z`cbdGsE*?dpvV~UP52&9vc02^Z8i%Iy;uj8-Xd1zdBel2TiLo&rj6arU{)ajHgT`;rFQO{Bi{`GH)#? zcO|3%4c3HKr-K_WKKBG43r=u#BeIVXCPG=6jgi8nVR=>yN*z)?Rk&4*-9c@=;|^WF z82f0+X5KRn`6g?ai@~Ji~Hab-zp^&>iziZFeJ)-&(g(#0Q&L>%~uYm_WFLap)8elJuo2qN{ zy;|Q+-v!U-8PLCX|7NQ^uaxJ$ z^TB%D+C*z&JT7|g9=Jnv%U_Or*PrF<#=ZCZk7&T>b9k&*Vzql&pQe|qpcGvhMI%uT zqa|GFFW;|hbVDwl<$Uc!CM92~uA~slO}SJjXT8hYM(I(41+z_YJav96*aF^=u|9~5 zmTaey2=vmv&B-&63v=R`un*b4n;RSyxqtb?AMj)MWCFi+uc#w1!~XL9btNMQJDXfN zGQr_PLk`WY?LEKOX#Cok<7*u=Xm|a{wm(Mc8IvIs+Rl)&y9GRkqYPwJbZ}z?S*ej* zd}Wr1fqyn>o*}uODgZfeGx!=Rs(J=*6Q`0+B509UbO6uW`Ox}2H6$`T>4P}EhTMOS zRA~W6?i#yqt-uFFc341XHTE?)+LF7bbwfmGYb?Z7-8Pg8Lcqv28I@N;M++9}srd9; z<%E0$tv_&vzAGR8V!aO$L#OgGyjq&}Ogd10{`($;<-S<(Zu>Jy$0 zrmf>@jL4_?g~J%#vF%s2+Kp+sKMbUfZAK0qsIumB97-96`V7PdzK(G0Ny8z>vEg^- zS87Vxbz^w>hjGdsT_b(X3+C^OG!E2l(^OT72OPahDA56Qlp-8Pst#8-iF9)1`hy?| zyMEC_<(e{qM+C;{#sS!!M>%qVQ9};tm=ib}IB2Iz|2q!HTeLMhl zRYtj@rETKFG-zJ?7(X6RC=CAx&vmwkIL|EK)eIoFmeNrk`r?t-NSWDnh&5YT7dSaz z7FC0z{v0LK-=m~t0bikobiW4g#mW1yW-of9l$tEVp6lP6?`%CLhEdaXy@H~hoL4+9 zVf0_KY#DYo+Q*Wzoda+PT*W?tH$`dtDWxBg!5*i->Dde%cfJU`KtCrvy!}S?G7{(8 zUfq2`K4aUlVAp19UpJrc z#IWNh?c$dZ$KygyKw1eV$mM5SR$;sJR3s$Jb2T?9cQi-e+_H~P3DYg**A<|3^aFu+ zx!wMx@U#j))c+H(zccnlRNr(H8l3K-Iyc((qMka9lhgf1MW%{IJiI3i5fGxAd@3oX z6UW53!bzaIyng56l?i3SMNytfW|94RvT@9M%HBiEMN{5XuWsY>fXZ41zm*Fi<|M>@ zjm}I;$a|ZuoQuAk4{8Sqzl$}8bzHnZ^kj`h%6$}K5t{cG)2vLaMjXiva$q&Wt7nZH zb>6F1Gpp?vh3m9!8@ODaM1_x(9Fp?iCeV${3#%NlDGE;|e06AQg6|?uG|~vD)5cHd zyEZw_&;o|%n8D0jIoc>-Hr`XOFfQeU*kPEOlpvWhsdtSlc7pHli)Av)K`sf>|JdlN zu-L3Xj+I>R+8P&&tRFmd`xlX`J=?d?Q*uC?v6rEXo-7P18hUsm^p$rv=fbY#UChgV zbZ3BCxB7Q;JTBJ%Bs=Wx^mky_x9FZH$eB1kq7i@giA23XOx9sHfZCd+TbwJWb?lYt zuZA&g{cgl=p#&{)xVwZk19{pAcj#ySaG@Be0gy$DB`r;vP_LuhpPi^4pPg>_h|D~p z0~ZCBJg}BL(jh`bGJtC-6Gt>36y2c#7s*D6hJ`O`dVi*RP`d67-7jSfNuP*%`yS2Y zOOlvtcyh67k7R@D8kpF`HA*R)&quj3((~8M<25?fOuO2=z_%xF%p~`7jr%7~4-__8 z?>Ix$NXSbwVJ7+G;c^Db1QFTf1e{Ysdaxkx!4{Sju}wa?4U!4GBtTy6l{AB~w?}d; zmo~@$q}VQE!2c3p7`Led)y%sAn-bv+WT5zzgn_&&UM6PdZhC)zbjSzbwKkFbeXR;C z;FUW<28R2=OJwN&48gKrQBvNMDq13iJlLbE+L!Sf1@A?^v*}@pZgB|%0VGVR$vjhy zKk9spdTI>Z4LdKn%A?IT3*S`F}24aq6L8GqxD3SCanF49+Pq3iM>~4YL=O<0YtQ^ zMy0$6*(T8{ZKN9_&lUJ>-02$>Lx6?l()73kutjv>O%ota(+?<33sz48kG!vLsHC~I z)ej{Osz8|2k1MGhq_W zST~;}PIAfC7`Z&nL)wCCIdZnjxaOB(zwJv6OuC?zZr#r!iyNlI1X$#Q<1JV8Jrf$V zPj(sV2lAZ!Y6h62J-?z|XZ@(66}MuEd2!0ZTdVX)Y+h^^U^Cp@Ot#nZyZ!2V-*hP2 zn*n>~Di9!Gy*xm7`O|lpuG0i2*9ekW<$>1!NX_i72c%(O|8nMz{vY3^^w)R&>~#lU z;puO72!RiSDZw8nw&Dsl!bdaQF=r$&pM*V24(dTp9MoQKP}oaKFt6TYE2kp;m4sl| zux4V|{cv}epPypJ;88T^!5Y=5U9N;rLyRWPBSQPs78&lm&}xUNnpcT9d(fL@V!8VZ zu1|uCSMeXmbTh@mB!G&gJ000MAc{R|sGs|!s*?AH#Kd=5w@J6Q2Kv~GAeHt5r%9Hb zt+*pyNfk*n6@QWuPU!qFV(!?^t!W-AN;FB&jZu1)>y$m3gys*|p!V%hsJy=4d#;6` zLX1RQXSGiDgvO+V4yckfYDHL%2P`%HiL^uIe1JE*IdTvFlTkEL|9w~YiS`>$Wx7%w)j1!y)o!9{Hz*A`ta& z9n};Xjl9H0#%^SfK(6H|UvJN_Z7VfA+1C1}d4o*!^X(k8I-IYyY=3rpn+ zWnh%;RU5(46EPY!vjJ9%&brjj@3iZBJ2g%=*6dQaf<}qD9bO7rMBi@wCkq(u8NdPHu?zml&TT1NFSji$bD;Hvgc^FPV->FksP)M zVeL+z`~Hj|_nq4P?>X5GPALf(1}b`bh09}NCm0@mNLVVVT6(C+)DMA*Lw0JSN`so^ z>mMB;a~FT}iY5@fy-oY8x;H5OfLWqR^#f6@+%mpUowWu>MsD29NzpyWS=zRFicFwY zj<|YV5$PI#Gw*x%@x<0s*SJabTW(^RdpG2rXmm&>@I3r+{yq;5;CV38jj5iT8_X+p z<&cYF-)Q9C?O5Ed(g?nt$l6s-3+@{F0FJ~4z(rQVg`Pb^3W*hd8K8R033t=~Xh2oF zF>4%A&GaL^XquKo&i=<_h{ejI)-_P{h)h+axbZ=1V%(IXWk=otK`#*(6hdtSGol1r z@>Yb*-x@P|Y_%#X5s^xWllR-+n!Bb)n}8^M_f5pFH@nU&4FWIPe80K2sg3X1Q~=EY z+cw{1KN^Atqdos=hMP*y>^NmJpJ)4`R-_E}qkG^j_XnpHI^}mBwY6oZ#7&xAri5S+ zf0|qBe?y1B%2E?-TJ^-&QZeOOaX@`Qs==O@)PU~6>y*yWjknC<)#fW|s@Bh)C4Y#~ zbR#r7l10e|FBk%!SVh$!4I3v_RIFXX>Mmxur-QzV8%DUxgu5Hqy+I}|o${Dy&#F>K zz2VvPU4~k^Hddu^(nT!R!6DCYblW5=C0rd1AQKCuf(H%Z$y_fwLUBhkXlH@%42mmu zwXJZkw<>Dy(_dtz8`*8S$D&w{_o$bC7x-h$*_x&Yr+j_# zM1$xLgPpkIoR}WVJ?18E!qYraGQ{dMFp#G?^Z6NT@zYQ-()I*NxhnlNGhsVkKmdRXtQQRlxzZ3AWv!ZccJ_fnb-Y_;0W?|A!li zog`E_DQH9Q-THx0-Fc-XR0S8mg~GS`xG{9*c`v*=H^}T**7$)nota-VQ`TLu5%vwq z^9SZ<+!Ym;1hY9Pu25$w7i$P?X-Z$j;zLN|ffQsfLMo6wK|;fmzM-#EGJwKZN8lx^p=`Co3qqe)@9f;C>8^39*?ej(*$swl}CY6obil zS5NErj(OV9l&pdJni^gDcWMuv1?u%<@Hhs@*0S=W|i_SRjk|hTeqZl zuZ3=ULll6NTAKK8N-dlVzN{n*+fw)6pHE6ceH@{Jg4YjuRgmoA)zoWgE9G;k<6*hR zz$Txz&TpW>q>^Qzd0<)inZ8SXfu;$EE%3!#m0U;au!q5{oN&*V;dki8kRNseeQJa7 z!;CHoV&CFeyj#}2J8;V-iz`!wW_`u=)5mSUj|TIF>SzQw} z@nGU-3AAJ;rY(0AaDOx4297FEoITp)zxr&s1 zhTn3Fg&ma(^Mq>#d~);4GH+OK#CM>Y-`hz4ex+ot3}zB&s@$3Dn2m$YB|nH-J&lFA zaZ7Qxi0#mv?FLKZc{XhD{{GeLKY_>gZ{WFwSyjw! zC9^3Up4p~^eD(QfTsJPA2K|^y&ybBy@?s#JV{qV>f5Ho_eJ1GpYE@A) z>k8koaBY9n6yd~3PaorCxtL3wF+U^!6k*VZUFXopH7pvfdYGpQ!WkEx_sI6G^!<(P z>BVy2EFug3_@wB6eUkq>cX>TYBwNdN_87J><%s~}e0`AdoF7Z^5qvR& zXeGN$^6X9@+2z1o79}r|^(8!+3-LZ%D%f~PV4cxw9^=6TrW!K~<>2%l4A*@%s#|mq zq91(yy4#o~Q*Pahz}l?SBj6^&VHy3pk}Q=`jg$hVjpo-SQ{bh~Qcz)URj?GQExkSI z6~C*bYbdC%%a^CGI1V&Ws%wE_#IHkbR>V;Ye^%^qqi@fI)U?A3e7;I#1Yuuuy?HK- zjH-ShPS(DywCiB{-Tqw=;DLhwwhE;C@}VPsA^RvcI0{tC%&~TqoV|!I1^0h^tMFX= z%{;{bX_Q%cd;<=(9ZP(67f`1Rj1tUc*CP0G{aW-{O9s{?>ar_eM8^lSh;*vuS=lXfN4!rpd{n&;EP$TI5zFOKrQUbf)R%P3Cbu9*Y z9jr`Y+x|(0!DiG-!AmT!4bPyQlO7kFD-^2G1ei$|30-e&;aUpSrk=(7QbTx-nr^XpRykqn^}k9oQFMa@JSQU<@T z+b`g174=#;psZ` zB9>!*V9%ci^9}N_TGR9GvwkD)J};{2B!M3-hkNbH!V=|idkZUfA#WfAxpwsP-1A-h zfY&Tz9^UP@3Av+~q4sSgPHv@O4f~6Sw%i_kuq2R`v(N+I#2a)7FEd-*p>Fmi74ePy zt)z>HZ8ckVZ0Ywhv~RIk!b~mitWpoE^Hrq9_S=OO7$&R~5E>29Bqk-*m;s+j17ONS zYj|<}c$1Ad1P{T#`-+aPM{XA7|KLWl@BVtA&n73+$x(#NLTp$SmsiKwXElp0cE5aT zHprkuLC?jL8{35b5u$JQ~|7voUmJz8-<{0TdOhfJzVB~H#CGlMSd&w~lXS|_pR z{k*j0=6@i@-Pu7C7Gsl%@U?&JS`3&32)IRcD+$V9N7mW*|M)>NJVJ{(h_DB*KSf5@ z)zJ*=7y?u>}A^oRtOeTJox#CmQm~Ksco1 zVi@il0YX;xeZEiN|IiWMwXYDs(eUiI*&Fx+s>AtEoz{~V2t_eEu;lTZvtw>hKNKW! zJQoB}JlTBVfR+i@2^WdOr)qOxB!gWCo~yN39w(f%)*LI#rIWtYXh<4(DYSnE7Jq!S z69?64H@Ii;WUik**V^=Z%YGKrr>fpTYt=%=?*n$$cV_+=ayR{Kp^>Jlnoh!sdFAp9 zxcJ;972ItWUT0ha+Eg5x+gp*qL1eM~#w<>f4ytQrWwWeYp3plult@TQ_5OehFtKJY zV;sX$R_wEKb60j&=}Wk|C8VVXe{7NfU@l+`INgVEQo|z5{&jh$#vfO8``>h89~T*X za7f4&gjzrW{z{Vl?(eYUNJMP74i5EJVZv|+YSAa<{bpd>1RTPmURZ8DH3&^;!qS-V zRA^qr)Bb$vGe5T^B!pRh))^M+m2Et3|MH^hEVk@%5-kUV`s?Yb7QqCus}~a}mXTzz zcM`Yg@wb+^272W_yQQ|5ES>ux_Rz|C_ZWl6XY{_7E2}5Bo7|8+oAA43cOOj;K)CZH zgkvKKXGkT!hPK}2r=v-9&a>hHW%_~{DUg@$^?C9ZvlE=$5VJxXi9L4%)Mv&+(N{#0QZ;v)0!1W z~nRoix>$aw~ed{AryBX!Sss=?W zK7QJo(mdbDl{)*mRtQ;n0hfU#>+7)X3^E*1>a9-v)YcZ>n?W_IkFx?E9gx^bmwaew zr457lAn*ogeF3tF0d-kyN{anus`ZU9;FSO7!Ta~bxv+hMJuOsApH-#{tp-+)HP2vO zOyF&-8G97j1)s#QPsKJv%EqPneiC4(Y2}{NY213|Y`Rt7y;6_hPW2??S?&)^Z zJ+RJL&s6Q{-qoo%1tlPs850(^#~{&T73Bo{j zYNvNc>!rH{*>xQa+ghWpFUIS&no6wCzqA3EA|=k>3-oU<-AGZ)ov4*0O@4X7F|atMqTPl0|Ie?fl!rMc-a=p+H zcX%4+FJob^qcD@wP!TU#;b~DtD_BZ~hH1va5lr$WM!Wzu2MKzrOWMt`+8#1p`;INqvB&ba3Xv=e&?EqmFzYsU-G6 zae^^F4&T=5H=|I48Y3G6cHe}4FG5)>MZQSkE_+TBaRvJ@5N;n%C7~D|{VbFwEDTCi zgFi~&MQ?*Ja5PV!yExe-`sEhAyUs8>PsEF7*e`TF)u|19 zW_3d(1LV*|^|^-D2s1OZ*^45$CysS!&qr6dr~r$#0(+6uT8F^8ZuJ zfqC$bX#IjuO{0|oJi>`tuH{;~U&7xeeEmYPhFQPhPVDN%y*+Wdz9s1oC3n&jebKfN zY!iZGcdsGDJv%8$ga<1IAO#Q(EfHQpLuP;;{wbaj=<>S zRSIw{QT3_KEE`Zl7Ke`Sln7OsouiEtXxJq$$O1CB1p<1Ws!F} z+%SzeRjXYvk!hoq=^y~`*k&t6`Uyu|3-_>cP@E2{Xu##G2w)`Xuw&n91zw;j6Ldlh zP@-6uZY~PsqeKOQQN}m?fF~{dUne7Zp<>N}k@6HpJni#x=fP@FfyLReNh$w9~n)#0y;%8b(&SHYJx*04wuNHGqch!dzNMXdkT{!Q38UtN) zs8WGBl8O0}lB{pRja!@8Fhq#KCse)rx*rm<%>_we2Q8}{;%O-zbKBOpOaWpD7dNB5 zo>Qc%p>o<_^TPaqoAHuYd9xXi*xvTjiW}O!3s|ME{h?1=kDE97EY85hlv`Mdarod! zW5DGmr%Z5t|L@-nz=a-c08puwrCnP~PsmxDbB0^<8L5N-EYT0E`whMb__23n6o{@ypPu@<(W@qA}}-UU*F~SS~j^?`dr)c zf~=4_4!^{w>>JZ=>-$8kGNy+|prtM!u7y`4BMOZ18>3YNLYF zooETwY80SI<oUx8ft_pBgrkMJZU;-yL%M+P8S(KiqH;5x@9t8j&H(U=1b3+n~ zCRSu1^j&Pfq|>}TxAs0S9^?90#_lP+iJF+_`Sxx0B{vZS(zjDbPX|ffX>bzBy%3Zj z;lXoRBZkuO8oI1fPqu2eC(xL1IwpkG65%Pn4vQoVWhlknM!5Nj&P+l@Y17lw9nJAU z{MUOSC*yxUqT^p?iIP+h+#d~_@*oX6NJh~{nko|9 zjS#mFtwxG*uyfW@Kd=OO7*J#^FEWVbD#xYDL>23;v33sE0$zO)tigi&s zNhsR0dvS1DAl*-kjAqlA)v^GEShbf9jpQ>@g+z}#Q0rH{B-vKUjqHiRYgDvPcRXck zAdR1>!I`0*Y5)*qJle-b0NBi%mufy}W>e>z3?49XVN@kkZL?gFzbU_Y2t1=#wEwz` z4+PxU$Is>ygsrwrB{oYU8C<{2R{}H_O0h#MhJVm;W&)fW!Dd3?C&T@WoOD84ebn-KGks8_f0nC3sf2 z7pvxb?q+h*|IwAli~2)z;Imx%R-J>$y)w@}6LeER_xqs*C zT08GKbIYdWkvEV-b;|7*N}mB>#K3;hv-|i!q=qq7EBcz{; zOj&TrV96)*`Y)50AmpmZ=EWg~ z%++Ibm77E-j@a|vMxKzUXWS&#rlRxo<)q1^jZ(N}G;E@NtzDDVwyxyHNWG4f`4I_?+^amgcASB#r|9itMdWwmqo_K{-M&vxItz? z?3--56v7(9M{J?)J36tO#fe4tY}ywAfk1aTa{TS> zrfI7;uf2G(xgi3CdcTo6g48eJ;sW9T7&xBniPsgs$5rg(A3@yl%%BzV^5`V+0V|l= z;>ODL#*`*kYpGl$EsAM%6~m$rM^tVL(V8eYiv&e!kXH!Wt`YOiLTl9@Hxl7|W@Ebg zgcoK&YUQZFP#+|vAxAFjxRnvmo7eMj^Vg8d2av{7q zt39wv*QV3i8AU94@MmNhBq#gf-LsQfb z?zX&XPI(BxMg(hHhQ{8>eN8Vq6 zMjzP<0|elL1n(R`7Vi5yC)q!FZ1wg<6d@I<#Nk@1g}n9{XgTmKc5LUoSecaS^G2>E z_L(IC(!jv>V{4}9zK0VMua>knlq&2L`Bg0m2Py2&-GqxXK-y?DFWw&#KS>-fikTP6 z)jOb4a{J3y`0jnU8x5T4q6$zok+qA!#a|w9UBnQWNyxBc=P*>=>Ax~rgP5aiuIKhzgNg6u<~di!P*kl~*eiAWVlMM@E0w4QoDxE7^l+Tqa}JFDkEtYb zc=#cLJHe#>+C4oA)LYL{(~9Fm@{F8Qb4LYk7KU46X=ZFa${T!vN}~pH62^af_>@O; zC(!-jtE&Rf4;v|_(0zqJr>FIWna(`)bo<$x5DhJX`VXr+y&JNyy*p%Tw(Wz0F`;|nd3#F13#a}}Nlw{;u^x)i~ zLXq4x1wBVonDhQvB)SUG!Es7 ze%%W`q>k)JLM#rge!;YG4-^evG1L5-GMTUwn)*lU@tChS98vPm+1ow9;N{8KC>Ay4 zy_1(jpXm42#wAj3!%~(?7)s4VyvRNha8)sMzhk)CW3G#6S#GgWZbXVxBS%Nxoly)<5|Pm`NGeSoX@@ z$m9g%#3Gbe?CVz6ggfpJz4V9JAme2dO7@fp7!W_=oR@d$fNrfX+gVT0JyE8jo9pIw zbHo%rsRAg*gq|t?_e%vDHD3C*hz42#>dw=Gl0TQ5{ugyyRcj`JrvuHt072~BcG%** z=hr@V59L|b6F7U1XjG-o)8a>}2!p!Q6H^qKTRa5mARKsl{WjcoaU8=OmA~i^i_*^y zetiPBR4`>eWfDqg_|V~0b9mZ6VJS^3V3PL#+WYchBu zm!z_U5u%bMOJkWqB4b}mjHMkG<}+ zg#FHey@w-II5uDBY)ZPwCwpRlrWuM}*%x?qvhYma2&1G^SuU;>ry&u+LCCKzws~`T z8c@CTGlQ|44b2)2UsJw^K80O8oS1k&;HayMiCRZ({gceVhi4?T7^$(-n*fbKp?Wu# zr!O1f>=i<-X8{-K3UI=`MWSy-`jlyL-6n=@8(kvilM>ZD3>E4p%w>{)V6Rd|78EQ8 zq{LBdgX+UfZVJS2?hC8gj)*r$ev@mlQUpSU{%R--P(m882F zVv{mRt%fyUc%_5Df1Dli`T9!)HuI0 z`Havz?nrHX*DTw((z!Vs;NyLP-&qyr|G8J`h*OvI5w)!X;|?Am!ahy>AFM9CeCD3o zMpIm!@SWpUrLO+Xk|@{83*2fkj8tBH&H&#bEUf@oXNHtGK}#a2&=U8kwryp_%ja5s>awB|qiSH~ z@c`RC_Rfw5SoYDP10=F0DGMF|3V(~sp$ua-(LPN?Pw`X-mc)}edUEo&Aer^7#ui@e|O$R7lAzmZ(s?v{7vdv!$OHD(`(Ol!f;)fLjga6 ziB2tnW3rFNE*!$tR7}gfz0>269hglRF}T~rzyEVb=%Antdlit107S#D-#5{Kfui1p zYr{*=akW35PgxQv7yCVuxupt}RFieP4rF!`7ZjA6z8_aDl*aGNUnOK=LWMhp9}CDJ zb12@ttrM^DOIvPc+;%8Cm1E9#kiQ6AEDm`{5nPy+#JU^bd0^nm5tQIeTLmD&`fL5} zwEHrj$yntLT&GfFgzef1MMl#VO*0xi`xYgzi`*6a%a54`R*SK6Sv3U=J`-9v9*%rX zS()(*n@+Ea?=d2f+?9^+^?Qq6`|$`qUbOIHYIW-Vb>W-R@{G0g)I^VnR;0(F)x+xJ z$R|VEb#s?v6HDP!-Bz^vpy@)A&nz2(PHEVP>! zP9@{3B01b>cl+{gC=`dCN;gm`jv^o*;xw+Abi&W4{d~U(COJmj#i-5ukB>O)n|=~E z*SDWDU?@{A7q!rH#_F|x9bdVByq5U88AYxjSK2mX8v!tA5?Vx9WuM0(0P0y5tWlf&wkCUVDLJU>i95MqYvqm93$I_(-KLRc=QUgE!3XV>o9{|yh`7C zJ=E6!=ez_Os8A5bV%v`!tcY~)|Lz+sTlWWT&sw}SFsM7ivF zQ?uH%f7`8*tX941g&gr#^yHPdLVF z?3de?2BT}7L$rJf$f+9o@?ILoa{PF=BHja>LVbciQ|U#O|8juNtPWRdpRy| zZeip$8_A`h2k?APbgcgIUGqqW%P|ebZr2;R>Yt_YrscX$JghmGmnxcjw5yZ-pOtU4 z1u%LqT-M;-q+-`}*|h9{$SYAoeo^L3p~6NK!H>H*kUoD@U-z=XUf%v};7m7KF38Dt z)NTye@A^yk_InYsDO9^J=_znttq zblU3sC4y#3^@@!pmDJmN6g6HbD6S9e?%0w==Fd4)ad9T20#w*=6gl$s!O0iTpC_7& zEcM@Wqo$`z87@eMrz>Ib zz%R;=XbcvBKb$eT)YRvmjNOYOihuN1#V+XIJ(u0Gmj|}V^E$$o^iruRG+*~igaVP& zntzjQ=u?9BZ;$WSfYb(+{rG77bcxcu|4PU9q)aGm$NB>Pwk8TMn=dmn_p+>}rv>D> zflEnjUb&)011)pr?XIMGl7-BFu0SZksSn!uV=L_psh#o9pDsaaGR-o&9Fq91E5t`n z>(ShVQSX)idnz8NXvUD?3%7{@ zyZ|Xf-i-eL^--^K>4(V^UOSg|P_tvw&2k3xwEAQSWNq}f$t!M#&*G=80HDwccRMY{(Q#xClYbqT8LUw-CB?I5B$ zHsZQ*+Tmkp26)O>`g`FC2h`HYj`8i^HNJioAvq78k8s+2K<)LnxS%SslvI#*fiD=F z{|je${LU%K&KV0o8|b9#Q89G1++s<1m^=|Tc&&cOQ)OicQ*gCY3(~aoI40vz6JXU+ ztQTJ(ytSmUfy@mCZj5A649`;SJYM-(C`1L7lKIt)GbvzD;>kv@m1N?Hg@V|_GU74g zSx`7VYa_ng`=`=c%8N9e8B8X#SR3PFm6btzYAD!2DLNN?e1#7`up0VvWJ)HS?jfby zfA7VN76FL=Fxosewt;S1RwAIpNTC}ct4*ls7<^4s3_H_In|C9^vx)D3hL2}ZzIBDB z;L-8@t}l!Oh7q9{axdxYw-5C;^bhoVAHdq%8a!S7t(ydp28wLC(92ormgUSl>+|XI^u(dq_rQ42}PEehzeF=;E3Zp+s1v@ zu!cfD;WWgq6VL44!PXfSx{^Szoa#+`K+V=vqb?zE&AuCcU#bS4Nmb4 z#0kR_dez1Gnfq@H?h%+{q(6J;9bYBCaZqWCZ)J;lWHou>@3jcR%Y9T7F35HnC@zI$ zLv1EZXHM6Lwc4g}A@=zPoW5yBL|*2r=4(=Kx*kT3$Q%6~39fOnRLg)@)EsvcedZ#L zUec=Du0i91&OgInmSq~}CX4blSv=uMOaj=nTnL>r%SzPQ#)`OF2Yn-lSxGOzJ?;a4 zn1PSm7M#lo=umHZhzp9%8

    I(9~NHVvJ_a_Y2M}Up{|4*qT-mbo&^;$d>fZ%>Qzh zftg>&P{8u(M&Q)5PJ61eEQ_vWA=Td>m4rNZ^6+frX&QPt`lRL7e9`4PSm8w&wSz+w zK}*z`U~E+6eUYDz|Mk8r!8K+*Tp3tTQjKMsR?KgkorA6xr(Kh^5=^1+v-1ww;9Dgc zro|l!D>lO1zEzZmmB@3j-F#=T+KKBQ{E4mM^3i3~{zyF9WsIwN`|y?|s_FH?67a3U zGHH5k@V*X+GNbmWP~SXwCu-6~SpLPZ*F*%(?s?wgtL7N8Gcn)gA0C6=>Dr$EWU6Y` z@3Giii4i=v8W`L}z_DQydyev(fv-7zfQYJ>Jw{pV4)ao#$7SCvc|n~fr)@Jn~o-Av`40FDy%d%)hGpU zqGrQ`PfCxJ(Kgn1wvi!g8`0x)C;)q5X?=40av9e5&~t^W8i6&~zI~jfmvu*Hl)yk` z?_^nVbpDmG_}~Y%G?_;~?sj|&(-ySr|Drb$R8$c?+vj5z^IcHffj_c2D>wZ8Kg5=WzF#;Et`R`{Ce z7fcUkwROC+^FU9~B(aWdToyNw8fm=EpYlub1^h(`AJ$tI&K4QOqE$Bv6 z|N4lrJ>cmScz4yBlcWtBe}3FO3ME`8{<`>|Rg&&35Bqg%nhVM571juh28UFljIIiM zJ!~|qz*pY&81DPkDVu0{LMj=5=IrDH`f{i!5FL*FpP3$0-Y~!9xYXibn=PA*qvTrF zD(h~f;QDPE2vI8l5R+IClyLJR3|EG|r$v$`ssQdHeEm_=TnfO*H|^d9hUtYllyBJM zg)Q1(QW>r~liaJK20)NaE002sh$jLN#2YxZVwg~j;jD2MMkkpI++CY{BqxDZqVHv_ zBeo;~!%s;2ORwdLTucUfYX}m-#PIqf3(MITM=oPr=}sye%h}i8CLb82$1OCS#E@5x zX?Q^XX?#4?6#TjX7exD=dt$TB$A{_3cp?>8%gpIPs{ooKkTc<$Uu-)f zOS4|vzCtCu6w-E-ZAv_W7ie2x`gpM6qY? z19B>9c8Fe`eiU{f1A~8gr8`*2J>~hhA#;_b1(p979TU<%CgY>!lts|VvSxe)?uCf7J9BB=e+b4n&xe*)02U0i|R6^#T>&r$hxDBUWsBl*7UlTzc z{%Rq9m($~HYXAGj=2NofB5@rj*0N(j)beVeztXgOg~gjth~~j9F0?k&fy0Dq2)A?d z>$!z{jIUjlVWS_-k*2g&#p>}_sU}DEL0`Fm;tKYMQ~bs*m}!cm5x;*{?^q5$%e)n| zBN$}hTrFxbl+IVtJiB?n#~Qa7$t6c_CR$5w->nMxq}g^F8}xF>}wcT=#2z++r_c``nJyCc9D}JVhf|(9+>Um-ZM;d<{+XFGooHgS_JSmnK|M+}tj7rXKcC&E;FdJ=k znD7m%e8YA5L&eNv_{E`AI8t?yJ?#_?IG+EF!8|~q?9YzO;N}b*>n&(|B!fY%pI=NJl*$$mmFnbqDbKj30unn|_`Y3t z+Zt!zvj^I<3BoVeA%M;T;8=o{KAM)?;+8X3O~rqVc+0QDcE2w^+$_Y(H*{3@+@fH? z%igqc=d$}e_o=#@*W|(_GVAxwwl#e3EYlMxj%q~}DQw^Yz9^3ZWY-FfRNzFv07XU) z>4CXN`$;O7Ic!{WinKQSM$+|iUeya1cc|UaejaFS->HO|WJ?uB8`mamTw{B=n(6kt zZCKva)FaNB=Hjn3dWRpX(V-X(ImoD#EB)Nu+o@M00o-&Hnu&e;J8d55_{l8$ZXO)( zO}v@qAwKOds?JQdv+}uF8>2-Y2u#hPGcg}8n-Ly+wCi76=rlSQC6fx>Q_*niB|=VV zm}_=k1bs#vebR+m?hjvl7SIE)w!LLw-NJ~q0!_vf;L7)nOT zrOr3viQLaAx11`ej4Af2Xk!F(DN$q2)IFqMNZFl2H=zZ^vaHG55mfR6Fd8VS<-jPD zM-`TN`G)EYQ*O7_PFvixWN}aKXURux0TdF9^SCuv{eVrg7D3`P&nJ7`UpOoV>aPMv==pKQosY|p zd1!aCEgTvjRB4Vdf`Cx-PG8{pfS_W#g1$A1pi)iYv{3p&IDoNmA`YplXY@J_Ke=Kd ziuMD323K@+KhD1FaM1lYFsgi&&l}FHmnOwnsH1|$%}hC?7Gca-Gm;MQ4(2i}NOyos zn~z!S+qNcXqhaE_MWs>WBV%hg?VDK9PE;x1<9 zKx~AUmAToLqgdETR(^MvkgOXfWvnsUFRRJ0 z^9i{(B8DiD353Z_P6Skf={;MZ|K}?!OI+2E3PYwX5dgq3%2=qbrSN|+uB?lJ z9!k@&d{YpwK~;ObCbjb|NmkL6<@5$v0QLK)XzA%9{=}&tZ6q@GCK&B4gWR^wao1AV z5R^c@wqov-YF4Gr6A5P;6Ia<00HPtulpftUQq+=)^^ds1&9OQf>7D4j7tL4DdJyPh z<539WV=c`x-=SoHl0+&lJvw?DXW#MoH~VP67I8+AVLckvyW<;oVbX*aFE3`0;wrJA zRcQQ_nDp2(kU;YlqKeusD;ni?G*Xl*mr-%$7H0H1z>FZJiH)h z5>D_qe7<_b++N%SEZLOI&C7FJK5PHlJZfBb(>LU|pI>P=HwY9Ax6=-!%(0L6z2kTg z5Ndazd>{8oUbubPrMy6-Wc&AMr0hKMD9 zGmJd&X}g8^s(6+Mcoxij_Ski6$_0%+ca6S%d?;-43)9j!+`_kZ9?JfcfVXN62tU_k zHTy<R>Z z`5VgS%FB-s2?nT5Wamq(hO|9g_`ZD)?8zJ$t4R(JsN4Bd<=u1EgJI~0i>JwRZhJR4 zp>Yi`C&zQneZFG7p~{8)HV{4?+-nw_5g$- zCZhmhOi;%^gd7W@JeBANCd0P#qLZBhXkehfGw|%>VGdk&265`V%t7SN;C>%3dNo&B z3Z%TFQg%aS+J{muXxy2d7ZbKsnCiZ?qcT2CQRY0Ccm9(|;Rjvh0`)5EsLw7jk( z{T5=5|NZ+{1OIB^Uk&`LfqymduLk~qYCx|aQuq full10StepRotationAndCenterCrop = new ImmutableList.Builder<>(); + for (int i = 0; i < 10; i++) { + full10StepRotationAndCenterCrop.add(new Rotation(/* degrees= */ 36)); + } + full10StepRotationAndCenterCrop.add(centerCrop); - Thread.sleep(FRAME_PROCESSING_WAIT_MS); + setUpAndPrepareFirstFrame(DEFAULT_PIXEL_WIDTH_HEIGHT_RATIO, centerCrop); + Bitmap centerCropResultBitmap = processFirstFrameAndEnd(); + setUpAndPrepareFirstFrame( + DEFAULT_PIXEL_WIDTH_HEIGHT_RATIO, full10StepRotationAndCenterCrop.build()); + Bitmap fullRotationAndCenterCropResultBitmap = processFirstFrameAndEnd(); - assertThat(frameProcessingException.get()).isNotNull(); + BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( + testId, /* bitmapLabel= */ "centerCrop", centerCropResultBitmap); + BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( + testId, + /* bitmapLabel= */ "full10StepRotationAndCenterCrop", + fullRotationAndCenterCropResultBitmap); + // TODO(b/207848601): switch to using proper tooling for testing against golden data. + float averagePixelAbsoluteDifference = + BitmapTestUtil.getAveragePixelAbsoluteDifferenceArgb8888( + centerCropResultBitmap, fullRotationAndCenterCropResultBitmap, testId); + assertThat(averagePixelAbsoluteDifference).isAtMost(MAXIMUM_AVERAGE_PIXEL_ABSOLUTE_DIFFERENCE); } /** @@ -253,6 +281,11 @@ public void processData_withFrameProcessingException_callsListener() throws Exce */ private void setUpAndPrepareFirstFrame(float pixelWidthHeightRatio, GlEffect... effects) throws Exception { + setUpAndPrepareFirstFrame(pixelWidthHeightRatio, asList(effects)); + } + + private void setUpAndPrepareFirstFrame(float pixelWidthHeightRatio, List effects) + throws Exception { // Set up the extractor to read the first video frame and get its format. MediaExtractor mediaExtractor = new MediaExtractor(); @Nullable MediaCodec mediaCodec = null; @@ -276,7 +309,7 @@ private void setUpAndPrepareFirstFrame(float pixelWidthHeightRatio, GlEffect... pixelWidthHeightRatio, inputWidth, inputHeight, - asList(effects), + effects, /* enableExperimentalHdrEditing= */ false); Size outputSize = frameProcessorChain.getOutputSize(); outputImageReader = @@ -349,26 +382,36 @@ private Bitmap processFirstFrameAndEnd() throws InterruptedException { return actualBitmap; } - private static class ThrowingFrameProcessor implements GlFrameProcessor { + /** + * Specifies a counter-clockwise rotation while accounting for the aspect ratio difference between + * the input frame in pixel coordinates and NDC. + * + *

    Unlike {@link ScaleToFitTransformation}, this does not adjust the output size or scale to + * preserve input pixels. Pixels rotated out of the frame are clipped. + */ + private static final class Rotation implements MatrixTransformation { - private @MonotonicNonNull Size outputSize; + private final float degrees; + private @MonotonicNonNull Matrix adjustedTransformationMatrix; - @Override - public void initialize(Context context, int inputTexId, int inputWidth, int inputHeight) { - outputSize = new Size(inputWidth, inputHeight); + public Rotation(float degrees) { + this.degrees = degrees; } @Override - public Size getOutputSize() { - return checkStateNotNull(outputSize); + public Size configure(int inputWidth, int inputHeight) { + adjustedTransformationMatrix = new Matrix(); + adjustedTransformationMatrix.postRotate(degrees); + float inputAspectRatio = (float) inputWidth / inputHeight; + adjustedTransformationMatrix.preScale(/* sx= */ inputAspectRatio, /* sy= */ 1f); + adjustedTransformationMatrix.postScale(/* sx= */ 1f / inputAspectRatio, /* sy= */ 1f); + + return new Size(inputWidth, inputHeight); } @Override - public void drawFrame(long presentationTimeUs) throws FrameProcessingException { - throw new FrameProcessingException("An exception occurred."); + public Matrix getMatrix(long presentationTimeUs) { + return checkStateNotNull(adjustedTransformationMatrix); } - - @Override - public void release() {} } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java index 6512b5bdb9d..686278bcfc2 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java @@ -201,24 +201,43 @@ private static ImmutableList getFrameProcessors( ImmutableList.Builder frameProcessors = new ImmutableList.Builder().add(externalCopyFrameProcessor); + ImmutableList.Builder matrixTransformationListBuilder = + new ImmutableList.Builder<>(); // Scale to expand the frame to apply the pixelWidthHeightRatio. if (pixelWidthHeightRatio > 1f) { - frameProcessors.add( + matrixTransformationListBuilder.add( new ScaleToFitTransformation.Builder() .setScale(/* scaleX= */ pixelWidthHeightRatio, /* scaleY= */ 1f) - .build() - .toGlFrameProcessor()); + .build()); } else if (pixelWidthHeightRatio < 1f) { - frameProcessors.add( + matrixTransformationListBuilder.add( new ScaleToFitTransformation.Builder() .setScale(/* scaleX= */ 1f, /* scaleY= */ 1f / pixelWidthHeightRatio) - .build() - .toGlFrameProcessor()); + .build()); } + // Combine consecutive GlMatrixTransformations into a single GlFrameProcessor and convert + // all other GlEffects to GlFrameProcessors. for (int i = 0; i < effects.size(); i++) { - frameProcessors.add(effects.get(i).toGlFrameProcessor()); + GlEffect effect = effects.get(i); + if (effect instanceof GlMatrixTransformation) { + matrixTransformationListBuilder.add((GlMatrixTransformation) effect); + continue; + } + ImmutableList matrixTransformations = + matrixTransformationListBuilder.build(); + if (!matrixTransformations.isEmpty()) { + frameProcessors.add(new MatrixTransformationFrameProcessor(matrixTransformations)); + matrixTransformationListBuilder = new ImmutableList.Builder<>(); + } + frameProcessors.add(effect.toGlFrameProcessor()); } + ImmutableList matrixTransformations = + matrixTransformationListBuilder.build(); + if (!matrixTransformations.isEmpty()) { + frameProcessors.add(new MatrixTransformationFrameProcessor(matrixTransformations)); + } + return frameProcessors.build(); } @@ -256,6 +275,7 @@ private static ImmutableList getFrameProcessors( private final int[] framebuffers; private final Listener listener; + /** * Prevents further frame processing tasks from being scheduled or executed after {@link * #release()} is called or an exception occurred. @@ -415,7 +435,7 @@ public boolean isEnded() { public void release() { stopProcessing.set(true); while (!futures.isEmpty()) { - checkNotNull(futures.poll()).cancel(/* mayInterruptIfRunning= */ true); + checkNotNull(futures.poll()).cancel(/* mayInterruptIfRunning= */ false); } futures.add( singleThreadExecutorService.submit(this::releaseFrameProcessorsAndDestroyGlContext)); @@ -490,6 +510,10 @@ private void processFrame() { .setTextureTransformMatrix(textureTransformMatrix); for (int i = 0; i < frameProcessors.size() - 1; i++) { + if (stopProcessing.get()) { + return; + } + Size intermediateSize = frameProcessors.get(i).getOutputSize(); GlUtil.focusFramebuffer( eglDisplay, diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java index cace85cbdcf..850f30d06ce 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationFrameProcessor.java @@ -21,23 +21,26 @@ import android.content.Context; import android.opengl.GLES20; +import android.opengl.Matrix; import android.util.Size; import androidx.media3.common.util.GlProgram; import androidx.media3.common.util.GlUtil; import androidx.media3.common.util.UnstableApi; +import com.google.common.collect.ImmutableList; import java.io.IOException; +import java.util.Arrays; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** - * Applies a transformation matrix in the vertex shader, and copies input pixels into an output - * frame based on their locations after applying this matrix. + * Applies a sequence of transformation matrices in the vertex shader, and copies input pixels into + * an output frame based on their locations after applying the sequence of transformation matrices. * - *

    Operations are done on normalized device coordinates (-1 to 1 on x and y axes). + *

    Operations are done on normalized device coordinates (-1 to 1 on x, y, and z axes). + * Transformed vertices that are moved outside of this range after any of the transformation + * matrices are clipped to the NDC range. * *

    The background color of the output frame will be black. */ -// TODO(b/227625423): Compose multiple transformation matrices in a single shader with clipping -// after each matrix. @UnstableApi @SuppressWarnings("FunctionalInterfaceClash") // b/228192298 /* package */ final class MatrixTransformationFrameProcessor implements GlFrameProcessor { @@ -49,8 +52,37 @@ private static final String VERTEX_SHADER_TRANSFORMATION_PATH = "shaders/vertex_shader_transformation_es2.glsl"; private static final String FRAGMENT_SHADER_PATH = "shaders/fragment_shader_copy_es2.glsl"; + private static final ImmutableList NDC_SQUARE = + ImmutableList.of( + new float[] {-1, -1, 0, 1}, + new float[] {-1, 1, 0, 1}, + new float[] {1, 1, 0, 1}, + new float[] {1, -1, 0, 1}); - private final GlMatrixTransformation matrixTransformation; + /** The {@link MatrixTransformation MatrixTransformations} to apply. */ + private final ImmutableList matrixTransformations; + /** + * The transformation matrices provided by the {@link MatrixTransformation MatrixTransformations} + * for the most recent frame. + */ + private final float[][] transformationMatrixCache; + /** + * The product of the {@link #transformationMatrixCache} for the most recent frame, to be applied + * in the vertex shader. + */ + private final float[] compositeTransformationMatrix; + /** Matrix for storing an intermediate calculation result. */ + private final float[] tempResultMatrix; + + /** + * A polygon in the input space chosen such that no additional clipping is needed to keep vertices + * inside the NDC range when applying each of the {@link #matrixTransformations}. + * + *

    This means that this polygon and {@link #compositeTransformationMatrix} can be used instead + * of applying each of the {@link #matrixTransformations} to {@link #NDC_SQUARE} in separate + * shaders. + */ + private ImmutableList visiblePolygon; private @MonotonicNonNull Size outputSize; private @MonotonicNonNull GlProgram glProgram; @@ -62,7 +94,7 @@ * matrix to use for each frame. */ public MatrixTransformationFrameProcessor(MatrixTransformation matrixTransformation) { - this.matrixTransformation = matrixTransformation; + this(ImmutableList.of(matrixTransformation)); } /** @@ -72,7 +104,24 @@ public MatrixTransformationFrameProcessor(MatrixTransformation matrixTransformat * matrix to use for each frame. */ public MatrixTransformationFrameProcessor(GlMatrixTransformation matrixTransformation) { - this.matrixTransformation = matrixTransformation; + this(ImmutableList.of(matrixTransformation)); + } + + /** + * Creates a new instance. + * + * @param matrixTransformations The {@link GlMatrixTransformation GlMatrixTransformations} to + * apply to each frame in order. + */ + public MatrixTransformationFrameProcessor( + ImmutableList matrixTransformations) { + this.matrixTransformations = matrixTransformations; + + transformationMatrixCache = new float[matrixTransformations.size()][16]; + compositeTransformationMatrix = new float[16]; + tempResultMatrix = new float[16]; + Matrix.setIdentityM(compositeTransformationMatrix, /* smOffset= */ 0); + visiblePolygon = NDC_SQUARE; } @Override @@ -81,14 +130,14 @@ public void initialize(Context context, int inputTexId, int inputWidth, int inpu checkArgument(inputWidth > 0, "inputWidth must be positive"); checkArgument(inputHeight > 0, "inputHeight must be positive"); - outputSize = matrixTransformation.configure(inputWidth, inputHeight); + outputSize = new Size(inputWidth, inputHeight); + for (int i = 0; i < matrixTransformations.size(); i++) { + outputSize = + matrixTransformations.get(i).configure(outputSize.getWidth(), outputSize.getHeight()); + } + glProgram = new GlProgram(context, VERTEX_SHADER_TRANSFORMATION_PATH, FRAGMENT_SHADER_PATH); glProgram.setSamplerTexIdUniform("uTexSampler", inputTexId, /* texUnitIndex= */ 0); - // Draw the frame on the entire normalized device coordinate space, from -1 to 1, for x and y. - glProgram.setBufferAttribute( - "aFramePosition", - GlUtil.getNormalizedCoordinateBounds(), - GlUtil.HOMOGENEOUS_COORDINATE_VECTOR_SIZE); } @Override @@ -98,18 +147,24 @@ public Size getOutputSize() { @Override public void drawFrame(long presentationTimeUs) throws FrameProcessingException { + updateCompositeTransformationMatrixAndVisiblePolygon(presentationTimeUs); + if (visiblePolygon.size() < 3) { + return; // Need at least three visible vertices for a triangle. + } + try { checkStateNotNull(glProgram).use(); - float[] transformationMatrix = matrixTransformation.getGlMatrixArray(presentationTimeUs); - checkState( - transformationMatrix.length == 16, "A 4x4 transformation matrix must have 16 elements"); - glProgram.setFloatsUniform("uTransformationMatrix", transformationMatrix); + glProgram.setFloatsUniform("uTransformationMatrix", compositeTransformationMatrix); + glProgram.setBufferAttribute( + "aFramePosition", + GlUtil.createVertexBuffer(visiblePolygon), + GlUtil.HOMOGENEOUS_COORDINATE_VECTOR_SIZE); glProgram.bindAttributesAndUniforms(); - // The four-vertex triangle strip forms a quad. - GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); + GLES20.glDrawArrays( + GLES20.GL_TRIANGLE_FAN, /* first= */ 0, /* count= */ visiblePolygon.size()); GlUtil.checkGlError(); } catch (GlUtil.GlException e) { - throw new FrameProcessingException(e); + throw new FrameProcessingException(e, presentationTimeUs); } } @@ -119,4 +174,69 @@ public void release() { glProgram.delete(); } } + + /** + * Updates {@link #compositeTransformationMatrix} and {@link #visiblePolygon} based on the given + * frame timestamp. + */ + private void updateCompositeTransformationMatrixAndVisiblePolygon(long presentationTimeUs) { + if (!updateTransformationMatrixCache(presentationTimeUs)) { + return; + } + + // Compute the compositeTransformationMatrix and transform and clip the visiblePolygon for each + // MatrixTransformation's matrix. + Matrix.setIdentityM(compositeTransformationMatrix, /* smOffset= */ 0); + visiblePolygon = NDC_SQUARE; + for (float[] transformationMatrix : transformationMatrixCache) { + Matrix.multiplyMM( + tempResultMatrix, + /* resultOffset= */ 0, + transformationMatrix, + /* lhsOffset= */ 0, + compositeTransformationMatrix, + /* rhsOffset= */ 0); + System.arraycopy( + /* src= */ tempResultMatrix, + /* srcPos= */ 0, + /* dest= */ compositeTransformationMatrix, + /* destPost= */ 0, + /* length= */ tempResultMatrix.length); + visiblePolygon = + MatrixUtils.clipConvexPolygonToNdcRange( + MatrixUtils.transformPoints(transformationMatrix, visiblePolygon)); + if (visiblePolygon.size() < 3) { + // Can ignore remaining matrices as there are not enough vertices left to form a polygon. + return; + } + } + // Calculate the input frame vertices corresponding to the output frame's visible polygon. + Matrix.invertM( + tempResultMatrix, /* mInvOffset= */ 0, compositeTransformationMatrix, /* mOffset= */ 0); + visiblePolygon = MatrixUtils.transformPoints(tempResultMatrix, visiblePolygon); + } + + /** + * Updates {@link #transformationMatrixCache} with the transformation matrices provided by the + * {@link #matrixTransformations} for the given frame timestamp and returns whether any matrix in + * {@link #transformationMatrixCache} changed. + */ + private boolean updateTransformationMatrixCache(long presentationTimeUs) { + boolean matrixChanged = false; + for (int i = 0; i < matrixTransformations.size(); i++) { + float[] cachedMatrix = transformationMatrixCache[i]; + float[] matrix = matrixTransformations.get(i).getGlMatrixArray(presentationTimeUs); + if (!Arrays.equals(cachedMatrix, matrix)) { + checkState(matrix.length == 16, "A 4x4 transformation matrix must have 16 elements"); + System.arraycopy( + /* src= */ matrix, + /* srcPos= */ 0, + /* dest= */ cachedMatrix, + /* destPost= */ 0, + /* length= */ matrix.length); + matrixChanged = true; + } + } + return matrixChanged; + } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixUtils.java b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixUtils.java index 41775c1668e..206d7cf16da 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixUtils.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixUtils.java @@ -15,10 +15,31 @@ */ package androidx.media3.transformer; -/** Utility functions for working with matrices. */ -/* package */ class MatrixUtils { +import static androidx.media3.common.util.Assertions.checkArgument; + +import android.opengl.Matrix; +import com.google.common.collect.ImmutableList; +import java.util.Arrays; + +/** Utility functions for working with matrices, vertices, and polygons. */ +/* package */ final class MatrixUtils { + /** + * Contains the normal vectors of the clipping planes in homogeneous coordinates which + * conveniently also double as origin vectors and parameters of the normal form of the planes ax + + * by + cz = d. + */ + private static final float[][] NDC_CUBE = + new float[][] { + new float[] {1, 0, 0, 1}, + new float[] {-1, 0, 0, 1}, + new float[] {0, 1, 0, 1}, + new float[] {0, -1, 0, 1}, + new float[] {0, 0, 1, 1}, + new float[] {0, 0, -1, 1} + }; + /** - * Returns a 4x4, column-major {@link android.opengl.Matrix} float array, from an input {@link + * Returns a 4x4, column-major {@link Matrix} float array, from an input {@link * android.graphics.Matrix}. * *

    This is useful for converting to the 4x4 column-major format commonly used in OpenGL. @@ -30,7 +51,7 @@ public static float[] getGlMatrixArray(android.graphics.Matrix matrix) { // Transpose from row-major to column-major representations. float[] transposedMatrix4x4Array = new float[16]; - android.opengl.Matrix.transposeM( + Matrix.transposeM( transposedMatrix4x4Array, /* mTransOffset= */ 0, matrix4x4Array, /* mOffset= */ 0); return transposedMatrix4x4Array; @@ -59,6 +80,143 @@ private static float[] getMatrix4x4Array(float[] matrix3x3Array) { return matrix4x4Array; } + /** + * Clips a convex polygon to normalized device coordinates (-1 to 1 on x, y, and z axes). + * + *

    The input and output vertices are given in homogeneous coordinates (x,y,z,1) where the last + * element must always be 1. To convert a general vector in homogeneous coordinates (xw,yw,zw,w) + * to this form, simply divide all elements by w. + * + * @param polygonVertices The vertices in counter-clockwise order as 4 element vectors of + * homogeneous coordinates. + * @return The vertices of the clipped polygon, in counter-clockwise order, or an empty list if + * the polygon doesn't intersect with the NDC range. + */ + public static ImmutableList clipConvexPolygonToNdcRange( + ImmutableList polygonVertices) { + checkArgument(polygonVertices.size() >= 3, "A polygon must have at least 3 vertices."); + + // This is a 3D generalization of the Sutherland-Hodgman algorithm + // https://en.wikipedia.org/wiki/Sutherland%E2%80%93Hodgman_algorithm + // using a convex clipping volume (the NDC cube) instead of a convex clipping polygon to clip a + // given subject polygon. + // For this algorithm, the subject polygon doesn't necessarily need to be convex. But since we + // require that it is convex, we can assume that the clipped result is a single connected + // convex polygon. + ImmutableList.Builder outputVertices = + new ImmutableList.Builder().addAll(polygonVertices); + for (float[] clippingPlane : NDC_CUBE) { + ImmutableList inputVertices = outputVertices.build(); + outputVertices = new ImmutableList.Builder<>(); + + for (int i = 0; i < inputVertices.size(); i++) { + float[] currentVertex = inputVertices.get(i); + float[] previousVertex = + inputVertices.get((inputVertices.size() + i - 1) % inputVertices.size()); + if (isInsideClippingHalfSpace(currentVertex, clippingPlane)) { + if (!isInsideClippingHalfSpace(previousVertex, clippingPlane)) { + float[] intersectionPoint = + computeIntersectionPoint( + clippingPlane, clippingPlane, previousVertex, currentVertex); + if (!Arrays.equals(currentVertex, intersectionPoint)) { + outputVertices.add(intersectionPoint); + } + } + outputVertices.add(currentVertex); + } else if (isInsideClippingHalfSpace(previousVertex, clippingPlane)) { + float[] intersection = + computeIntersectionPoint(clippingPlane, clippingPlane, previousVertex, currentVertex); + if (!Arrays.equals(previousVertex, intersection)) { + outputVertices.add(intersection); + } + } + } + } + + return outputVertices.build(); + } + + /** + * Returns whether the given point is inside the half-space bounded by the clipping plane and + * facing away from its normal vector. + * + *

    The clipping plane has the form ax + by + cz = d. + * + * @param point A point in homogeneous coordinates (x,y,z,1). + * @param clippingPlane The parameters (a,b,c,d) of the plane's normal form. + * @return Whether the point is on the inside of the plane. + */ + private static boolean isInsideClippingHalfSpace(float[] point, float[] clippingPlane) { + checkArgument(clippingPlane.length == 4, "Expecting 4 plane parameters"); + + return clippingPlane[0] * point[0] + clippingPlane[1] * point[1] + clippingPlane[2] * point[2] + <= clippingPlane[3]; + } + + /** + * Returns the intersection point of the given line and plane. + * + *

    This method may only be called if such an intersection exists. + * + *

    The plane has the form ax + by + cz = d. + * + *

    The points are given in homogeneous coordinates (x,y,z,1). + * + * @param planePoint A point on the plane. + * @param planeParameters The parameters of the plane's normal form. + * @param linePoint1 A point on the line. + * @param linePoint2 Another point on the line. + * @return The point of intersection. + */ + private static float[] computeIntersectionPoint( + float[] planePoint, float[] planeParameters, float[] linePoint1, float[] linePoint2) { + checkArgument(planeParameters.length == 4, "Expecting 4 plane parameters"); + + // See https://en.wikipedia.org/wiki/Line%E2%80%93plane_intersection#Algebraic_form for the + // derivation of this solution formula. + float lineEquationParameter = + ((planePoint[0] - linePoint1[0]) * planeParameters[0] + + (planePoint[1] - linePoint1[1]) * planeParameters[1] + + (planePoint[2] - linePoint1[2]) * planeParameters[2]) + / ((linePoint2[0] - linePoint1[0]) * planeParameters[0] + + (linePoint2[1] - linePoint1[1]) * planeParameters[1] + + (linePoint2[2] - linePoint1[2]) * planeParameters[2]); + float x = linePoint1[0] + (linePoint2[0] - linePoint1[0]) * lineEquationParameter; + float y = linePoint1[1] + (linePoint2[1] - linePoint1[1]) * lineEquationParameter; + float z = linePoint1[2] + (linePoint2[2] - linePoint1[2]) * lineEquationParameter; + return new float[] {x, y, z, 1}; + } + + /** + * Applies a transformation matrix to each point. + * + * @param transformationMatrix The 4x4 transformation matrix. + * @param points The points as 4 element vectors of homogeneous coordinates (x,y,z,1). + * @return The transformed points as 4 element vectors of homogeneous coordinates (x,y,z,1). + */ + public static ImmutableList transformPoints( + float[] transformationMatrix, ImmutableList points) { + ImmutableList.Builder transformedPoints = new ImmutableList.Builder<>(); + for (int i = 0; i < points.size(); i++) { + float[] transformedPoint = new float[4]; + Matrix.multiplyMV( + transformedPoint, + /* resultVecOffset= */ 0, + transformationMatrix, + /* lhsMatOffset= */ 0, + points.get(i), + /* rhsVecOffset= */ 0); + // Multiplication result is in homogeneous coordinates (xw,yw,zw,w) with any w. Divide by w + // to get (x,y,z,1). + transformedPoint[0] /= transformedPoint[3]; + transformedPoint[1] /= transformedPoint[3]; + transformedPoint[2] /= transformedPoint[3]; + transformedPoint[3] = 1; + transformedPoints.add(transformedPoint); + } + return transformedPoints.build(); + } + /** Class only contains static methods. */ private MatrixUtils() {} } diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/MatrixUtilsTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/MatrixUtilsTest.java new file mode 100644 index 00000000000..8c80ef6103d --- /dev/null +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/MatrixUtilsTest.java @@ -0,0 +1,177 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package androidx.media3.transformer; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertThrows; + +import android.opengl.Matrix; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import com.google.common.collect.ImmutableList; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** Tests for {@link MatrixUtils}. */ +@RunWith(AndroidJUnit4.class) +public class MatrixUtilsTest { + + @Test + public void clipConvexPolygonToNdcRange_withTwoVertices_throwsException() { + ImmutableList vertices = + ImmutableList.of(new float[] {1, 0, 1, 1}, new float[] {-0.5f, 0, 1, 1}); + + assertThrows( + IllegalArgumentException.class, () -> MatrixUtils.clipConvexPolygonToNdcRange(vertices)); + } + + @Test + public void clipConvexPolygonToNdcRange_insideRange_returnsPolygon() { + ImmutableList vertices = + ImmutableList.of( + new float[] {-0.5f, 0, 0, 1}, new float[] {0.5f, 0, 0, 1}, new float[] {0, 0.5f, 0, 1}); + + ImmutableList clippedVertices = MatrixUtils.clipConvexPolygonToNdcRange(vertices); + + assertThat(clippedVertices).isEqualTo(vertices); + } + + @Test + public void clipConvexPolygonToNdcRange_onXClippingPlane_returnsPolygon() { + ImmutableList vertices = + ImmutableList.of( + new float[] {1, -0.5f, 0, 1}, new float[] {1, 0.5f, 0, 1}, new float[] {1, 0, 0.5f, 1}); + + ImmutableList clippedVertices = MatrixUtils.clipConvexPolygonToNdcRange(vertices); + + assertThat(clippedVertices).isEqualTo(vertices); + } + + @Test + public void clipConvexPolygonToNdcRange_onYClippingPlane_returnsPolygon() { + ImmutableList vertices = + ImmutableList.of( + new float[] {0, 1, -0.5f, 1}, new float[] {0, 1, 0.5f, 1}, new float[] {0.5f, 1, 0, 1}); + + ImmutableList clippedVertices = MatrixUtils.clipConvexPolygonToNdcRange(vertices); + + assertThat(clippedVertices).isEqualTo(vertices); + } + + @Test + public void clipConvexPolygonToNdcRange_onZClippingPlane_returnsPolygon() { + ImmutableList vertices = + ImmutableList.of( + new float[] {-0.5f, 0, 1, 1}, new float[] {0.5f, 0, 1, 1}, new float[] {0, 0.5f, 1, 1}); + + ImmutableList clippedVertices = MatrixUtils.clipConvexPolygonToNdcRange(vertices); + + assertThat(clippedVertices).isEqualTo(vertices); + } + + @Test + public void clipConvexPolygonToNdcRange_onClippingVolumeCorners_returnsPolygon() { + ImmutableList vertices = + ImmutableList.of( + new float[] {-1, 0, 1, 1}, new float[] {1, 0, 1, 1}, new float[] {0, 1, 1, 1}); + + ImmutableList clippedVertices = MatrixUtils.clipConvexPolygonToNdcRange(vertices); + + assertThat(clippedVertices).isEqualTo(vertices); + } + + @Test + public void clipConvexPolygonToNdcRange_outsideRange_returnsEmptyList() { + ImmutableList vertices = + ImmutableList.of( + new float[] {-0.5f, 0, 2, 1}, new float[] {0.5f, 0, 2, 1}, new float[] {0, 0.5f, 2, 1}); + + ImmutableList clippedVertices = MatrixUtils.clipConvexPolygonToNdcRange(vertices); + + assertThat(clippedVertices).isEmpty(); + } + + @Test + public void clipConvexPolygonToNdcRange_withOneVertexOutsideRange_returnsClippedPolygon() { + ImmutableList vertices = + ImmutableList.of( + new float[] {-1, 0, 1, 1}, new float[] {1, 0, 1, 1}, new float[] {1, 2, 1, 1}); + + ImmutableList actualClippedVertices = + MatrixUtils.clipConvexPolygonToNdcRange(vertices); + + ImmutableList expectedClippedVertices = + ImmutableList.of( + new float[] {0, 1, 1, 1}, + new float[] {-1, 0, 1, 1}, + new float[] {1, 0, 1, 1}, + new float[] {1, 1, 1, 1}); + assertThat(actualClippedVertices.toArray()).isEqualTo(expectedClippedVertices.toArray()); + } + + @Test + public void clipConvexPolygonToNdcRange_withTwoVerticesOutsideRange_returnsClippedPolygon() { + ImmutableList vertices = + ImmutableList.of( + new float[] {0, 1, 1, 1}, new float[] {-2, -3, 1, 1}, new float[] {2, -3, 1, 1}); + + ImmutableList actualClippedVertices = + MatrixUtils.clipConvexPolygonToNdcRange(vertices); + + ImmutableList expectedClippedVertices = + ImmutableList.of( + new float[] {1, -1, 1, 1}, new float[] {0, 1, 1, 1}, new float[] {-1, -1, 1, 1}); + assertThat(actualClippedVertices.toArray()).isEqualTo(expectedClippedVertices.toArray()); + } + + @Test + public void clipConvexPolygonToNdcRange_enclosingRange_returnsRange() { + ImmutableList vertices = + ImmutableList.of( + new float[] {-2, -2, 1, 1}, + new float[] {2, -2, 1, 1}, + new float[] {2, 2, 1, 1}, + new float[] {-2, 2, 1, 1}); + + ImmutableList actualClippedVertices = + MatrixUtils.clipConvexPolygonToNdcRange(vertices); + + ImmutableList expectedClippedVertices = + ImmutableList.of( + new float[] {-1, 1, 1, 1}, + new float[] {-1, -1, 1, 1}, + new float[] {1, -1, 1, 1}, + new float[] {1, 1, 1, 1}); + assertThat(actualClippedVertices.toArray()).isEqualTo(expectedClippedVertices.toArray()); + } + + @Test + public void transformPoints_returnsExpectedResult() { + ImmutableList points = + ImmutableList.of( + new float[] {-1, 0, 1, 1}, new float[] {1, 0, 1, 1}, new float[] {0, 1, 1, 1}); + float[] scaleMatrix = new float[16]; + Matrix.setIdentityM(scaleMatrix, /* smOffset= */ 0); + Matrix.scaleM(scaleMatrix, /* mOffset= */ 0, /* x= */ 2, /* y= */ 3, /* z= */ 4); + + ImmutableList actualTransformedPoints = + MatrixUtils.transformPoints(scaleMatrix, points); + + ImmutableList expectedTransformedPoints = + ImmutableList.of( + new float[] {-2, 0, 4, 1}, new float[] {2, 0, 4, 1}, new float[] {0, 3, 4, 1}); + assertThat(actualTransformedPoints.toArray()).isEqualTo(expectedTransformedPoints.toArray()); + } +} From 0724f5b5a5a3e8006febabf3b3b29c681b0308b4 Mon Sep 17 00:00:00 2001 From: tonihei Date: Mon, 16 May 2022 10:59:47 +0100 Subject: [PATCH 083/182] Add language normalization for "arb" (Standard Arabic) This is an individual language (ISO 639-3) part of the Arabic macrolanguage ("ar" in ISO 639-1). Add this mapping to our existing list similar to other individual to macrolanguage mappings we have already. Issue: Issue: google/ExoPlayer#10255 PiperOrigin-RevId: 448911950 --- .../common/src/main/java/androidx/media3/common/util/Util.java | 1 + .../src/test/java/androidx/media3/common/util/UtilTest.java | 1 + 2 files changed, 2 insertions(+) diff --git a/libraries/common/src/main/java/androidx/media3/common/util/Util.java b/libraries/common/src/main/java/androidx/media3/common/util/Util.java index 065528ff5ca..f80525bdf6c 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/Util.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/Util.java @@ -2835,6 +2835,7 @@ private static String maybeReplaceLegacyLanguageTags(String languageTag) { "ji", "yi", // Individual macrolanguage codes mapped back to full macrolanguage code. // See https://en.wikipedia.org/wiki/ISO_639_macrolanguage + "arb", "ar-arb", "in", "ms-ind", "ind", "ms-ind", "nb", "no-nob", diff --git a/libraries/common/src/test/java/androidx/media3/common/util/UtilTest.java b/libraries/common/src/test/java/androidx/media3/common/util/UtilTest.java index db2900fa2a5..1db8dca85a2 100644 --- a/libraries/common/src/test/java/androidx/media3/common/util/UtilTest.java +++ b/libraries/common/src/test/java/androidx/media3/common/util/UtilTest.java @@ -1162,6 +1162,7 @@ public void normalizeLanguageCode_macrolanguageTags_areFullyMaintained() { assertThat(Util.normalizeLanguageCode("ara-ayl")).isEqualTo("ar-ayl"); // Special case of short codes that are actually part of a macrolanguage. + assertThat(Util.normalizeLanguageCode("arb")).isEqualTo("ar-arb"); assertThat(Util.normalizeLanguageCode("nb")).isEqualTo("no-nob"); assertThat(Util.normalizeLanguageCode("nn")).isEqualTo("no-nno"); assertThat(Util.normalizeLanguageCode("nob")).isEqualTo("no-nob"); From 9345c1addcb0587789ca76900681e90fae6968c2 Mon Sep 17 00:00:00 2001 From: tonihei Date: Mon, 16 May 2022 19:58:06 +0100 Subject: [PATCH 084/182] Add replacement for deprecated network type override constant The MMWAVE constant was deprecated in favour of a new constant with a better name. Thus, we need to check for both constants now. PiperOrigin-RevId: 449018959 --- .../java/androidx/media3/common/util/NetworkTypeObserver.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/common/src/main/java/androidx/media3/common/util/NetworkTypeObserver.java b/libraries/common/src/main/java/androidx/media3/common/util/NetworkTypeObserver.java index 9609cff4966..5caf81f176e 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/NetworkTypeObserver.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/NetworkTypeObserver.java @@ -279,7 +279,8 @@ public void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo) { int overrideNetworkType = telephonyDisplayInfo.getOverrideNetworkType(); boolean is5gNsa = overrideNetworkType == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA - || overrideNetworkType == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE; + || overrideNetworkType == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE + || overrideNetworkType == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_ADVANCED; updateNetworkType(is5gNsa ? C.NETWORK_TYPE_5G_NSA : C.NETWORK_TYPE_4G); } } From 66b3527a22f8f15076b0c26b94477db700d9f2f4 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Tue, 17 May 2022 13:59:02 +0100 Subject: [PATCH 085/182] Fix demo app crash when media pipe isn't loaded The toast message about media pipe not loading needs to be shown on the main (UI) thread. PiperOrigin-RevId: 449199285 --- .../androidx/media3/demo/transformer/TransformerActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java index 244c86baed9..34205e8da25 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java @@ -266,7 +266,7 @@ private Transformer createTransformer(@Nullable Bundle bundle, String filePath) /* inputStreamName= */ "input_video", /* outputStreamName= */ "output_video"); } catch (Exception e) { - showToast(R.string.no_media_pipe_error); + runOnUiThread(() -> showToast(R.string.no_media_pipe_error)); throw new RuntimeException("Failed to load MediaPipe processor", e); } }); From 0e2bb8c8bdb14a60aedf6a56d50915044198e015 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Tue, 17 May 2022 15:08:54 +0100 Subject: [PATCH 086/182] Update stale bug reference. The old reference was just for prototyping HDR. The new reference is for planned work to use the correct formats for input and output for HDR editing in GL. PiperOrigin-RevId: 449211792 --- .../java/androidx/media3/transformer/FrameProcessorChain.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java index 686278bcfc2..d2285a61281 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java @@ -159,7 +159,7 @@ private static FrameProcessorChain createOpenGlObjectsAndFrameProcessorChain( GlUtil.focusEglSurface( eglDisplay, eglContext, EGL14.EGL_NO_SURFACE, /* width= */ 1, /* height= */ 1); } else if (enableExperimentalHdrEditing) { - // TODO(b/209404935): Don't assume BT.2020 PQ input/output. + // TODO(b/227624622): Don't assume BT.2020 PQ input/output. GlUtil.focusPlaceholderEglSurfaceBt2020Pq(eglContext, eglDisplay); } else { GlUtil.focusPlaceholderEglSurface(eglContext, eglDisplay); @@ -467,7 +467,7 @@ private void createOpenGlSurfaces(Surface outputSurface, @Nullable SurfaceView d checkStateNotNull(eglDisplay); if (enableExperimentalHdrEditing) { - // TODO(b/209404935): Don't assume BT.2020 PQ input/output. + // TODO(b/227624622): Don't assume BT.2020 PQ input/output. eglSurface = GlUtil.getEglSurfaceBt2020Pq(eglDisplay, outputSurface); if (debugSurfaceView != null) { debugPreviewEglSurface = From c7286472908aff8ecea818509cf9edf83c0ddd02 Mon Sep 17 00:00:00 2001 From: rohks Date: Tue, 17 May 2022 15:10:15 +0100 Subject: [PATCH 087/182] Create new class to store cues and timestamp. We need to pass timestamp for the list of cues so we are defining a new class CueGroup which will store both cues and timestamp. PiperOrigin-RevId: 449212054 --- RELEASENOTES.md | 2 + .../java/androidx/media3/cast/CastPlayer.java | 8 +- .../media3/common/ForwardingPlayer.java | 8 +- .../java/androidx/media3/common/Player.java | 24 +++- .../androidx/media3/common/text/CueGroup.java | 103 ++++++++++++++++++ .../media3/common/text/CueGroupTest.java | 55 ++++++++++ .../androidx/media3/exoplayer/ExoPlayer.java | 4 +- .../media3/exoplayer/ExoPlayerImpl.java | 21 ++-- .../media3/exoplayer/SimpleExoPlayer.java | 4 +- .../analytics/AnalyticsListener.java | 21 +++- .../analytics/DefaultAnalyticsCollector.java | 9 ++ .../media3/exoplayer/text/TextOutput.java | 16 ++- .../media3/exoplayer/text/TextRenderer.java | 2 + .../media3/session/MediaController.java | 9 +- .../session/MediaControllerImplBase.java | 13 ++- .../session/MediaControllerImplLegacy.java | 8 +- .../media3/session/MediaSessionImpl.java | 6 +- .../androidx/media3/session/MediaUtils.java | 16 --- .../androidx/media3/session/PlayerInfo.java | 40 +++---- .../media3/session/PlayerWrapper.java | 4 +- .../session/common/IRemoteMediaSession.aidl | 2 +- .../test/session/common/CommonConstants.java | 2 +- .../session/MediaControllerListenerTest.java | 23 ++-- .../media3/session/MediaUtilsTest.java | 15 --- .../session/MediaSessionProviderService.java | 18 ++- .../androidx/media3/session/MockPlayer.java | 14 ++- .../media3/session/RemoteMediaSession.java | 12 +- .../media3/test/utils/StubPlayer.java | 4 +- .../java/androidx/media3/ui/PlayerView.java | 2 +- 29 files changed, 329 insertions(+), 136 deletions(-) create mode 100644 libraries/common/src/main/java/androidx/media3/common/text/CueGroup.java create mode 100644 libraries/common/src/test/java/androidx/media3/common/text/CueGroupTest.java diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 7e62826e08a..883e3271ad5 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -28,6 +28,8 @@ * Decrease ad polling rate from every 100ms to every 200ms, to line up with Media Rating Council (MRC) recommendations. * Text: + * Change `Player.getCurrentCues()` to return `CueGroup` instead of + `List`. * SSA: Support `OutlineColour` style setting when `BorderStyle == 3` (i.e. `OutlineColour` sets the background of the cue) ([#8435](https://github.com/google/ExoPlayer/issues/8435)). diff --git a/libraries/cast/src/main/java/androidx/media3/cast/CastPlayer.java b/libraries/cast/src/main/java/androidx/media3/cast/CastPlayer.java index 488af70f508..3ab3878864f 100644 --- a/libraries/cast/src/main/java/androidx/media3/cast/CastPlayer.java +++ b/libraries/cast/src/main/java/androidx/media3/cast/CastPlayer.java @@ -42,7 +42,7 @@ import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.Tracks; import androidx.media3.common.VideoSize; -import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Clock; import androidx.media3.common.util.ListenerSet; @@ -705,10 +705,10 @@ public VideoSize getVideoSize() { return VideoSize.UNKNOWN; } - /** This method is not supported and returns an empty list. */ + /** This method is not supported and returns an empty {@link CueGroup}. */ @Override - public ImmutableList getCurrentCues() { - return ImmutableList.of(); + public CueGroup getCurrentCues() { + return CueGroup.EMPTY; } /** This method is not supported and always returns {@link DeviceInfo#UNKNOWN}. */ diff --git a/libraries/common/src/main/java/androidx/media3/common/ForwardingPlayer.java b/libraries/common/src/main/java/androidx/media3/common/ForwardingPlayer.java index 63ec6b1a726..b6fb7111df8 100644 --- a/libraries/common/src/main/java/androidx/media3/common/ForwardingPlayer.java +++ b/libraries/common/src/main/java/androidx/media3/common/ForwardingPlayer.java @@ -22,6 +22,7 @@ import android.view.TextureView; import androidx.annotation.Nullable; import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.UnstableApi; import java.util.List; @@ -752,7 +753,7 @@ public void clearVideoTextureView(@Nullable TextureView textureView) { /** Calls {@link Player#getCurrentCues()} on the delegate and returns the result. */ @Override - public List getCurrentCues() { + public CueGroup getCurrentCues() { return player.getCurrentCues(); } @@ -992,6 +993,11 @@ public void onCues(List cues) { listener.onCues(cues); } + @Override + public void onCues(CueGroup cueGroup) { + listener.onCues(cueGroup); + } + @Override public void onMetadata(Metadata metadata) { listener.onMetadata(metadata); diff --git a/libraries/common/src/main/java/androidx/media3/common/Player.java b/libraries/common/src/main/java/androidx/media3/common/Player.java index acaf8ded956..eb67acb05ec 100644 --- a/libraries/common/src/main/java/androidx/media3/common/Player.java +++ b/libraries/common/src/main/java/androidx/media3/common/Player.java @@ -32,6 +32,7 @@ import androidx.annotation.IntRange; import androidx.annotation.Nullable; import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; @@ -1024,16 +1025,29 @@ default void onRenderedFirstFrame() {} /** * Called when there is a change in the {@link Cue Cues}. * - *

    {@code cues} is in ascending order of priority. If any of the cue boxes overlap when - * displayed, the {@link Cue} nearer the end of the list should be shown on top. + *

    Both {@link #onCues(List)} and {@link #onCues(CueGroup)} are called when there is a change + * in the cues. You should only implement one or the other. * *

    {@link #onEvents(Player, Events)} will also be called to report this event along with * other events that happen in the same {@link Looper} message queue iteration. * - * @param cues The {@link Cue Cues}. May be empty. + * @deprecated Use {@link #onCues(CueGroup)} instead. */ + @Deprecated + @UnstableApi default void onCues(List cues) {} + /** + * Called when there is a change in the {@link CueGroup}. + * + *

    Both {@link #onCues(List)} and {@link #onCues(CueGroup)} are called when there is a change + * in the cues. You should only implement one or the other. + * + *

    {@link #onEvents(Player, Events)} will also be called to report this event along with + * other events that happen in the same {@link Looper} message queue iteration. + */ + default void onCues(CueGroup cueGroup) {} + /** * Called when there is metadata associated with the current playback time. * @@ -2469,8 +2483,8 @@ default void onMetadata(Metadata metadata) {} */ VideoSize getVideoSize(); - /** Returns the current {@link Cue Cues}. This list may be empty. */ - List getCurrentCues(); + /** Returns the current {@link CueGroup}. */ + CueGroup getCurrentCues(); /** Gets the device information. */ DeviceInfo getDeviceInfo(); diff --git a/libraries/common/src/main/java/androidx/media3/common/text/CueGroup.java b/libraries/common/src/main/java/androidx/media3/common/text/CueGroup.java new file mode 100644 index 00000000000..b982b522744 --- /dev/null +++ b/libraries/common/src/main/java/androidx/media3/common/text/CueGroup.java @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package androidx.media3.common.text; + +import static java.lang.annotation.ElementType.TYPE_USE; + +import android.graphics.Bitmap; +import android.os.Bundle; +import androidx.annotation.IntDef; +import androidx.media3.common.Bundleable; +import androidx.media3.common.util.BundleableUtil; +import androidx.media3.common.util.UnstableApi; +import com.google.common.collect.ImmutableList; +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.util.List; + +/** Class to represent the state of active {@link Cue Cues} at a particular time. */ +public final class CueGroup implements Bundleable { + + /** Empty {@link CueGroup}. */ + @UnstableApi public static final CueGroup EMPTY = new CueGroup(ImmutableList.of()); + + /** + * The cues in this group. + * + *

    This list is in ascending order of priority. If any of the cue boxes overlap when displayed, + * the {@link Cue} nearer the end of the list should be shown on top. + * + *

    This list may be empty if the group represents a state with no cues. + */ + public final ImmutableList cues; + + /** Creates a CueGroup. */ + @UnstableApi + public CueGroup(List cues) { + this.cues = ImmutableList.copyOf(cues); + } + + // Bundleable implementation. + + @Documented + @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) + @IntDef({FIELD_CUES}) + private @interface FieldNumber {} + + private static final int FIELD_CUES = 0; + + @UnstableApi + @Override + public Bundle toBundle() { + Bundle bundle = new Bundle(); + bundle.putParcelableArrayList( + keyForField(FIELD_CUES), BundleableUtil.toBundleArrayList(filterOutBitmapCues(cues))); + return bundle; + } + + @UnstableApi public static final Creator CREATOR = CueGroup::fromBundle; + + private static final CueGroup fromBundle(Bundle bundle) { + List cues = + BundleableUtil.fromBundleNullableList( + Cue.CREATOR, + bundle.getParcelableArrayList(keyForField(FIELD_CUES)), + /* defaultValue= */ ImmutableList.of()); + return new CueGroup(cues); + } + + private static String keyForField(@FieldNumber int field) { + return Integer.toString(field, Character.MAX_RADIX); + } + + /** + * Filters out {@link Cue} objects containing {@link Bitmap}. It is used when transferring cues + * between processes to prevent transferring too much data. + */ + private static ImmutableList filterOutBitmapCues(List cues) { + ImmutableList.Builder builder = ImmutableList.builder(); + for (int i = 0; i < cues.size(); i++) { + if (cues.get(i).bitmap != null) { + continue; + } + builder.add(cues.get(i)); + } + return builder.build(); + } +} diff --git a/libraries/common/src/test/java/androidx/media3/common/text/CueGroupTest.java b/libraries/common/src/test/java/androidx/media3/common/text/CueGroupTest.java new file mode 100644 index 00000000000..6a8f4d6e9c2 --- /dev/null +++ b/libraries/common/src/test/java/androidx/media3/common/text/CueGroupTest.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package androidx.media3.common.text; + +import static com.google.common.truth.Truth.assertThat; + +import android.graphics.Bitmap; +import android.os.Bundle; +import android.os.Parcel; +import android.text.SpannedString; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import com.google.common.collect.ImmutableList; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** Tests for {@link CueGroup}. */ +@RunWith(AndroidJUnit4.class) +public class CueGroupTest { + + @Test + public void bundleAndUnBundleCueGroup() { + Cue textCue = new Cue.Builder().setText(SpannedString.valueOf("text")).build(); + Cue bitmapCue = + new Cue.Builder().setBitmap(Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888)).build(); + ImmutableList cues = ImmutableList.of(textCue, bitmapCue); + CueGroup cueGroup = new CueGroup(cues); + + Parcel parcel = Parcel.obtain(); + try { + parcel.writeBundle(cueGroup.toBundle()); + parcel.setDataPosition(0); + + Bundle bundle = parcel.readBundle(); + CueGroup filteredCueGroup = CueGroup.CREATOR.fromBundle(bundle); + + assertThat(filteredCueGroup.cues).containsExactly(textCue); + } finally { + parcel.recycle(); + } + } +} diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayer.java index 4dc3f660264..1efe41836c7 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayer.java @@ -40,7 +40,7 @@ import androidx.media3.common.Timeline; import androidx.media3.common.Tracks; import androidx.media3.common.VideoSize; -import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.Clock; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; @@ -358,7 +358,7 @@ interface TextComponent { * @deprecated Use {@link Player#getCurrentCues()} instead. */ @Deprecated - List getCurrentCues(); + CueGroup getCurrentCues(); } /** diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java index abc8db36543..8902e5d76f3 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java @@ -73,6 +73,7 @@ import androidx.media3.common.Tracks; import androidx.media3.common.VideoSize; import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Clock; import androidx.media3.common.util.ConditionVariable; @@ -196,7 +197,7 @@ private AudioAttributes audioAttributes; private float volume; private boolean skipSilenceEnabled; - private List currentCues; + private CueGroup currentCueGroup; @Nullable private VideoFrameMetadataListener videoFrameMetadataListener; @Nullable private CameraMotionListener cameraMotionListener; private boolean throwsWhenUsingWrongThread; @@ -353,7 +354,7 @@ public ExoPlayerImpl(ExoPlayer.Builder builder, @Nullable Player wrappingPlayer) } else { audioSessionId = Util.generateAudioSessionIdV21(applicationContext); } - currentCues = ImmutableList.of(); + currentCueGroup = CueGroup.EMPTY; throwsWhenUsingWrongThread = true; addListener(analyticsCollector); @@ -936,7 +937,7 @@ public void stop(boolean reset) { verifyApplicationThread(); audioFocusManager.updateAudioFocus(getPlayWhenReady(), Player.STATE_IDLE); stopInternal(reset, /* error= */ null); - currentCues = ImmutableList.of(); + currentCueGroup = CueGroup.EMPTY; } @Override @@ -990,7 +991,7 @@ public void release() { checkNotNull(priorityTaskManager).remove(C.PRIORITY_PLAYBACK); isPriorityTaskManagerRegistered = false; } - currentCues = ImmutableList.of(); + currentCueGroup = CueGroup.EMPTY; playerReleased = true; } @@ -1587,9 +1588,9 @@ public void clearCameraMotionListener(CameraMotionListener listener) { } @Override - public List getCurrentCues() { + public CueGroup getCurrentCues() { verifyApplicationThread(); - return currentCues; + return currentCueGroup; } @Override @@ -2850,13 +2851,17 @@ public void onAudioCodecError(Exception audioCodecError) { } // TextOutput implementation - @Override public void onCues(List cues) { - currentCues = cues; listeners.sendEvent(EVENT_CUES, listener -> listener.onCues(cues)); } + @Override + public void onCues(CueGroup cueGroup) { + currentCueGroup = cueGroup; + listeners.sendEvent(EVENT_CUES, listener -> listener.onCues(cueGroup)); + } + // MetadataOutput implementation @Override diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/SimpleExoPlayer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/SimpleExoPlayer.java index fc6e8889d21..3d4a315ab32 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/SimpleExoPlayer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/SimpleExoPlayer.java @@ -38,7 +38,7 @@ import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.Tracks; import androidx.media3.common.VideoSize; -import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.Clock; import androidx.media3.common.util.ConditionVariable; import androidx.media3.common.util.UnstableApi; @@ -690,7 +690,7 @@ public void clearCameraMotionListener(CameraMotionListener listener) { } @Override - public List getCurrentCues() { + public CueGroup getCurrentCues() { blockUntilConstructorFinished(); return player.getCurrentCues(); } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/AnalyticsListener.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/AnalyticsListener.java index 2c9345409fd..454588936a5 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/AnalyticsListener.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/AnalyticsListener.java @@ -49,6 +49,7 @@ import androidx.media3.common.Tracks; import androidx.media3.common.VideoSize; import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.UnstableApi; import androidx.media3.decoder.DecoderException; import androidx.media3.exoplayer.DecoderCounters; @@ -875,15 +876,29 @@ default void onMetadata(EventTime eventTime, Metadata metadata) {} /** * Called when there is a change in the {@link Cue Cues}. * - *

    {@code cues} is in ascending order of priority. If any of the cue boxes overlap when - * displayed, the {@link Cue} nearer the end of the list should be shown on top. + *

    Both {@link #onCues(EventTime, List)} and {@link #onCues(EventTime, CueGroup)} are called + * when there is a change in the cues. You should only implement one or the other. * * @param eventTime The event time. - * @param cues The {@link Cue Cues}. May be empty. + * @param cues The {@link Cue Cues}. + * @deprecated Use {@link #onCues(EventTime, CueGroup)} instead. */ + @Deprecated @UnstableApi default void onCues(EventTime eventTime, List cues) {} + /** + * Called when there is a change in the {@link CueGroup}. + * + *

    Both {@link #onCues(EventTime, List)} and {@link #onCues(EventTime, CueGroup)} are called + * when there is a change in the cues. You should only implement one or the other. + * + * @param eventTime The event time. + * @param cueGroup The {@link CueGroup}. + */ + @UnstableApi + default void onCues(EventTime eventTime, CueGroup cueGroup) {} + /** * @deprecated Use {@link #onAudioEnabled} and {@link #onVideoEnabled} instead. */ diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/DefaultAnalyticsCollector.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/DefaultAnalyticsCollector.java index 8ae6985a6de..74062ab3e33 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/DefaultAnalyticsCollector.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/DefaultAnalyticsCollector.java @@ -42,6 +42,7 @@ import androidx.media3.common.Tracks; import androidx.media3.common.VideoSize; import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.Clock; import androidx.media3.common.util.HandlerWrapper; import androidx.media3.common.util.ListenerSet; @@ -695,6 +696,7 @@ public final void onMetadata(Metadata metadata) { listener -> listener.onMetadata(eventTime, metadata)); } + @SuppressWarnings("deprecation") // Implementing and calling deprecated listener method. @Override public void onCues(List cues) { EventTime eventTime = generateCurrentPlayerMediaPeriodEventTime(); @@ -702,6 +704,13 @@ public void onCues(List cues) { eventTime, AnalyticsListener.EVENT_CUES, listener -> listener.onCues(eventTime, cues)); } + @Override + public void onCues(CueGroup cueGroup) { + EventTime eventTime = generateCurrentPlayerMediaPeriodEventTime(); + sendEvent( + eventTime, AnalyticsListener.EVENT_CUES, listener -> listener.onCues(eventTime, cueGroup)); + } + @SuppressWarnings("deprecation") // Implementing and calling deprecated listener method. @Override public final void onSeekProcessed() { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextOutput.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextOutput.java index 73983208b73..2201d519bfb 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextOutput.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextOutput.java @@ -16,6 +16,7 @@ package androidx.media3.exoplayer.text; import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.UnstableApi; import java.util.List; @@ -26,10 +27,19 @@ public interface TextOutput { /** * Called when there is a change in the {@link Cue Cues}. * - *

    {@code cues} is in ascending order of priority. If any of the cue boxes overlap when - * displayed, the {@link Cue} nearer the end of the list should be shown on top. + *

    Both {@link #onCues(List)} and {@link #onCues(CueGroup)} are called when there is a change + * in the cues. You should only implement one or the other. * - * @param cues The {@link Cue Cues}. May be empty. + * @deprecated Use {@link #onCues(CueGroup)} instead. */ + @Deprecated void onCues(List cues); + + /** + * Called when there is a change in the {@link CueGroup}. + * + *

    Both {@link #onCues(List)} and {@link #onCues(CueGroup)} are called when there is a change + * in the cues You should only implement one or the other. + */ + default void onCues(CueGroup cueGroup) {} } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextRenderer.java index af8809966a5..506a69a8427 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextRenderer.java @@ -29,6 +29,7 @@ import androidx.media3.common.Format; import androidx.media3.common.MimeTypes; import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.Log; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; @@ -395,6 +396,7 @@ public boolean handleMessage(Message msg) { private void invokeUpdateOutputInternal(List cues) { output.onCues(cues); + output.onCues(new CueGroup(cues)); } /** diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaController.java b/libraries/session/src/main/java/androidx/media3/session/MediaController.java index d1c4bf65f7d..9a45735e39a 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaController.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaController.java @@ -52,12 +52,11 @@ import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.Tracks; import androidx.media3.common.VideoSize; -import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.Consumer; import androidx.media3.common.util.Log; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; -import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import java.util.List; @@ -1583,9 +1582,9 @@ public void clearVideoTextureView(@Nullable TextureView textureView) { } @Override - public List getCurrentCues() { + public CueGroup getCurrentCues() { verifyApplicationThread(); - return isConnected() ? impl.getCurrentCues() : ImmutableList.of(); + return isConnected() ? impl.getCurrentCues() : CueGroup.EMPTY; } @Override @@ -1981,7 +1980,7 @@ interface MediaControllerImpl { void clearVideoTextureView(@Nullable TextureView textureView); - List getCurrentCues(); + CueGroup getCurrentCues(); float getVolume(); diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java index b2420b835a9..a0c55ff9a8e 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java @@ -134,7 +134,7 @@ import androidx.media3.common.Timeline.Window; import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.VideoSize; -import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.Clock; import androidx.media3.common.util.ListenerSet; @@ -1490,8 +1490,8 @@ public void run(IMediaSession iSession, int seq) throws RemoteException { } @Override - public List getCurrentCues() { - return playerInfo.cues; + public CueGroup getCurrentCues() { + return playerInfo.cueGroup; } @Override @@ -2356,6 +2356,7 @@ void onCustomCommand(int seq, SessionCommand command, Bundle args) { }); } + @SuppressWarnings("deprecation") // Implementing and calling deprecated listener method. void onPlayerInfoChanged( PlayerInfo newPlayerInfo, @TimelineChangeReason int timelineChangedReason, @@ -2427,10 +2428,12 @@ void onPlayerInfoChanged( /* eventFlag= */ C.INDEX_UNSET, listener -> listener.onAudioAttributesChanged(playerInfo.audioAttributes)); } - if (!Util.areEqual(oldPlayerInfo.cues, playerInfo.cues)) { + if (!oldPlayerInfo.cueGroup.cues.equals(playerInfo.cueGroup.cues)) { // TODO(b/187152483): Set proper event code when available. listeners.queueEvent( - /* eventFlag= */ C.INDEX_UNSET, listener -> listener.onCues(playerInfo.cues)); + /* eventFlag= */ C.INDEX_UNSET, listener -> listener.onCues(playerInfo.cueGroup.cues)); + listeners.queueEvent( + /* eventFlag= */ C.INDEX_UNSET, listener -> listener.onCues(playerInfo.cueGroup)); } if (!Util.areEqual(oldPlayerInfo.deviceInfo, playerInfo.deviceInfo)) { // TODO(b/187152483): Set proper event code when available. diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplLegacy.java b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplLegacy.java index 4de254cd506..ae8d72d10a9 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplLegacy.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplLegacy.java @@ -91,7 +91,7 @@ import androidx.media3.common.Timeline.Window; import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.VideoSize; -import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.Clock; import androidx.media3.common.util.ListenerSet; import androidx.media3.common.util.Log; @@ -1052,9 +1052,9 @@ public void clearVideoTextureView(@Nullable TextureView textureView) { } @Override - public List getCurrentCues() { + public CueGroup getCurrentCues() { Log.w(TAG, "Session doesn't support getting Cue"); - return ImmutableList.of(); + return CueGroup.EMPTY; } @Override @@ -2042,7 +2042,7 @@ private static ControllerInfo createControllerInfo( /* playlistMetadata= */ playlistMetadata, /* volume= */ 1.0f, /* audioAttributes= */ audioAttributes, - /* cues= */ Collections.emptyList(), + /* cueGroup= */ CueGroup.EMPTY, /* deviceInfo= */ deviceInfo, /* deviceVolume= */ deviceVolume, /* deviceMuted= */ deviceMuted, diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java index f7f83018d69..23aea7e72fb 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java @@ -62,7 +62,7 @@ import androidx.media3.common.Timeline; import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.VideoSize; -import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.Log; import androidx.media3.common.util.Util; import androidx.media3.session.MediaSession.ControllerCb; @@ -1016,7 +1016,7 @@ public void onVolumeChanged(@FloatRange(from = 0, to = 1) float volume) { } @Override - public void onCues(List cues) { + public void onCues(CueGroup cueGroup) { @Nullable MediaSessionImpl session = getSession(); if (session == null) { return; @@ -1026,7 +1026,7 @@ public void onCues(List cues) { if (player == null) { return; } - session.playerInfo = new PlayerInfo.Builder(session.playerInfo).setCues(cues).build(); + session.playerInfo = new PlayerInfo.Builder(session.playerInfo).setCues(cueGroup).build(); session.onPlayerInfoChangedHandler.sendPlayerInfoChangedMessage(/* excludeTimeline= */ true); } diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaUtils.java b/libraries/session/src/main/java/androidx/media3/session/MediaUtils.java index 36c03250994..16e984daeb9 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaUtils.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaUtils.java @@ -81,7 +81,6 @@ import androidx.media3.common.Timeline; import androidx.media3.common.Timeline.Period; import androidx.media3.common.Timeline.Window; -import androidx.media3.common.text.Cue; import androidx.media3.common.util.Log; import androidx.media3.common.util.Util; import androidx.media3.session.MediaLibraryService.LibraryParams; @@ -1267,21 +1266,6 @@ public static Commands intersect(Commands commands1, Commands commands2) { return intersectCommandsBuilder.build(); } - /** - * Filters out {@link Cue} objects containing {@link Bitmap}. It is used when transferring cues - * between processes to prevent transferring too large data. - */ - public static ImmutableList filterOutBitmapCues(List cues) { - ImmutableList.Builder builder = ImmutableList.builder(); - for (int i = 0; i < cues.size(); i++) { - if (cues.get(i).bitmap != null) { - continue; - } - builder.add(cues.get(i)); - } - return builder.build(); - } - private static byte[] convertToByteArray(Bitmap bitmap) throws IOException { try (ByteArrayOutputStream stream = new ByteArrayOutputStream()) { bitmap.compress(Bitmap.CompressFormat.PNG, /* ignored */ 0, stream); diff --git a/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java b/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java index ea9b7166fe4..87e3637fc41 100644 --- a/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java +++ b/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java @@ -43,15 +43,13 @@ import androidx.media3.common.Timeline.Window; import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.VideoSize; -import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.BundleableUtil; -import com.google.common.collect.ImmutableList; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import java.util.List; /** * Information about the player that {@link MediaSession} uses to send its state to {@link @@ -75,7 +73,7 @@ public static class Builder { private MediaMetadata playlistMetadata; private float volume; private AudioAttributes audioAttributes; - private ImmutableList cues; + private CueGroup cueGroup; private DeviceInfo deviceInfo; private int deviceVolume; private boolean deviceMuted; @@ -106,7 +104,7 @@ public Builder(PlayerInfo playerInfo) { playlistMetadata = playerInfo.playlistMetadata; volume = playerInfo.volume; audioAttributes = playerInfo.audioAttributes; - cues = ImmutableList.copyOf(playerInfo.cues); + cueGroup = playerInfo.cueGroup; deviceInfo = playerInfo.deviceInfo; deviceVolume = playerInfo.deviceVolume; deviceMuted = playerInfo.deviceMuted; @@ -194,8 +192,8 @@ public Builder setAudioAttributes(AudioAttributes audioAttributes) { return this; } - public Builder setCues(List cues) { - this.cues = ImmutableList.copyOf(cues); + public Builder setCues(CueGroup cueGroup) { + this.cueGroup = cueGroup; return this; } @@ -290,7 +288,7 @@ public PlayerInfo build() { playlistMetadata, volume, audioAttributes, - cues, + cueGroup, deviceInfo, deviceVolume, deviceMuted, @@ -335,7 +333,7 @@ public PlayerInfo build() { MediaMetadata.EMPTY, /* volume= */ 1f, AudioAttributes.DEFAULT, - /* cues = */ ImmutableList.of(), + /* cueGroup = */ CueGroup.EMPTY, DeviceInfo.UNKNOWN, /* deviceVolume= */ 0, /* deviceMuted= */ false, @@ -379,7 +377,7 @@ public PlayerInfo build() { public final AudioAttributes audioAttributes; - public final List cues; + public final CueGroup cueGroup; public final DeviceInfo deviceInfo; @@ -597,7 +595,7 @@ public PlayerInfo( MediaMetadata playlistMetadata, float volume, AudioAttributes audioAttributes, - List cues, + CueGroup cueGroup, DeviceInfo deviceInfo, int deviceVolume, boolean deviceMuted, @@ -626,7 +624,7 @@ public PlayerInfo( this.playlistMetadata = playlistMetadata; this.volume = volume; this.audioAttributes = audioAttributes; - this.cues = cues; + this.cueGroup = cueGroup; this.deviceInfo = deviceInfo; this.deviceVolume = deviceVolume; this.deviceMuted = deviceMuted; @@ -689,7 +687,7 @@ private boolean isPlaying( FIELD_OLD_POSITION_INFO, FIELD_NEW_POSITION_INFO, FIELD_DISCONTINUITY_REASON, - FIELD_CUES, + FIELD_CUE_GROUP, FIELD_MEDIA_METADATA, FIELD_SEEK_BACK_INCREMENT_MS, FIELD_SEEK_FORWARD_INCREMENT_MS, @@ -721,7 +719,7 @@ private boolean isPlaying( private static final int FIELD_OLD_POSITION_INFO = 21; private static final int FIELD_NEW_POSITION_INFO = 22; private static final int FIELD_DISCONTINUITY_REASON = 23; - private static final int FIELD_CUES = 24; + private static final int FIELD_CUE_GROUP = 24; private static final int FIELD_MEDIA_METADATA = 25; private static final int FIELD_SEEK_BACK_INCREMENT_MS = 26; private static final int FIELD_SEEK_FORWARD_INCREMENT_MS = 27; @@ -759,9 +757,7 @@ public Bundle toBundle( bundle.putFloat(keyForField(FIELD_VOLUME), volume); bundle.putBundle(keyForField(FIELD_AUDIO_ATTRIBUTES), audioAttributes.toBundle()); if (!excludeCues) { - bundle.putParcelableArrayList( - keyForField(FIELD_CUES), - BundleableUtil.toBundleArrayList(MediaUtils.filterOutBitmapCues(cues))); + bundle.putBundle(keyForField(FIELD_CUE_GROUP), cueGroup.toBundle()); } bundle.putBundle(keyForField(FIELD_DEVICE_INFO), deviceInfo.toBundle()); bundle.putInt(keyForField(FIELD_DEVICE_VOLUME), deviceVolume); @@ -851,11 +847,9 @@ private static PlayerInfo fromBundle(Bundle bundle) { AudioAttributes.CREATOR, bundle.getBundle(keyForField(FIELD_AUDIO_ATTRIBUTES)), /* defaultValue= */ AudioAttributes.DEFAULT); - List cues = - BundleableUtil.fromBundleNullableList( - Cue.CREATOR, - bundle.getParcelableArrayList(keyForField(FIELD_CUES)), - /* defaultValue= */ ImmutableList.of()); + CueGroup cueGroup = + BundleableUtil.fromNullableBundle( + CueGroup.CREATOR, bundle.getBundle(keyForField(FIELD_CUE_GROUP)), CueGroup.EMPTY); @Nullable Bundle deviceInfoBundle = bundle.getBundle(keyForField(FIELD_DEVICE_INFO)); DeviceInfo deviceInfo = BundleableUtil.fromNullableBundle( @@ -912,7 +906,7 @@ private static PlayerInfo fromBundle(Bundle bundle) { playlistMetadata, volume, audioAttributes, - cues, + cueGroup, deviceInfo, deviceVolume, deviceMuted, diff --git a/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java b/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java index 41716c5edd8..d1f25b41cd8 100644 --- a/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java +++ b/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java @@ -42,7 +42,7 @@ import androidx.media3.common.Timeline; import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.VideoSize; -import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.Log; import androidx.media3.common.util.Util; import com.google.common.collect.ImmutableList; @@ -636,7 +636,7 @@ public void setVolume(float volume) { } @Override - public List getCurrentCues() { + public CueGroup getCurrentCues() { verifyApplicationThread(); return super.getCurrentCues(); } diff --git a/libraries/test_session_common/src/main/aidl/androidx/media3/test/session/common/IRemoteMediaSession.aidl b/libraries/test_session_common/src/main/aidl/androidx/media3/test/session/common/IRemoteMediaSession.aidl index 34cadaa5742..30972501fa3 100644 --- a/libraries/test_session_common/src/main/aidl/androidx/media3/test/session/common/IRemoteMediaSession.aidl +++ b/libraries/test_session_common/src/main/aidl/androidx/media3/test/session/common/IRemoteMediaSession.aidl @@ -77,7 +77,7 @@ interface IRemoteMediaSession { void notifySeekBackIncrementChanged(String sessionId, long seekBackIncrementMs); void notifySeekForwardIncrementChanged(String sessionId, long seekForwardIncrementMs); void notifyDeviceVolumeChanged(String sessionId, int volume, boolean muted); - void notifyCuesChanged(String sessionId, in List cues); + void notifyCuesChanged(String sessionId, in Bundle cueGroup); void notifyDeviceInfoChanged(String sessionId, in Bundle deviceInfo); void notifyMediaMetadataChanged(String sessionId, in Bundle mediaMetadata); void notifyRenderedFirstFrame(String sessionId); diff --git a/libraries/test_session_common/src/main/java/androidx/media3/test/session/common/CommonConstants.java b/libraries/test_session_common/src/main/java/androidx/media3/test/session/common/CommonConstants.java index 251ad12de86..32607324715 100644 --- a/libraries/test_session_common/src/main/java/androidx/media3/test/session/common/CommonConstants.java +++ b/libraries/test_session_common/src/main/java/androidx/media3/test/session/common/CommonConstants.java @@ -99,7 +99,7 @@ public class CommonConstants { public static final String KEY_IS_PLAYING_AD = "isPlayingAd"; public static final String KEY_CURRENT_AD_GROUP_INDEX = "currentAdGroupIndex"; public static final String KEY_CURRENT_AD_INDEX_IN_AD_GROUP = "currentAdIndexInAdGroup"; - public static final String KEY_CURRENT_CUES = "currentCues"; + public static final String KEY_CURRENT_CUE_GROUP = "currentCueGroup"; public static final String KEY_MEDIA_METADATA = "mediaMetadata"; public static final String KEY_MAX_SEEK_TO_PREVIOUS_POSITION_MS = "maxSeekToPreviousPositionMs"; public static final String KEY_TRACK_SELECTION_PARAMETERS = "trackSelectionParameters"; diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerListenerTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerListenerTest.java index e67a984cbeb..2ca7d1dc144 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerListenerTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerListenerTest.java @@ -63,6 +63,7 @@ import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.VideoSize; import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.session.RemoteMediaSession.RemoteMockPlayer; import androidx.media3.test.session.common.HandlerThreadTestRule; import androidx.media3.test.session.common.MainLooperTestRule; @@ -1842,12 +1843,14 @@ public void getCurrentCues_afterConnected() throws Exception { List testCues = ImmutableList.of(testCue1, testCue2); Bundle playerConfig = - new RemoteMediaSession.MockPlayerConfigBuilder().setCurrentCues(testCues).build(); + new RemoteMediaSession.MockPlayerConfigBuilder() + .setCurrentCues(new CueGroup(testCues)) + .build(); remoteSession.setPlayer(playerConfig); MediaController controller = controllerTestRule.createController(remoteSession.getToken()); - assertThat(threadTestRule.getHandler().postAndSync(controller::getCurrentCues)) + assertThat(threadTestRule.getHandler().postAndSync(controller::getCurrentCues).cues) .isEqualTo(testCues); } @@ -1858,7 +1861,9 @@ public void onCues_emptyList_whenCommandUnavailable() throws Exception { List testCues = ImmutableList.of(testCue1, testCue2); Bundle playerConfig = - new RemoteMediaSession.MockPlayerConfigBuilder().setCurrentCues(testCues).build(); + new RemoteMediaSession.MockPlayerConfigBuilder() + .setCurrentCues(new CueGroup(testCues)) + .build(); remoteSession.setPlayer(playerConfig); MediaController controller = controllerTestRule.createController(remoteSession.getToken()); @@ -1873,7 +1878,7 @@ public void onCues(List cues) { cuesFromParam.clear(); cuesFromParam.addAll(cues); cuesFromGetter.clear(); - cuesFromGetter.addAll(controller.getCurrentCues()); + cuesFromGetter.addAll(controller.getCurrentCues().cues); latch.countDown(); } }; @@ -1902,14 +1907,16 @@ public void onCues_isCalledByPlayerChange() throws Exception { @Override public void onCues(List cues) { cuesFromParam.addAll(cues); - cuesFromGetter.addAll(controller.getCurrentCues()); + cuesFromGetter.addAll(controller.getCurrentCues().cues); latch.countDown(); } }; controller.addListener(listener); Bundle playerConfig = - new RemoteMediaSession.MockPlayerConfigBuilder().setCurrentCues(testCues).build(); + new RemoteMediaSession.MockPlayerConfigBuilder() + .setCurrentCues(new CueGroup(testCues)) + .build(); remoteSession.setPlayer(playerConfig); assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); @@ -1932,13 +1939,13 @@ public void onCues_isCalledByCuesChange() throws Exception { @Override public void onCues(List cues) { cuesFromParam.addAll(cues); - cuesFromGetter.addAll(controller.getCurrentCues()); + cuesFromGetter.addAll(controller.getCurrentCues().cues); latch.countDown(); } }; threadTestRule.getHandler().postAndSync(() -> controller.addListener(listener)); - remoteSession.getMockPlayer().notifyCuesChanged(testCues); + remoteSession.getMockPlayer().notifyCuesChanged(new CueGroup(testCues)); assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); assertThat(cuesFromParam).isEqualTo(testCues); diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaUtilsTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaUtilsTest.java index 5e113440b68..cbde70120cd 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaUtilsTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaUtilsTest.java @@ -20,7 +20,6 @@ import static com.google.common.truth.Truth.assertThat; import android.content.Context; -import android.graphics.Bitmap; import android.os.Bundle; import android.os.Parcel; import android.service.media.MediaBrowserService; @@ -31,7 +30,6 @@ import android.support.v4.media.session.MediaControllerCompat; import android.support.v4.media.session.MediaSessionCompat; import android.support.v4.media.session.PlaybackStateCompat; -import android.text.SpannedString; import android.text.TextUtils; import androidx.media.AudioAttributesCompat; import androidx.media3.common.AudioAttributes; @@ -44,12 +42,10 @@ import androidx.media3.common.Rating; import androidx.media3.common.StarRating; import androidx.media3.common.ThumbRating; -import androidx.media3.common.text.Cue; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SdkSuppress; import androidx.test.filters.SmallTest; -import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -424,17 +420,6 @@ public void convertToAudioAttributes() { assertThat(MediaUtils.convertToAudioAttributesCompat(aa)).isEqualTo(aaCompat); } - @Test - public void filterOutBitmapCues_dropsBitmap() { - Cue textCue = new Cue.Builder().setText(SpannedString.valueOf("text")).build(); - Cue bitmapCue = - new Cue.Builder().setBitmap(Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888)).build(); - List filteredCues = MediaUtils.filterOutBitmapCues(ImmutableList.of(textCue, bitmapCue)); - - assertThat(filteredCues).hasSize(1); - assertThat(filteredCues.get(0)).isEqualTo(textCue); - } - @Test public void convertToCurrentPosition_byDefault_returnsZero() { long currentPositionMs = diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java index c005fd5cd21..9d6eafcf830 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java @@ -24,7 +24,7 @@ import static androidx.media3.test.session.common.CommonConstants.KEY_CONTENT_POSITION; import static androidx.media3.test.session.common.CommonConstants.KEY_CURRENT_AD_GROUP_INDEX; import static androidx.media3.test.session.common.CommonConstants.KEY_CURRENT_AD_INDEX_IN_AD_GROUP; -import static androidx.media3.test.session.common.CommonConstants.KEY_CURRENT_CUES; +import static androidx.media3.test.session.common.CommonConstants.KEY_CURRENT_CUE_GROUP; import static androidx.media3.test.session.common.CommonConstants.KEY_CURRENT_LIVE_OFFSET; import static androidx.media3.test.session.common.CommonConstants.KEY_CURRENT_MEDIA_ITEM_INDEX; import static androidx.media3.test.session.common.CommonConstants.KEY_CURRENT_PERIOD_INDEX; @@ -78,7 +78,7 @@ import androidx.media3.common.Timeline; import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.VideoSize; -import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.Log; import androidx.media3.common.util.UnstableApi; @@ -306,10 +306,9 @@ private Player createMockPlayer(Bundle config) { AudioAttributes.CREATOR, config.getBundle(KEY_AUDIO_ATTRIBUTES), player.audioAttributes); - @Nullable List cuesBundleList = config.getParcelableArrayList(KEY_CURRENT_CUES); - if (cuesBundleList != null) { - player.cues = BundleableUtil.fromBundleList(Cue.CREATOR, cuesBundleList); - } + player.cueGroup = + BundleableUtil.fromNullableBundle( + CueGroup.CREATOR, config.getBundle(KEY_CURRENT_CUE_GROUP), CueGroup.EMPTY); player.deviceInfo = BundleableUtil.fromNullableBundle( DeviceInfo.CREATOR, config.getBundle(KEY_DEVICE_INFO), player.deviceInfo); @@ -886,14 +885,13 @@ public void notifyDeviceVolumeChanged(String sessionId, int volume, boolean mute } @Override - public void notifyCuesChanged(String sessionId, List cueBundleList) - throws RemoteException { - List cues = BundleableUtil.fromBundleList(Cue.CREATOR, cueBundleList); + public void notifyCuesChanged(String sessionId, Bundle cueGroupBundle) throws RemoteException { + CueGroup cueGroup = CueGroup.CREATOR.fromBundle(cueGroupBundle); runOnHandler( () -> { MediaSession session = sessionMap.get(sessionId); MockPlayer player = (MockPlayer) session.getPlayer(); - player.cues = cues; + player.cueGroup = cueGroup; player.notifyCuesChanged(); }); } diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/MockPlayer.java b/libraries/test_session_current/src/main/java/androidx/media3/session/MockPlayer.java index e3635e7e2b4..5cc4bd8cc16 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/MockPlayer.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/MockPlayer.java @@ -38,7 +38,7 @@ import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.Tracks; import androidx.media3.common.VideoSize; -import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.ConditionVariable; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; @@ -234,7 +234,7 @@ public class MockPlayer implements Player { @Nullable public SurfaceView surfaceView; @Nullable public TextureView textureView; public float volume; - public List cues; + public CueGroup cueGroup; public DeviceInfo deviceInfo; public int deviceVolume; public boolean deviceMuted; @@ -277,7 +277,7 @@ private MockPlayer(Builder builder) { repeatMode = Player.REPEAT_MODE_OFF; videoSize = VideoSize.UNKNOWN; volume = 1.0f; - cues = ImmutableList.of(); + cueGroup = CueGroup.EMPTY; deviceInfo = DeviceInfo.UNKNOWN; seekPositionMs = C.TIME_UNSET; seekMediaItemIndex = C.INDEX_UNSET; @@ -621,8 +621,8 @@ public void setVolume(float volume) { } @Override - public List getCurrentCues() { - return cues; + public CueGroup getCurrentCues() { + return cueGroup; } @Override @@ -1134,9 +1134,11 @@ public void notifyDeviceVolumeChanged() { } } + @SuppressWarnings("deprecation") // Implementing and calling deprecated listener method. public void notifyCuesChanged() { for (Listener listener : listeners) { - listener.onCues(cues); + listener.onCues(cueGroup.cues); + listener.onCues(cueGroup); } } diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaSession.java b/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaSession.java index 4d6e3ace775..14d493be9f4 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaSession.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaSession.java @@ -24,7 +24,7 @@ import static androidx.media3.test.session.common.CommonConstants.KEY_CONTENT_POSITION; import static androidx.media3.test.session.common.CommonConstants.KEY_CURRENT_AD_GROUP_INDEX; import static androidx.media3.test.session.common.CommonConstants.KEY_CURRENT_AD_INDEX_IN_AD_GROUP; -import static androidx.media3.test.session.common.CommonConstants.KEY_CURRENT_CUES; +import static androidx.media3.test.session.common.CommonConstants.KEY_CURRENT_CUE_GROUP; import static androidx.media3.test.session.common.CommonConstants.KEY_CURRENT_LIVE_OFFSET; import static androidx.media3.test.session.common.CommonConstants.KEY_CURRENT_MEDIA_ITEM_INDEX; import static androidx.media3.test.session.common.CommonConstants.KEY_CURRENT_PERIOD_INDEX; @@ -78,7 +78,7 @@ import androidx.media3.common.Timeline; import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.VideoSize; -import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.Log; import androidx.media3.common.util.UnstableApi; @@ -389,8 +389,8 @@ public void notifyDeviceVolumeChanged(int volume, boolean muted) throws RemoteEx binder.notifyDeviceVolumeChanged(sessionId, volume, muted); } - public void notifyCuesChanged(List cues) throws RemoteException { - binder.notifyCuesChanged(sessionId, BundleableUtil.toBundleList(cues)); + public void notifyCuesChanged(CueGroup cueGroup) throws RemoteException { + binder.notifyCuesChanged(sessionId, cueGroup.toBundle()); } public void notifyDeviceInfoChanged(DeviceInfo deviceInfo) throws RemoteException { @@ -595,8 +595,8 @@ public MockPlayerConfigBuilder setVolume(float volume) { return this; } - public MockPlayerConfigBuilder setCurrentCues(List cues) { - bundle.putParcelableArrayList(KEY_CURRENT_CUES, BundleableUtil.toBundleArrayList(cues)); + public MockPlayerConfigBuilder setCurrentCues(CueGroup cueGroup) { + bundle.putBundle(KEY_CURRENT_CUE_GROUP, cueGroup.toBundle()); return this; } diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/StubPlayer.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/StubPlayer.java index 849c3b417e9..5787019136c 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/StubPlayer.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/StubPlayer.java @@ -33,7 +33,7 @@ import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.Tracks; import androidx.media3.common.VideoSize; -import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.UnstableApi; import java.util.List; @@ -346,7 +346,7 @@ public VideoSize getVideoSize() { } @Override - public List getCurrentCues() { + public CueGroup getCurrentCues() { throw new UnsupportedOperationException(); } diff --git a/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java b/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java index b02e4b21cc9..662d28e974f 100644 --- a/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java +++ b/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java @@ -553,7 +553,7 @@ public void setPlayer(@Nullable Player player) { updateAspectRatio(); } if (subtitleView != null && player.isCommandAvailable(COMMAND_GET_TEXT)) { - subtitleView.setCues(player.getCurrentCues()); + subtitleView.setCues(player.getCurrentCues().cues); } player.addListener(componentListener); maybeShowController(false); From d8caa2b4c1e027c936829f761702ee10876ce030 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Tue, 17 May 2022 15:59:33 +0100 Subject: [PATCH 088/182] Fix initialization of media pipe processors with assets PiperOrigin-RevId: 449221156 --- .../media3/demo/transformer/MediaPipeFrameProcessor.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java b/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java index 49651c9c0d4..fcb5641d64f 100644 --- a/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java +++ b/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java @@ -29,6 +29,7 @@ import androidx.media3.transformer.FrameProcessingException; import androidx.media3.transformer.GlFrameProcessor; import com.google.mediapipe.components.FrameProcessor; +import com.google.mediapipe.framework.AndroidAssetUtil; import com.google.mediapipe.framework.AppTextureFrame; import com.google.mediapipe.framework.TextureFrame; import com.google.mediapipe.glutil.EglManager; @@ -89,6 +90,8 @@ public void initialize(Context context, int inputTexId, int inputWidth, int inpu this.inputHeight = inputHeight; glProgram = new GlProgram(context, COPY_VERTEX_SHADER_NAME, COPY_FRAGMENT_SHADER_NAME); + AndroidAssetUtil.initializeNativeAssetManager(context); + EglManager eglManager = new EglManager(EGL14.eglGetCurrentContext()); frameProcessor = new FrameProcessor( From a9bdd6e2e91d0e549bcaab4e0bcf0b7af2127fea Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Tue, 17 May 2022 16:31:18 +0100 Subject: [PATCH 089/182] Attempt to load OpenCV when loading MediaPipe PiperOrigin-RevId: 449227706 --- .../demo/transformer/MediaPipeFrameProcessor.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java b/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java index fcb5641d64f..95b421eedd5 100644 --- a/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java +++ b/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeFrameProcessor.java @@ -50,6 +50,16 @@ protected void loadLibrary(String name) { } }; + static { + // Not all build configurations require OpenCV to be loaded separately, so attempt to load the + // library but ignore the error if it's not present. + try { + System.loadLibrary("opencv_java3"); + } catch (UnsatisfiedLinkError e) { + // Do nothing. + } + } + private static final String COPY_VERTEX_SHADER_NAME = "vertex_shader_copy_es2.glsl"; private static final String COPY_FRAGMENT_SHADER_NAME = "shaders/fragment_shader_copy_es2.glsl"; From dcb58c767c736732c73dcfbcef8bf8abdd7a4b92 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Tue, 17 May 2022 17:21:39 +0100 Subject: [PATCH 090/182] Tidy releasing `FrameProcessorChain` PiperOrigin-RevId: 449238525 --- .../media3/transformer/FrameProcessorChain.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java index d2285a61281..82832fb7dd6 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java @@ -50,7 +50,6 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; -import org.checkerframework.checker.nullness.qual.RequiresNonNull; /** * {@code FrameProcessorChain} applies changes to individual video frames. @@ -439,12 +438,6 @@ public void release() { } futures.add( singleThreadExecutorService.submit(this::releaseFrameProcessorsAndDestroyGlContext)); - if (inputSurfaceTexture != null) { - inputSurfaceTexture.release(); - } - if (inputSurface != null) { - inputSurface.release(); - } singleThreadExecutorService.shutdown(); try { if (!singleThreadExecutorService.awaitTermination(RELEASE_WAIT_TIME_MS, MILLISECONDS)) { @@ -452,7 +445,10 @@ public void release() { } } catch (InterruptedException e) { Log.d(TAG, "FrameProcessorChain release was interrupted", e); + Thread.currentThread().interrupt(); } + inputSurfaceTexture.release(); + inputSurface.release(); } /** @@ -491,7 +487,6 @@ private void createOpenGlSurfaces(Surface outputSurface, @Nullable SurfaceView d *

    This method must be called on the {@linkplain #THREAD_NAME background thread}. */ @WorkerThread - @RequiresNonNull("inputSurfaceTexture") private void processFrame() { if (stopProcessing.get()) { return; From 1a171a004a5d3db7936b6e2dff34650baf930d9a Mon Sep 17 00:00:00 2001 From: tonihei Date: Wed, 18 May 2022 13:01:55 +0100 Subject: [PATCH 091/182] Add missing equals to MergingMediaPeriod.ForwardingTrackSelection This causes a bug where the forwarded selections are no longer assumed equal and the child MediaPeriods will think they need to reset streams even though the selection stayed the same. Issue: Issue: google/ExoPlayer#10248 PiperOrigin-RevId: 449454038 --- RELEASENOTES.md | 4 ++ .../exoplayer/source/MergingMediaPeriod.java | 20 ++++++ .../source/MergingMediaPeriodTest.java | 61 ++++++++++++++++--- 3 files changed, 78 insertions(+), 7 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 883e3271ad5..f8e31e09f1b 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -12,6 +12,10 @@ by the user of the device. Apps can opt-out of contributing to platform diagnostics for ExoPlayer with `ExoPlayer.Builder.setUsePlatformDiagnostics(false)`. + * Fix bug that tracks are reset too often when using `MergingMediaSource`, + for example when side-loading subtitles and changing the selected + subtitle mid-playback + ([#10248](https://github.com/google/ExoPlayer/issues/10248)). * Track selection: * Flatten `TrackSelectionOverrides` class into `TrackSelectionParameters`, and promote `TrackSelectionOverride` to a top level class. diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MergingMediaPeriod.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MergingMediaPeriod.java index 925998ea1c9..c71b5cffd05 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MergingMediaPeriod.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MergingMediaPeriod.java @@ -608,5 +608,25 @@ public boolean blacklist(int index, long exclusionDurationMs) { public boolean isBlacklisted(int index, long nowMs) { return trackSelection.isBlacklisted(index, nowMs); } + + @Override + public boolean equals(@Nullable Object o) { + if (this == o) { + return true; + } + if (!(o instanceof ForwardingTrackSelection)) { + return false; + } + ForwardingTrackSelection that = (ForwardingTrackSelection) o; + return trackSelection.equals(that.trackSelection) && trackGroup.equals(that.trackGroup); + } + + @Override + public int hashCode() { + int result = 17; + result = 31 * result + trackGroup.hashCode(); + result = 31 * result + trackSelection.hashCode(); + return result; + } } } diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/MergingMediaPeriodTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/MergingMediaPeriodTest.java index 02b35f9295e..740e468c239 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/MergingMediaPeriodTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/MergingMediaPeriodTest.java @@ -35,6 +35,7 @@ import androidx.media3.test.utils.FakeMediaPeriod; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.common.collect.ImmutableList; +import java.util.Arrays; import java.util.concurrent.CountDownLatch; import org.checkerframework.checker.nullness.compatqual.NullableType; import org.junit.Test; @@ -139,21 +140,64 @@ public void selectTracks_createsSampleStreamsFromChildPeriods() throws Exception streams[0].readData(formatHolder, inputBuffer, FLAG_REQUIRE_FORMAT); streams[1].readData(formatHolder, inputBuffer, FLAG_REQUIRE_FORMAT); - FakeMediaPeriodWithSelectTracksPosition childMediaPeriod1 = - (FakeMediaPeriodWithSelectTracksPosition) mergingMediaPeriod.getChildPeriod(0); + FakeMediaPeriodWithSelectionParameters childMediaPeriod1 = + (FakeMediaPeriodWithSelectionParameters) mergingMediaPeriod.getChildPeriod(0); assertThat(childMediaPeriod1.selectTracksPositionUs).isEqualTo(0); assertThat(streams[0].readData(formatHolder, inputBuffer, /* readFlags= */ 0)) .isEqualTo(C.RESULT_BUFFER_READ); assertThat(inputBuffer.timeUs).isEqualTo(123_000L); - FakeMediaPeriodWithSelectTracksPosition childMediaPeriod2 = - (FakeMediaPeriodWithSelectTracksPosition) mergingMediaPeriod.getChildPeriod(1); + FakeMediaPeriodWithSelectionParameters childMediaPeriod2 = + (FakeMediaPeriodWithSelectionParameters) mergingMediaPeriod.getChildPeriod(1); assertThat(childMediaPeriod2.selectTracksPositionUs).isEqualTo(3000L); assertThat(streams[1].readData(formatHolder, inputBuffer, /* readFlags= */ 0)) .isEqualTo(C.RESULT_BUFFER_READ); assertThat(inputBuffer.timeUs).isEqualTo(456_000 - 3000); } + @Test + public void selectTracks_withSameArguments_forwardsEqualSelectionsToChildSources() + throws Exception { + MergingMediaPeriod mergingMediaPeriod = + prepareMergingPeriod( + new MergingPeriodDefinition( + /* timeOffsetUs= */ 0, /* singleSampleTimeUs= */ 0, childFormat11), + new MergingPeriodDefinition( + /* timeOffsetUs= */ 0, /* singleSampleTimeUs= */ 0, childFormat22)); + FakeMediaPeriodWithSelectionParameters childMediaPeriod1 = + (FakeMediaPeriodWithSelectionParameters) mergingMediaPeriod.getChildPeriod(0); + FakeMediaPeriodWithSelectionParameters childMediaPeriod2 = + (FakeMediaPeriodWithSelectionParameters) mergingMediaPeriod.getChildPeriod(1); + + TrackGroupArray mergedTrackGroups = mergingMediaPeriod.getTrackGroups(); + ExoTrackSelection[] selectionArray = + new ExoTrackSelection[] { + new FixedTrackSelection(mergedTrackGroups.get(0), /* track= */ 0), + new FixedTrackSelection(mergedTrackGroups.get(1), /* track= */ 0) + }; + + mergingMediaPeriod.selectTracks( + selectionArray, + /* mayRetainStreamFlags= */ new boolean[2], + /* streams= */ new SampleStream[2], + /* streamResetFlags= */ new boolean[2], + /* positionUs= */ 0); + ExoTrackSelection firstSelectionChild1 = childMediaPeriod1.selectTracksSelections[0]; + ExoTrackSelection firstSelectionChild2 = childMediaPeriod2.selectTracksSelections[1]; + + mergingMediaPeriod.selectTracks( + selectionArray, + /* mayRetainStreamFlags= */ new boolean[2], + /* streams= */ new SampleStream[2], + /* streamResetFlags= */ new boolean[2], + /* positionUs= */ 0); + ExoTrackSelection secondSelectionChild1 = childMediaPeriod1.selectTracksSelections[0]; + ExoTrackSelection secondSelectionChild2 = childMediaPeriod2.selectTracksSelections[1]; + + assertThat(firstSelectionChild1).isEqualTo(secondSelectionChild1); + assertThat(firstSelectionChild2).isEqualTo(secondSelectionChild2); + } + private MergingMediaPeriod prepareMergingPeriod(MergingPeriodDefinition... definitions) throws Exception { MediaPeriod[] mediaPeriods = new MediaPeriod[definitions.length]; @@ -166,7 +210,7 @@ private MergingMediaPeriod prepareMergingPeriod(MergingPeriodDefinition... defin trackGroups[j] = new TrackGroup(definition.formats[j]); } mediaPeriods[i] = - new FakeMediaPeriodWithSelectTracksPosition( + new FakeMediaPeriodWithSelectionParameters( new TrackGroupArray(trackGroups), new EventDispatcher() .withParameters( @@ -201,11 +245,12 @@ public void onContinueLoadingRequested(MediaPeriod source) { return mergingMediaPeriod; } - private static final class FakeMediaPeriodWithSelectTracksPosition extends FakeMediaPeriod { + private static final class FakeMediaPeriodWithSelectionParameters extends FakeMediaPeriod { + public @NullableType ExoTrackSelection[] selectTracksSelections; public long selectTracksPositionUs; - public FakeMediaPeriodWithSelectTracksPosition( + public FakeMediaPeriodWithSelectionParameters( TrackGroupArray trackGroupArray, EventDispatcher mediaSourceEventDispatcher, TrackDataFactory trackDataFactory) { @@ -217,6 +262,7 @@ public FakeMediaPeriodWithSelectTracksPosition( DrmSessionManager.DRM_UNSUPPORTED, new DrmSessionEventListener.EventDispatcher(), /* deferOnPrepared= */ false); + selectTracksSelections = new ExoTrackSelection[trackGroupArray.length]; selectTracksPositionUs = C.TIME_UNSET; } @@ -227,6 +273,7 @@ public long selectTracks( @NullableType SampleStream[] streams, boolean[] streamResetFlags, long positionUs) { + selectTracksSelections = Arrays.copyOf(selections, selections.length); selectTracksPositionUs = positionUs; return super.selectTracks( selections, mayRetainStreamFlags, streams, streamResetFlags, positionUs); From 7c235d2b84698975e8aac45041fd4646e4cbd3c7 Mon Sep 17 00:00:00 2001 From: ibaker Date: Wed, 18 May 2022 15:12:53 +0100 Subject: [PATCH 092/182] Remove all null-tolerant methods from BundleableUtil. In most cases it's clearer to in-line these null-checks with ternary operators. PiperOrigin-RevId: 449474621 --- .../java/androidx/media3/common/Format.java | 16 +-- .../java/androidx/media3/common/Player.java | 9 +- .../androidx/media3/common/TrackGroup.java | 9 +- .../common/TrackSelectionParameters.java | 12 ++- .../java/androidx/media3/common/Tracks.java | 18 ++-- .../androidx/media3/common/text/CueGroup.java | 10 +- .../media3/common/util/BundleableUtil.java | 69 +++---------- .../exoplayer/ExoPlaybackException.java | 10 +- .../exoplayer/source/TrackGroupArray.java | 15 +-- .../trackselection/DefaultTrackSelector.java | 25 +++-- .../media3/session/CommandButton.java | 12 ++- .../media3/session/ConnectionState.java | 37 +++---- .../media3/session/LibraryResult.java | 16 +-- .../media3/session/MediaBrowserImplBase.java | 11 +-- .../media3/session/MediaControllerStub.java | 8 +- .../media3/session/MediaSessionStub.java | 14 +-- .../session/MediaStyleNotificationHelper.java | 7 +- .../androidx/media3/session/PlayerInfo.java | 98 +++++++++---------- .../media3/session/SessionPositionInfo.java | 9 +- .../MediaControllerProviderService.java | 29 +++--- .../session/MediaSessionProviderService.java | 77 ++++++++------- .../session/MockMediaLibraryService.java | 9 +- .../media3/session/RemoteMediaBrowser.java | 11 +-- .../media3/session/RemoteMediaController.java | 8 +- .../media3/session/RemoteMediaSession.java | 7 +- 25 files changed, 270 insertions(+), 276 deletions(-) diff --git a/libraries/common/src/main/java/androidx/media3/common/Format.java b/libraries/common/src/main/java/androidx/media3/common/Format.java index bdb48ab6391..b24b0430092 100644 --- a/libraries/common/src/main/java/androidx/media3/common/Format.java +++ b/libraries/common/src/main/java/androidx/media3/common/Format.java @@ -1548,7 +1548,9 @@ public Bundle toBundle() { bundle.putFloat(keyForField(FIELD_PIXEL_WIDTH_HEIGHT_RATIO), pixelWidthHeightRatio); bundle.putByteArray(keyForField(FIELD_PROJECTION_DATA), projectionData); bundle.putInt(keyForField(FIELD_STEREO_MODE), stereoMode); - bundle.putBundle(keyForField(FIELD_COLOR_INFO), BundleableUtil.toNullableBundle(colorInfo)); + if (colorInfo != null) { + bundle.putBundle(keyForField(FIELD_COLOR_INFO), colorInfo.toBundle()); + } // Audio specific. bundle.putInt(keyForField(FIELD_CHANNEL_COUNT), channelCount); bundle.putInt(keyForField(FIELD_SAMPLE_RATE), sampleRate); @@ -1615,11 +1617,13 @@ private static Format fromBundle(Bundle bundle) { bundle.getFloat( keyForField(FIELD_PIXEL_WIDTH_HEIGHT_RATIO), DEFAULT.pixelWidthHeightRatio)) .setProjectionData(bundle.getByteArray(keyForField(FIELD_PROJECTION_DATA))) - .setStereoMode(bundle.getInt(keyForField(FIELD_STEREO_MODE), DEFAULT.stereoMode)) - .setColorInfo( - BundleableUtil.fromNullableBundle( - ColorInfo.CREATOR, bundle.getBundle(keyForField(FIELD_COLOR_INFO)))) - // Audio specific. + .setStereoMode(bundle.getInt(keyForField(FIELD_STEREO_MODE), DEFAULT.stereoMode)); + Bundle colorInfoBundle = bundle.getBundle(keyForField(FIELD_COLOR_INFO)); + if (colorInfoBundle != null) { + builder.setColorInfo(ColorInfo.CREATOR.fromBundle(colorInfoBundle)); + } + // Audio specific. + builder .setChannelCount(bundle.getInt(keyForField(FIELD_CHANNEL_COUNT), DEFAULT.channelCount)) .setSampleRate(bundle.getInt(keyForField(FIELD_SAMPLE_RATE), DEFAULT.sampleRate)) .setPcmEncoding(bundle.getInt(keyForField(FIELD_PCM_ENCODING), DEFAULT.pcmEncoding)) diff --git a/libraries/common/src/main/java/androidx/media3/common/Player.java b/libraries/common/src/main/java/androidx/media3/common/Player.java index eb67acb05ec..4a414f6b373 100644 --- a/libraries/common/src/main/java/androidx/media3/common/Player.java +++ b/libraries/common/src/main/java/androidx/media3/common/Player.java @@ -33,7 +33,6 @@ import androidx.annotation.Nullable; import androidx.media3.common.text.Cue; import androidx.media3.common.text.CueGroup; -import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import com.google.common.base.Objects; @@ -295,7 +294,9 @@ public int hashCode() { public Bundle toBundle() { Bundle bundle = new Bundle(); bundle.putInt(keyForField(FIELD_MEDIA_ITEM_INDEX), mediaItemIndex); - bundle.putBundle(keyForField(FIELD_MEDIA_ITEM), BundleableUtil.toNullableBundle(mediaItem)); + if (mediaItem != null) { + bundle.putBundle(keyForField(FIELD_MEDIA_ITEM), mediaItem.toBundle()); + } bundle.putInt(keyForField(FIELD_PERIOD_INDEX), periodIndex); bundle.putLong(keyForField(FIELD_POSITION_MS), positionMs); bundle.putLong(keyForField(FIELD_CONTENT_POSITION_MS), contentPositionMs); @@ -310,10 +311,10 @@ public Bundle toBundle() { private static PositionInfo fromBundle(Bundle bundle) { int mediaItemIndex = bundle.getInt(keyForField(FIELD_MEDIA_ITEM_INDEX), /* defaultValue= */ C.INDEX_UNSET); + @Nullable Bundle mediaItemBundle = bundle.getBundle(keyForField(FIELD_MEDIA_ITEM)); @Nullable MediaItem mediaItem = - BundleableUtil.fromNullableBundle( - MediaItem.CREATOR, bundle.getBundle(keyForField(FIELD_MEDIA_ITEM))); + mediaItemBundle == null ? null : MediaItem.CREATOR.fromBundle(mediaItemBundle); int periodIndex = bundle.getInt(keyForField(FIELD_PERIOD_INDEX), /* defaultValue= */ C.INDEX_UNSET); long positionMs = diff --git a/libraries/common/src/main/java/androidx/media3/common/TrackGroup.java b/libraries/common/src/main/java/androidx/media3/common/TrackGroup.java index 139a0ab0bb2..6cb679368a4 100644 --- a/libraries/common/src/main/java/androidx/media3/common/TrackGroup.java +++ b/libraries/common/src/main/java/androidx/media3/common/TrackGroup.java @@ -189,11 +189,12 @@ public Bundle toBundle() { @UnstableApi public static final Creator CREATOR = bundle -> { + @Nullable + List formatBundles = bundle.getParcelableArrayList(keyForField(FIELD_FORMATS)); List formats = - BundleableUtil.fromBundleNullableList( - Format.CREATOR, - bundle.getParcelableArrayList(keyForField(FIELD_FORMATS)), - ImmutableList.of()); + formatBundles == null + ? ImmutableList.of() + : BundleableUtil.fromBundleList(Format.CREATOR, formatBundles); String id = bundle.getString(keyForField(FIELD_ID), /* defaultValue= */ ""); return new TrackGroup(id, formats.toArray(new Format[0])); }; diff --git a/libraries/common/src/main/java/androidx/media3/common/TrackSelectionParameters.java b/libraries/common/src/main/java/androidx/media3/common/TrackSelectionParameters.java index 3d7696e51fb..e7c4cbbc503 100644 --- a/libraries/common/src/main/java/androidx/media3/common/TrackSelectionParameters.java +++ b/libraries/common/src/main/java/androidx/media3/common/TrackSelectionParameters.java @@ -16,7 +16,6 @@ package androidx.media3.common; import static androidx.media3.common.util.Assertions.checkNotNull; -import static androidx.media3.common.util.BundleableUtil.fromBundleNullableList; import static androidx.media3.common.util.BundleableUtil.toBundleArrayList; import static com.google.common.base.MoreObjects.firstNonNull; @@ -28,6 +27,7 @@ import androidx.annotation.IntDef; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; +import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import com.google.common.collect.ImmutableList; @@ -247,11 +247,13 @@ protected Builder(Bundle bundle) { bundle.getBoolean( keyForField(FIELD_FORCE_HIGHEST_SUPPORTED_BITRATE), DEFAULT_WITHOUT_CONTEXT.forceHighestSupportedBitrate); + @Nullable + List overrideBundleList = + bundle.getParcelableArrayList(keyForField(FIELD_SELECTION_OVERRIDES)); List overrideList = - fromBundleNullableList( - TrackSelectionOverride.CREATOR, - bundle.getParcelableArrayList(keyForField(FIELD_SELECTION_OVERRIDES)), - ImmutableList.of()); + overrideBundleList == null + ? ImmutableList.of() + : BundleableUtil.fromBundleList(TrackSelectionOverride.CREATOR, overrideBundleList); overrides = new HashMap<>(); for (int i = 0; i < overrideList.size(); i++) { TrackSelectionOverride override = overrideList.get(i); diff --git a/libraries/common/src/main/java/androidx/media3/common/Tracks.java b/libraries/common/src/main/java/androidx/media3/common/Tracks.java index dcbdfd536e6..6da0a9204c3 100644 --- a/libraries/common/src/main/java/androidx/media3/common/Tracks.java +++ b/libraries/common/src/main/java/androidx/media3/common/Tracks.java @@ -17,14 +17,13 @@ import static androidx.media3.common.util.Assertions.checkArgument; import static androidx.media3.common.util.Assertions.checkNotNull; -import static androidx.media3.common.util.BundleableUtil.fromBundleNullableList; -import static androidx.media3.common.util.BundleableUtil.fromNullableBundle; import static androidx.media3.common.util.BundleableUtil.toBundleArrayList; import static java.lang.annotation.ElementType.TYPE_USE; import android.os.Bundle; import androidx.annotation.IntDef; import androidx.annotation.Nullable; +import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.UnstableApi; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableList; @@ -252,10 +251,10 @@ public Bundle toBundle() { @UnstableApi public static final Creator CREATOR = bundle -> { + // Can't create a Tracks.Group without a TrackGroup TrackGroup trackGroup = - fromNullableBundle( - TrackGroup.CREATOR, bundle.getBundle(keyForField(FIELD_TRACK_GROUP))); - checkNotNull(trackGroup); // Can't create a trackGroup info without a trackGroup + TrackGroup.CREATOR.fromBundle( + checkNotNull(bundle.getBundle(keyForField(FIELD_TRACK_GROUP)))); final @C.FormatSupport int[] trackSupport = MoreObjects.firstNonNull( bundle.getIntArray(keyForField(FIELD_TRACK_SUPPORT)), new int[trackGroup.length]); @@ -408,11 +407,12 @@ public Bundle toBundle() { @UnstableApi public static final Creator CREATOR = bundle -> { + @Nullable + List groupBundles = bundle.getParcelableArrayList(keyForField(FIELD_TRACK_GROUPS)); List groups = - fromBundleNullableList( - Group.CREATOR, - bundle.getParcelableArrayList(keyForField(FIELD_TRACK_GROUPS)), - /* defaultValue= */ ImmutableList.of()); + groupBundles == null + ? ImmutableList.of() + : BundleableUtil.fromBundleList(Group.CREATOR, groupBundles); return new Tracks(groups); }; diff --git a/libraries/common/src/main/java/androidx/media3/common/text/CueGroup.java b/libraries/common/src/main/java/androidx/media3/common/text/CueGroup.java index b982b522744..9a26d0ec266 100644 --- a/libraries/common/src/main/java/androidx/media3/common/text/CueGroup.java +++ b/libraries/common/src/main/java/androidx/media3/common/text/CueGroup.java @@ -20,6 +20,7 @@ import android.graphics.Bitmap; import android.os.Bundle; import androidx.annotation.IntDef; +import androidx.annotation.Nullable; import androidx.media3.common.Bundleable; import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.UnstableApi; @@ -28,6 +29,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import java.util.ArrayList; import java.util.List; /** Class to represent the state of active {@link Cue Cues} at a particular time. */ @@ -74,11 +76,11 @@ public Bundle toBundle() { @UnstableApi public static final Creator CREATOR = CueGroup::fromBundle; private static final CueGroup fromBundle(Bundle bundle) { + @Nullable ArrayList cueBundles = bundle.getParcelableArrayList(keyForField(FIELD_CUES)); List cues = - BundleableUtil.fromBundleNullableList( - Cue.CREATOR, - bundle.getParcelableArrayList(keyForField(FIELD_CUES)), - /* defaultValue= */ ImmutableList.of()); + cueBundles == null + ? ImmutableList.of() + : BundleableUtil.fromBundleList(Cue.CREATOR, cueBundles); return new CueGroup(cues); } diff --git a/libraries/common/src/main/java/androidx/media3/common/util/BundleableUtil.java b/libraries/common/src/main/java/androidx/media3/common/util/BundleableUtil.java index fc6bc7556eb..e3451b78dff 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/BundleableUtil.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/BundleableUtil.java @@ -31,34 +31,6 @@ @UnstableApi public final class BundleableUtil { - /** - * Converts a {@link Bundleable} to a {@link Bundle}. It's a convenience wrapper of {@link - * Bundleable#toBundle} that can take nullable values. - */ - @Nullable - public static Bundle toNullableBundle(@Nullable Bundleable bundleable) { - return bundleable == null ? null : bundleable.toBundle(); - } - - /** - * Converts a {@link Bundle} to a {@link Bundleable}. It's a convenience wrapper of {@link - * Bundleable.Creator#fromBundle} that can take nullable values. - */ - @Nullable - public static T fromNullableBundle( - Bundleable.Creator creator, @Nullable Bundle bundle) { - return bundle == null ? null : creator.fromBundle(bundle); - } - - /** - * Converts a {@link Bundle} to a {@link Bundleable}. It's a convenience wrapper of {@link - * Bundleable.Creator#fromBundle} that provides default value to ensure non-null. - */ - public static T fromNullableBundle( - Bundleable.Creator creator, @Nullable Bundle bundle, T defaultValue) { - return bundle == null ? defaultValue : creator.fromBundle(bundle); - } - /** Converts a list of {@link Bundleable} to a list {@link Bundle}. */ public static ImmutableList toBundleList(List bundleableList) { ImmutableList.Builder builder = ImmutableList.builder(); @@ -81,34 +53,6 @@ public static ImmutableList fromBundleList( return builder.build(); } - /** - * Converts a list of {@link Bundle} to a list of {@link Bundleable}. Returns {@code defaultValue} - * if {@code bundleList} is null. - */ - public static List fromBundleNullableList( - Bundleable.Creator creator, @Nullable List bundleList, List defaultValue) { - return (bundleList == null) ? defaultValue : fromBundleList(creator, bundleList); - } - - /** - * Converts a {@link SparseArray} of {@link Bundle} to a {@link SparseArray} of {@link - * Bundleable}. Returns {@code defaultValue} if {@code bundleSparseArray} is null. - */ - public static SparseArray fromBundleNullableSparseArray( - Bundleable.Creator creator, - @Nullable SparseArray bundleSparseArray, - SparseArray defaultValue) { - if (bundleSparseArray == null) { - return defaultValue; - } - // Can't use ImmutableList as it doesn't support null elements. - SparseArray result = new SparseArray<>(bundleSparseArray.size()); - for (int i = 0; i < bundleSparseArray.size(); i++) { - result.put(bundleSparseArray.keyAt(i), creator.fromBundle(bundleSparseArray.valueAt(i))); - } - return result; - } - /** * Converts a collection of {@link Bundleable} to an {@link ArrayList} of {@link Bundle} so that * the returned list can be put to {@link Bundle} using {@link Bundle#putParcelableArrayList} @@ -123,6 +67,19 @@ public static ArrayList toBundleArrayList( return arrayList; } + /** + * Converts a {@link SparseArray} of {@link Bundle} to a {@link SparseArray} of {@link + * Bundleable}. + */ + public static SparseArray fromBundleSparseArray( + Bundleable.Creator creator, SparseArray bundleSparseArray) { + SparseArray result = new SparseArray<>(bundleSparseArray.size()); + for (int i = 0; i < bundleSparseArray.size(); i++) { + result.put(bundleSparseArray.keyAt(i), creator.fromBundle(bundleSparseArray.valueAt(i))); + } + return result; + } + /** * Converts a {@link SparseArray} of {@link Bundleable} to an {@link SparseArray} of {@link * Bundle} so that the returned {@link SparseArray} can be put to {@link Bundle} using {@link diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlaybackException.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlaybackException.java index 52bf89b3658..19d69529ca2 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlaybackException.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlaybackException.java @@ -33,7 +33,6 @@ import androidx.media3.common.MediaPeriodId; import androidx.media3.common.PlaybackException; import androidx.media3.common.util.Assertions; -import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.exoplayer.source.MediaSource; @@ -255,9 +254,9 @@ private ExoPlaybackException(Bundle bundle) { rendererName = bundle.getString(keyForField(FIELD_RENDERER_NAME)); rendererIndex = bundle.getInt(keyForField(FIELD_RENDERER_INDEX), /* defaultValue= */ C.INDEX_UNSET); + @Nullable Bundle rendererFormatBundle = bundle.getBundle(keyForField(FIELD_RENDERER_FORMAT)); rendererFormat = - BundleableUtil.fromNullableBundle( - Format.CREATOR, bundle.getBundle(keyForField(FIELD_RENDERER_FORMAT))); + rendererFormatBundle == null ? null : Format.CREATOR.fromBundle(rendererFormatBundle); rendererFormatSupport = bundle.getInt( keyForField(FIELD_RENDERER_FORMAT_SUPPORT), /* defaultValue= */ C.FORMAT_HANDLED); @@ -424,8 +423,9 @@ public Bundle toBundle() { bundle.putInt(keyForField(FIELD_TYPE), type); bundle.putString(keyForField(FIELD_RENDERER_NAME), rendererName); bundle.putInt(keyForField(FIELD_RENDERER_INDEX), rendererIndex); - bundle.putBundle( - keyForField(FIELD_RENDERER_FORMAT), BundleableUtil.toNullableBundle(rendererFormat)); + if (rendererFormat != null) { + bundle.putBundle(keyForField(FIELD_RENDERER_FORMAT), rendererFormat.toBundle()); + } bundle.putInt(keyForField(FIELD_RENDERER_FORMAT_SUPPORT), rendererFormatSupport); bundle.putBoolean(keyForField(FIELD_IS_RECOVERABLE), isRecoverable); return bundle; diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/TrackGroupArray.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/TrackGroupArray.java index d37b8802d37..0bc5a014f67 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/TrackGroupArray.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/TrackGroupArray.java @@ -139,12 +139,15 @@ public Bundle toBundle() { /** Object that can restores a TrackGroupArray from a {@link Bundle}. */ public static final Creator CREATOR = bundle -> { - List trackGroups = - BundleableUtil.fromBundleNullableList( - TrackGroup.CREATOR, - bundle.getParcelableArrayList(keyForField(FIELD_TRACK_GROUPS)), - /* defaultValue= */ ImmutableList.of()); - return new TrackGroupArray(trackGroups.toArray(new TrackGroup[0])); + @Nullable + List trackGroupBundles = + bundle.getParcelableArrayList(keyForField(FIELD_TRACK_GROUPS)); + if (trackGroupBundles == null) { + return new TrackGroupArray(); + } + return new TrackGroupArray( + BundleableUtil.fromBundleList(TrackGroup.CREATOR, trackGroupBundles) + .toArray(new TrackGroup[0])); }; private void verifyCorrectness() { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java index a718b5aafab..03638e7dad9 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java @@ -843,18 +843,23 @@ private void setSelectionOverridesFromBundle(Bundle bundle) { int[] rendererIndices = bundle.getIntArray( Parameters.keyForField(Parameters.FIELD_SELECTION_OVERRIDES_RENDERER_INDICES)); + @Nullable + ArrayList trackGroupArrayBundles = + bundle.getParcelableArrayList( + Parameters.keyForField(Parameters.FIELD_SELECTION_OVERRIDES_TRACK_GROUP_ARRAYS)); List trackGroupArrays = - BundleableUtil.fromBundleNullableList( - TrackGroupArray.CREATOR, - bundle.getParcelableArrayList( - Parameters.keyForField(Parameters.FIELD_SELECTION_OVERRIDES_TRACK_GROUP_ARRAYS)), - /* defaultValue= */ ImmutableList.of()); + trackGroupArrayBundles == null + ? ImmutableList.of() + : BundleableUtil.fromBundleList(TrackGroupArray.CREATOR, trackGroupArrayBundles); + @Nullable + SparseArray selectionOverrideBundles = + bundle.getSparseParcelableArray( + Parameters.keyForField(Parameters.FIELD_SELECTION_OVERRIDES)); SparseArray selectionOverrides = - BundleableUtil.fromBundleNullableSparseArray( - SelectionOverride.CREATOR, - bundle.getSparseParcelableArray( - Parameters.keyForField(Parameters.FIELD_SELECTION_OVERRIDES)), - /* defaultValue= */ new SparseArray<>()); + selectionOverrideBundles == null + ? new SparseArray<>() + : BundleableUtil.fromBundleSparseArray( + SelectionOverride.CREATOR, selectionOverrideBundles); if (rendererIndices == null || rendererIndices.length != trackGroupArrays.size()) { return; // Incorrect format, ignore all overrides. diff --git a/libraries/session/src/main/java/androidx/media3/session/CommandButton.java b/libraries/session/src/main/java/androidx/media3/session/CommandButton.java index 070dc7e7c2a..8ac74eba5ba 100644 --- a/libraries/session/src/main/java/androidx/media3/session/CommandButton.java +++ b/libraries/session/src/main/java/androidx/media3/session/CommandButton.java @@ -25,7 +25,6 @@ import androidx.annotation.Nullable; import androidx.media3.common.Bundleable; import androidx.media3.common.Player; -import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.UnstableApi; import java.lang.annotation.Documented; import java.lang.annotation.Retention; @@ -219,8 +218,9 @@ private CommandButton( @Override public Bundle toBundle() { Bundle bundle = new Bundle(); - bundle.putBundle( - keyForField(FIELD_SESSION_COMMAND), BundleableUtil.toNullableBundle(sessionCommand)); + if (sessionCommand != null) { + bundle.putBundle(keyForField(FIELD_SESSION_COMMAND), sessionCommand.toBundle()); + } bundle.putInt(keyForField(FIELD_PLAYER_COMMAND), playerCommand); bundle.putInt(keyForField(FIELD_ICON_RES_ID), iconResId); bundle.putCharSequence(keyForField(FIELD_DISPLAY_NAME), displayName); @@ -233,10 +233,12 @@ public Bundle toBundle() { @UnstableApi public static final Creator CREATOR = CommandButton::fromBundle; private static CommandButton fromBundle(Bundle bundle) { + @Nullable Bundle sessionCommandBundle = bundle.getBundle(keyForField(FIELD_SESSION_COMMAND)); @Nullable SessionCommand sessionCommand = - BundleableUtil.fromNullableBundle( - SessionCommand.CREATOR, bundle.getBundle(keyForField(FIELD_SESSION_COMMAND))); + sessionCommandBundle == null + ? null + : SessionCommand.CREATOR.fromBundle(sessionCommandBundle); @Player.Command int playerCommand = bundle.getInt( diff --git a/libraries/session/src/main/java/androidx/media3/session/ConnectionState.java b/libraries/session/src/main/java/androidx/media3/session/ConnectionState.java index d073ee3e952..84faddd1ce0 100644 --- a/libraries/session/src/main/java/androidx/media3/session/ConnectionState.java +++ b/libraries/session/src/main/java/androidx/media3/session/ConnectionState.java @@ -26,7 +26,6 @@ import androidx.core.app.BundleCompat; import androidx.media3.common.Bundleable; import androidx.media3.common.Player; -import androidx.media3.common.util.BundleableUtil; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -135,27 +134,31 @@ private static ConnectionState fromBundle(Bundle bundle) { checkNotNull(BundleCompat.getBinder(bundle, keyForField(FIELD_SESSION_BINDER))); @Nullable PendingIntent sessionActivity = bundle.getParcelable(keyForField(FIELD_SESSION_ACTIVITY)); + @Nullable Bundle sessionCommandsBundle = bundle.getBundle(keyForField(FIELD_SESSION_COMMANDS)); SessionCommands sessionCommands = - BundleableUtil.fromNullableBundle( - SessionCommands.CREATOR, - bundle.getBundle(keyForField(FIELD_SESSION_COMMANDS)), - SessionCommands.EMPTY); + sessionCommandsBundle == null + ? SessionCommands.EMPTY + : SessionCommands.CREATOR.fromBundle(sessionCommandsBundle); + @Nullable + Bundle playerCommandsFromPlayerBundle = + bundle.getBundle(keyForField(FIELD_PLAYER_COMMANDS_FROM_PLAYER)); Player.Commands playerCommandsFromPlayer = - BundleableUtil.fromNullableBundle( - Player.Commands.CREATOR, - bundle.getBundle(keyForField(FIELD_PLAYER_COMMANDS_FROM_PLAYER)), - Player.Commands.EMPTY); + playerCommandsFromPlayerBundle == null + ? Player.Commands.EMPTY + : Player.Commands.CREATOR.fromBundle(playerCommandsFromPlayerBundle); + @Nullable + Bundle playerCommandsFromSessionBundle = + bundle.getBundle(keyForField(FIELD_PLAYER_COMMANDS_FROM_SESSION)); Player.Commands playerCommandsFromSession = - BundleableUtil.fromNullableBundle( - Player.Commands.CREATOR, - bundle.getBundle(keyForField(FIELD_PLAYER_COMMANDS_FROM_SESSION)), - Player.Commands.EMPTY); + playerCommandsFromSessionBundle == null + ? Player.Commands.EMPTY + : Player.Commands.CREATOR.fromBundle(playerCommandsFromSessionBundle); @Nullable Bundle tokenExtras = bundle.getBundle(keyForField(FIELD_TOKEN_EXTRAS)); + @Nullable Bundle playerInfoBundle = bundle.getBundle(keyForField(FIELD_PLAYER_INFO)); PlayerInfo playerInfo = - BundleableUtil.fromNullableBundle( - PlayerInfo.CREATOR, - bundle.getBundle(keyForField(FIELD_PLAYER_INFO)), - PlayerInfo.DEFAULT); + playerInfoBundle == null + ? PlayerInfo.DEFAULT + : PlayerInfo.CREATOR.fromBundle(playerInfoBundle); return new ConnectionState( version, IMediaSession.Stub.asInterface(sessionBinder), diff --git a/libraries/session/src/main/java/androidx/media3/session/LibraryResult.java b/libraries/session/src/main/java/androidx/media3/session/LibraryResult.java index 4e469926c35..2984dbc604b 100644 --- a/libraries/session/src/main/java/androidx/media3/session/LibraryResult.java +++ b/libraries/session/src/main/java/androidx/media3/session/LibraryResult.java @@ -287,7 +287,9 @@ public Bundle toBundle() { Bundle bundle = new Bundle(); bundle.putInt(keyForField(FIELD_RESULT_CODE), resultCode); bundle.putLong(keyForField(FIELD_COMPLETION_TIME_MS), completionTimeMs); - bundle.putBundle(keyForField(FIELD_PARAMS), BundleableUtil.toNullableBundle(params)); + if (params != null) { + bundle.putBundle(keyForField(FIELD_PARAMS), params.toBundle()); + } bundle.putInt(keyForField(FIELD_VALUE_TYPE), valueType); if (value == null) { @@ -295,8 +297,7 @@ public Bundle toBundle() { } switch (valueType) { case VALUE_TYPE_ITEM: - bundle.putBundle( - keyForField(FIELD_VALUE), BundleableUtil.toNullableBundle((MediaItem) value)); + bundle.putBundle(keyForField(FIELD_VALUE), ((MediaItem) value).toBundle()); break; case VALUE_TYPE_ITEM_LIST: BundleCompat.putBinder( @@ -371,18 +372,17 @@ private static LibraryResult fromBundle( bundle.getLong( keyForField(FIELD_COMPLETION_TIME_MS), /* defaultValue= */ SystemClock.elapsedRealtime()); + @Nullable Bundle paramsBundle = bundle.getBundle(keyForField(FIELD_PARAMS)); @Nullable MediaLibraryService.LibraryParams params = - BundleableUtil.fromNullableBundle( - MediaLibraryService.LibraryParams.CREATOR, bundle.getBundle(keyForField(FIELD_PARAMS))); + paramsBundle == null ? null : LibraryParams.CREATOR.fromBundle(paramsBundle); @ValueType int valueType = bundle.getInt(keyForField(FIELD_VALUE_TYPE)); @Nullable Object value; switch (valueType) { case VALUE_TYPE_ITEM: checkState(expectedType == null || expectedType == VALUE_TYPE_ITEM); - value = - BundleableUtil.fromNullableBundle( - MediaItem.CREATOR, bundle.getBundle(keyForField(FIELD_VALUE))); + @Nullable Bundle valueBundle = bundle.getBundle(keyForField(FIELD_VALUE)); + value = valueBundle == null ? null : MediaItem.CREATOR.fromBundle(valueBundle); break; case VALUE_TYPE_ITEM_LIST: checkState(expectedType == null || expectedType == VALUE_TYPE_ITEM_LIST); diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaBrowserImplBase.java b/libraries/session/src/main/java/androidx/media3/session/MediaBrowserImplBase.java index f0c4d7ccb7a..f5ca3540f83 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaBrowserImplBase.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaBrowserImplBase.java @@ -31,7 +31,6 @@ import android.os.RemoteException; import androidx.annotation.Nullable; import androidx.media3.common.MediaItem; -import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.Log; import androidx.media3.session.MediaLibraryService.LibraryParams; import androidx.media3.session.SequencedFutureManager.SequencedFuture; @@ -59,7 +58,7 @@ public ListenableFuture> getLibraryRoot(@Nullable Libra new RemoteLibrarySessionTask() { @Override public void run(IMediaSession iSession, int seq) throws RemoteException { - iSession.getLibraryRoot(controllerStub, seq, BundleableUtil.toNullableBundle(params)); + iSession.getLibraryRoot(controllerStub, seq, params == null ? null : params.toBundle()); } }); } @@ -73,7 +72,7 @@ public ListenableFuture> subscribe( @Override public void run(IMediaSession iSession, int seq) throws RemoteException { iSession.subscribe( - controllerStub, seq, parentId, BundleableUtil.toNullableBundle(params)); + controllerStub, seq, parentId, params == null ? null : params.toBundle()); } }); } @@ -104,7 +103,7 @@ public void run(IMediaSession iSession, int seq) throws RemoteException { parentId, page, pageSize, - BundleableUtil.toNullableBundle(params)); + params == null ? null : params.toBundle()); } }); } @@ -129,7 +128,7 @@ public ListenableFuture> search( new RemoteLibrarySessionTask() { @Override public void run(IMediaSession iSession, int seq) throws RemoteException { - iSession.search(controllerStub, seq, query, BundleableUtil.toNullableBundle(params)); + iSession.search(controllerStub, seq, query, params == null ? null : params.toBundle()); } }); } @@ -148,7 +147,7 @@ public void run(IMediaSession iSession, int seq) throws RemoteException { query, page, pageSize, - BundleableUtil.toNullableBundle(params)); + params == null ? null : params.toBundle()); } }); } diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaControllerStub.java b/libraries/session/src/main/java/androidx/media3/session/MediaControllerStub.java index e107c4c4378..1cb2a5e62b5 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaControllerStub.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaControllerStub.java @@ -209,7 +209,9 @@ public void onSearchResultChanged( browser.notifySearchResultChanged( query, itemCount, - BundleableUtil.fromNullableBundle(LibraryParams.CREATOR, libraryParams))); + libraryParams == null + ? null + : LibraryParams.CREATOR.fromBundle(libraryParams))); } @Override @@ -229,7 +231,9 @@ public void onChildrenChanged( browser.notifyChildrenChanged( parentId, itemCount, - BundleableUtil.fromNullableBundle(LibraryParams.CREATOR, libraryParams))); + libraryParams == null + ? null + : LibraryParams.CREATOR.fromBundle(libraryParams))); } public void destroy() { diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java index cd383d2d637..6336e72590d 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java @@ -1521,7 +1521,7 @@ public void getLibraryRoot( } @Nullable LibraryParams libraryParams = - BundleableUtil.fromNullableBundle(LibraryParams.CREATOR, libraryParamsBundle); + libraryParamsBundle == null ? null : LibraryParams.CREATOR.fromBundle(libraryParamsBundle); dispatchSessionTaskWithLibrarySessionCommand( caller, seq, @@ -1576,7 +1576,7 @@ public void getChildren( } @Nullable LibraryParams libraryParams = - BundleableUtil.fromNullableBundle(LibraryParams.CREATOR, libraryParamsBundle); + libraryParamsBundle == null ? null : LibraryParams.CREATOR.fromBundle(libraryParamsBundle); dispatchSessionTaskWithLibrarySessionCommand( caller, seq, @@ -1602,7 +1602,7 @@ public void search( } @Nullable LibraryParams libraryParams = - BundleableUtil.fromNullableBundle(LibraryParams.CREATOR, libraryParamsBundle); + libraryParamsBundle == null ? null : LibraryParams.CREATOR.fromBundle(libraryParamsBundle); dispatchSessionTaskWithLibrarySessionCommand( caller, seq, @@ -1637,7 +1637,7 @@ public void getSearchResult( } @Nullable LibraryParams libraryParams = - BundleableUtil.fromNullableBundle(LibraryParams.CREATOR, libraryParamsBundle); + libraryParamsBundle == null ? null : LibraryParams.CREATOR.fromBundle(libraryParamsBundle); dispatchSessionTaskWithLibrarySessionCommand( caller, seq, @@ -1663,7 +1663,7 @@ public void subscribe( } @Nullable LibraryParams libraryParams = - BundleableUtil.fromNullableBundle(LibraryParams.CREATOR, libraryParamsBundle); + libraryParamsBundle == null ? null : LibraryParams.CREATOR.fromBundle(libraryParamsBundle); dispatchSessionTaskWithLibrarySessionCommand( caller, seq, @@ -1769,7 +1769,7 @@ public void onChildrenChanged( int seq, String parentId, int itemCount, @Nullable LibraryParams params) throws RemoteException { iController.onChildrenChanged( - seq, parentId, itemCount, BundleableUtil.toNullableBundle(params)); + seq, parentId, itemCount, params == null ? null : params.toBundle()); } @SuppressWarnings("nullness:argument") // params can be null. @@ -1778,7 +1778,7 @@ public void onSearchResultChanged( int seq, String query, int itemCount, @Nullable LibraryParams params) throws RemoteException { iController.onSearchResultChanged( - seq, query, itemCount, BundleableUtil.toNullableBundle(params)); + seq, query, itemCount, params == null ? null : params.toBundle()); } @Override diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaStyleNotificationHelper.java b/libraries/session/src/main/java/androidx/media3/session/MediaStyleNotificationHelper.java index 13b0ccaf3bc..082c0e36dcb 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaStyleNotificationHelper.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaStyleNotificationHelper.java @@ -29,7 +29,6 @@ import androidx.annotation.RequiresApi; import androidx.core.app.NotificationBuilderWithBuilderAccessor; import androidx.media3.common.util.Assertions; -import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.UnstableApi; import org.checkerframework.checker.nullness.compatqual.NullableType; @@ -97,8 +96,10 @@ public static SessionToken getSessionToken(Notification notification) { if (extras == null) { return null; } - return BundleableUtil.fromNullableBundle( - SessionToken.CREATOR, extras.getBundle(EXTRA_MEDIA3_SESSION)); + Bundle sessionTokenBundle = extras.getBundle(EXTRA_MEDIA3_SESSION); + return sessionTokenBundle == null + ? null + : SessionToken.CREATOR.fromBundle(sessionTokenBundle); } private static final int MAX_MEDIA_BUTTONS_IN_COMPACT = 3; diff --git a/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java b/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java index 87e3637fc41..f6bd408b7a6 100644 --- a/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java +++ b/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java @@ -45,7 +45,6 @@ import androidx.media3.common.VideoSize; import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.Assertions; -import androidx.media3.common.util.BundleableUtil; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -733,14 +732,13 @@ public Bundle toBundle( boolean excludeCues, boolean excludeTimeline) { Bundle bundle = new Bundle(); - bundle.putBundle( - keyForField(FIELD_PLAYBACK_ERROR), BundleableUtil.toNullableBundle(playerError)); + if (playerError != null) { + bundle.putBundle(keyForField(FIELD_PLAYBACK_ERROR), playerError.toBundle()); + } bundle.putInt(keyForField(FIELD_MEDIA_ITEM_TRANSITION_REASON), mediaItemTransitionReason); bundle.putBundle(keyForField(FIELD_SESSION_POSITION_INFO), sessionPositionInfo.toBundle()); - bundle.putBundle( - keyForField(FIELD_OLD_POSITION_INFO), BundleableUtil.toNullableBundle(oldPositionInfo)); - bundle.putBundle( - keyForField(FIELD_NEW_POSITION_INFO), BundleableUtil.toNullableBundle(newPositionInfo)); + bundle.putBundle(keyForField(FIELD_OLD_POSITION_INFO), oldPositionInfo.toBundle()); + bundle.putBundle(keyForField(FIELD_NEW_POSITION_INFO), newPositionInfo.toBundle()); bundle.putInt(keyForField(FIELD_DISCONTINUITY_REASON), discontinuityReason); bundle.putBundle(keyForField(FIELD_PLAYBACK_PARAMETERS), playbackParameters.toBundle()); bundle.putInt(keyForField(FIELD_REPEAT_MODE), repeatMode); @@ -749,11 +747,9 @@ public Bundle toBundle( bundle.putBundle(keyForField(FIELD_TIMELINE), timeline.toBundle(excludeMediaItems)); } bundle.putBundle(keyForField(FIELD_VIDEO_SIZE), videoSize.toBundle()); - bundle.putBundle( - keyForField(FIELD_PLAYLIST_METADATA), - excludeMediaItemsMetadata - ? MediaMetadata.EMPTY.toBundle() - : BundleableUtil.toNullableBundle(playlistMetadata)); + if (!excludeMediaItemsMetadata) { + bundle.putBundle(keyForField(FIELD_PLAYLIST_METADATA), playlistMetadata.toBundle()); + } bundle.putFloat(keyForField(FIELD_VOLUME), volume); bundle.putBundle(keyForField(FIELD_AUDIO_ATTRIBUTES), audioAttributes.toBundle()); if (!excludeCues) { @@ -793,67 +789,69 @@ public Bundle toBundle() { public static final Creator CREATOR = PlayerInfo::fromBundle; private static PlayerInfo fromBundle(Bundle bundle) { + @Nullable Bundle playerErrorBundle = bundle.getBundle(keyForField(FIELD_PLAYBACK_ERROR)); @Nullable PlaybackException playerError = - BundleableUtil.fromNullableBundle( - PlaybackException.CREATOR, bundle.getBundle(keyForField(FIELD_PLAYBACK_ERROR))); + playerErrorBundle == null ? null : PlaybackException.CREATOR.fromBundle(playerErrorBundle); int mediaItemTransitionReason = bundle.getInt( keyForField(FIELD_MEDIA_ITEM_TRANSITION_REASON), MEDIA_ITEM_TRANSITION_REASON_REPEAT); + @Nullable + Bundle sessionPositionInfoBundle = bundle.getBundle(keyForField(FIELD_SESSION_POSITION_INFO)); SessionPositionInfo sessionPositionInfo = - BundleableUtil.fromNullableBundle( - SessionPositionInfo.CREATOR, - bundle.getBundle(keyForField(FIELD_SESSION_POSITION_INFO)), - SessionPositionInfo.DEFAULT); + sessionPositionInfoBundle == null + ? SessionPositionInfo.DEFAULT + : SessionPositionInfo.CREATOR.fromBundle(sessionPositionInfoBundle); + @Nullable Bundle oldPositionInfoBundle = bundle.getBundle(keyForField(FIELD_OLD_POSITION_INFO)); PositionInfo oldPositionInfo = - BundleableUtil.fromNullableBundle( - PositionInfo.CREATOR, - bundle.getBundle(keyForField(FIELD_OLD_POSITION_INFO)), - SessionPositionInfo.DEFAULT_POSITION_INFO); + oldPositionInfoBundle == null + ? SessionPositionInfo.DEFAULT_POSITION_INFO + : PositionInfo.CREATOR.fromBundle(oldPositionInfoBundle); + @Nullable Bundle newPositionInfoBundle = bundle.getBundle(keyForField(FIELD_NEW_POSITION_INFO)); PositionInfo newPositionInfo = - BundleableUtil.fromNullableBundle( - PositionInfo.CREATOR, - bundle.getBundle(keyForField(FIELD_NEW_POSITION_INFO)), - SessionPositionInfo.DEFAULT_POSITION_INFO); + newPositionInfoBundle == null + ? SessionPositionInfo.DEFAULT_POSITION_INFO + : PositionInfo.CREATOR.fromBundle(newPositionInfoBundle); int discontinuityReason = bundle.getInt( keyForField(FIELD_DISCONTINUITY_REASON), DISCONTINUITY_REASON_AUTO_TRANSITION); @Nullable Bundle playbackParametersBundle = bundle.getBundle(keyForField(FIELD_PLAYBACK_PARAMETERS)); PlaybackParameters playbackParameters = - BundleableUtil.fromNullableBundle( - PlaybackParameters.CREATOR, - playbackParametersBundle, - /* defaultValue= */ PlaybackParameters.DEFAULT); + playbackParametersBundle == null + ? PlaybackParameters.DEFAULT + : PlaybackParameters.CREATOR.fromBundle(playbackParametersBundle); @Player.RepeatMode int repeatMode = bundle.getInt(keyForField(FIELD_REPEAT_MODE), /* defaultValue= */ Player.REPEAT_MODE_OFF); boolean shuffleModeEnabled = bundle.getBoolean(keyForField(FIELD_SHUFFLE_MODE_ENABLED), /* defaultValue= */ false); + @Nullable Bundle timelineBundle = bundle.getBundle(keyForField(FIELD_TIMELINE)); Timeline timeline = - BundleableUtil.fromNullableBundle( - Timeline.CREATOR, bundle.getBundle(keyForField(FIELD_TIMELINE)), Timeline.EMPTY); + timelineBundle == null ? Timeline.EMPTY : Timeline.CREATOR.fromBundle(timelineBundle); + @Nullable Bundle videoSizeBundle = bundle.getBundle(keyForField(FIELD_VIDEO_SIZE)); VideoSize videoSize = - BundleableUtil.fromNullableBundle( - VideoSize.CREATOR, bundle.getBundle(keyForField(FIELD_VIDEO_SIZE)), VideoSize.UNKNOWN); + videoSizeBundle == null ? VideoSize.UNKNOWN : VideoSize.CREATOR.fromBundle(videoSizeBundle); + @Nullable + Bundle playlistMetadataBundle = bundle.getBundle(keyForField(FIELD_PLAYLIST_METADATA)); MediaMetadata playlistMetadata = - BundleableUtil.fromNullableBundle( - MediaMetadata.CREATOR, - bundle.getBundle(keyForField(FIELD_PLAYLIST_METADATA)), - MediaMetadata.EMPTY); + playlistMetadataBundle == null + ? MediaMetadata.EMPTY + : MediaMetadata.CREATOR.fromBundle(playlistMetadataBundle); float volume = bundle.getFloat(keyForField(FIELD_VOLUME), /* defaultValue= */ 1); + @Nullable Bundle audioAttributesBundle = bundle.getBundle(keyForField(FIELD_AUDIO_ATTRIBUTES)); AudioAttributes audioAttributes = - BundleableUtil.fromNullableBundle( - AudioAttributes.CREATOR, - bundle.getBundle(keyForField(FIELD_AUDIO_ATTRIBUTES)), - /* defaultValue= */ AudioAttributes.DEFAULT); + audioAttributesBundle == null + ? AudioAttributes.DEFAULT + : AudioAttributes.CREATOR.fromBundle(audioAttributesBundle); + @Nullable Bundle cueGroupBundle = bundle.getBundle(keyForField(FIELD_CUE_GROUP)); CueGroup cueGroup = - BundleableUtil.fromNullableBundle( - CueGroup.CREATOR, bundle.getBundle(keyForField(FIELD_CUE_GROUP)), CueGroup.EMPTY); + cueGroupBundle == null ? CueGroup.EMPTY : CueGroup.CREATOR.fromBundle(cueGroupBundle); @Nullable Bundle deviceInfoBundle = bundle.getBundle(keyForField(FIELD_DEVICE_INFO)); DeviceInfo deviceInfo = - BundleableUtil.fromNullableBundle( - DeviceInfo.CREATOR, deviceInfoBundle, /* defaultValue= */ DeviceInfo.UNKNOWN); + deviceInfoBundle == null + ? DeviceInfo.UNKNOWN + : DeviceInfo.CREATOR.fromBundle(deviceInfoBundle); int deviceVolume = bundle.getInt(keyForField(FIELD_DEVICE_VOLUME), /* defaultValue= */ 0); boolean deviceMuted = bundle.getBoolean(keyForField(FIELD_DEVICE_MUTED), /* defaultValue= */ false); @@ -873,11 +871,11 @@ private static PlayerInfo fromBundle(Bundle bundle) { bundle.getInt(keyForField(FIELD_PLAYBACK_STATE), /* defaultValue= */ STATE_IDLE); boolean isPlaying = bundle.getBoolean(keyForField(FIELD_IS_PLAYING), /* defaultValue= */ false); boolean isLoading = bundle.getBoolean(keyForField(FIELD_IS_LOADING), /* defaultValue= */ false); + @Nullable Bundle mediaMetadataBundle = bundle.getBundle(keyForField(FIELD_MEDIA_METADATA)); MediaMetadata mediaMetadata = - BundleableUtil.fromNullableBundle( - MediaMetadata.CREATOR, - bundle.getBundle(keyForField(FIELD_MEDIA_METADATA)), - MediaMetadata.EMPTY); + mediaMetadataBundle == null + ? MediaMetadata.EMPTY + : MediaMetadata.CREATOR.fromBundle(mediaMetadataBundle); long seekBackIncrementMs = bundle.getLong(keyForField(FIELD_SEEK_BACK_INCREMENT_MS), /* defaultValue= */ 0); long seekForwardIncrementMs = diff --git a/libraries/session/src/main/java/androidx/media3/session/SessionPositionInfo.java b/libraries/session/src/main/java/androidx/media3/session/SessionPositionInfo.java index ed75a7603d6..149ef552dbf 100644 --- a/libraries/session/src/main/java/androidx/media3/session/SessionPositionInfo.java +++ b/libraries/session/src/main/java/androidx/media3/session/SessionPositionInfo.java @@ -23,7 +23,6 @@ import androidx.media3.common.Bundleable; import androidx.media3.common.C; import androidx.media3.common.Player.PositionInfo; -import androidx.media3.common.util.BundleableUtil; import com.google.common.base.Objects; import java.lang.annotation.Documented; import java.lang.annotation.Retention; @@ -209,11 +208,11 @@ public Bundle toBundle() { public static final Creator CREATOR = SessionPositionInfo::fromBundle; private static SessionPositionInfo fromBundle(Bundle bundle) { + @Nullable Bundle positionInfoBundle = bundle.getBundle(keyForField(FIELD_POSITION_INFO)); PositionInfo positionInfo = - BundleableUtil.fromNullableBundle( - PositionInfo.CREATOR, - bundle.getBundle(keyForField(FIELD_POSITION_INFO)), - /* defaultValue= */ DEFAULT_POSITION_INFO); + positionInfoBundle == null + ? DEFAULT_POSITION_INFO + : PositionInfo.CREATOR.fromBundle(positionInfoBundle); boolean isPlayingAd = bundle.getBoolean(keyForField(FIELD_IS_PLAYING_AD), /* defaultValue= */ false); long eventTimeMs = diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaControllerProviderService.java b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaControllerProviderService.java index 33e2b4fc8c2..2912517f69c 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaControllerProviderService.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaControllerProviderService.java @@ -165,7 +165,9 @@ public Bundle getConnectedSessionToken(String controllerId) throws RemoteExcepti return runOnHandler( () -> { MediaController controller = mediaControllerMap.get(controllerId); - return BundleableUtil.toNullableBundle(controller.getConnectedToken()); + return controller.getConnectedToken() == null + ? null + : controller.getConnectedToken().toBundle(); }); } @@ -679,8 +681,9 @@ public Bundle getLibraryRoot(String controllerId, Bundle libraryParams) throws R runOnHandler( () -> browser.getLibraryRoot( - BundleableUtil.fromNullableBundle( - MediaLibraryService.LibraryParams.CREATOR, libraryParams))); + libraryParams == null + ? null + : MediaLibraryService.LibraryParams.CREATOR.fromBundle(libraryParams))); LibraryResult result = getFutureResult(future); return result.toBundle(); } @@ -694,8 +697,9 @@ public Bundle subscribe(String controllerId, String parentId, Bundle libraryPara () -> browser.subscribe( parentId, - BundleableUtil.fromNullableBundle( - MediaLibraryService.LibraryParams.CREATOR, libraryParams))); + libraryParams == null + ? null + : MediaLibraryService.LibraryParams.CREATOR.fromBundle(libraryParams))); LibraryResult result = getFutureResult(future); return result.toBundle(); } @@ -720,8 +724,9 @@ public Bundle getChildren( parentId, page, pageSize, - BundleableUtil.fromNullableBundle( - MediaLibraryService.LibraryParams.CREATOR, libraryParams))); + libraryParams == null + ? null + : MediaLibraryService.LibraryParams.CREATOR.fromBundle(libraryParams))); LibraryResult> result = getFutureResult(future); return result.toBundle(); } @@ -743,8 +748,9 @@ public Bundle search(String controllerId, String query, Bundle libraryParams) () -> browser.search( query, - BundleableUtil.fromNullableBundle( - MediaLibraryService.LibraryParams.CREATOR, libraryParams))); + libraryParams == null + ? null + : MediaLibraryService.LibraryParams.CREATOR.fromBundle(libraryParams))); LibraryResult result = getFutureResult(future); return result.toBundle(); } @@ -761,8 +767,9 @@ public Bundle getSearchResult( query, page, pageSize, - BundleableUtil.fromNullableBundle( - MediaLibraryService.LibraryParams.CREATOR, libraryParams))); + libraryParams == null + ? null + : MediaLibraryService.LibraryParams.CREATOR.fromBundle(libraryParams))); LibraryResult> result = getFutureResult(future); return result.toBundle(); } diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java index 9d6eafcf830..a0e11fcab31 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java @@ -79,7 +79,6 @@ import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.VideoSize; import androidx.media3.common.text.CueGroup; -import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.Log; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; @@ -261,9 +260,10 @@ public void setPlayer(String sessionId, Bundle config) throws RemoteException { private Player createMockPlayer(Bundle config) { MockPlayer player = new MockPlayer.Builder().build(); - player.playerError = - BundleableUtil.fromNullableBundle( - PlaybackException.CREATOR, config.getBundle(KEY_PLAYER_ERROR), player.playerError); + @Nullable Bundle playerErrorBundle = config.getBundle(KEY_PLAYER_ERROR); + if (playerErrorBundle != null) { + player.playerError = PlaybackException.CREATOR.fromBundle(playerErrorBundle); + } player.currentPosition = config.getLong(KEY_CURRENT_POSITION, player.currentPosition); player.bufferedPosition = config.getLong(KEY_BUFFERED_POSITION, player.bufferedPosition); player.bufferedPercentage = config.getInt(KEY_BUFFERED_PERCENTAGE, player.bufferedPercentage); @@ -280,38 +280,38 @@ private Player createMockPlayer(Bundle config) { config.getInt(KEY_CURRENT_AD_GROUP_INDEX, player.currentAdGroupIndex); player.currentAdIndexInAdGroup = config.getInt(KEY_CURRENT_AD_INDEX_IN_AD_GROUP, player.currentAdIndexInAdGroup); - player.playbackParameters = - BundleableUtil.fromNullableBundle( - PlaybackParameters.CREATOR, - config.getBundle(KEY_PLAYBACK_PARAMETERS), - player.playbackParameters); - player.timeline = - BundleableUtil.fromNullableBundle( - Timeline.CREATOR, config.getBundle(KEY_TIMELINE), player.timeline); + @Nullable Bundle playbackParametersBundle = config.getBundle(KEY_PLAYBACK_PARAMETERS); + if (playbackParametersBundle != null) { + player.playbackParameters = PlaybackParameters.CREATOR.fromBundle(playbackParametersBundle); + } + @Nullable Bundle timelineBundle = config.getBundle(KEY_TIMELINE); + if (timelineBundle != null) { + player.timeline = Timeline.CREATOR.fromBundle(timelineBundle); + } player.currentMediaItemIndex = config.getInt(KEY_CURRENT_MEDIA_ITEM_INDEX, player.currentMediaItemIndex); player.currentPeriodIndex = config.getInt(KEY_CURRENT_PERIOD_INDEX, player.currentPeriodIndex); - player.playlistMetadata = - BundleableUtil.fromNullableBundle( - MediaMetadata.CREATOR, - config.getBundle(KEY_PLAYLIST_METADATA), - player.playlistMetadata); - player.videoSize = - BundleableUtil.fromNullableBundle( - VideoSize.CREATOR, config.getBundle(KEY_VIDEO_SIZE), player.videoSize); + @Nullable Bundle playlistMetadataBundle = config.getBundle(KEY_PLAYLIST_METADATA); + if (playlistMetadataBundle != null) { + player.playlistMetadata = MediaMetadata.CREATOR.fromBundle(playlistMetadataBundle); + } + @Nullable Bundle videoSizeBundle = config.getBundle(KEY_VIDEO_SIZE); + if (videoSizeBundle != null) { + player.videoSize = VideoSize.CREATOR.fromBundle(videoSizeBundle); + } player.volume = config.getFloat(KEY_VOLUME, player.volume); - player.audioAttributes = - BundleableUtil.fromNullableBundle( - AudioAttributes.CREATOR, - config.getBundle(KEY_AUDIO_ATTRIBUTES), - player.audioAttributes); + @Nullable Bundle audioAttributesBundle = config.getBundle(KEY_AUDIO_ATTRIBUTES); + if (audioAttributesBundle != null) { + player.audioAttributes = AudioAttributes.CREATOR.fromBundle(audioAttributesBundle); + } + Bundle cueGroupBundle = config.getBundle(KEY_CURRENT_CUE_GROUP); player.cueGroup = - BundleableUtil.fromNullableBundle( - CueGroup.CREATOR, config.getBundle(KEY_CURRENT_CUE_GROUP), CueGroup.EMPTY); - player.deviceInfo = - BundleableUtil.fromNullableBundle( - DeviceInfo.CREATOR, config.getBundle(KEY_DEVICE_INFO), player.deviceInfo); + cueGroupBundle == null ? CueGroup.EMPTY : CueGroup.CREATOR.fromBundle(cueGroupBundle); + @Nullable Bundle deviceInfoBundle = config.getBundle(KEY_DEVICE_INFO); + if (deviceInfoBundle != null) { + player.deviceInfo = DeviceInfo.CREATOR.fromBundle(deviceInfoBundle); + } player.deviceVolume = config.getInt(KEY_DEVICE_VOLUME, player.deviceVolume); player.deviceMuted = config.getBoolean(KEY_DEVICE_MUTED, player.deviceMuted); player.playWhenReady = config.getBoolean(KEY_PLAY_WHEN_READY, player.playWhenReady); @@ -327,9 +327,10 @@ private Player createMockPlayer(Bundle config) { config.getLong(KEY_SEEK_BACK_INCREMENT_MS, player.seekBackIncrementMs); player.seekForwardIncrementMs = config.getLong(KEY_SEEK_FORWARD_INCREMENT_MS, player.seekForwardIncrementMs); - player.mediaMetadata = - BundleableUtil.fromNullableBundle( - MediaMetadata.CREATOR, config.getBundle(KEY_MEDIA_METADATA), player.mediaMetadata); + @Nullable Bundle mediaMetadataBundle = config.getBundle(KEY_MEDIA_METADATA); + if (mediaMetadataBundle != null) { + player.mediaMetadata = MediaMetadata.CREATOR.fromBundle(mediaMetadataBundle); + } player.maxSeekToPreviousPositionMs = config.getLong(KEY_MAX_SEEK_TO_PREVIOUS_POSITION_MS, player.maxSeekToPreviousPositionMs); @Nullable @@ -420,8 +421,9 @@ public void notifyPlayerError(String sessionId, @Nullable Bundle playerErrorBund MockPlayer player = (MockPlayer) session.getPlayer(); @Nullable PlaybackException playerError = - BundleableUtil.fromNullableBundle( - PlaybackException.CREATOR, playerErrorBundle, player.playerError); + playerErrorBundle == null + ? player.playerError + : PlaybackException.CREATOR.fromBundle(playerErrorBundle); player.notifyPlayerError(playerError); }); } @@ -780,8 +782,9 @@ public void notifyAvailableCommandsChanged(String sessionId, Bundle commandsBund MediaSession session = sessionMap.get(sessionId); MockPlayer player = (MockPlayer) session.getPlayer(); player.notifyAvailableCommandsChanged( - BundleableUtil.fromNullableBundle( - Player.Commands.CREATOR, commandsBundle, Player.Commands.EMPTY)); + commandsBundle == null + ? Player.Commands.EMPTY + : Player.Commands.CREATOR.fromBundle(commandsBundle)); }); } diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaLibraryService.java b/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaLibraryService.java index 49550bbb05f..ab2539a1ec6 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaLibraryService.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaLibraryService.java @@ -61,7 +61,6 @@ import androidx.annotation.Nullable; import androidx.media3.common.MediaItem; import androidx.media3.common.MediaMetadata; -import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.Log; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; @@ -102,6 +101,7 @@ public class MockMediaLibraryService extends MediaLibraryService { private static boolean assertLibraryParams; @GuardedBy("MockMediaLibraryService.class") + @Nullable private static LibraryParams expectedParams; MediaLibrarySession session; @@ -162,7 +162,7 @@ public void attachBaseContext(Context base) { super.attachBaseContext(base); } - public static void setAssertLibraryParams(LibraryParams expectedParams) { + public static void setAssertLibraryParams(@Nullable LibraryParams expectedParams) { synchronized (MockMediaLibraryService.class) { assertLibraryParams = true; MockMediaLibraryService.expectedParams = expectedParams; @@ -365,9 +365,10 @@ public ListenableFuture onCustomCommand( return Futures.immediateFuture( new SessionResult(SessionResult.RESULT_SUCCESS, CUSTOM_ACTION_EXTRAS)); case CUSTOM_ACTION_ASSERT_PARAMS: + @Nullable Bundle paramsBundle = args.getBundle(CUSTOM_ACTION_ASSERT_PARAMS); + @Nullable LibraryParams params = - BundleableUtil.fromNullableBundle( - LibraryParams.CREATOR, args.getBundle(CUSTOM_ACTION_ASSERT_PARAMS)); + paramsBundle == null ? null : LibraryParams.CREATOR.fromBundle(paramsBundle); setAssertLibraryParams(params); return Futures.immediateFuture(new SessionResult(SessionResult.RESULT_SUCCESS)); default: // fall out diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaBrowser.java b/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaBrowser.java index 98cb9f3111f..2024c90a6a9 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaBrowser.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaBrowser.java @@ -20,7 +20,6 @@ import android.os.RemoteException; import androidx.annotation.Nullable; import androidx.media3.common.MediaItem; -import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.UnstableApi; import androidx.media3.session.MediaLibraryService.LibraryParams; import com.google.common.collect.ImmutableList; @@ -48,14 +47,14 @@ public RemoteMediaBrowser( /** {@link MediaBrowser} methods. */ public LibraryResult getLibraryRoot(@Nullable LibraryParams params) throws RemoteException { - Bundle result = binder.getLibraryRoot(controllerId, BundleableUtil.toNullableBundle(params)); + Bundle result = binder.getLibraryRoot(controllerId, params == null ? null : params.toBundle()); return LibraryResult.ITEM_CREATOR.fromBundle(result); } public LibraryResult subscribe(String parentId, @Nullable LibraryParams params) throws RemoteException { Bundle result = - binder.subscribe(controllerId, parentId, BundleableUtil.toNullableBundle(params)); + binder.subscribe(controllerId, parentId, params == null ? null : params.toBundle()); return LibraryResult.VOID_CREATOR.fromBundle(result); } @@ -69,7 +68,7 @@ public LibraryResult> getChildren( throws RemoteException { Bundle result = binder.getChildren( - controllerId, parentId, page, pageSize, BundleableUtil.toNullableBundle(params)); + controllerId, parentId, page, pageSize, params == null ? null : params.toBundle()); return LibraryResult.ITEM_LIST_CREATOR.fromBundle(result); } @@ -80,7 +79,7 @@ public LibraryResult getItem(String mediaId) throws RemoteException { public LibraryResult search(String query, @Nullable LibraryParams params) throws RemoteException { - Bundle result = binder.search(controllerId, query, BundleableUtil.toNullableBundle(params)); + Bundle result = binder.search(controllerId, query, params == null ? null : params.toBundle()); return LibraryResult.VOID_CREATOR.fromBundle(result); } @@ -88,7 +87,7 @@ public LibraryResult> getSearchResult( String query, int page, int pageSize, @Nullable LibraryParams params) throws RemoteException { Bundle result = binder.getSearchResult( - controllerId, query, page, pageSize, BundleableUtil.toNullableBundle(params)); + controllerId, query, page, pageSize, params == null ? null : params.toBundle()); return LibraryResult.ITEM_LIST_CREATOR.fromBundle(result); } diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaController.java b/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaController.java index 16676e0e780..4c34fded935 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaController.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaController.java @@ -29,6 +29,7 @@ import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; +import androidx.annotation.Nullable; import androidx.media3.common.MediaItem; import androidx.media3.common.MediaMetadata; import androidx.media3.common.PlaybackParameters; @@ -87,9 +88,10 @@ public void cleanUp() throws RemoteException { // MediaController methods //////////////////////////////////////////////////////////////////////////////// + @Nullable public SessionToken getConnectedSessionToken() throws RemoteException { - return BundleableUtil.fromNullableBundle( - SessionToken.CREATOR, binder.getConnectedSessionToken(controllerId)); + @Nullable Bundle sessionTokenBundle = binder.getConnectedSessionToken(controllerId); + return sessionTokenBundle == null ? null : SessionToken.CREATOR.fromBundle(sessionTokenBundle); } public void play() throws RemoteException { @@ -133,7 +135,7 @@ public void seekForward() throws RemoteException { } public void setPlaybackParameters(PlaybackParameters playbackParameters) throws RemoteException { - binder.setPlaybackParameters(controllerId, BundleableUtil.toNullableBundle(playbackParameters)); + binder.setPlaybackParameters(controllerId, playbackParameters.toBundle()); } public void setPlaybackSpeed(float speed) throws RemoteException { diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaSession.java b/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaSession.java index 14d493be9f4..65d249161b6 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaSession.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaSession.java @@ -79,7 +79,6 @@ import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.VideoSize; import androidx.media3.common.text.CueGroup; -import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.Log; import androidx.media3.common.util.UnstableApi; import androidx.media3.test.session.common.IRemoteMediaSession; @@ -206,7 +205,7 @@ public void setCustomLayout(List layout) throws RemoteException { public class RemoteMockPlayer { public void notifyPlayerError(@Nullable PlaybackException playerError) throws RemoteException { - binder.notifyPlayerError(sessionId, BundleableUtil.toNullableBundle(playerError)); + binder.notifyPlayerError(sessionId, playerError == null ? null : playerError.toBundle()); } public void setPlayWhenReady( @@ -491,7 +490,9 @@ public MockPlayerConfigBuilder() { } public MockPlayerConfigBuilder setPlayerError(@Nullable PlaybackException playerError) { - bundle.putBundle(KEY_PLAYER_ERROR, BundleableUtil.toNullableBundle(playerError)); + if (playerError != null) { + bundle.putBundle(KEY_PLAYER_ERROR, playerError.toBundle()); + } return this; } From c78c1f5891afafebf70acdd678c32110b5092f98 Mon Sep 17 00:00:00 2001 From: ibaker Date: Wed, 18 May 2022 15:22:48 +0100 Subject: [PATCH 093/182] Rename nested session callback interfaces to just `Callback` This is consistent with other nested callback/listener interfaces like `Player.Listener`. PiperOrigin-RevId: 449476261 --- RELEASENOTES.md | 15 +++--- .../media3/demo/session/PlaybackService.kt | 3 +- .../media3/session/MediaConstants.java | 16 +++---- .../media3/session/MediaController.java | 2 +- .../media3/session/MediaLibraryService.java | 47 +++++++++---------- .../session/MediaLibrarySessionImpl.java | 4 +- .../androidx/media3/session/MediaSession.java | 29 ++++++------ .../media3/session/MediaSessionImpl.java | 5 +- .../media3/session/MediaSessionService.java | 2 +- .../MediaLibrarySessionCallbackTest.java | 10 ++-- .../session/MediaSessionCallbackTest.java | 36 +++++++------- ...CallbackWithMediaControllerCompatTest.java | 47 +++++++++---------- .../session/MediaSessionKeyEventTest.java | 4 +- .../session/MediaSessionPermissionTest.java | 5 +- .../session/MediaSessionPlayerTest.java | 4 +- .../MediaSessionServiceNotificationTest.java | 8 ++-- .../session/MediaSessionServiceTest.java | 5 +- .../media3/session/MediaSessionTest.java | 21 ++++----- ...aSessionWithMediaControllerCompatTest.java | 6 +-- .../session/MediaSessionProviderService.java | 4 +- .../session/MockMediaLibraryService.java | 8 ++-- .../session/MockMediaSessionService.java | 6 +-- .../media3/session/TestServiceRegistry.java | 8 ++-- 23 files changed, 141 insertions(+), 154 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index f8e31e09f1b..de4bbc7031b 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -92,21 +92,20 @@ * Add RTP reader for VP9 ([#47](https://github.com/androidx/media/pull/64)). * Session: - * Fix NPE in MediaControllerImplLegacy - ([#59](https://github.com/androidx/media/pull/59)) + ([#59](https://github.com/androidx/media/pull/59)). * Update session position info on timeline - change([#51](https://github.com/androidx/media/issues/51)) + change([#51](https://github.com/androidx/media/issues/51)). * Fix NPE in MediaControllerImplBase after releasing controller - ([#74](https://github.com/androidx/media/issues/74)) - + ([#74](https://github.com/androidx/media/issues/74)). + * Rename `MediaSession.MediaSessionCallback` to `MediaSession.Callback` + and `MediaLibrarySession.MediaLibrarySession` to + `MediaLibrarySession.Callback` for consistency with other nested + listener and callbacks like `Player.Listener`. * Data sources: - * Rename `DummyDataSource` to `PlaceHolderDataSource`. * Workaround OkHttp interrupt handling. - * Remove deprecated symbols: - * Remove `Player.Listener.onTracksChanged`. Use `Player.Listener.onTracksInfoChanged` instead. * Remove `Player.getCurrentTrackGroups` and diff --git a/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt b/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt index b4ec76ee5a8..0790db69199 100644 --- a/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt +++ b/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt @@ -43,8 +43,7 @@ class PlaybackService : MediaLibraryService() { private const val SEARCH_QUERY_PREFIX = "androidx://media3-session/setMediaUri" } - private inner class CustomMediaLibrarySessionCallback : - MediaLibrarySession.MediaLibrarySessionCallback { + private inner class CustomMediaLibrarySessionCallback : MediaLibrarySession.Callback { override fun onGetLibraryRoot( session: MediaLibrarySession, browser: MediaSession.ControllerInfo, diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaConstants.java b/libraries/session/src/main/java/androidx/media3/session/MediaConstants.java index a022216c4d7..3b7935c79a1 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaConstants.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaConstants.java @@ -26,7 +26,7 @@ public final class MediaConstants { * A {@link Uri} scheme used in a media uri. * * @see MediaController#setMediaUri - * @see MediaSession.SessionCallback#onSetMediaUri + * @see MediaSession.Callback#onSetMediaUri */ public static final String MEDIA_URI_SCHEME = "androidx"; @@ -34,7 +34,7 @@ public final class MediaConstants { * A {@link Uri} authority used in a media uri. * * @see MediaController#setMediaUri - * @see MediaSession.SessionCallback#onSetMediaUri + * @see MediaSession.Callback#onSetMediaUri */ public static final String MEDIA_URI_AUTHORITY = "media3-session"; @@ -43,7 +43,7 @@ public final class MediaConstants { * android.support.v4.media.session.MediaControllerCompat.TransportControls#playFromMediaId}. * * @see MediaController#setMediaUri - * @see MediaSession.SessionCallback#onSetMediaUri + * @see MediaSession.Callback#onSetMediaUri */ public static final String MEDIA_URI_PATH_PLAY_FROM_MEDIA_ID = "playFromMediaId"; @@ -52,7 +52,7 @@ public final class MediaConstants { * android.support.v4.media.session.MediaControllerCompat.TransportControls#playFromSearch}. * * @see MediaController#setMediaUri - * @see MediaSession.SessionCallback#onSetMediaUri + * @see MediaSession.Callback#onSetMediaUri */ public static final String MEDIA_URI_PATH_PLAY_FROM_SEARCH = "playFromSearch"; @@ -61,7 +61,7 @@ public final class MediaConstants { * android.support.v4.media.session.MediaControllerCompat.TransportControls#prepareFromMediaId}. * * @see MediaController#setMediaUri - * @see MediaSession.SessionCallback#onSetMediaUri + * @see MediaSession.Callback#onSetMediaUri */ public static final String MEDIA_URI_PATH_PREPARE_FROM_MEDIA_ID = "prepareFromMediaId"; @@ -70,7 +70,7 @@ public final class MediaConstants { * android.support.v4.media.session.MediaControllerCompat.TransportControls#prepareFromSearch}. * * @see MediaController#setMediaUri - * @see MediaSession.SessionCallback#onSetMediaUri + * @see MediaSession.Callback#onSetMediaUri */ public static final String MEDIA_URI_PATH_PREPARE_FROM_SEARCH = "prepareFromSearch"; @@ -95,7 +95,7 @@ public final class MediaConstants { /** * A {@link Uri} query for media id. * - * @see MediaSession.SessionCallback#onSetMediaUri + * @see MediaSession.Callback#onSetMediaUri * @see MediaController#setMediaUri */ public static final String MEDIA_URI_QUERY_ID = "id"; @@ -103,7 +103,7 @@ public final class MediaConstants { /** * A {@link Uri} query for search query. * - * @see MediaSession.SessionCallback#onSetMediaUri + * @see MediaSession.Callback#onSetMediaUri * @see MediaController#setMediaUri */ public static final String MEDIA_URI_QUERY_QUERY = "query"; diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaController.java b/libraries/session/src/main/java/androidx/media3/session/MediaController.java index 9a45735e39a..09a418fb246 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaController.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaController.java @@ -73,7 +73,7 @@ * process like another app but may be in the same process as this controller. It implements {@link * Player} and the player commands are sent to the underlying {@link Player} of the connected {@link * MediaSession}. It also has session-specific commands that can be handled by {@link - * MediaSession.SessionCallback}. + * MediaSession.Callback}. * *

    Topics covered here: * diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaLibraryService.java b/libraries/session/src/main/java/androidx/media3/session/MediaLibraryService.java index d4892b0e5bc..bc1e1b6adbb 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaLibraryService.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaLibraryService.java @@ -94,8 +94,8 @@ public abstract class MediaLibraryService extends MediaSessionService { * * * {@code 21 <= SDK_INT < 28}
    - * for {@link MediaLibrarySessionCallback#onConnect onConnect}
    - * and {@link MediaLibrarySessionCallback#onGetLibraryRoot onGetLibraryRoot} + * for {@link Callback#onConnect onConnect}
    + * and {@link Callback#onGetLibraryRoot onGetLibraryRoot} * * Actual package name via {@link Context#getPackageName()} * Actual UID @@ -103,7 +103,7 @@ public abstract class MediaLibraryService extends MediaSessionService { * * * {@code 21 <= SDK_INT < 28}
    - * for other {@link MediaLibrarySessionCallback callbacks} + * for other {@link Callback callbacks} * * {@link RemoteUserInfo#LEGACY_CONTROLLER} * Negative value @@ -118,13 +118,13 @@ public abstract class MediaLibraryService extends MediaSessionService { public static final class MediaLibrarySession extends MediaSession { /** - * An extended {@link SessionCallback} for the {@link MediaLibrarySession}. + * An extended {@link MediaSession.Callback} for the {@link MediaLibrarySession}. * *

    When you return {@link LibraryResult} with {@link MediaItem media items}, each item must * have valid {@link MediaItem#mediaId} and specify {@link MediaMetadata#folderType} and {@link * MediaMetadata#isPlayable} in its {@link MediaItem#mediaMetadata}. */ - public interface MediaLibrarySessionCallback extends SessionCallback { + public interface Callback extends MediaSession.Callback { @Override default ConnectionResult onConnect(MediaSession session, ControllerInfo controller) { @@ -361,8 +361,7 @@ default ListenableFuture>> onGetSearchRes */ // Note: Don't override #setSessionCallback() because the callback can be set by the // constructor. - public static final class Builder - extends BuilderBase { + public static final class Builder extends BuilderBase { /** * Creates a builder for {@link MediaLibrarySession}. @@ -377,8 +376,7 @@ public static final class Builder // builder can be only instantiated within the MediaLibraryService. // Ideally it's better to make it inner class of service to enforce, but it violates API // guideline that Builders should be the inner class of the building target. - public Builder( - MediaLibraryService service, Player player, MediaLibrarySessionCallback callback) { + public Builder(MediaLibraryService service, Player player, Callback callback) { super(service, player, callback); } @@ -451,7 +449,7 @@ public MediaLibrarySession build() { String id, Player player, @Nullable PendingIntent sessionActivity, - SessionCallback callback, + MediaSession.Callback callback, MediaItemFiller mediaItemFiller, Bundle tokenExtras) { super(context, id, player, sessionActivity, callback, mediaItemFiller, tokenExtras); @@ -463,7 +461,7 @@ public MediaLibrarySession build() { String id, Player player, @Nullable PendingIntent sessionActivity, - SessionCallback callback, + MediaSession.Callback callback, MediaItemFiller mediaItemFiller, Bundle tokenExtras) { return new MediaLibrarySessionImpl( @@ -472,7 +470,7 @@ public MediaLibrarySession build() { id, player, sessionActivity, - (MediaLibrarySession.MediaLibrarySessionCallback) callback, + (Callback) callback, mediaItemFiller, tokenExtras); } @@ -483,18 +481,17 @@ public MediaLibrarySession build() { } /** - * Notifies a browser that is {@link MediaLibrarySessionCallback#onSubscribe subscribing} to the - * change to a parent's children. If the browser isn't subscribing to the parent, nothing will - * happen. + * Notifies a browser that is {@link Callback#onSubscribe subscribing} to the change to a + * parent's children. If the browser isn't subscribing to the parent, nothing will happen. * *

    This only tells the number of child {@link MediaItem media items}. {@link - * MediaLibrarySessionCallback#onGetChildren} will be called by the browser afterwards to get - * the list of {@link MediaItem media items}. + * Callback#onGetChildren} will be called by the browser afterwards to get the list of {@link + * MediaItem media items}. * * @param browser The browser to notify. * @param parentId The non-empty id of the parent with changes to its children. * @param itemCount The number of children. - * @param params The parameters given by {@link MediaLibrarySessionCallback#onSubscribe}. + * @param params The parameters given by {@link Callback#onSubscribe}. */ public void notifyChildrenChanged( ControllerInfo browser, @@ -507,9 +504,9 @@ public void notifyChildrenChanged( } /** - * Notifies all browsers that are {@link MediaLibrarySessionCallback#onSubscribe subscribing} to - * the parent of the change to its children regardless of the {@link LibraryParams params} given - * by {@link MediaLibrarySessionCallback#onSubscribe}. + * Notifies all browsers that are {@link Callback#onSubscribe subscribing} to the parent of the + * change to its children regardless of the {@link LibraryParams params} given by {@link + * Callback#onSubscribe}. * * @param parentId The non-empty id of the parent with changes to its children. * @param itemCount The number of children. @@ -523,14 +520,12 @@ public void notifyChildrenChanged( } /** - * Notifies a browser of a change to the {@link MediaLibrarySessionCallback#onSearch search} - * result. + * Notifies a browser of a change to the {@link Callback#onSearch search} result. * * @param browser The browser to notify. - * @param query The non-empty search query given by {@link - * MediaLibrarySessionCallback#onSearch}. + * @param query The non-empty search query given by {@link Callback#onSearch}. * @param itemCount The number of items that have been found in the search. - * @param params The parameters given by {@link MediaLibrarySessionCallback#onSearch}. + * @param params The parameters given by {@link Callback#onSearch}. */ public void notifySearchResultChanged( ControllerInfo browser, diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaLibrarySessionImpl.java b/libraries/session/src/main/java/androidx/media3/session/MediaLibrarySessionImpl.java index 5faa6bdc12d..46a7651037e 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaLibrarySessionImpl.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaLibrarySessionImpl.java @@ -51,7 +51,7 @@ /* package */ class MediaLibrarySessionImpl extends MediaSessionImpl { private final MediaLibrarySession instance; - private final MediaLibrarySession.MediaLibrarySessionCallback callback; + private final MediaLibrarySession.Callback callback; @GuardedBy("lock") private final ArrayMap> subscriptions; @@ -62,7 +62,7 @@ public MediaLibrarySessionImpl( String id, Player player, @Nullable PendingIntent sessionActivity, - MediaLibrarySession.MediaLibrarySessionCallback callback, + MediaLibrarySession.Callback callback, MediaSession.MediaItemFiller mediaItemFiller, Bundle tokenExtras) { super(instance, context, id, player, sessionActivity, callback, mediaItemFiller, tokenExtras); diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java index a01abb97700..b6d82b2c82e 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java @@ -109,10 +109,9 @@ * *

    The instances are thread safe, but should be used on the thread with a looper. * - *

    {@link SessionCallback} methods will be called from the application thread associated with the - * {@link Player#getApplicationLooper() application looper} of the underlying player. When a new - * player is set by {@link #setPlayer}, the player should use the same application looper as the - * previous one. + *

    {@link Callback} methods will be called from the application thread associated with the {@link + * Player#getApplicationLooper() application looper} of the underlying player. When a new player is + * set by {@link #setPlayer}, the player should use the same application looper as the previous one. * *

    The session listens to events from the underlying player via {@link Player.Listener} and * expects the callback methods to be called from the application thread. If the player violates the @@ -231,7 +230,7 @@ public class MediaSession { *

    Any incoming requests from the {@link MediaController} will be handled on the application * thread of the underlying {@link Player}. */ - public static final class Builder extends BuilderBase { + public static final class Builder extends BuilderBase { /** * Creates a builder for {@link MediaSession}. @@ -241,7 +240,7 @@ public static final class Builder extends BuilderBaseThe callback methods will be called from the application thread associated with the {@link * Player#getApplicationLooper() application looper} of the underlying {@link Player}. * - *

    If it's not set by {@link MediaSession.Builder#setSessionCallback(SessionCallback)}, the - * session will accept all controllers and all incoming commands by default. + *

    If it's not set by {@link MediaSession.Builder#setSessionCallback(Callback)}, the session + * will accept all controllers and all incoming commands by default. */ - public interface SessionCallback { + public interface Callback { /** * Called when a controller is about to connect to this session. Return a {@link @@ -1033,8 +1032,8 @@ default MediaItem fillInLocalConfiguration( } /** - * A result for {@link SessionCallback#onConnect(MediaSession, ControllerInfo)} to denote the set - * of commands that are available for the given {@link ControllerInfo controller}. + * A result for {@link Callback#onConnect(MediaSession, ControllerInfo)} to denote the set of + * commands that are available for the given {@link ControllerInfo controller}. */ public static final class ConnectionResult { @@ -1195,7 +1194,7 @@ default void onRenderedFirstFrame(int seq) throws RemoteException {} * applied to the subclasses. */ /* package */ abstract static class BuilderBase< - T extends MediaSession, U extends BuilderBase, C extends SessionCallback> { + T extends MediaSession, U extends BuilderBase, C extends Callback> { /* package */ final Context context; /* package */ final Player player; diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java index 23aea7e72fb..9bfe995ef61 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java @@ -68,7 +68,6 @@ import androidx.media3.session.MediaSession.ControllerCb; import androidx.media3.session.MediaSession.ControllerInfo; import androidx.media3.session.MediaSession.MediaItemFiller; -import androidx.media3.session.MediaSession.SessionCallback; import androidx.media3.session.SequencedFutureManager.SequencedFuture; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.Futures; @@ -108,7 +107,7 @@ private final PlayerInfoChangedHandler onPlayerInfoChangedHandler; - private final SessionCallback callback; + private final MediaSession.Callback callback; private final MediaItemFiller mediaItemFiller; private final Context context; @@ -143,7 +142,7 @@ public MediaSessionImpl( String id, Player player, @Nullable PendingIntent sessionActivity, - SessionCallback callback, + MediaSession.Callback callback, MediaItemFiller mediaItemFiller, Bundle tokenExtras) { this.context = context; diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java index 6a03baa1d61..0cb00a915f6 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java @@ -93,7 +93,7 @@ * for the service, the controller binds to the service. {@link #onGetSession(ControllerInfo)} will * be called from {@link #onBind(Intent)}. * - *

    After binding, the session's {@link MediaSession.SessionCallback#onConnect(MediaSession, + *

    After binding, the session's {@link MediaSession.Callback#onConnect(MediaSession, * MediaSession.ControllerInfo)} will be called to accept or reject the connection request from the * controller. If it's accepted, the controller will be available and keep the binding. If it's * rejected, the controller will unbind. diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaLibrarySessionCallbackTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaLibrarySessionCallbackTest.java index 531e60d7a93..7c61699150c 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaLibrarySessionCallbackTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaLibrarySessionCallbackTest.java @@ -39,7 +39,7 @@ import org.junit.runner.RunWith; /** - * Tests for {@link MediaLibrarySession.MediaLibrarySessionCallback}. + * Tests for {@link MediaLibrarySession.Callback}. * *

    TODO: Make this class extend MediaSessionCallbackTest. TODO: Create MediaLibrarySessionTest * which extends MediaSessionTest. @@ -76,8 +76,8 @@ public void onSubscribe() throws Exception { LibraryParams testParams = MediaTestUtils.createLibraryParams(); CountDownLatch latch = new CountDownLatch(1); - MediaLibrarySession.MediaLibrarySessionCallback sessionCallback = - new MediaLibrarySession.MediaLibrarySessionCallback() { + MediaLibrarySession.Callback sessionCallback = + new MediaLibrarySession.Callback() { @Override public ListenableFuture> onSubscribe( MediaLibrarySession session, @@ -109,8 +109,8 @@ public void onUnsubscribe() throws Exception { String testParentId = "testUnsubscribeId"; CountDownLatch latch = new CountDownLatch(1); - MediaLibrarySession.MediaLibrarySessionCallback sessionCallback = - new MediaLibrarySession.MediaLibrarySessionCallback() { + MediaLibrarySession.Callback sessionCallback = + new MediaLibrarySession.Callback() { @Override public ListenableFuture> onUnsubscribe( MediaLibrarySession session, ControllerInfo browser, String parentId) { diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackTest.java index 4eeb55c75ca..a0333a569c0 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackTest.java @@ -51,7 +51,7 @@ import org.junit.Test; import org.junit.runner.RunWith; -/** Tests for {@link MediaSession.SessionCallback}. */ +/** Tests for {@link MediaSession.Callback}. */ @RunWith(AndroidJUnit4.class) @LargeTest public class MediaSessionCallbackTest { @@ -81,8 +81,8 @@ public void setUp() { @Test public void onPostConnect_afterConnected() throws Exception { CountDownLatch latch = new CountDownLatch(1); - MediaSession.SessionCallback callback = - new MediaSession.SessionCallback() { + MediaSession.Callback callback = + new MediaSession.Callback() { @Override public void onPostConnect(MediaSession session, ControllerInfo controller) { latch.countDown(); @@ -101,8 +101,8 @@ public void onPostConnect(MediaSession session, ControllerInfo controller) { @Test public void onPostConnect_afterConnectionRejected() throws Exception { CountDownLatch latch = new CountDownLatch(1); - MediaSession.SessionCallback callback = - new MediaSession.SessionCallback() { + MediaSession.Callback callback = + new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, ControllerInfo controller) { @@ -127,8 +127,8 @@ public void onPostConnect(MediaSession session, ControllerInfo controller) { @Test public void onCommandRequest() throws Exception { ArrayList commands = new ArrayList<>(); - MediaSession.SessionCallback callback = - new MediaSession.SessionCallback() { + MediaSession.Callback callback = + new MediaSession.Callback() { @Override public int onPlayerCommandRequest( MediaSession session, ControllerInfo controllerInfo, @Player.Command int command) { @@ -180,8 +180,8 @@ public void onCustomCommand() throws Exception { AtomicReference sessionCommandRef = new AtomicReference<>(); AtomicReference argsRef = new AtomicReference<>(); - MediaSession.SessionCallback callback = - new MediaSession.SessionCallback() { + MediaSession.Callback callback = + new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, ControllerInfo controller) { @@ -229,8 +229,8 @@ public void onSetMediaUri() throws Exception { CountDownLatch latch = new CountDownLatch(1); AtomicReference uriRef = new AtomicReference<>(); AtomicReference extrasRef = new AtomicReference<>(); - MediaSession.SessionCallback callback = - new MediaSession.SessionCallback() { + MediaSession.Callback callback = + new MediaSession.Callback() { @Override public int onSetMediaUri( MediaSession session, ControllerInfo controller, Uri uri, Bundle extras) { @@ -268,8 +268,8 @@ public void onSetRatingWithMediaId() throws Exception { CountDownLatch latch = new CountDownLatch(1); AtomicReference mediaIdRef = new AtomicReference<>(); AtomicReference ratingRef = new AtomicReference<>(); - MediaSession.SessionCallback callback = - new MediaSession.SessionCallback() { + MediaSession.Callback callback = + new MediaSession.Callback() { @Override public ListenableFuture onSetRating( MediaSession session, ControllerInfo controller, String mediaId, Rating rating) { @@ -306,8 +306,8 @@ public void onSetRatingWithoutMediaId() throws Exception { CountDownLatch latch = new CountDownLatch(1); AtomicReference ratingRef = new AtomicReference<>(); - MediaSession.SessionCallback callback = - new MediaSession.SessionCallback() { + MediaSession.Callback callback = + new MediaSession.Callback() { @Override public ListenableFuture onSetRating( MediaSession session, ControllerInfo controller, Rating rating) { @@ -508,7 +508,7 @@ public void onConnect() throws Exception { new MediaSession.Builder(context, player) .setId("testOnConnect") .setSessionCallback( - new MediaSession.SessionCallback() { + new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, ControllerInfo controller) { @@ -518,7 +518,7 @@ public MediaSession.ConnectionResult onConnect( } connectionHints.set(controller.getConnectionHints()); latch.countDown(); - return MediaSession.SessionCallback.super.onConnect(session, controller); + return MediaSession.Callback.super.onConnect(session, controller); } }) .build()); @@ -539,7 +539,7 @@ public void onDisconnected() throws Exception { new MediaSession.Builder(context, player) .setId("testOnDisconnected") .setSessionCallback( - new MediaSession.SessionCallback() { + new MediaSession.Callback() { @Override public void onDisconnected(MediaSession session, ControllerInfo controller) { if (TextUtils.equals( diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java index 4e9b368b878..c73ea2964d8 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java @@ -48,7 +48,6 @@ import androidx.media3.common.util.Log; import androidx.media3.common.util.Util; import androidx.media3.session.MediaSession.ControllerInfo; -import androidx.media3.session.MediaSession.SessionCallback; import androidx.media3.test.session.common.HandlerThreadTestRule; import androidx.media3.test.session.common.MainLooperTestRule; import androidx.media3.test.session.common.PollingCheck; @@ -69,7 +68,7 @@ import org.junit.Test; import org.junit.runner.RunWith; -/** Tests for {@link SessionCallback} working with {@link MediaControllerCompat}. */ +/** Tests for {@link MediaSession.Callback} working with {@link MediaControllerCompat}. */ @RunWith(AndroidJUnit4.class) @LargeTest public class MediaSessionCallbackWithMediaControllerCompatTest { @@ -117,7 +116,7 @@ public void onDisconnected_afterTimeout_isCalled() throws Exception { new MediaSession.Builder(context, player) .setId("onDisconnected_afterTimeout_isCalled") .setSessionCallback( - new SessionCallback() { + new MediaSession.Callback() { private ControllerInfo connectedController; @Override @@ -125,7 +124,7 @@ public MediaSession.ConnectionResult onConnect( MediaSession session, ControllerInfo controller) { if (EXPECTED_CONTROLLER_PACKAGE_NAME.equals(controller.getPackageName())) { connectedController = controller; - return SessionCallback.super.onConnect(session, controller); + return MediaSession.Callback.super.onConnect(session, controller); } return MediaSession.ConnectionResult.reject(); } @@ -156,7 +155,7 @@ public void onConnected_afterDisconnectedByTimeout_isCalled() throws Exception { new MediaSession.Builder(context, player) .setId("onConnected_afterDisconnectedByTimeout_isCalled") .setSessionCallback( - new SessionCallback() { + new MediaSession.Callback() { private ControllerInfo connectedController; @Override @@ -165,7 +164,7 @@ public MediaSession.ConnectionResult onConnect( if (EXPECTED_CONTROLLER_PACKAGE_NAME.equals(controller.getPackageName())) { connectedController = controller; connectedLatch.countDown(); - return SessionCallback.super.onConnect(session, controller); + return MediaSession.Callback.super.onConnect(session, controller); } return MediaSession.ConnectionResult.reject(); } @@ -657,14 +656,14 @@ public void sendCommand() throws Exception { testArgs.putString("args", "test_args"); CountDownLatch latch = new CountDownLatch(1); - SessionCallback callback = - new SessionCallback() { + MediaSession.Callback callback = + new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, ControllerInfo controller) { if (EXPECTED_CONTROLLER_PACKAGE_NAME.equals(controller.getPackageName())) { MediaSession.ConnectionResult commands = - SessionCallback.super.onConnect(session, controller); + MediaSession.Callback.super.onConnect(session, controller); SessionCommands.Builder builder = commands.availableSessionCommands.buildUpon(); builder.add(new SessionCommand(testCommand, /* extras= */ Bundle.EMPTY)); return MediaSession.ConnectionResult.accept( @@ -708,14 +707,14 @@ public void sendCustomCommand() throws Exception { testArgs.putString("args", "test_custom_args"); SessionCommand customCommand = new SessionCommand(testCommand, /* extras= */ Bundle.EMPTY); CountDownLatch latch = new CountDownLatch(1); - SessionCallback callback = - new SessionCallback() { + MediaSession.Callback callback = + new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, ControllerInfo controller) { if (EXPECTED_CONTROLLER_PACKAGE_NAME.equals(controller.getPackageName())) { MediaSession.ConnectionResult connectionResult = - SessionCallback.super.onConnect(session, controller); + MediaSession.Callback.super.onConnect(session, controller); SessionCommands.Builder builder = connectionResult.availableSessionCommands.buildUpon().add(customCommand); return MediaSession.ConnectionResult.accept( @@ -755,8 +754,8 @@ public ListenableFuture onCustomCommand( @Test public void controllerCallback_sessionRejects() throws Exception { - SessionCallback sessionCallback = - new SessionCallback() { + MediaSession.Callback sessionCallback = + new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, ControllerInfo controller) { @@ -785,7 +784,7 @@ public void prepareFromMediaUri() throws Exception { Bundle bundle = new Bundle(); bundle.putString("key", "value"); CountDownLatch latch = new CountDownLatch(1); - SessionCallback callback = + MediaSession.Callback callback = new TestSessionCallback() { @Override public int onSetMediaUri( @@ -817,7 +816,7 @@ public void playFromMediaUri() throws Exception { Bundle bundle = new Bundle(); bundle.putString("key", "value"); CountDownLatch latch = new CountDownLatch(1); - SessionCallback callback = + MediaSession.Callback callback = new TestSessionCallback() { @Override public int onSetMediaUri( @@ -849,7 +848,7 @@ public void prepareFromMediaId() throws Exception { Bundle bundle = new Bundle(); bundle.putString("key", "value"); CountDownLatch latch = new CountDownLatch(1); - SessionCallback callback = + MediaSession.Callback callback = new TestSessionCallback() { @Override public int onSetMediaUri( @@ -882,7 +881,7 @@ public void playFromMediaId() throws Exception { Bundle bundle = new Bundle(); bundle.putString("key", "value"); CountDownLatch latch = new CountDownLatch(1); - SessionCallback callback = + MediaSession.Callback callback = new TestSessionCallback() { @Override public int onSetMediaUri( @@ -915,7 +914,7 @@ public void prepareFromSearch() throws Exception { Bundle bundle = new Bundle(); bundle.putString("key", "value"); CountDownLatch latch = new CountDownLatch(1); - SessionCallback callback = + MediaSession.Callback callback = new TestSessionCallback() { @Override public int onSetMediaUri( @@ -948,7 +947,7 @@ public void playFromSearch() throws Exception { Bundle bundle = new Bundle(); bundle.putString("key", "value"); CountDownLatch latch = new CountDownLatch(1); - SessionCallback callback = + MediaSession.Callback callback = new TestSessionCallback() { @Override public int onSetMediaUri( @@ -983,7 +982,7 @@ public void setRating() throws Exception { String mediaId = "media_id"; CountDownLatch latch = new CountDownLatch(1); - SessionCallback callback = + MediaSession.Callback callback = new TestSessionCallback() { @Override public ListenableFuture onSetRating( @@ -1020,7 +1019,7 @@ public ListenableFuture onSetRating( public void onCommandRequest() throws Exception { ArrayList commands = new ArrayList<>(); CountDownLatch latchForPause = new CountDownLatch(1); - SessionCallback callback = + MediaSession.Callback callback = new TestSessionCallback() { @Override public int onPlayerCommandRequest( @@ -1128,13 +1127,13 @@ public void closedSession_ignoresController() throws Exception { assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_PLAY)).isFalse(); } - private static class TestSessionCallback implements SessionCallback { + private static class TestSessionCallback implements MediaSession.Callback { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, ControllerInfo controller) { if (EXPECTED_CONTROLLER_PACKAGE_NAME.equals(controller.getPackageName())) { - return SessionCallback.super.onConnect(session, controller); + return MediaSession.Callback.super.onConnect(session, controller); } return MediaSession.ConnectionResult.reject(); } diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionKeyEventTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionKeyEventTest.java index b1b14a3aa5e..2668cbba068 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionKeyEventTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionKeyEventTest.java @@ -202,13 +202,13 @@ private void dispatchMediaKeyEvent(int keyCode, boolean doubleTap) { } } - private static class TestSessionCallback implements MediaSession.SessionCallback { + private static class TestSessionCallback implements MediaSession.Callback { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, ControllerInfo controller) { if (expectedControllerPackageName.equals(controller.getPackageName())) { - return MediaSession.SessionCallback.super.onConnect(session, controller); + return MediaSession.Callback.super.onConnect(session, controller); } return MediaSession.ConnectionResult.reject(); } diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java index f0f129a49ff..93fc0b61ff3 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java @@ -300,7 +300,7 @@ private interface PermissionTestTask { void run(RemoteMediaController controller) throws Exception; } - private static class MySessionCallback implements MediaSession.SessionCallback { + private static class MySessionCallback implements MediaSession.Callback { public CountDownLatch countDownLatch; public @Player.Command int command; @@ -334,8 +334,7 @@ public int onPlayerCommandRequest( onCommandRequestCalled = true; this.command = command; countDownLatch.countDown(); - return MediaSession.SessionCallback.super.onPlayerCommandRequest( - session, controller, command); + return MediaSession.Callback.super.onPlayerCommandRequest(session, controller, command); } @Override diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java index 442a84f3c25..c1759001dad 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java @@ -67,12 +67,12 @@ public void setUp() throws Exception { session = new MediaSession.Builder(ApplicationProvider.getApplicationContext(), player) .setSessionCallback( - new MediaSession.SessionCallback() { + new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, MediaSession.ControllerInfo controller) { if (SUPPORT_APP_PACKAGE_NAME.equals(controller.getPackageName())) { - return MediaSession.SessionCallback.super.onConnect(session, controller); + return MediaSession.Callback.super.onConnect(session, controller); } return MediaSession.ConnectionResult.reject(); } diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceNotificationTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceNotificationTest.java index 2e90866f72c..4180c3a3579 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceNotificationTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceNotificationTest.java @@ -21,7 +21,7 @@ import android.content.Context; import androidx.media3.common.MediaMetadata; import androidx.media3.common.util.Util; -import androidx.media3.session.MediaLibraryService.MediaLibrarySession.MediaLibrarySessionCallback; +import androidx.media3.session.MediaLibraryService.MediaLibrarySession; import androidx.media3.session.MediaSession.ControllerInfo; import androidx.media3.test.session.common.HandlerThreadTestRule; import androidx.media3.test.session.common.MainLooperTestRule; @@ -67,8 +67,8 @@ public class MediaSessionServiceNotificationTest { public void setUp() throws Exception { context = ApplicationProvider.getApplicationContext(); - MediaLibrarySessionCallback sessionCallback = - new MediaLibrarySessionCallback() { + MediaLibrarySession.Callback sessionCallback = + new MediaLibrarySession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, ControllerInfo controller) { @@ -78,7 +78,7 @@ public MediaSession.ConnectionResult onConnect( session.setPlayer(player); } if (SUPPORT_APP_PACKAGE_NAME.equals(controller.getPackageName())) { - return MediaLibrarySessionCallback.super.onConnect(session, controller); + return MediaLibrarySession.Callback.super.onConnect(session, controller); } else { return MediaSession.ConnectionResult.reject(); } diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceTest.java index 1cccd7da4ea..bac2dc9b9eb 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceTest.java @@ -113,8 +113,7 @@ public MediaSession onGetSession(ControllerInfo controllerInfo) { /** * Tests whether the controller is connected to the session which is returned from {@link * MediaSessionService#onGetSession(ControllerInfo)}. Also checks whether the connection hints are - * properly passed to {@link MediaSession.SessionCallback#onConnect(MediaSession, - * ControllerInfo)}. + * properly passed to {@link MediaSession.Callback#onConnect(MediaSession, ControllerInfo)}. */ @Test public void onGetSession_returnsSession() throws Exception { @@ -129,7 +128,7 @@ public void onGetSession_returnsSession() throws Exception { context, new MockPlayer.Builder().setApplicationLooper(looper).build()) .setId("testOnGetSession_returnsSession") .setSessionCallback( - new MediaSession.SessionCallback() { + new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, ControllerInfo controller) { diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java index e79f809572d..b721691eef6 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java @@ -35,7 +35,6 @@ import androidx.media3.common.MediaLibraryInfo; import androidx.media3.common.util.Log; import androidx.media3.common.util.Util; -import androidx.media3.session.MediaSession.SessionCallback; import androidx.media3.test.session.common.HandlerThreadTestRule; import androidx.media3.test.session.common.MainLooperTestRule; import androidx.media3.test.session.common.TestHandler; @@ -86,13 +85,13 @@ public void setUp() throws Exception { new MediaSession.Builder(context, player) .setId(TAG) .setSessionCallback( - new SessionCallback() { + new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, MediaSession.ControllerInfo controller) { if (TextUtils.equals( context.getPackageName(), controller.getPackageName())) { - return SessionCallback.super.onConnect(session, controller); + return MediaSession.Callback.super.onConnect(session, controller); } return MediaSession.ConnectionResult.reject(); } @@ -322,8 +321,8 @@ public void creatingTwoSessionWithSameId() { public void sendCustomCommand_onConnect() throws Exception { CountDownLatch latch = new CountDownLatch(1); SessionCommand testCommand = new SessionCommand("test", /* extras= */ Bundle.EMPTY); - SessionCallback testSessionCallback = - new SessionCallback() { + MediaSession.Callback testSessionCallback = + new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, MediaSession.ControllerInfo controller) { @@ -336,7 +335,7 @@ public MediaSession.ConnectionResult onConnect( } catch (ExecutionException | InterruptedException | TimeoutException e) { assertWithMessage("Fail to get result of the returned future.").fail(); } - return SessionCallback.super.onConnect(session, controller); + return MediaSession.Callback.super.onConnect(session, controller); } @Override @@ -374,13 +373,13 @@ public void getSessionCompatToken_returnsCompatibleWithMediaControllerCompat() t new MediaSession.Builder(context, player) .setId("getSessionCompatToken_returnsCompatibleWithMediaControllerCompat") .setSessionCallback( - new SessionCallback() { + new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, MediaSession.ControllerInfo controller) { if (TextUtils.equals( expectedControllerCompatPackageName, controller.getPackageName())) { - return SessionCallback.super.onConnect(session, controller); + return MediaSession.Callback.super.onConnect(session, controller); } return MediaSession.ConnectionResult.reject(); } @@ -412,14 +411,14 @@ public void onSessionReady() { public void getControllerVersion() throws Exception { CountDownLatch connectedLatch = new CountDownLatch(1); AtomicInteger controllerVersionRef = new AtomicInteger(); - SessionCallback sessionCallback = - new SessionCallback() { + MediaSession.Callback sessionCallback = + new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, MediaSession.ControllerInfo controller) { controllerVersionRef.set(controller.getControllerVersion()); connectedLatch.countDown(); - return SessionCallback.super.onConnect(session, controller); + return MediaSession.Callback.super.onConnect(session, controller); } }; diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionWithMediaControllerCompatTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionWithMediaControllerCompatTest.java index b88e9027553..b47d1d61002 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionWithMediaControllerCompatTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionWithMediaControllerCompatTest.java @@ -66,14 +66,14 @@ public void setUp() throws Exception { public void getControllerVersion() throws Exception { CountDownLatch connectedLatch = new CountDownLatch(1); AtomicInteger controllerVersionRef = new AtomicInteger(); - MediaSession.SessionCallback callback = - new MediaSession.SessionCallback() { + MediaSession.Callback callback = + new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, MediaSession.ControllerInfo controller) { controllerVersionRef.set(controller.getControllerVersion()); connectedLatch.countDown(); - return MediaSession.SessionCallback.super.onConnect(session, controller); + return MediaSession.Callback.super.onConnect(session, controller); } }; diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java index a0e11fcab31..f7e3bfdf03b 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java @@ -180,7 +180,7 @@ public void create(String sessionId, Bundle tokenExtras) throws RemoteException case TEST_CONTROLLER_LISTENER_SESSION_REJECTS: { builder.setSessionCallback( - new MediaSession.SessionCallback() { + new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, ControllerInfo controller) { @@ -195,7 +195,7 @@ public MediaSession.ConnectionResult onConnect( SessionCommands.CREATOR.fromBundle( tokenExtras.getBundle(KEY_AVAILABLE_SESSION_COMMANDS)); builder.setSessionCallback( - new MediaSession.SessionCallback() { + new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, ControllerInfo controller) { diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaLibraryService.java b/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaLibraryService.java index ab2539a1ec6..b8f6a4cfd83 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaLibraryService.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaLibraryService.java @@ -64,7 +64,7 @@ import androidx.media3.common.util.Log; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; -import androidx.media3.session.MediaLibraryService.MediaLibrarySession.MediaLibrarySessionCallback; +import androidx.media3.session.MediaLibraryService.MediaLibrarySession; import androidx.media3.session.MediaSession.ControllerInfo; import androidx.media3.test.session.common.TestHandler; import androidx.media3.test.session.common.TestUtils; @@ -142,7 +142,7 @@ public MediaLibrarySession onGetSession(ControllerInfo controllerInfo) { MockPlayer player = new MockPlayer.Builder().setApplicationLooper(handler.getLooper()).build(); - MediaLibrarySessionCallback callback = registry.getSessionCallback(); + MediaLibrarySession.Callback callback = registry.getSessionCallback(); session = new MediaLibrarySession.Builder( MockMediaLibraryService.this, @@ -169,7 +169,7 @@ public static void setAssertLibraryParams(@Nullable LibraryParams expectedParams } } - private class TestLibrarySessionCallback implements MediaLibrarySessionCallback { + private class TestLibrarySessionCallback implements MediaLibrarySession.Callback { @Override public MediaSession.ConnectionResult onConnect( @@ -178,7 +178,7 @@ public MediaSession.ConnectionResult onConnect( return MediaSession.ConnectionResult.reject(); } MediaSession.ConnectionResult connectionResult = - checkNotNull(MediaLibrarySessionCallback.super.onConnect(session, controller)); + checkNotNull(MediaLibrarySession.Callback.super.onConnect(session, controller)); SessionCommands.Builder builder = connectionResult.availableSessionCommands.buildUpon(); builder.add(new SessionCommand(CUSTOM_ACTION, /* extras= */ Bundle.EMPTY)); builder.add(new SessionCommand(CUSTOM_ACTION_ASSERT_PARAMS, /* extras= */ Bundle.EMPTY)); diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaSessionService.java b/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaSessionService.java index 540523f6cb7..4fa7edfcfc9 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaSessionService.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaSessionService.java @@ -60,7 +60,7 @@ public MediaSession onGetSession(ControllerInfo controllerInfo) { } if (session == null) { - MediaSession.SessionCallback callback = registry.getSessionCallback(); + MediaSession.Callback callback = registry.getSessionCallback(); MockPlayer player = new MockPlayer.Builder().setApplicationLooper(handlerThread.getLooper()).build(); session = @@ -72,13 +72,13 @@ public MediaSession onGetSession(ControllerInfo controllerInfo) { return session; } - private static class TestSessionCallback implements MediaSession.SessionCallback { + private static class TestSessionCallback implements MediaSession.Callback { @Override public MediaSession.ConnectionResult onConnect( MediaSession session, ControllerInfo controller) { if (TextUtils.equals(SUPPORT_APP_PACKAGE_NAME, controller.getPackageName())) { - return MediaSession.SessionCallback.super.onConnect(session, controller); + return MediaSession.Callback.super.onConnect(session, controller); } return MediaSession.ConnectionResult.reject(); } diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/TestServiceRegistry.java b/libraries/test_session_current/src/main/java/androidx/media3/session/TestServiceRegistry.java index b23acc938d6..438bd687218 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/TestServiceRegistry.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/TestServiceRegistry.java @@ -20,7 +20,7 @@ import androidx.annotation.GuardedBy; import androidx.annotation.Nullable; import androidx.media3.common.util.UnstableApi; -import androidx.media3.session.MediaLibraryService.MediaLibrarySession.MediaLibrarySessionCallback; +import androidx.media3.session.MediaLibraryService.MediaLibrarySession; import androidx.media3.session.MediaSession.ControllerInfo; import java.util.List; @@ -40,7 +40,7 @@ public class TestServiceRegistry { private MediaSessionService service; @GuardedBy("TestServiceRegistry.class") - private MediaLibrarySessionCallback sessionCallback; + private MediaLibrarySession.Callback sessionCallback; @GuardedBy("TestServiceRegistry.class") private SessionServiceCallback sessionServiceCallback; @@ -82,13 +82,13 @@ public void setSessionServiceCallback(SessionServiceCallback sessionServiceCallb } } - public void setSessionCallback(MediaLibrarySessionCallback sessionCallback) { + public void setSessionCallback(MediaLibrarySession.Callback sessionCallback) { synchronized (TestServiceRegistry.class) { this.sessionCallback = sessionCallback; } } - public MediaLibrarySessionCallback getSessionCallback() { + public MediaLibrarySession.Callback getSessionCallback() { synchronized (TestServiceRegistry.class) { return sessionCallback; } From 2a45dd3930ec846aae3b233a37b98b82ecc2c00a Mon Sep 17 00:00:00 2001 From: samrobinson Date: Wed, 18 May 2022 16:15:24 +0100 Subject: [PATCH 094/182] Rename expected to reference in SsimHelper. Reference is clearer when used in conjunction with actual, and matches other SSIM documentation. PiperOrigin-RevId: 449486177 --- .../media3/transformer/SsimHelper.java | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/SsimHelper.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/SsimHelper.java index 0983c7eb5cf..8d9bb059242 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/SsimHelper.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/SsimHelper.java @@ -63,44 +63,44 @@ public final class SsimHelper { private static final int DECODED_IMAGE_CHANNEL_COUNT = 3; /** - * Returns the mean SSIM score between the expected and the actual video. + * Returns the mean SSIM score between the reference and the actual video. * *

    The method compares every {@link #DEFAULT_COMPARISON_INTERVAL n-th} frame from both videos. * * @param context The {@link Context}. - * @param expectedVideoPath The path to the expected video file, must be in {@link + * @param referenceVideoPath The path to the reference video file, must be in {@link * Context#getAssets() Assets}. * @param actualVideoPath The path to the actual video file. * @throws IOException When unable to open the provided video paths. */ - public static double calculate(Context context, String expectedVideoPath, String actualVideoPath) + public static double calculate(Context context, String referenceVideoPath, String actualVideoPath) throws IOException, InterruptedException { - VideoDecodingWrapper expectedDecodingWrapper = - new VideoDecodingWrapper(context, expectedVideoPath, DEFAULT_COMPARISON_INTERVAL); + VideoDecodingWrapper referenceDecodingWrapper = + new VideoDecodingWrapper(context, referenceVideoPath, DEFAULT_COMPARISON_INTERVAL); VideoDecodingWrapper actualDecodingWrapper = new VideoDecodingWrapper(context, actualVideoPath, DEFAULT_COMPARISON_INTERVAL); - @Nullable byte[] expectedLumaBuffer = null; + @Nullable byte[] referenceLumaBuffer = null; @Nullable byte[] actualLumaBuffer = null; double accumulatedSsim = 0.0; int comparedImagesCount = 0; try { while (true) { - @Nullable Image expectedImage = expectedDecodingWrapper.runUntilComparisonFrameOrEnded(); + @Nullable Image referenceImage = referenceDecodingWrapper.runUntilComparisonFrameOrEnded(); @Nullable Image actualImage = actualDecodingWrapper.runUntilComparisonFrameOrEnded(); - if (expectedImage == null) { + if (referenceImage == null) { assertThat(actualImage).isNull(); break; } checkNotNull(actualImage); - int width = expectedImage.getWidth(); - int height = expectedImage.getHeight(); + int width = referenceImage.getWidth(); + int height = referenceImage.getHeight(); assertThat(actualImage.getWidth()).isEqualTo(width); assertThat(actualImage.getHeight()).isEqualTo(height); - if (expectedLumaBuffer == null || expectedLumaBuffer.length != width * height) { - expectedLumaBuffer = new byte[width * height]; + if (referenceLumaBuffer == null || referenceLumaBuffer.length != width * height) { + referenceLumaBuffer = new byte[width * height]; } if (actualLumaBuffer == null || actualLumaBuffer.length != width * height) { actualLumaBuffer = new byte[width * height]; @@ -108,20 +108,20 @@ public static double calculate(Context context, String expectedVideoPath, String try { accumulatedSsim += SsimCalculator.calculate( - extractLumaChannelBuffer(expectedImage, expectedLumaBuffer), + extractLumaChannelBuffer(referenceImage, referenceLumaBuffer), extractLumaChannelBuffer(actualImage, actualLumaBuffer), /* offset= */ 0, /* stride= */ width, width, height); } finally { - expectedImage.close(); + referenceImage.close(); actualImage.close(); } comparedImagesCount++; } } finally { - expectedDecodingWrapper.close(); + referenceDecodingWrapper.close(); actualDecodingWrapper.close(); } assertWithMessage("Input had no frames.").that(comparedImagesCount).isGreaterThan(0); @@ -347,7 +347,7 @@ private static final class SsimCalculator { /** * Calculates the Structural Similarity Index (SSIM) between two images. * - * @param expected The luma channel (Y) bitmap of the expected image. + * @param reference The luma channel (Y) bitmap of the reference image. * @param actual The luma channel (Y) bitmap of the actual image. * @param offset The offset. * @param stride The stride of the bitmap. @@ -356,23 +356,23 @@ private static final class SsimCalculator { * @return The SSIM score between the input images. */ public static double calculate( - byte[] expected, byte[] actual, int offset, int stride, int width, int height) { + byte[] reference, byte[] actual, int offset, int stride, int width, int height) { double totalSsim = 0; int windowsCount = 0; - // X refers to the expected image, while Y refers to the actual image. + // X refers to the reference image, while Y refers to the actual image. for (int currentWindowY = 0; currentWindowY < height; currentWindowY += WINDOW_SIZE) { int windowHeight = computeWindowSize(currentWindowY, height); for (int currentWindowX = 0; currentWindowX < width; currentWindowX += WINDOW_SIZE) { windowsCount++; int windowWidth = computeWindowSize(currentWindowX, width); int start = getGlobalCoordinate(currentWindowX, currentWindowY, stride, offset); - double meanX = getMean(expected, start, stride, windowWidth, windowHeight); + double meanX = getMean(reference, start, stride, windowWidth, windowHeight); double meanY = getMean(actual, start, stride, windowWidth, windowHeight); double[] variances = getVariancesAndCovariance( - expected, actual, meanX, meanY, start, stride, windowWidth, windowHeight); + reference, actual, meanX, meanY, start, stride, windowWidth, windowHeight); // varX is the variance of window X, covXY is the covariance between window X and Y. double varX = variances[0]; double varY = variances[1]; From cd142872bb25a99d3f211b84a2e4f18480d89a67 Mon Sep 17 00:00:00 2001 From: ibaker Date: Wed, 18 May 2022 16:48:33 +0100 Subject: [PATCH 095/182] Rename `MediaSession.Builder.setSessionCallback` to `setCallback` Follow-up to https://github.com/androidx/media/commit/c78c1f5891afafebf70acdd678c32110b5092f98 PiperOrigin-RevId: 449492810 --- RELEASENOTES.md | 10 +-- .../androidx/media3/session/MediaSession.java | 10 +-- .../session/MediaSessionCallbackTest.java | 18 ++--- ...CallbackWithMediaControllerCompatTest.java | 73 +++++++++---------- .../session/MediaSessionKeyEventTest.java | 2 +- .../session/MediaSessionPermissionTest.java | 5 +- .../session/MediaSessionPlayerTest.java | 2 +- .../session/MediaSessionServiceTest.java | 2 +- .../media3/session/MediaSessionTest.java | 10 +-- ...aSessionWithMediaControllerCompatTest.java | 5 +- .../session/MediaSessionProviderService.java | 4 +- .../session/MockMediaSessionService.java | 2 +- 12 files changed, 66 insertions(+), 77 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index de4bbc7031b..6fddb54979f 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -15,7 +15,7 @@ * Fix bug that tracks are reset too often when using `MergingMediaSource`, for example when side-loading subtitles and changing the selected subtitle mid-playback - ([#10248](https://github.com/google/ExoPlayer/issues/10248)). + ([#10248](https://github.com/google/ExoPlayer/issues/10248)). * Track selection: * Flatten `TrackSelectionOverrides` class into `TrackSelectionParameters`, and promote `TrackSelectionOverride` to a top level class. @@ -98,10 +98,10 @@ change([#51](https://github.com/androidx/media/issues/51)). * Fix NPE in MediaControllerImplBase after releasing controller ([#74](https://github.com/androidx/media/issues/74)). - * Rename `MediaSession.MediaSessionCallback` to `MediaSession.Callback` - and `MediaLibrarySession.MediaLibrarySession` to - `MediaLibrarySession.Callback` for consistency with other nested - listener and callbacks like `Player.Listener`. + * Rename `MediaSession.MediaSessionCallback` to `MediaSession.Callback`, + `MediaLibrarySession.MediaLibrarySessionCallback` to + `MediaLibrarySession.Callback` and + `MediaSession.Builder.setSessionCallback` to `setCallback`. * Data sources: * Rename `DummyDataSource` to `PlaceHolderDataSource`. * Workaround OkHttp interrupt handling. diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java index b6d82b2c82e..71f707c494c 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java @@ -280,8 +280,8 @@ public Builder setId(String id) { * @return The builder to allow chaining. */ @Override - public Builder setSessionCallback(Callback callback) { - return super.setSessionCallback(callback); + public Builder setCallback(Callback callback) { + return super.setCallback(callback); } /** @@ -769,8 +769,8 @@ private Uri getUri() { *

    The callback methods will be called from the application thread associated with the {@link * Player#getApplicationLooper() application looper} of the underlying {@link Player}. * - *

    If it's not set by {@link MediaSession.Builder#setSessionCallback(Callback)}, the session - * will accept all controllers and all incoming commands by default. + *

    If it's not set by {@link MediaSession.Builder#setCallback(Callback)}, the session will + * accept all controllers and all incoming commands by default. */ public interface Callback { @@ -1227,7 +1227,7 @@ public U setId(String id) { } @SuppressWarnings("unchecked") - /* package */ U setSessionCallback(C callback) { + /* package */ U setCallback(C callback) { this.callback = checkNotNull(callback); return (U) this; } diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackTest.java index a0333a569c0..4175a5318c1 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackTest.java @@ -91,7 +91,7 @@ public void onPostConnect(MediaSession session, ControllerInfo controller) { MediaSession session = sessionTestRule.ensureReleaseAfterTest( new MediaSession.Builder(context, player) - .setSessionCallback(callback) + .setCallback(callback) .setId("testOnPostConnect_afterConnected") .build()); controllerTestRule.createRemoteController(session.getToken()); @@ -117,7 +117,7 @@ public void onPostConnect(MediaSession session, ControllerInfo controller) { MediaSession session = sessionTestRule.ensureReleaseAfterTest( new MediaSession.Builder(context, player) - .setSessionCallback(callback) + .setCallback(callback) .setId("testOnPostConnect_afterConnectionRejected") .build()); controllerTestRule.createRemoteController(session.getToken()); @@ -149,7 +149,7 @@ public int onPlayerCommandRequest( MediaSession session = sessionTestRule.ensureReleaseAfterTest( new MediaSession.Builder(context, player) - .setSessionCallback(callback) + .setCallback(callback) .setId("testOnCommandRequest") .build()); RemoteMediaController controller = @@ -210,7 +210,7 @@ public ListenableFuture onCustomCommand( MediaSession session = sessionTestRule.ensureReleaseAfterTest( new MediaSession.Builder(context, player) - .setSessionCallback(callback) + .setCallback(callback) .setId("testOnCustomCommand") .build()); RemoteMediaController controller = @@ -247,7 +247,7 @@ public int onSetMediaUri( MediaSession session = sessionTestRule.ensureReleaseAfterTest( new MediaSession.Builder(context, player) - .setSessionCallback(callback) + .setCallback(callback) .setId("testOnSetMediaUri") .build()); RemoteMediaController controller = @@ -287,7 +287,7 @@ public ListenableFuture onSetRating( MediaSession session = sessionTestRule.ensureReleaseAfterTest( new MediaSession.Builder(context, player) - .setSessionCallback(callback) + .setCallback(callback) .setId("testOnSetRating") .build()); RemoteMediaController controller = @@ -323,7 +323,7 @@ public ListenableFuture onSetRating( MediaSession session = sessionTestRule.ensureReleaseAfterTest( new MediaSession.Builder(context, player) - .setSessionCallback(callback) + .setCallback(callback) .setId("testOnSetRating") .build()); RemoteMediaController controller = @@ -507,7 +507,7 @@ public void onConnect() throws Exception { sessionTestRule.ensureReleaseAfterTest( new MediaSession.Builder(context, player) .setId("testOnConnect") - .setSessionCallback( + .setCallback( new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( @@ -538,7 +538,7 @@ public void onDisconnected() throws Exception { sessionTestRule.ensureReleaseAfterTest( new MediaSession.Builder(context, player) .setId("testOnDisconnected") - .setSessionCallback( + .setCallback( new MediaSession.Callback() { @Override public void onDisconnected(MediaSession session, ControllerInfo controller) { diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java index c73ea2964d8..e2359734a2b 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java @@ -115,7 +115,7 @@ public void onDisconnected_afterTimeout_isCalled() throws Exception { session = new MediaSession.Builder(context, player) .setId("onDisconnected_afterTimeout_isCalled") - .setSessionCallback( + .setCallback( new MediaSession.Callback() { private ControllerInfo connectedController; @@ -154,7 +154,7 @@ public void onConnected_afterDisconnectedByTimeout_isCalled() throws Exception { session = new MediaSession.Builder(context, player) .setId("onConnected_afterDisconnectedByTimeout_isCalled") - .setSessionCallback( + .setCallback( new MediaSession.Callback() { private ControllerInfo connectedController; @@ -197,7 +197,7 @@ public void play() throws Exception { session = new MediaSession.Builder(context, player) .setId("play") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -213,7 +213,7 @@ public void pause() throws Exception { session = new MediaSession.Builder(context, player) .setId("pause") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -229,7 +229,7 @@ public void stop() throws Exception { session = new MediaSession.Builder(context, player) .setId("stop") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -245,7 +245,7 @@ public void prepare() throws Exception { session = new MediaSession.Builder(context, player) .setId("prepare") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -261,7 +261,7 @@ public void seekTo() throws Exception { session = new MediaSession.Builder(context, player) .setId("seekTo") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -279,7 +279,7 @@ public void setPlaybackSpeed_callsSetPlaybackSpeed() throws Exception { session = new MediaSession.Builder(context, player) .setId("setPlaybackSpeed") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -297,7 +297,7 @@ public void addQueueItem() throws Exception { session = new MediaSession.Builder(context, player) .setId("addQueueItem") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -323,7 +323,7 @@ public void addQueueItemWithIndex() throws Exception { session = new MediaSession.Builder(context, player) .setId("addQueueItemWithIndex") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -351,7 +351,7 @@ public void removeQueueItem() throws Exception { session = new MediaSession.Builder(context, player) .setId("removeQueueItem") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -380,7 +380,7 @@ public void skipToPrevious() throws Exception { session = new MediaSession.Builder(context, player) .setId("skipToPrevious") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -396,7 +396,7 @@ public void skipToNext() throws Exception { session = new MediaSession.Builder(context, player) .setId("skipToNext") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -412,7 +412,7 @@ public void skipToQueueItem() throws Exception { session = new MediaSession.Builder(context, player) .setId("skipToQueueItem") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -439,7 +439,7 @@ public void setShuffleMode() throws Exception { session = new MediaSession.Builder(context, player) .setId("setShuffleMode") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -457,7 +457,7 @@ public void setRepeatMode() throws Exception { session = new MediaSession.Builder(context, player) .setId("setRepeatMode") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -475,7 +475,7 @@ public void setVolumeTo_setsDeviceVolume() throws Exception { session = new MediaSession.Builder(context, player) .setId("setVolumeTo_setsDeviceVolume") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -503,7 +503,7 @@ public void adjustVolume_raise_increasesDeviceVolume() throws Exception { session = new MediaSession.Builder(context, player) .setId("adjustVolume_raise_increasesDeviceVolume") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -529,7 +529,7 @@ public void adjustVolume_lower_decreasesDeviceVolume() throws Exception { session = new MediaSession.Builder(context, player) .setId("adjustVolume_lower_decreasesDeviceVolume") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -560,7 +560,7 @@ public void setVolumeWithLocalVolume() throws Exception { session = new MediaSession.Builder(context, player) .setId("setVolumeWithLocalVolume") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -608,7 +608,7 @@ public void adjustVolumeWithLocalVolume() throws Exception { session = new MediaSession.Builder(context, player) .setId("adjustVolumeWithLocalVolume") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -689,7 +689,7 @@ public ListenableFuture onCustomCommand( session = new MediaSession.Builder(context, player) .setId("sendCommand") - .setSessionCallback(callback) + .setCallback(callback) .build(); controller = new RemoteMediaControllerCompat( @@ -741,7 +741,7 @@ public ListenableFuture onCustomCommand( session = new MediaSession.Builder(context, player) .setId("sendCommand") - .setSessionCallback(callback) + .setCallback(callback) .build(); controller = new RemoteMediaControllerCompat( @@ -765,7 +765,7 @@ public MediaSession.ConnectionResult onConnect( session = new MediaSession.Builder(context, player) .setId("controllerCallback_sessionRejects") - .setSessionCallback(sessionCallback) + .setCallback(sessionCallback) .build(); // Session will not accept the controller's commands. controller = @@ -798,7 +798,7 @@ public int onSetMediaUri( session = new MediaSession.Builder(context, player) .setId("prepareFromMediaUri") - .setSessionCallback(callback) + .setCallback(callback) .build(); controller = new RemoteMediaControllerCompat( @@ -830,7 +830,7 @@ public int onSetMediaUri( session = new MediaSession.Builder(context, player) .setId("playFromMediaUri") - .setSessionCallback(callback) + .setCallback(callback) .build(); controller = new RemoteMediaControllerCompat( @@ -863,7 +863,7 @@ public int onSetMediaUri( session = new MediaSession.Builder(context, player) .setId("prepareFromMediaId") - .setSessionCallback(callback) + .setCallback(callback) .build(); controller = new RemoteMediaControllerCompat( @@ -896,7 +896,7 @@ public int onSetMediaUri( session = new MediaSession.Builder(context, player) .setId("playFromMediaId") - .setSessionCallback(callback) + .setCallback(callback) .build(); controller = new RemoteMediaControllerCompat( @@ -929,7 +929,7 @@ public int onSetMediaUri( session = new MediaSession.Builder(context, player) .setId("prepareFromSearch") - .setSessionCallback(callback) + .setCallback(callback) .build(); controller = new RemoteMediaControllerCompat( @@ -962,7 +962,7 @@ public int onSetMediaUri( session = new MediaSession.Builder(context, player) .setId("playFromSearch") - .setSessionCallback(callback) + .setCallback(callback) .build(); controller = new RemoteMediaControllerCompat( @@ -1002,10 +1002,7 @@ public ListenableFuture onSetRating( player.timeline = MediaTestUtils.createTimeline(mediaItems); }); session = - new MediaSession.Builder(context, player) - .setId("setRating") - .setSessionCallback(callback) - .build(); + new MediaSession.Builder(context, player).setId("setRating").setCallback(callback).build(); controller = new RemoteMediaControllerCompat( context, session.getSessionCompat().getSessionToken(), /* waitForConnection= */ true); @@ -1037,7 +1034,7 @@ public int onPlayerCommandRequest( session = new MediaSession.Builder(context, player) .setId("onPlayerCommandRequest") - .setSessionCallback(callback) + .setCallback(callback) .build(); controller = new RemoteMediaControllerCompat( @@ -1066,7 +1063,7 @@ public void deadlock() throws Exception { session = new MediaSession.Builder(context, player) .setId("deadlock") - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -1101,7 +1098,7 @@ public void closedSession_ignoresController() throws Exception { session = new MediaSession.Builder(context, player) .setId(sessionId) - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller = new RemoteMediaControllerCompat( @@ -1119,7 +1116,7 @@ public void closedSession_ignoresController() throws Exception { session = new MediaSession.Builder(context, player) .setId(sessionId) - .setSessionCallback(new TestSessionCallback()) + .setCallback(new TestSessionCallback()) .build(); controller.getTransportControls().play(); diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionKeyEventTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionKeyEventTest.java index 2668cbba068..6c87986e4a4 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionKeyEventTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionKeyEventTest.java @@ -92,7 +92,7 @@ public void setUp() throws Exception { player = new MockPlayer.Builder().setApplicationLooper(handler.getLooper()).build(); sessionCallback = new TestSessionCallback(); - session = new MediaSession.Builder(context, player).setSessionCallback(sessionCallback).build(); + session = new MediaSession.Builder(context, player).setCallback(sessionCallback).build(); // Here's the requirement for an app to receive media key events via MediaSession. // - SDK < 26: Player should be playing for receiving key events diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java index 93fc0b61ff3..03c6d2a0349 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java @@ -381,10 +381,7 @@ public MediaSession.ConnectionResult onConnect( this.session.release(); } this.session = - new MediaSession.Builder(context, player) - .setId(SESSION_ID) - .setSessionCallback(callback) - .build(); + new MediaSession.Builder(context, player).setId(SESSION_ID).setCallback(callback).build(); } private SessionCommands createSessionCommandsWith(SessionCommand command) { diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java index c1759001dad..e8e5eb01566 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java @@ -66,7 +66,7 @@ public void setUp() throws Exception { .build(); session = new MediaSession.Builder(ApplicationProvider.getApplicationContext(), player) - .setSessionCallback( + .setCallback( new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceTest.java index bac2dc9b9eb..fb6c95f6154 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceTest.java @@ -127,7 +127,7 @@ public void onGetSession_returnsSession() throws Exception { new MediaSession.Builder( context, new MockPlayer.Builder().setApplicationLooper(looper).build()) .setId("testOnGetSession_returnsSession") - .setSessionCallback( + .setCallback( new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java index b721691eef6..6dda5e9bab1 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java @@ -84,7 +84,7 @@ public void setUp() throws Exception { sessionTestRule.ensureReleaseAfterTest( new MediaSession.Builder(context, player) .setId(TAG) - .setSessionCallback( + .setCallback( new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( @@ -354,9 +354,7 @@ public void onPostConnect(MediaSession session, MediaSession.ControllerInfo cont }; MediaSession session = sessionTestRule.ensureReleaseAfterTest( - new MediaSession.Builder(context, player) - .setSessionCallback(testSessionCallback) - .build()); + new MediaSession.Builder(context, player).setCallback(testSessionCallback).build()); controllerTestRule.createRemoteController(session.getToken()); assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); } @@ -372,7 +370,7 @@ public void getSessionCompatToken_returnsCompatibleWithMediaControllerCompat() t sessionTestRule.ensureReleaseAfterTest( new MediaSession.Builder(context, player) .setId("getSessionCompatToken_returnsCompatibleWithMediaControllerCompat") - .setSessionCallback( + .setCallback( new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( @@ -426,7 +424,7 @@ public MediaSession.ConnectionResult onConnect( sessionTestRule.ensureReleaseAfterTest( new MediaSession.Builder(context, player) .setId("getControllerVersion") - .setSessionCallback(sessionCallback) + .setCallback(sessionCallback) .build()); controllerTestRule.createRemoteController(session.getToken()); diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionWithMediaControllerCompatTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionWithMediaControllerCompatTest.java index b47d1d61002..d4035e08010 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionWithMediaControllerCompatTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionWithMediaControllerCompatTest.java @@ -79,10 +79,7 @@ public MediaSession.ConnectionResult onConnect( MediaSession session = sessionTestRule.ensureReleaseAfterTest( - new MediaSession.Builder(context, player) - .setId(TAG) - .setSessionCallback(callback) - .build()); + new MediaSession.Builder(context, player).setId(TAG).setCallback(callback).build()); RemoteMediaControllerCompat controllerCompat = remoteControllerTestRule.createRemoteControllerCompat( session.getSessionCompat().getSessionToken()); diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java index f7e3bfdf03b..25202ac0ac7 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java @@ -179,7 +179,7 @@ public void create(String sessionId, Bundle tokenExtras) throws RemoteException } case TEST_CONTROLLER_LISTENER_SESSION_REJECTS: { - builder.setSessionCallback( + builder.setCallback( new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( @@ -194,7 +194,7 @@ public MediaSession.ConnectionResult onConnect( SessionCommands availableSessionCommands = SessionCommands.CREATOR.fromBundle( tokenExtras.getBundle(KEY_AVAILABLE_SESSION_COMMANDS)); - builder.setSessionCallback( + builder.setCallback( new MediaSession.Callback() { @Override public MediaSession.ConnectionResult onConnect( diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaSessionService.java b/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaSessionService.java index 4fa7edfcfc9..2ccf5acfc10 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaSessionService.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaSessionService.java @@ -66,7 +66,7 @@ public MediaSession onGetSession(ControllerInfo controllerInfo) { session = new MediaSession.Builder(MockMediaSessionService.this, player) .setId(ID) - .setSessionCallback(callback != null ? callback : new TestSessionCallback()) + .setCallback(callback != null ? callback : new TestSessionCallback()) .build(); } return session; From 001090cc43ca9b5cf2fce4ae753031a11fe04ad7 Mon Sep 17 00:00:00 2001 From: rohks Date: Wed, 18 May 2022 23:05:13 +0100 Subject: [PATCH 096/182] Migrate leaf listeners of `Player` to new `onCues` override PiperOrigin-RevId: 449587030 --- .../media3/exoplayer/ClippedPlaybackTest.java | 5 +++-- .../media3/exoplayer/text/TextOutput.java | 4 ++-- .../session/MediaControllerListenerTest.java | 12 ++++++------ .../utils/DefaultRenderersFactoryAsserts.java | 5 ++--- .../test/utils/robolectric/PlaybackOutput.java | 15 ++++++++++++++- .../main/java/androidx/media3/ui/PlayerView.java | 6 +++--- 6 files changed, 30 insertions(+), 17 deletions(-) diff --git a/libraries/exoplayer/src/androidTest/java/androidx/media3/exoplayer/ClippedPlaybackTest.java b/libraries/exoplayer/src/androidTest/java/androidx/media3/exoplayer/ClippedPlaybackTest.java index 25308b2bac4..79fa086273f 100644 --- a/libraries/exoplayer/src/androidTest/java/androidx/media3/exoplayer/ClippedPlaybackTest.java +++ b/libraries/exoplayer/src/androidTest/java/androidx/media3/exoplayer/ClippedPlaybackTest.java @@ -25,6 +25,7 @@ import androidx.media3.common.MimeTypes; import androidx.media3.common.Player; import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.ConditionVariable; import androidx.media3.exoplayer.source.ClippingMediaSource; import androidx.test.ext.junit.runners.AndroidJUnit4; @@ -135,8 +136,8 @@ private TextCapturingPlaybackListener() { } @Override - public void onCues(List cues) { - this.cues.add(cues); + public void onCues(CueGroup cueGroup) { + this.cues.add(cueGroup.cues); } @Override diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextOutput.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextOutput.java index 2201d519bfb..5485452d965 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextOutput.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextOutput.java @@ -33,7 +33,7 @@ public interface TextOutput { * @deprecated Use {@link #onCues(CueGroup)} instead. */ @Deprecated - void onCues(List cues); + default void onCues(List cues) {} /** * Called when there is a change in the {@link CueGroup}. @@ -41,5 +41,5 @@ public interface TextOutput { *

    Both {@link #onCues(List)} and {@link #onCues(CueGroup)} are called when there is a change * in the cues You should only implement one or the other. */ - default void onCues(CueGroup cueGroup) {} + void onCues(CueGroup cueGroup); } diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerListenerTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerListenerTest.java index 2ca7d1dc144..ebc4315467c 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerListenerTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerListenerTest.java @@ -1874,9 +1874,9 @@ public void onCues_emptyList_whenCommandUnavailable() throws Exception { Player.Listener listener = new Player.Listener() { @Override - public void onCues(List cues) { + public void onCues(CueGroup cueGroup) { cuesFromParam.clear(); - cuesFromParam.addAll(cues); + cuesFromParam.addAll(cueGroup.cues); cuesFromGetter.clear(); cuesFromGetter.addAll(controller.getCurrentCues().cues); latch.countDown(); @@ -1905,8 +1905,8 @@ public void onCues_isCalledByPlayerChange() throws Exception { Player.Listener listener = new Player.Listener() { @Override - public void onCues(List cues) { - cuesFromParam.addAll(cues); + public void onCues(CueGroup cueGroup) { + cuesFromParam.addAll(cueGroup.cues); cuesFromGetter.addAll(controller.getCurrentCues().cues); latch.countDown(); } @@ -1937,8 +1937,8 @@ public void onCues_isCalledByCuesChange() throws Exception { Player.Listener listener = new Player.Listener() { @Override - public void onCues(List cues) { - cuesFromParam.addAll(cues); + public void onCues(CueGroup cueGroup) { + cuesFromParam.addAll(cueGroup.cues); cuesFromGetter.addAll(controller.getCurrentCues().cues); latch.countDown(); } diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/DefaultRenderersFactoryAsserts.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/DefaultRenderersFactoryAsserts.java index edd7d2c2827..41b0a09ab44 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/DefaultRenderersFactoryAsserts.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/DefaultRenderersFactoryAsserts.java @@ -24,14 +24,13 @@ import android.os.Looper; import androidx.media3.common.C; import androidx.media3.common.Metadata; -import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.UnstableApi; import androidx.media3.exoplayer.DefaultRenderersFactory; import androidx.media3.exoplayer.Renderer; import androidx.media3.exoplayer.audio.AudioRendererEventListener; import androidx.media3.exoplayer.video.VideoRendererEventListener; import androidx.test.core.app.ApplicationProvider; -import java.util.List; /** Assertions for {@link DefaultRenderersFactory}. */ @UnstableApi @@ -96,7 +95,7 @@ private static Renderer[] createRenderers( new Handler(Looper.getMainLooper()), new VideoRendererEventListener() {}, new AudioRendererEventListener() {}, - (List cues) -> {}, + (CueGroup cueGroup) -> {}, (Metadata metadata) -> {}); } } diff --git a/libraries/test_utils_robolectric/src/main/java/androidx/media3/test/utils/robolectric/PlaybackOutput.java b/libraries/test_utils_robolectric/src/main/java/androidx/media3/test/utils/robolectric/PlaybackOutput.java index 86d49be956f..947ab7d82c6 100644 --- a/libraries/test_utils_robolectric/src/main/java/androidx/media3/test/utils/robolectric/PlaybackOutput.java +++ b/libraries/test_utils_robolectric/src/main/java/androidx/media3/test/utils/robolectric/PlaybackOutput.java @@ -20,6 +20,7 @@ import androidx.media3.common.Metadata; import androidx.media3.common.Player; import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.exoplayer.ExoPlayer; @@ -56,12 +57,14 @@ public final class PlaybackOutput implements Dumper.Dumpable { private final List metadatas; private final List> subtitles; + private final List> subtitlesFromDeprecatedTextOutput; private PlaybackOutput(ExoPlayer player, CapturingRenderersFactory capturingRenderersFactory) { this.capturingRenderersFactory = capturingRenderersFactory; metadatas = Collections.synchronizedList(new ArrayList<>()); subtitles = Collections.synchronizedList(new ArrayList<>()); + subtitlesFromDeprecatedTextOutput = Collections.synchronizedList(new ArrayList<>()); // TODO: Consider passing playback position into MetadataOutput and TextOutput. Calling // player.getCurrentPosition() inside onMetadata/Cues will likely be non-deterministic // because renderer-thread != playback-thread. @@ -74,7 +77,12 @@ public void onMetadata(Metadata metadata) { @Override public void onCues(List cues) { - subtitles.add(cues); + subtitlesFromDeprecatedTextOutput.add(cues); + } + + @Override + public void onCues(CueGroup cueGroup) { + subtitles.add(cueGroup.cues); } }); } @@ -146,6 +154,11 @@ private static String getEntryAsString(Metadata.Entry entry) { } private void dumpSubtitles(Dumper dumper) { + if (!subtitles.equals(subtitlesFromDeprecatedTextOutput)) { + throw new IllegalStateException( + "Expected subtitles to be equal from both implementations of onCues method."); + } + if (subtitles.isEmpty()) { return; } diff --git a/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java b/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java index 662d28e974f..9d5e05c3c85 100644 --- a/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java +++ b/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java @@ -60,7 +60,7 @@ import androidx.media3.common.Timeline.Period; import androidx.media3.common.Tracks; import androidx.media3.common.VideoSize; -import androidx.media3.common.text.Cue; +import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.RepeatModeUtil; import androidx.media3.common.util.UnstableApi; @@ -1522,9 +1522,9 @@ public ComponentListener() { // Player.Listener implementation @Override - public void onCues(List cues) { + public void onCues(CueGroup cueGroup) { if (subtitleView != null) { - subtitleView.setCues(cues); + subtitleView.setCues(cueGroup.cues); } } From ce1ac5894d6ac78646e2e2fab93db7ce936b5d09 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Fri, 20 May 2022 13:30:25 +0100 Subject: [PATCH 097/182] Track validity of debug `SurfaceView` The debug surface view's output surface can become invalid during a transformation due to the parent activity pausing, for example. This can currently cause a crash when backing out of the `TransformerActivity` in the demo because the surface can be destroyed before the transformer has fully canceled. Also clarify naming of the outputSurface and inline the private method that created `EGLSurface`s (it was shorter after removing the debug preview). PiperOrigin-RevId: 449963440 --- .../transformer/FrameProcessorChain.java | 158 ++++++++++++------ 1 file changed, 103 insertions(+), 55 deletions(-) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java index 82832fb7dd6..7704ba2ce29 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java @@ -32,7 +32,9 @@ import android.opengl.GLES20; import android.util.Size; import android.view.Surface; +import android.view.SurfaceHolder; import android.view.SurfaceView; +import androidx.annotation.GuardedBy; import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; import androidx.media3.common.C; @@ -283,19 +285,18 @@ private static ImmutableList getFrameProcessors( private int outputWidth; private int outputHeight; + private @MonotonicNonNull Surface outputSurface; + /** * Wraps the output {@link Surface} that is populated with the output of the final {@link * GlFrameProcessor} for each frame. */ - private @MonotonicNonNull EGLSurface eglSurface; - - private int debugPreviewWidth; - private int debugPreviewHeight; + private @MonotonicNonNull EGLSurface outputEglSurface; /** * Wraps a debug {@link SurfaceView} that is populated with the output of the final {@link * GlFrameProcessor} for each frame. */ - private @MonotonicNonNull EGLSurface debugPreviewEglSurface; + private @MonotonicNonNull SurfaceViewWrapper debugSurfaceViewWrapper; private boolean inputStreamEnded; @@ -326,8 +327,6 @@ private FrameProcessorChain( textureTransformMatrix = new float[16]; outputWidth = C.LENGTH_UNSET; outputHeight = C.LENGTH_UNSET; - debugPreviewWidth = C.LENGTH_UNSET; - debugPreviewHeight = C.LENGTH_UNSET; } /** @@ -358,18 +357,14 @@ public void setOutputSurface( @Nullable SurfaceView debugSurfaceView) { // TODO(b/218488308): Don't override output size for encoder fallback. Instead allow the final // GlFrameProcessor to be re-configured or append another GlFrameProcessor. + this.outputSurface = outputSurface; this.outputWidth = outputWidth; this.outputHeight = outputHeight; if (debugSurfaceView != null) { - debugPreviewWidth = debugSurfaceView.getWidth(); - debugPreviewHeight = debugSurfaceView.getHeight(); + debugSurfaceViewWrapper = new SurfaceViewWrapper(debugSurfaceView); } - futures.add( - singleThreadExecutorService.submit( - () -> createOpenGlSurfaces(outputSurface, debugSurfaceView))); - inputSurfaceTexture.setOnFrameAvailableListener( surfaceTexture -> { if (stopProcessing.get()) { @@ -451,36 +446,6 @@ public void release() { inputSurface.release(); } - /** - * Creates the OpenGL surfaces. - * - *

    This method must be called on the {@linkplain #THREAD_NAME background thread}. - */ - @WorkerThread - private void createOpenGlSurfaces(Surface outputSurface, @Nullable SurfaceView debugSurfaceView) { - try { - checkState(Thread.currentThread().getName().equals(THREAD_NAME)); - checkStateNotNull(eglDisplay); - - if (enableExperimentalHdrEditing) { - // TODO(b/227624622): Don't assume BT.2020 PQ input/output. - eglSurface = GlUtil.getEglSurfaceBt2020Pq(eglDisplay, outputSurface); - if (debugSurfaceView != null) { - debugPreviewEglSurface = - GlUtil.getEglSurfaceBt2020Pq(eglDisplay, checkNotNull(debugSurfaceView.getHolder())); - } - } else { - eglSurface = GlUtil.getEglSurface(eglDisplay, outputSurface); - if (debugSurfaceView != null) { - debugPreviewEglSurface = - GlUtil.getEglSurface(eglDisplay, checkNotNull(debugSurfaceView.getHolder())); - } - } - } catch (RuntimeException e) { - listener.onFrameProcessingError(new FrameProcessingException(e)); - } - } - /** * Processes an input frame. * @@ -495,7 +460,16 @@ private void processFrame() { long presentationTimeUs = C.TIME_UNSET; try { checkState(Thread.currentThread().getName().equals(THREAD_NAME)); - checkStateNotNull(eglSurface, "No output surface set."); + + if (outputEglSurface == null) { + checkStateNotNull(outputSurface); + if (enableExperimentalHdrEditing) { + // TODO(b/227624622): Don't assume BT.2020 PQ input/output. + outputEglSurface = GlUtil.getEglSurfaceBt2020Pq(eglDisplay, outputSurface); + } else { + outputEglSurface = GlUtil.getEglSurface(eglDisplay, outputSurface); + } + } inputSurfaceTexture.updateTexImage(); long presentationTimeNs = inputSurfaceTexture.getTimestamp(); @@ -513,26 +487,31 @@ private void processFrame() { GlUtil.focusFramebuffer( eglDisplay, eglContext, - eglSurface, + outputEglSurface, framebuffers[i], intermediateSize.getWidth(), intermediateSize.getHeight()); clearOutputFrame(); frameProcessors.get(i).drawFrame(presentationTimeUs); } - GlUtil.focusEglSurface(eglDisplay, eglContext, eglSurface, outputWidth, outputHeight); + GlUtil.focusEglSurface(eglDisplay, eglContext, outputEglSurface, outputWidth, outputHeight); clearOutputFrame(); getLast(frameProcessors).drawFrame(presentationTimeUs); - EGLExt.eglPresentationTimeANDROID(eglDisplay, eglSurface, presentationTimeNs); - EGL14.eglSwapBuffers(eglDisplay, eglSurface); - - if (debugPreviewEglSurface != null) { - GlUtil.focusEglSurface( - eglDisplay, eglContext, debugPreviewEglSurface, debugPreviewWidth, debugPreviewHeight); - clearOutputFrame(); - getLast(frameProcessors).drawFrame(presentationTimeUs); - EGL14.eglSwapBuffers(eglDisplay, debugPreviewEglSurface); + EGLExt.eglPresentationTimeANDROID(eglDisplay, outputEglSurface, presentationTimeNs); + EGL14.eglSwapBuffers(eglDisplay, outputEglSurface); + + if (debugSurfaceViewWrapper != null) { + long framePresentationTimeUs = presentationTimeUs; + debugSurfaceViewWrapper.maybeRenderToSurfaceView( + () -> { + clearOutputFrame(); + try { + getLast(frameProcessors).drawFrame(framePresentationTimeUs); + } catch (FrameProcessingException e) { + Log.d(TAG, "Error rendering to debug preview", e); + } + }); } checkState(pendingFrameCount.getAndDecrement() > 0); @@ -568,4 +547,73 @@ private void releaseFrameProcessorsAndDestroyGlContext() { listener.onFrameProcessingError(new FrameProcessingException(e)); } } + + /** + * Wrapper around a {@link SurfaceView} that keeps track of whether the output surface is valid, + * and makes rendering a no-op if not. + */ + private final class SurfaceViewWrapper implements SurfaceHolder.Callback { + + @GuardedBy("this") + @Nullable + private Surface surface; + + @GuardedBy("this") + @Nullable + private EGLSurface eglSurface; + + private int width; + private int height; + + public SurfaceViewWrapper(SurfaceView surfaceView) { + surfaceView.getHolder().addCallback(this); + surface = surfaceView.getHolder().getSurface(); + width = surfaceView.getWidth(); + height = surfaceView.getHeight(); + } + + /** + * Focuses the wrapped surface view's surface as an {@link EGLSurface}, renders using {@code + * renderRunnable} and swaps buffers, if the view's holder has a valid surface. Does nothing + * otherwise. + */ + @WorkerThread + public synchronized void maybeRenderToSurfaceView(Runnable renderRunnable) { + if (surface == null) { + return; + } + + if (eglSurface == null) { + if (enableExperimentalHdrEditing) { + eglSurface = GlUtil.getEglSurfaceBt2020Pq(eglDisplay, surface); + } else { + eglSurface = GlUtil.getEglSurface(eglDisplay, surface); + } + } + EGLSurface eglSurface = this.eglSurface; + GlUtil.focusEglSurface(eglDisplay, eglContext, eglSurface, width, height); + renderRunnable.run(); + EGL14.eglSwapBuffers(eglDisplay, eglSurface); + } + + @Override + public void surfaceCreated(SurfaceHolder holder) {} + + @Override + public synchronized void surfaceChanged( + SurfaceHolder holder, int format, int width, int height) { + surface = holder.getSurface(); + eglSurface = null; + this.width = width; + this.height = height; + } + + @Override + public synchronized void surfaceDestroyed(SurfaceHolder holder) { + surface = null; + eglSurface = null; + width = C.LENGTH_UNSET; + height = C.LENGTH_UNSET; + } + } } From 994c33f56ffe73e4efd28d55a5e7ee8b46a1092a Mon Sep 17 00:00:00 2001 From: ibaker Date: Fri, 20 May 2022 14:11:54 +0100 Subject: [PATCH 098/182] Fix comment in MediaCodecRenderer This constant name was updated in https://github.com/androidx/media/commit/1bcf1cf9f7d1fddf7b72e98f469bc4a71f330378 PiperOrigin-RevId: 449969093 --- .../media3/exoplayer/mediacodec/MediaCodecRenderer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecRenderer.java index 6d328d506a3..de0568de56a 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecRenderer.java @@ -1994,7 +1994,8 @@ protected void renderToEndOfStream() throws ExoPlaybackException { * * @throws ExoPlaybackException If an error occurs processing the signal. */ - @TargetApi(23) // codecDrainAction == DRAIN_ACTION_UPDATE_DRM_SESSION implies SDK_INT >= 23. + // codecDrainAction == DRAIN_ACTION_FLUSH_AND_UPDATE_DRM_SESSION implies SDK_INT >= 23. + @TargetApi(23) private void processEndOfStream() throws ExoPlaybackException { switch (codecDrainAction) { case DRAIN_ACTION_REINITIALIZE: From b6711af334d878e10099f3e5cb2b900d21b16b16 Mon Sep 17 00:00:00 2001 From: ibaker Date: Fri, 20 May 2022 14:41:06 +0100 Subject: [PATCH 099/182] Use `@C.DataType` intdef in `HlsDataSourceFactory.createDataSource` PiperOrigin-RevId: 449973324 --- .../media3/exoplayer/hls/DefaultHlsDataSourceFactory.java | 3 ++- .../androidx/media3/exoplayer/hls/HlsDataSourceFactory.java | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/DefaultHlsDataSourceFactory.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/DefaultHlsDataSourceFactory.java index d37f36bd8ad..4ae37333517 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/DefaultHlsDataSourceFactory.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/DefaultHlsDataSourceFactory.java @@ -15,6 +15,7 @@ */ package androidx.media3.exoplayer.hls; +import androidx.media3.common.C; import androidx.media3.common.util.UnstableApi; import androidx.media3.datasource.DataSource; @@ -32,7 +33,7 @@ public DefaultHlsDataSourceFactory(DataSource.Factory dataSourceFactory) { } @Override - public DataSource createDataSource(int dataType) { + public DataSource createDataSource(@C.DataType int dataType) { return dataSourceFactory.createDataSource(); } } diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsDataSourceFactory.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsDataSourceFactory.java index 716ec5cf6b8..4ca31530c0f 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsDataSourceFactory.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsDataSourceFactory.java @@ -26,9 +26,8 @@ public interface HlsDataSourceFactory { /** * Creates a {@link DataSource} for the given data type. * - * @param dataType The data type for which the {@link DataSource} will be used. One of {@link C} - * {@code .DATA_TYPE_*} constants. + * @param dataType The {@link C.DataType} for which the {@link DataSource} will be used. * @return A {@link DataSource} for the given data type. */ - DataSource createDataSource(int dataType); + DataSource createDataSource(@C.DataType int dataType); } From 38b133884403c15f7c9de3a32136d53f91f34f90 Mon Sep 17 00:00:00 2001 From: tonihei Date: Mon, 23 May 2022 09:56:50 +0100 Subject: [PATCH 100/182] Remove 5G-NSA detection on API 29/30. This detection relies on an unsupported workaround and may trigger permission warnings in tools analyzing permission usage although no permission is needed or requested by app code. Given the majority of 5G-NSA playbacks are on API 31+ by now, we can remove this path to avoid the permission confusion and the unsupported detection workaround. PiperOrigin-RevId: 450382586 --- RELEASENOTES.md | 2 + .../common/util/NetworkTypeObserver.java | 54 +++---------------- .../upstream/DefaultBandwidthMeterTest.java | 30 +++-------- 3 files changed, 18 insertions(+), 68 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 6fddb54979f..c10d3d9ab0e 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -16,6 +16,8 @@ for example when side-loading subtitles and changing the selected subtitle mid-playback ([#10248](https://github.com/google/ExoPlayer/issues/10248)). + * Stop detecting 5G-NSA network type on API 29 and 30. These playbacks + will assume a 4G network. * Track selection: * Flatten `TrackSelectionOverrides` class into `TrackSelectionParameters`, and promote `TrackSelectionOverride` to a top level class. diff --git a/libraries/common/src/main/java/androidx/media3/common/util/NetworkTypeObserver.java b/libraries/common/src/main/java/androidx/media3/common/util/NetworkTypeObserver.java index 5caf81f176e..e2e3f96044d 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/NetworkTypeObserver.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/NetworkTypeObserver.java @@ -25,8 +25,8 @@ import android.net.NetworkInfo; import android.os.Handler; import android.os.Looper; -import android.telephony.PhoneStateListener; -import android.telephony.ServiceState; +import android.telephony.TelephonyCallback; +import android.telephony.TelephonyCallback.DisplayInfoListener; import android.telephony.TelephonyDisplayInfo; import android.telephony.TelephonyManager; import androidx.annotation.GuardedBy; @@ -59,24 +59,6 @@ public interface Listener { void onNetworkTypeChanged(@C.NetworkType int networkType); } - /* - * Static configuration that may need to be set at app startup time is located in a separate - * static Config class. This allows apps to set their desired config without incurring unnecessary - * class loading costs during startup. - */ - /** Configuration for {@link NetworkTypeObserver}. */ - public static final class Config { - - private static volatile boolean disable5GNsaDisambiguation; - - /** Disables logic to disambiguate 5G-NSA networks from 4G networks. */ - public static void disable5GNsaDisambiguation() { - disable5GNsaDisambiguation = true; - } - - private Config() {} - } - @Nullable private static NetworkTypeObserver staticInstance; private final Handler mainHandler; @@ -232,26 +214,16 @@ private final class Receiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { @C.NetworkType int networkType = getNetworkTypeFromConnectivityManager(context); - if (Util.SDK_INT >= 29 - && !Config.disable5GNsaDisambiguation - && networkType == C.NETWORK_TYPE_4G) { + if (Util.SDK_INT >= 31 && networkType == C.NETWORK_TYPE_4G) { // Delay update of the network type to check whether this is actually 5G-NSA. try { - // We can't access TelephonyManager getters like getServiceState() directly as they - // require special permissions. Attaching a listener is permission-free because the - // callback data is censored to not include sensitive information. TelephonyManager telephonyManager = checkNotNull((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)); - TelephonyManagerListener listener = new TelephonyManagerListener(); - if (Util.SDK_INT < 31) { - telephonyManager.listen(listener, PhoneStateListener.LISTEN_SERVICE_STATE); - } else { - // Display info information can only be requested without permission from API 31. - telephonyManager.listen(listener, PhoneStateListener.LISTEN_DISPLAY_INFO_CHANGED); - } + DisplayInfoCallback callback = new DisplayInfoCallback(); + telephonyManager.registerTelephonyCallback(context.getMainExecutor(), callback); // We are only interested in the initial response with the current state, so unregister // the listener immediately. - telephonyManager.listen(listener, PhoneStateListener.LISTEN_NONE); + telephonyManager.unregisterTelephonyCallback(callback); return; } catch (RuntimeException e) { // Ignore problems with listener registration and keep reporting as 4G. @@ -261,19 +233,9 @@ public void onReceive(Context context, Intent intent) { } } - private class TelephonyManagerListener extends PhoneStateListener { - - @Override - public void onServiceStateChanged(@Nullable ServiceState serviceState) { - // This workaround to check the toString output of ServiceState only works on API 29 and 30. - String serviceStateString = serviceState == null ? "" : serviceState.toString(); - boolean is5gNsa = - serviceStateString.contains("nrState=CONNECTED") - || serviceStateString.contains("nrState=NOT_RESTRICTED"); - updateNetworkType(is5gNsa ? C.NETWORK_TYPE_5G_NSA : C.NETWORK_TYPE_4G); - } + @RequiresApi(31) + private final class DisplayInfoCallback extends TelephonyCallback implements DisplayInfoListener { - @RequiresApi(31) @Override public void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo) { int overrideNetworkType = telephonyDisplayInfo.getOverrideNetworkType(); diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/upstream/DefaultBandwidthMeterTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/upstream/DefaultBandwidthMeterTest.java index 60b10f87b97..d2ca3e7f031 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/upstream/DefaultBandwidthMeterTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/upstream/DefaultBandwidthMeterTest.java @@ -25,7 +25,6 @@ import android.net.NetworkInfo; import android.net.NetworkInfo.DetailedState; import android.net.Uri; -import android.telephony.ServiceState; import android.telephony.TelephonyDisplayInfo; import android.telephony.TelephonyManager; import androidx.media3.common.C; @@ -234,7 +233,7 @@ public void defaultInitialBitrateEstimate_for3G_isGreaterThanEstimateFor2G() { } @Test - @Config(minSdk = 29) // 5G detection support was added in API 29. + @Config(minSdk = 31) // 5G-NSA detection is supported from API 31. public void defaultInitialBitrateEstimate_for5gNsa_isGreaterThanEstimateFor4g() { setActiveNetworkInfo(networkInfo4g); DefaultBandwidthMeter bandwidthMeter4g = @@ -250,7 +249,7 @@ public void defaultInitialBitrateEstimate_for5gNsa_isGreaterThanEstimateFor4g() } @Test - @Config(minSdk = 29) // 5G detection support was added in API 29. + @Config(minSdk = 29) // 5G-SA detection is supported from API 29. public void defaultInitialBitrateEstimate_for5gSa_isGreaterThanEstimateFor3g() { setActiveNetworkInfo(networkInfo3g); DefaultBandwidthMeter bandwidthMeter3g = @@ -362,7 +361,7 @@ public void defaultInitialBitrateEstimate_forOffline_isReasonable() { } @Test - @Config(minSdk = 29) // 5G detection support was added in API 29. + @Config(minSdk = 31) // 5G-NSA detection is supported from API 31. public void defaultInitialBitrateEstimate_for5gNsa_forFastCountry_isGreaterThanEstimateForSlowCountry() { setActiveNetworkInfo(networkInfo4g, TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA); @@ -380,7 +379,7 @@ public void defaultInitialBitrateEstimate_forOffline_isReasonable() { } @Test - @Config(minSdk = 29) // 5G detection support was added in API 29. + @Config(minSdk = 29) // 5G-SA detection support was added in API 29. public void defaultInitialBitrateEstimate_for5gSa_forFastCountry_isGreaterThanEstimateForSlowCountry() { setActiveNetworkInfo(networkInfo5gSa); @@ -548,7 +547,7 @@ public void initialBitrateEstimateOverwrite_for4G_whileConnectedTo4G_setsInitial } @Test - @Config(minSdk = 29) // 5G detection support was added in API 29. + @Config(minSdk = 31) // 5G-NSA detection is supported from API 31. public void initialBitrateEstimateOverwrite_for5gNsa_whileConnectedTo5gNsa_setsInitialEstimate() { setActiveNetworkInfo(networkInfo4g, TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA); DefaultBandwidthMeter bandwidthMeter = @@ -561,7 +560,7 @@ public void initialBitrateEstimateOverwrite_for5gNsa_whileConnectedTo5gNsa_setsI } @Test - @Config(minSdk = 29) // 5G detection support was added in API 29. + @Config(minSdk = 31) // 5G-NSA detection is supported from API 31. public void initialBitrateEstimateOverwrite_for5gNsa_whileConnectedToOtherNetwork_doesNotSetInitialEstimate() { setActiveNetworkInfo(networkInfo4g); @@ -575,7 +574,7 @@ public void initialBitrateEstimateOverwrite_for5gNsa_whileConnectedTo5gNsa_setsI } @Test - @Config(minSdk = 29) // 5G detection support was added in API 29. + @Config(minSdk = 29) // 5G-SA detection is supported from API 29. public void initialBitrateEstimateOverwrite_for5gSa_whileConnectedTo5gSa_setsInitialEstimate() { setActiveNetworkInfo(networkInfo5gSa); DefaultBandwidthMeter bandwidthMeter = @@ -588,7 +587,7 @@ public void initialBitrateEstimateOverwrite_for5gSa_whileConnectedTo5gSa_setsIni } @Test - @Config(minSdk = 29) // 5G detection support was added in API 29. + @Config(minSdk = 29) // 5G-SA detection is supported from API 29. public void initialBitrateEstimateOverwrite_for5gSa_whileConnectedToOtherNetwork_doesNotSetInitialEstimate() { setActiveNetworkInfo(networkInfoWifi); @@ -714,19 +713,6 @@ private void setActiveNetworkInfo(NetworkInfo networkInfo, int networkTypeOverri ShadowTelephonyManager.createTelephonyDisplayInfo( networkInfo.getType(), networkTypeOverride); Shadows.shadowOf(telephonyManager).setTelephonyDisplayInfo(displayInfo); - } else if (Util.SDK_INT >= 29) { - ServiceState serviceState = new ServiceState(); - if (networkTypeOverride == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA) { - // Replicate known platform hack that includes special string indicating 5G-NSA. - serviceState = - new ServiceState() { - @Override - public String toString() { - return "...nrState=CONNECTED..."; - } - }; - } - Shadows.shadowOf(telephonyManager).setServiceState(serviceState); } // Create a sticky broadcast for the connectivity action because Robolectric isn't replying with // the current network state if a receiver for this intent is registered. From 07302a23bd5894d57514c68b2db499ac46726e77 Mon Sep 17 00:00:00 2001 From: ibaker Date: Mon, 23 May 2022 10:23:03 +0100 Subject: [PATCH 101/182] Remove `@Nullable` from `MediaSource.Factory` setters The null-behaviour of these methods creates a minimization footgun, because **any** call to these setters will prevent R8 from removing the default implementation (even if it's never used by the app) - this is because R8 can't tell the default implementation is only used if the parameter is `null`. PiperOrigin-RevId: 450386627 --- RELEASENOTES.md | 5 ++ .../exoplayer/offline/DownloadHelper.java | 10 +-- .../source/DefaultMediaSourceFactory.java | 45 ++++++++---- .../media3/exoplayer/source/MediaSource.java | 11 +-- .../source/ProgressiveMediaSource.java | 70 +++++++++++++------ .../source/DefaultMediaSourceFactoryTest.java | 15 ---- .../exoplayer/dash/DashMediaSource.java | 46 +++++++----- .../dash/DefaultMediaSourceFactoryTest.java | 15 ---- .../media3/exoplayer/hls/HlsMediaSource.java | 51 +++++++++----- .../hls/DefaultMediaSourceFactoryTest.java | 15 ---- .../ImaServerSideAdInsertionMediaSource.java | 4 +- .../exoplayer/rtsp/RtspMediaSource.java | 6 +- .../smoothstreaming/SsMediaSource.java | 47 ++++++++----- .../DefaultMediaSourceFactoryTest.java | 15 ---- .../test/utils/FakeMediaSourceFactory.java | 5 +- 15 files changed, 192 insertions(+), 168 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index c10d3d9ab0e..80dc6230f22 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -18,6 +18,11 @@ ([#10248](https://github.com/google/ExoPlayer/issues/10248)). * Stop detecting 5G-NSA network type on API 29 and 30. These playbacks will assume a 4G network. + * Disallow passing `null` to + `MediaSource.Factory.setDrmSessionManagerProvider` and + `MediaSource.Factory.setLoadErrorHandlingPolicy`. Instances of + `DefaultDrmSessionManagerProvider` and `DefaultLoadErrorHandlingPolicy` + can be passed explicitly if required. * Track selection: * Flatten `TrackSelectionOverrides` class into `TrackSelectionParameters`, and promote `TrackSelectionOverride` to a top level class. diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java index 07db1b368ea..df11e0e5893 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java @@ -952,10 +952,12 @@ private static MediaSource createMediaSourceInternal( MediaItem mediaItem, DataSource.Factory dataSourceFactory, @Nullable DrmSessionManager drmSessionManager) { - return new DefaultMediaSourceFactory(dataSourceFactory, ExtractorsFactory.EMPTY) - .setDrmSessionManagerProvider( - drmSessionManager != null ? unusedMediaItem -> drmSessionManager : null) - .createMediaSource(mediaItem); + DefaultMediaSourceFactory mediaSourceFactory = + new DefaultMediaSourceFactory(dataSourceFactory, ExtractorsFactory.EMPTY); + if (drmSessionManager != null) { + mediaSourceFactory.setDrmSessionManagerProvider(unusedMediaItem -> drmSessionManager); + } + return mediaSourceFactory.createMediaSource(mediaItem); } private static boolean isProgressive(MediaItem.LocalConfiguration localConfiguration) { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java index 5ffb33a7cd8..afad68202b8 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java @@ -345,16 +345,26 @@ public DefaultMediaSourceFactory setLiveMaxSpeed(float maxSpeed) { @UnstableApi @Override public DefaultMediaSourceFactory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { - delegateFactoryLoader.setDrmSessionManagerProvider(drmSessionManagerProvider); + DrmSessionManagerProvider drmSessionManagerProvider) { + delegateFactoryLoader.setDrmSessionManagerProvider( + checkNotNull( + drmSessionManagerProvider, + "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by" + + " instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct and" + + " pass an instance in order to retain the old behavior.")); return this; } @UnstableApi @Override public DefaultMediaSourceFactory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { - this.loadErrorHandlingPolicy = loadErrorHandlingPolicy; + LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + this.loadErrorHandlingPolicy = + checkNotNull( + loadErrorHandlingPolicy, + "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by" + + " instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and" + + " pass an instance in order to retain the old behavior."); delegateFactoryLoader.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); return this; } @@ -431,16 +441,23 @@ public MediaSource createMediaSource(MediaItem mediaItem) { SubtitleDecoderFactory.DEFAULT.createDecoder(format), format) : new UnknownSubtitlesExtractor(format) }; + ProgressiveMediaSource.Factory progressiveMediaSourceFactory = + new ProgressiveMediaSource.Factory(dataSourceFactory, extractorsFactory); + if (loadErrorHandlingPolicy != null) { + progressiveMediaSourceFactory.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); + } mediaSources[i + 1] = - new ProgressiveMediaSource.Factory(dataSourceFactory, extractorsFactory) - .setLoadErrorHandlingPolicy(loadErrorHandlingPolicy) - .createMediaSource( - MediaItem.fromUri(subtitleConfigurations.get(i).uri.toString())); + progressiveMediaSourceFactory.createMediaSource( + MediaItem.fromUri(subtitleConfigurations.get(i).uri.toString())); } else { + SingleSampleMediaSource.Factory singleSampleMediaSourceFactory = + new SingleSampleMediaSource.Factory(dataSourceFactory); + if (loadErrorHandlingPolicy != null) { + singleSampleMediaSourceFactory.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); + } mediaSources[i + 1] = - new SingleSampleMediaSource.Factory(dataSourceFactory) - .setLoadErrorHandlingPolicy(loadErrorHandlingPolicy) - .createMediaSource(subtitleConfigurations.get(i), /* durationUs= */ C.TIME_UNSET); + singleSampleMediaSourceFactory.createMediaSource( + subtitleConfigurations.get(i), /* durationUs= */ C.TIME_UNSET); } } @@ -549,16 +566,14 @@ public MediaSource.Factory getMediaSourceFactory(@C.ContentType int contentType) return mediaSourceFactory; } - public void setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { + public void setDrmSessionManagerProvider(DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = drmSessionManagerProvider; for (MediaSource.Factory mediaSourceFactory : mediaSourceFactories.values()) { mediaSourceFactory.setDrmSessionManagerProvider(drmSessionManagerProvider); } } - public void setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + public void setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { this.loadErrorHandlingPolicy = loadErrorHandlingPolicy; for (MediaSource.Factory mediaSourceFactory : mediaSourceFactories.values()) { mediaSourceFactory.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSource.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSource.java index 32c3c75a490..d9d496bccdd 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSource.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSource.java @@ -24,12 +24,10 @@ import androidx.media3.datasource.TransferListener; import androidx.media3.exoplayer.ExoPlayer; import androidx.media3.exoplayer.analytics.PlayerId; -import androidx.media3.exoplayer.drm.DefaultDrmSessionManagerProvider; import androidx.media3.exoplayer.drm.DrmSessionEventListener; import androidx.media3.exoplayer.drm.DrmSessionManager; import androidx.media3.exoplayer.drm.DrmSessionManagerProvider; import androidx.media3.exoplayer.upstream.Allocator; -import androidx.media3.exoplayer.upstream.DefaultLoadErrorHandlingPolicy; import androidx.media3.exoplayer.upstream.LoadErrorHandlingPolicy; import java.io.IOException; @@ -69,23 +67,18 @@ interface Factory { * Sets the {@link DrmSessionManagerProvider} used to obtain a {@link DrmSessionManager} for a * {@link MediaItem}. * - *

    If not set, {@link DefaultDrmSessionManagerProvider} is used. - * * @return This factory, for convenience. */ @UnstableApi - Factory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider); + Factory setDrmSessionManagerProvider(DrmSessionManagerProvider drmSessionManagerProvider); /** * Sets an optional {@link LoadErrorHandlingPolicy}. * - * @param loadErrorHandlingPolicy A {@link LoadErrorHandlingPolicy}, or {@code null} to use the - * {@link DefaultLoadErrorHandlingPolicy}. * @return This factory, for convenience. */ @UnstableApi - Factory setLoadErrorHandlingPolicy(@Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy); + Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy); /** * Returns the {@link C.ContentType content types} supported by media sources created by this diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaSource.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaSource.java index 5d3756fc3b0..807e336e8dc 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaSource.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaSource.java @@ -65,10 +65,18 @@ public static final class Factory implements MediaSourceFactory { @Nullable private Object tag; /** - * Creates a new factory for {@link ProgressiveMediaSource}s, using the extractors provided by - * {@link DefaultExtractorsFactory}. + * Creates a new factory for {@link ProgressiveMediaSource}s. + * + *

    The factory will use the following default components: * - * @param dataSourceFactory A factory for {@link DataSource}s to read the media. + *

      + *
    • {@link DefaultExtractorsFactory} + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    + * + * @param dataSourceFactory A factory for {@linkplain DataSource data sources} to read the + * media. */ public Factory(DataSource.Factory dataSourceFactory) { this(dataSourceFactory, new DefaultExtractorsFactory()); @@ -77,6 +85,18 @@ public Factory(DataSource.Factory dataSourceFactory) { /** * Equivalent to {@link #Factory(DataSource.Factory, ProgressiveMediaExtractor.Factory) new * Factory(dataSourceFactory, () -> new BundledExtractorsAdapter(extractorsFactory)}. + * + *

    The factory will use the following default components: + * + *

      + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    + * + * @param dataSourceFactory A factory for {@linkplain DataSource data sources} to read the + * media. + * @param extractorsFactory A factory for the {@linkplain Extractor extractors} used to extract + * the media from its container. */ public Factory(DataSource.Factory dataSourceFactory, ExtractorsFactory extractorsFactory) { this(dataSourceFactory, playerId -> new BundledExtractorsAdapter(extractorsFactory)); @@ -85,9 +105,17 @@ public Factory(DataSource.Factory dataSourceFactory, ExtractorsFactory extractor /** * Creates a new factory for {@link ProgressiveMediaSource}s. * - * @param dataSourceFactory A factory for {@link DataSource}s to read the media. + *

    The factory will use the following default components: + * + *

      + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    + * + * @param dataSourceFactory A factory for {@linkplain DataSource data sources} to read the + * media. * @param progressiveMediaExtractorFactory A factory for the {@link ProgressiveMediaExtractor} - * to extract media from its container. + * to extract the media from its container. */ public Factory( DataSource.Factory dataSourceFactory, @@ -103,7 +131,8 @@ public Factory( /** * Creates a new factory for {@link ProgressiveMediaSource}s. * - * @param dataSourceFactory A factory for {@link DataSource}s to read the media. + * @param dataSourceFactory A factory for {@linkplain DataSource data sources} to read the + * media. * @param progressiveMediaExtractorFactory A factory for the {@link ProgressiveMediaExtractor} * to extract media from its container. * @param drmSessionManagerProvider A provider to obtain a {@link DrmSessionManager} for a @@ -126,19 +155,14 @@ public Factory( this.continueLoadingCheckIntervalBytes = continueLoadingCheckIntervalBytes; } - /** - * Sets the {@link LoadErrorHandlingPolicy}. The default value is created by calling {@link - * DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy()}. - * - * @param loadErrorHandlingPolicy A {@link LoadErrorHandlingPolicy}. - * @return This factory, for convenience. - */ - public Factory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + @Override + public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { this.loadErrorHandlingPolicy = - loadErrorHandlingPolicy != null - ? loadErrorHandlingPolicy - : new DefaultLoadErrorHandlingPolicy(); + checkNotNull( + loadErrorHandlingPolicy, + "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by" + + " instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and" + + " pass an instance in order to retain the old behavior."); return this; } @@ -159,11 +183,13 @@ public Factory setContinueLoadingCheckIntervalBytes(int continueLoadingCheckInte @Override public Factory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { + DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = - drmSessionManagerProvider != null - ? drmSessionManagerProvider - : new DefaultDrmSessionManagerProvider(); + checkNotNull( + drmSessionManagerProvider, + "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by" + + " instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct" + + " and pass an instance in order to retain the old behavior."); return this; } diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java index a87d86f8a88..7d3af7bb082 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java @@ -73,21 +73,6 @@ public void createMediaSource_withPath_progressiveSource() { assertThat(mediaSource).isInstanceOf(ProgressiveMediaSource.class); } - @Test - public void createMediaSource_withNull_usesNonNullDefaults() { - DefaultMediaSourceFactory defaultMediaSourceFactory = - new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext()); - MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA).build(); - - MediaSource mediaSource = - defaultMediaSourceFactory - .setDrmSessionManagerProvider(null) - .setLoadErrorHandlingPolicy(null) - .createMediaSource(mediaItem); - - assertThat(mediaSource).isNotNull(); - } - @Test public void createMediaSource_withSubtitle_isMergingMediaSource() { DefaultMediaSourceFactory defaultMediaSourceFactory = diff --git a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java index f48fe733fba..55e8b3f0910 100644 --- a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java +++ b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java @@ -114,6 +114,15 @@ public static final class Factory implements MediaSourceFactory { /** * Creates a new factory for {@link DashMediaSource}s. * + *

    The factory will use the following default components: + * + *

      + *
    • {@link DefaultDashChunkSource.Factory} + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    • {@link DefaultCompositeSequenceableLoaderFactory} + *
    + * * @param dataSourceFactory A factory for {@link DataSource} instances that will be used to load * manifest and media data. */ @@ -124,6 +133,14 @@ public Factory(DataSource.Factory dataSourceFactory) { /** * Creates a new factory for {@link DashMediaSource}s. * + *

    The factory will use the following default components: + * + *

      + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    • {@link DefaultCompositeSequenceableLoaderFactory} + *
    + * * @param chunkSourceFactory A factory for {@link DashChunkSource} instances. * @param manifestDataSourceFactory A factory for {@link DataSource} instances that will be used * to load (and refresh) the manifest. May be {@code null} if the factory will only ever be @@ -143,27 +160,24 @@ public Factory( @Override public Factory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { + DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = - drmSessionManagerProvider != null - ? drmSessionManagerProvider - : new DefaultDrmSessionManagerProvider(); + checkNotNull( + drmSessionManagerProvider, + "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by" + + " instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct" + + " and pass an instance in order to retain the old behavior."); return this; } - /** - * Sets the {@link LoadErrorHandlingPolicy}. The default value is created by calling {@link - * DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy()}. - * - * @param loadErrorHandlingPolicy A {@link LoadErrorHandlingPolicy}. - * @return This factory, for convenience. - */ - public Factory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + @Override + public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { this.loadErrorHandlingPolicy = - loadErrorHandlingPolicy != null - ? loadErrorHandlingPolicy - : new DefaultLoadErrorHandlingPolicy(); + checkNotNull( + loadErrorHandlingPolicy, + "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by" + + " instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and" + + " pass an instance in order to retain the old behavior."); return this; } diff --git a/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DefaultMediaSourceFactoryTest.java b/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DefaultMediaSourceFactoryTest.java index 3d4ebd874e5..b6d4ac102f5 100644 --- a/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DefaultMediaSourceFactoryTest.java +++ b/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DefaultMediaSourceFactoryTest.java @@ -74,21 +74,6 @@ public void createMediaSource_withPath_dashSource() { assertThat(mediaSource).isInstanceOf(DashMediaSource.class); } - @Test - public void createMediaSource_withNull_usesNonNullDefaults() { - DefaultMediaSourceFactory defaultMediaSourceFactory = - new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext()); - MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.mpd").build(); - - MediaSource mediaSource = - defaultMediaSourceFactory - .setDrmSessionManagerProvider(null) - .setLoadErrorHandlingPolicy(null) - .createMediaSource(mediaItem); - - assertThat(mediaSource).isNotNull(); - } - @Test public void getSupportedTypes_dashModule_containsTypeDash() { int[] supportedTypes = diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java index 177367c213c..d63fb9e77ea 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java @@ -114,6 +114,17 @@ public static final class Factory implements MediaSourceFactory { /** * Creates a new factory for {@link HlsMediaSource}s. * + *

    The factory will use the following default components: + * + *

      + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultHlsPlaylistParserFactory} + *
    • {@link DefaultHlsPlaylistTracker#FACTORY} + *
    • {@link HlsExtractorFactory#DEFAULT} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    • {@link DefaultCompositeSequenceableLoaderFactory} + *
    + * * @param dataSourceFactory A data source factory that will be wrapped by a {@link * DefaultHlsDataSourceFactory} to create {@link DataSource}s for manifests, segments and * keys. @@ -125,6 +136,17 @@ public Factory(DataSource.Factory dataSourceFactory) { /** * Creates a new factory for {@link HlsMediaSource}s. * + *

    The factory will use the following default components: + * + *

      + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultHlsPlaylistParserFactory} + *
    • {@link DefaultHlsPlaylistTracker#FACTORY} + *
    • {@link HlsExtractorFactory#DEFAULT} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    • {@link DefaultCompositeSequenceableLoaderFactory} + *
    + * * @param hlsDataSourceFactory An {@link HlsDataSourceFactory} for {@link DataSource}s for * manifests, segments and keys. */ @@ -155,19 +177,14 @@ public Factory setExtractorFactory(@Nullable HlsExtractorFactory extractorFactor return this; } - /** - * Sets the {@link LoadErrorHandlingPolicy}. The default value is created by calling {@link - * DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy()}. - * - * @param loadErrorHandlingPolicy A {@link LoadErrorHandlingPolicy}. - * @return This factory, for convenience. - */ - public Factory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + @Override + public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { this.loadErrorHandlingPolicy = - loadErrorHandlingPolicy != null - ? loadErrorHandlingPolicy - : new DefaultLoadErrorHandlingPolicy(); + checkNotNull( + loadErrorHandlingPolicy, + "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by" + + " instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and" + + " pass an instance in order to retain the old behavior."); return this; } @@ -275,11 +292,13 @@ public Factory setUseSessionKeys(boolean useSessionKeys) { @Override public Factory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { + DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = - drmSessionManagerProvider != null - ? drmSessionManagerProvider - : new DefaultDrmSessionManagerProvider(); + checkNotNull( + drmSessionManagerProvider, + "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by" + + " instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct" + + " and pass an instance in order to retain the old behavior."); return this; } diff --git a/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/DefaultMediaSourceFactoryTest.java b/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/DefaultMediaSourceFactoryTest.java index b474edf99cf..2a2ff66b280 100644 --- a/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/DefaultMediaSourceFactoryTest.java +++ b/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/DefaultMediaSourceFactoryTest.java @@ -74,21 +74,6 @@ public void createMediaSource_withPath_hlsSource() { assertThat(mediaSource).isInstanceOf(HlsMediaSource.class); } - @Test - public void createMediaSource_withNull_usesNonNullDefaults() { - DefaultMediaSourceFactory defaultMediaSourceFactory = - new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext()); - MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.m3u8").build(); - - MediaSource mediaSource = - defaultMediaSourceFactory - .setDrmSessionManagerProvider(null) - .setLoadErrorHandlingPolicy(null) - .createMediaSource(mediaItem); - - assertThat(mediaSource).isNotNull(); - } - @Test public void getSupportedTypes_hlsModule_containsTypeHls() { int[] supportedTypes = diff --git a/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java b/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java index d6278fe69ae..e7d261c2208 100644 --- a/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java +++ b/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java @@ -136,14 +136,14 @@ public Factory(AdsLoader adsLoader, MediaSource.Factory contentMediaSourceFactor @Override public MediaSource.Factory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + LoadErrorHandlingPolicy loadErrorHandlingPolicy) { contentMediaSourceFactory.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); return this; } @Override public MediaSource.Factory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { + DrmSessionManagerProvider drmSessionManagerProvider) { contentMediaSourceFactory.setDrmSessionManagerProvider(drmSessionManagerProvider); return this; } diff --git a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.java b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.java index 0c08b62220b..3aa2d7f090b 100644 --- a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.java +++ b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.java @@ -148,15 +148,13 @@ public Factory setTimeoutMs(@IntRange(from = 1) long timeoutMs) { /** Does nothing. {@link RtspMediaSource} does not support DRM. */ @Override - public Factory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManager) { + public Factory setDrmSessionManagerProvider(DrmSessionManagerProvider drmSessionManager) { return this; } /** Does nothing. {@link RtspMediaSource} does not support error handling policies. */ @Override - public Factory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { // TODO(internal b/172331505): Implement support. return this; } diff --git a/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java b/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java index 578b170444a..efba32c9c03 100644 --- a/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java +++ b/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java @@ -93,6 +93,15 @@ public static final class Factory implements MediaSourceFactory { /** * Creates a new factory for {@link SsMediaSource}s. * + *

    The factory will use the following default components: + * + *

      + *
    • {@link DefaultSsChunkSource.Factory} + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    • {@link DefaultCompositeSequenceableLoaderFactory} + *
    + * * @param dataSourceFactory A factory for {@link DataSource} instances that will be used to load * manifest and media data. */ @@ -101,7 +110,14 @@ public Factory(DataSource.Factory dataSourceFactory) { } /** - * Creates a new factory for {@link SsMediaSource}s. + * Creates a new factory for {@link SsMediaSource}s. The factory will use the following default + * components: + * + *
      + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    • {@link DefaultCompositeSequenceableLoaderFactory} + *
    * * @param chunkSourceFactory A factory for {@link SsChunkSource} instances. * @param manifestDataSourceFactory A factory for {@link DataSource} instances that will be used @@ -120,19 +136,14 @@ public Factory( compositeSequenceableLoaderFactory = new DefaultCompositeSequenceableLoaderFactory(); } - /** - * Sets the {@link LoadErrorHandlingPolicy}. The default value is created by calling {@link - * DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy()}. - * - * @param loadErrorHandlingPolicy A {@link LoadErrorHandlingPolicy}. - * @return This factory, for convenience. - */ - public Factory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + @Override + public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { this.loadErrorHandlingPolicy = - loadErrorHandlingPolicy != null - ? loadErrorHandlingPolicy - : new DefaultLoadErrorHandlingPolicy(); + checkNotNull( + loadErrorHandlingPolicy, + "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by" + + " instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and" + + " pass an instance in order to retain the old behavior."); return this; } @@ -183,11 +194,13 @@ public Factory setCompositeSequenceableLoaderFactory( @Override public Factory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { + DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = - drmSessionManagerProvider != null - ? drmSessionManagerProvider - : new DefaultDrmSessionManagerProvider(); + checkNotNull( + drmSessionManagerProvider, + "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by" + + " instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct" + + " and pass an instance in order to retain the old behavior."); return this; } diff --git a/libraries/exoplayer_smoothstreaming/src/test/java/androidx/media3/exoplayer/smoothstreaming/DefaultMediaSourceFactoryTest.java b/libraries/exoplayer_smoothstreaming/src/test/java/androidx/media3/exoplayer/smoothstreaming/DefaultMediaSourceFactoryTest.java index 28ca0c58a75..f5a205fcbe7 100644 --- a/libraries/exoplayer_smoothstreaming/src/test/java/androidx/media3/exoplayer/smoothstreaming/DefaultMediaSourceFactoryTest.java +++ b/libraries/exoplayer_smoothstreaming/src/test/java/androidx/media3/exoplayer/smoothstreaming/DefaultMediaSourceFactoryTest.java @@ -85,21 +85,6 @@ public void createMediaSource_withManifestPath_smoothstreamingSource() { assertThat(mediaSource).isInstanceOf(SsMediaSource.class); } - @Test - public void createMediaSource_withNull_usesNonNullDefaults() { - DefaultMediaSourceFactory defaultMediaSourceFactory = - new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext()); - MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.ism").build(); - - MediaSource mediaSource = - defaultMediaSourceFactory - .setDrmSessionManagerProvider(null) - .setLoadErrorHandlingPolicy(null) - .createMediaSource(mediaItem); - - assertThat(mediaSource).isNotNull(); - } - @Test public void getSupportedTypes_smoothstreamingModule_containsTypeSS() { int[] supportedTypes = diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSourceFactory.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSourceFactory.java index f87863c64f2..bd92f38471f 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSourceFactory.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSourceFactory.java @@ -15,7 +15,6 @@ */ package androidx.media3.test.utils; -import androidx.annotation.Nullable; import androidx.media3.common.AdPlaybackState; import androidx.media3.common.C; import androidx.media3.common.MediaItem; @@ -39,13 +38,13 @@ public final class FakeMediaSourceFactory implements MediaSourceFactory { @Override public MediaSourceFactory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { + DrmSessionManagerProvider drmSessionManagerProvider) { throw new UnsupportedOperationException(); } @Override public MediaSourceFactory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + LoadErrorHandlingPolicy loadErrorHandlingPolicy) { throw new UnsupportedOperationException(); } From 07039a45b0eba8531df1a88c8708ebf02a852123 Mon Sep 17 00:00:00 2001 From: ibaker Date: Mon, 23 May 2022 11:19:47 +0100 Subject: [PATCH 102/182] Remove `@Nullable` from some `Dash/Hls/SsMediaSource.Factory` methods The null-behaviour of these methods creates a minimization footgun, because **any** call to these setters will prevent R8 from removing the default implementation (even if it's never used by the app) - this is because R8 can't tell the default implementation is only used if the parameter is `null`. Follow-up to https://github.com/androidx/media/commit/07302a23bd5894d57514c68b2db499ac46726e77 PiperOrigin-RevId: 450395941 --- RELEASENOTES.md | 17 ++++++++ .../exoplayer/dash/DashMediaSource.java | 10 +++-- .../media3/exoplayer/hls/HlsMediaSource.java | 41 ++++++++++--------- .../smoothstreaming/SsMediaSource.java | 13 +++--- 4 files changed, 51 insertions(+), 30 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 80dc6230f22..a5c5e2ba237 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -74,10 +74,27 @@ * Parse channel count from DTS `AudioChannelConfiguration` elements. This re-enables audio passthrough for DTS streams ([#10159](https://github.com/google/ExoPlayer/issues/10159)). + * Disallow passing `null` to + `DashMediaSource.Factory.setCompositeSequenceableLoaderFactory`. + Instances of `DefaultCompositeSequenceableLoaderFactory` can be passed + explicitly if required. * HLS: * Fallback to chunkful preparation if the playlist CODECS attribute does not contain the audio codec ([#10065](https://github.com/google/ExoPlayer/issues/10065)). + * Disallow passing `null` to + `HlsMediaSource.Factory.setCompositeSequenceableLoaderFactory`, + `HlsMediaSource.Factory.setPlaylistParserFactory`, and + `HlsMediaSource.Factory.setPlaylistTrackerFactory`. Instances of + `DefaultCompositeSequenceableLoaderFactory`, + `DefaultHlsPlaylistParserFactory`, or a reference to + `DefaultHlsPlaylistTracker.FACTORY` can be passed explicitly if + required. +* Smooth Streaming: + * Disallow passing `null` to + `SsMediaSource.Factory.setCompositeSequenceableLoaderFactory`. Instances + of `DefaultCompositeSequenceableLoaderFactory` can be passed explicitly + if required. * RTSP: * Add RTP reader for MPEG4 ([#35](https://github.com/androidx/media/pull/35)). diff --git a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java index 55e8b3f0910..7abde693ba5 100644 --- a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java +++ b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java @@ -218,11 +218,13 @@ public Factory setManifestParser( * @return This factory, for convenience. */ public Factory setCompositeSequenceableLoaderFactory( - @Nullable CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory) { + CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory) { this.compositeSequenceableLoaderFactory = - compositeSequenceableLoaderFactory != null - ? compositeSequenceableLoaderFactory - : new DefaultCompositeSequenceableLoaderFactory(); + checkNotNull( + compositeSequenceableLoaderFactory, + "DashMediaSource.Factory#setCompositeSequenceableLoaderFactory no longer handles null" + + " by instantiating a new DefaultCompositeSequenceableLoaderFactory. Explicitly" + + " construct and pass an instance in order to retain the old behavior."); return this; } diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java index d63fb9e77ea..0cc5663a035 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java @@ -189,41 +189,40 @@ public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandl } /** - * Sets the factory from which playlist parsers will be obtained. The default value is a {@link - * DefaultHlsPlaylistParserFactory}. + * Sets the factory from which playlist parsers will be obtained. * * @param playlistParserFactory An {@link HlsPlaylistParserFactory}. * @return This factory, for convenience. */ - public Factory setPlaylistParserFactory( - @Nullable HlsPlaylistParserFactory playlistParserFactory) { + public Factory setPlaylistParserFactory(HlsPlaylistParserFactory playlistParserFactory) { this.playlistParserFactory = - playlistParserFactory != null - ? playlistParserFactory - : new DefaultHlsPlaylistParserFactory(); + checkNotNull( + playlistParserFactory, + "HlsMediaSource.Factory#setPlaylistParserFactory no longer handles null by" + + " instantiating a new DefaultHlsPlaylistParserFactory. Explicitly" + + " construct and pass an instance in order to retain the old behavior."); return this; } /** - * Sets the {@link HlsPlaylistTracker} factory. The default value is {@link - * DefaultHlsPlaylistTracker#FACTORY}. + * Sets the {@link HlsPlaylistTracker} factory. * * @param playlistTrackerFactory A factory for {@link HlsPlaylistTracker} instances. * @return This factory, for convenience. */ - public Factory setPlaylistTrackerFactory( - @Nullable HlsPlaylistTracker.Factory playlistTrackerFactory) { + public Factory setPlaylistTrackerFactory(HlsPlaylistTracker.Factory playlistTrackerFactory) { this.playlistTrackerFactory = - playlistTrackerFactory != null - ? playlistTrackerFactory - : DefaultHlsPlaylistTracker.FACTORY; + checkNotNull( + playlistTrackerFactory, + "HlsMediaSource.Factory#setPlaylistTrackerFactory no longer handles null by" + + " defaulting to DefaultHlsPlaylistTracker.FACTORY. Explicitly" + + " pass a reference to this instance in order to retain the old behavior."); return this; } /** * Sets the factory to create composite {@link SequenceableLoader}s for when this media source - * loads data from multiple streams (video, audio etc...). The default is an instance of {@link - * DefaultCompositeSequenceableLoaderFactory}. + * loads data from multiple streams (video, audio etc...). * * @param compositeSequenceableLoaderFactory A factory to create composite {@link * SequenceableLoader}s for when this media source loads data from multiple streams (video, @@ -231,11 +230,13 @@ public Factory setPlaylistTrackerFactory( * @return This factory, for convenience. */ public Factory setCompositeSequenceableLoaderFactory( - @Nullable CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory) { + CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory) { this.compositeSequenceableLoaderFactory = - compositeSequenceableLoaderFactory != null - ? compositeSequenceableLoaderFactory - : new DefaultCompositeSequenceableLoaderFactory(); + checkNotNull( + compositeSequenceableLoaderFactory, + "HlsMediaSource.Factory#setCompositeSequenceableLoaderFactory no longer handles null" + + " by instantiating a new DefaultCompositeSequenceableLoaderFactory. Explicitly" + + " construct and pass an instance in order to retain the old behavior."); return this; } diff --git a/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java b/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java index efba32c9c03..b8231da9b1c 100644 --- a/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java +++ b/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java @@ -175,8 +175,7 @@ public Factory setManifestParser( /** * Sets the factory to create composite {@link SequenceableLoader}s for when this media source - * loads data from multiple streams (video, audio etc.). The default is an instance of {@link - * DefaultCompositeSequenceableLoaderFactory}. + * loads data from multiple streams (video, audio etc.). * * @param compositeSequenceableLoaderFactory A factory to create composite {@link * SequenceableLoader}s for when this media source loads data from multiple streams (video, @@ -184,11 +183,13 @@ public Factory setManifestParser( * @return This factory, for convenience. */ public Factory setCompositeSequenceableLoaderFactory( - @Nullable CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory) { + CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory) { this.compositeSequenceableLoaderFactory = - compositeSequenceableLoaderFactory != null - ? compositeSequenceableLoaderFactory - : new DefaultCompositeSequenceableLoaderFactory(); + checkNotNull( + compositeSequenceableLoaderFactory, + "SsMediaSource.Factory#setCompositeSequenceableLoaderFactory no longer handles null" + + " by instantiating a new DefaultCompositeSequenceableLoaderFactory. Explicitly" + + " construct and pass an instance in order to retain the old behavior."); return this; } From 08fc89a58592088c037066be7a76ff75e8dfd9e6 Mon Sep 17 00:00:00 2001 From: bachinger Date: Mon, 23 May 2022 11:23:30 +0100 Subject: [PATCH 103/182] Implement onSubscribe in session demo service Immediately notify a subscribing client about the availability of child items of a parent ID to make the client load the children. PiperOrigin-RevId: 450396690 --- .../media3/demo/session/PlaybackService.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt b/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt index 0790db69199..a3839ae5384 100644 --- a/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt +++ b/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt @@ -116,6 +116,21 @@ class PlaybackService : MediaLibraryService() { return SessionResult.RESULT_ERROR_NOT_SUPPORTED } } + + override fun onSubscribe( + session: MediaLibrarySession, + browser: MediaSession.ControllerInfo, + parentId: String, + params: LibraryParams? + ): ListenableFuture> { + val children = + MediaItemTree.getChildren(parentId) + ?: return Futures.immediateFuture( + LibraryResult.ofError(LibraryResult.RESULT_ERROR_BAD_VALUE) + ) + session.notifyChildrenChanged(browser, parentId, children.size, params) + return Futures.immediateFuture(LibraryResult.ofVoid()) + } } private class CustomMediaItemFiller : MediaSession.MediaItemFiller { From 0fa0735935940ce755e78bbb344edc16ad1fc5a8 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Mon, 23 May 2022 12:08:50 +0100 Subject: [PATCH 104/182] Reorder demo samples Put cloud storage samples at the top to avoid having a sample at the top of the list where we don't control the server. Also update labels not to mention progressive container type, as it's irrelevant for Transformer, which always transmuxes even if it doesn't transcode. #ame-bug-week PiperOrigin-RevId: 450403784 --- .../transformer/ConfigurationActivity.java | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java index c4cec6e845d..fc4fe1b9cab 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/ConfigurationActivity.java @@ -64,13 +64,14 @@ public final class ConfigurationActivity extends AppCompatActivity { public static final String PERIODIC_VIGNETTE_INNER_RADIUS = "periodic_vignette_inner_radius"; public static final String PERIODIC_VIGNETTE_OUTER_RADIUS = "periodic_vignette_outer_radius"; private static final String[] INPUT_URIS = { - "https://html5demos.com/assets/dizzy.mp4", - "https://storage.googleapis.com/exoplayer-test-media-1/mp4/1920w_1080h_4s.mp4", + "https://storage.googleapis.com/exoplayer-test-media-1/mp4/android-screens-10s.mp4", "https://storage.googleapis.com/exoplayer-test-media-0/android-block-1080-hevc.mp4", - "https://storage.googleapis.com/exoplayer-test-media-0/BigBuckBunny_320x180.mp4", + "https://html5demos.com/assets/dizzy.mp4", "https://html5demos.com/assets/dizzy.webm", "https://storage.googleapis.com/exoplayer-test-media-1/mp4/portrait_4k60.mp4", "https://storage.googleapis.com/exoplayer-test-media-1/mp4/8k24fps_4s.mp4", + "https://storage.googleapis.com/exoplayer-test-media-1/mp4/1920w_1080h_4s.mp4", + "https://storage.googleapis.com/exoplayer-test-media-0/BigBuckBunny_320x180.mp4", "https://storage.googleapis.com/exoplayer-test-media-1/mp4/portrait_avc_aac.mp4", "https://storage.googleapis.com/exoplayer-test-media-1/mp4/portrait_rotated_avc_aac.mp4", "https://storage.googleapis.com/exoplayer-test-media-1/mp4/slow-motion/slowMotion_stopwatch_240fps_long.mp4", @@ -78,18 +79,19 @@ public final class ConfigurationActivity extends AppCompatActivity { "https://storage.googleapis.com/exoplayer-test-media-1/mp4/samsung-hdr-hdr10.mp4", }; private static final String[] URI_DESCRIPTIONS = { // same order as INPUT_URIS - "MP4 with H264 video and AAC audio", - "Short MP4 with H265 video and AAC audio", - "MP4 with H265 video and AAC audio", - "Long MP4 with H264 video and AAC audio", - "WebM with VP8 video and Vorbis audio", - "4K 60fps MP4 with H264 video and AAC audio (portrait, timestamps always increase)", - "8k 24fps MP4 with H265 video and AAC audio", - "MP4 with H264 video and AAC audio (portrait, H > W, 0\u00B0)", - "MP4 with H264 video and AAC audio (portrait, H < W, 90\u00B0)", + "720p H264 video and AAC audio", + "1080p H265 video and AAC audio", + "360p H264 video and AAC audio", + "360p VP8 video and Vorbis audio", + "4K H264 video and AAC audio (portrait, no B-frames)", + "8k H265 video and AAC audio", + "Short 1080p H265 video and AAC audio", + "Long 180p H264 video and AAC audio", + "H264 video and AAC audio (portrait, H > W, 0\u00B0)", + "H264 video and AAC audio (portrait, H < W, 90\u00B0)", "SEF slow motion with 240 fps", - "DASH stream with non-square pixels", - "MP4 with HDR (HDR10) H265 video (encoding may fail)", + "480p DASH (non-square pixels)", + "HDR (HDR10) H265 video (encoding may fail)", }; private static final String[] DEMO_EFFECTS = { "Dizzy crop", From 8d03fdfe3464f073bd6b24ef3b5d2b42f6d49a39 Mon Sep 17 00:00:00 2001 From: bachinger Date: Mon, 23 May 2022 12:13:04 +0100 Subject: [PATCH 105/182] Support custom actions with DefaultMediaNotificationProvider Refactors the DefaultMediaNotificationProvider by separating the selection of actions and building the notification with it. The custom commands of the custom layout of the session are turned into notification actions and when received from the notification converted back to custom session commands that are sent to the session. PiperOrigin-RevId: 450404350 --- .../media3/session/DefaultActionFactory.java | 21 +- .../DefaultMediaNotificationProvider.java | 245 ++++++++++--- .../session/MediaControllerImplBase.java | 18 +- .../media3/session/MediaNotification.java | 37 +- .../session/MediaNotificationManager.java | 31 +- .../androidx/media3/session/MediaSession.java | 12 +- .../session/MediaSessionLegacyStub.java | 9 +- .../session/DefaultActionFactoryTest.java | 48 +++ .../DefaultMediaNotificationProviderTest.java | 342 ++++++++++++++++++ 9 files changed, 691 insertions(+), 72 deletions(-) create mode 100644 libraries/session/src/test/java/androidx/media3/session/DefaultMediaNotificationProviderTest.java diff --git a/libraries/session/src/main/java/androidx/media3/session/DefaultActionFactory.java b/libraries/session/src/main/java/androidx/media3/session/DefaultActionFactory.java index 06fa56b04cb..cf63e6cc4b0 100644 --- a/libraries/session/src/main/java/androidx/media3/session/DefaultActionFactory.java +++ b/libraries/session/src/main/java/androidx/media3/session/DefaultActionFactory.java @@ -29,6 +29,8 @@ import static androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS; import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; +import static androidx.media3.common.util.Assertions.checkArgument; +import static androidx.media3.common.util.Assertions.checkNotNull; import android.app.PendingIntent; import android.app.Service; @@ -64,7 +66,7 @@ public DefaultActionFactory(Service service) { @Override public NotificationCompat.Action createMediaAction( - IconCompat icon, CharSequence title, @Player.Command long command) { + IconCompat icon, CharSequence title, @Player.Command int command) { return new NotificationCompat.Action(icon, title, createMediaActionPendingIntent(command)); } @@ -75,6 +77,20 @@ public NotificationCompat.Action createCustomAction( icon, title, createCustomActionPendingIntent(customAction, extras)); } + @Override + public NotificationCompat.Action createCustomActionFromCustomCommandButton( + CommandButton customCommandButton) { + checkArgument( + customCommandButton.sessionCommand != null + && customCommandButton.sessionCommand.commandCode + == SessionCommand.COMMAND_CODE_CUSTOM); + SessionCommand customCommand = checkNotNull(customCommandButton.sessionCommand); + return new NotificationCompat.Action( + IconCompat.createWithResource(service, customCommandButton.iconResId), + customCommandButton.displayName, + createCustomActionPendingIntent(customCommand.customAction, customCommand.customExtras)); + } + @Override public PendingIntent createMediaActionPendingIntent(@Player.Command long command) { int keyCode = toKeyCode(command); @@ -120,7 +136,8 @@ private PendingIntent createCustomActionPendingIntent(String action, Bundle extr service, /* requestCode= */ ++customActionPendingIntentRequestCode, intent, - Util.SDK_INT >= 23 ? PendingIntent.FLAG_IMMUTABLE : 0); + PendingIntent.FLAG_UPDATE_CURRENT + | (Util.SDK_INT >= 23 ? PendingIntent.FLAG_IMMUTABLE : 0)); } /** Returns whether {@code intent} was part of a {@link #createMediaAction media action}. */ diff --git a/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java b/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java index 61b4a3d4afb..e452bead1f3 100644 --- a/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java +++ b/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java @@ -15,12 +15,15 @@ */ package androidx.media3.session; +import static androidx.media3.common.C.INDEX_UNSET; +import static androidx.media3.common.Player.COMMAND_INVALID; import static androidx.media3.common.Player.COMMAND_PLAY_PAUSE; import static androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT; import static androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS; import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_STOP; +import static androidx.media3.common.util.Assertions.checkState; import static androidx.media3.common.util.Assertions.checkStateNotNull; import static androidx.media3.common.util.Util.castNonNull; @@ -44,10 +47,14 @@ import androidx.media3.common.util.Log; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; +import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.MoreExecutors; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import java.util.concurrent.ExecutionException; /** @@ -76,7 +83,15 @@ * */ @UnstableApi -public final class DefaultMediaNotificationProvider implements MediaNotification.Provider { +public class DefaultMediaNotificationProvider implements MediaNotification.Provider { + + /** + * An extras key that can be used to define the index of a {@link CommandButton} in {@linkplain + * Notification.MediaStyle#setShowActionsInCompactView(int...) compact view}. + */ + public static final String COMMAND_KEY_COMPACT_VIEW_INDEX = + "androidx.media3.session.command.COMPACT_VIEW_INDEX"; + private static final String TAG = "NotificationProvider"; private static final int NOTIFICATION_ID = 1001; private static final String NOTIFICATION_CHANNEL_ID = "default_channel_id"; @@ -110,56 +125,15 @@ public DefaultMediaNotificationProvider(Context context, BitmapLoader bitmapLoad } @Override - public MediaNotification createNotification( + public final MediaNotification createNotification( MediaController mediaController, + ImmutableList customLayout, MediaNotification.ActionFactory actionFactory, Callback onNotificationChangedCallback) { ensureNotificationChannel(); NotificationCompat.Builder builder = new NotificationCompat.Builder(context, NOTIFICATION_CHANNEL_ID); - Player.Commands availableCommands = mediaController.getAvailableCommands(); - // Skip to previous action. - boolean skipToPreviousAdded = false; - if (availableCommands.containsAny( - COMMAND_SEEK_TO_PREVIOUS, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM)) { - skipToPreviousAdded = true; - builder.addAction( - actionFactory.createMediaAction( - IconCompat.createWithResource( - context, R.drawable.media3_notification_seek_to_previous), - context.getString(R.string.media3_controls_seek_to_previous_description), - COMMAND_SEEK_TO_PREVIOUS)); - } - boolean playPauseAdded = false; - if (availableCommands.contains(COMMAND_PLAY_PAUSE)) { - playPauseAdded = true; - if (mediaController.getPlaybackState() == Player.STATE_ENDED - || !mediaController.getPlayWhenReady()) { - // Play action. - builder.addAction( - actionFactory.createMediaAction( - IconCompat.createWithResource(context, R.drawable.media3_notification_play), - context.getString(R.string.media3_controls_play_description), - COMMAND_PLAY_PAUSE)); - } else { - // Pause action. - builder.addAction( - actionFactory.createMediaAction( - IconCompat.createWithResource(context, R.drawable.media3_notification_pause), - context.getString(R.string.media3_controls_pause_description), - COMMAND_PLAY_PAUSE)); - } - } - // Skip to next action. - if (availableCommands.containsAny(COMMAND_SEEK_TO_NEXT, COMMAND_SEEK_TO_NEXT_MEDIA_ITEM)) { - builder.addAction( - actionFactory.createMediaAction( - IconCompat.createWithResource(context, R.drawable.media3_notification_seek_to_next), - context.getString(R.string.media3_controls_seek_to_next_description), - COMMAND_SEEK_TO_NEXT)); - } - // Set metadata info in the notification. MediaMetadata metadata = mediaController.getMediaMetadata(); builder.setContentTitle(metadata.title).setContentText(metadata.artist); @@ -188,14 +162,19 @@ public MediaNotification createNotification( } MediaStyle mediaStyle = new MediaStyle(); + int[] compactViewIndices = + addNotificationActions( + getMediaButtons( + mediaController.getAvailableCommands(), + customLayout, + mediaController.getPlayWhenReady()), + builder, + actionFactory); + mediaStyle.setShowActionsInCompactView(compactViewIndices); if (mediaController.isCommandAvailable(COMMAND_STOP) || Util.SDK_INT < 21) { // We must include a cancel intent for pre-L devices. mediaStyle.setCancelButtonIntent(actionFactory.createMediaActionPendingIntent(COMMAND_STOP)); } - if (playPauseAdded) { - // Show play/pause button only in compact view. - mediaStyle.setShowActionsInCompactView(skipToPreviousAdded ? 1 : 0); - } long playbackStartTimeMs = getPlaybackStartTimeEpochMs(mediaController); boolean displayElapsedTimeWithChronometer = playbackStartTimeMs != C.TIME_UNSET; @@ -218,8 +197,174 @@ public MediaNotification createNotification( } @Override - public void handleCustomAction(MediaController mediaController, String action, Bundle extras) { - // We don't handle custom commands. + public final void handleCustomCommand( + MediaController mediaController, String action, Bundle extras) { + @Nullable SessionCommand customCommand = null; + for (SessionCommand command : mediaController.getAvailableSessionCommands().commands) { + if (command.commandCode == SessionCommand.COMMAND_CODE_CUSTOM + && command.customAction.equals(action)) { + customCommand = command; + break; + } + } + if (customCommand != null) { + ListenableFuture future = + mediaController.sendCustomCommand(customCommand, extras); + Futures.addCallback( + future, + new FutureCallback() { + @Override + public void onSuccess(SessionResult result) { + // Do nothing. + } + + @Override + public void onFailure(Throwable t) { + Log.w(TAG, "custom command " + action + " produced an error: " + t.getMessage(), t); + } + }, + MoreExecutors.directExecutor()); + } + } + + /** + * Returns the ordered list of {@linkplain CommandButton command buttons} to be used to build the + * notification. + * + *

    This method is called each time a new notification is built. + * + *

    Override this method to customize the buttons on the notification. Commands of the buttons + * returned by this method must be contained in {@link MediaController#getAvailableCommands()}. + * + *

    By default the notification shows {@link Player#COMMAND_PLAY_PAUSE} in {@linkplain + * Notification.MediaStyle#setShowActionsInCompactView(int...) compact view}. This can be + * customized by defining the index of the command in compact view of up to 3 commands in their + * extras with key {@link DefaultMediaNotificationProvider#COMMAND_KEY_COMPACT_VIEW_INDEX}. + * + * @param playerCommands The available player commands. + * @param customLayout The {@linkplain MediaSession#setCustomLayout(List) custom layout of + * commands}. + * @param playWhenReady The current {@code playWhenReady} state. + * @return The ordered list of command buttons to be placed on the notification. + */ + protected List getMediaButtons( + Player.Commands playerCommands, List customLayout, boolean playWhenReady) { + // Skip to previous action. + List commandButtons = new ArrayList<>(); + if (playerCommands.containsAny(COMMAND_SEEK_TO_PREVIOUS, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM)) { + Bundle commandButtonExtras = new Bundle(); + commandButtonExtras.putInt(COMMAND_KEY_COMPACT_VIEW_INDEX, INDEX_UNSET); + commandButtons.add( + new CommandButton.Builder() + .setPlayerCommand(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM) + .setIconResId(R.drawable.media3_notification_seek_to_previous) + .setDisplayName( + context.getString(R.string.media3_controls_seek_to_previous_description)) + .setExtras(commandButtonExtras) + .build()); + } + if (playerCommands.contains(COMMAND_PLAY_PAUSE)) { + Bundle commandButtonExtras = new Bundle(); + commandButtonExtras.putInt(COMMAND_KEY_COMPACT_VIEW_INDEX, INDEX_UNSET); + commandButtons.add( + new CommandButton.Builder() + .setPlayerCommand(COMMAND_PLAY_PAUSE) + .setIconResId( + playWhenReady + ? R.drawable.media3_notification_pause + : R.drawable.media3_notification_play) + .setExtras(commandButtonExtras) + .setDisplayName( + playWhenReady + ? context.getString(R.string.media3_controls_pause_description) + : context.getString(R.string.media3_controls_play_description)) + .build()); + } + // Skip to next action. + if (playerCommands.containsAny(COMMAND_SEEK_TO_NEXT, COMMAND_SEEK_TO_NEXT_MEDIA_ITEM)) { + Bundle commandButtonExtras = new Bundle(); + commandButtonExtras.putInt(COMMAND_KEY_COMPACT_VIEW_INDEX, INDEX_UNSET); + commandButtons.add( + new CommandButton.Builder() + .setPlayerCommand(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM) + .setIconResId(R.drawable.media3_notification_seek_to_next) + .setExtras(commandButtonExtras) + .setDisplayName(context.getString(R.string.media3_controls_seek_to_next_description)) + .build()); + } + for (int i = 0; i < customLayout.size(); i++) { + CommandButton button = customLayout.get(i); + if (button.sessionCommand != null + && button.sessionCommand.commandCode == SessionCommand.COMMAND_CODE_CUSTOM) { + commandButtons.add(button); + } + } + return commandButtons; + } + + /** + * Adds the media buttons to the notification builder for the given action factory. + * + *

    The list of {@code mediaButtons} is the list resulting from {@link #getMediaButtons( + * Player.Commands, List, boolean)}. + * + *

    Override this method to customize how the media buttons {@linkplain + * NotificationCompat.Builder#addAction(NotificationCompat.Action) are added} to the notification + * and define which actions are shown in compact view by returning the indices of the buttons to + * be shown in compact view. + * + *

    By default {@link Player#COMMAND_PLAY_PAUSE} is shown in compact view, unless some of the + * buttons are marked with {@link DefaultMediaNotificationProvider#COMMAND_KEY_COMPACT_VIEW_INDEX} + * to declare the index in compact view of the given command button in the button extras. + * + * @param mediaButtons The command buttons to be included in the notification. + * @param builder The builder to add the actions to. + * @param actionFactory The actions factory to be used to build notifications. + * @return The indices of the buttons to be {@linkplain + * Notification.MediaStyle#setShowActionsInCompactView(int...) used in compact view of the + * notification}. + */ + protected int[] addNotificationActions( + List mediaButtons, + NotificationCompat.Builder builder, + MediaNotification.ActionFactory actionFactory) { + int[] compactViewIndices = new int[3]; + Arrays.fill(compactViewIndices, INDEX_UNSET); + int compactViewCommandCount = 0; + for (int i = 0; i < mediaButtons.size(); i++) { + CommandButton commandButton = mediaButtons.get(i); + if (commandButton.sessionCommand != null) { + builder.addAction(actionFactory.createCustomActionFromCustomCommandButton(commandButton)); + } else { + checkState(commandButton.playerCommand != COMMAND_INVALID); + builder.addAction( + actionFactory.createMediaAction( + IconCompat.createWithResource(context, commandButton.iconResId), + commandButton.displayName, + commandButton.playerCommand)); + } + if (compactViewCommandCount == 3) { + continue; + } + int compactViewIndex = + commandButton.extras.getInt( + COMMAND_KEY_COMPACT_VIEW_INDEX, /* defaultValue= */ INDEX_UNSET); + if (compactViewIndex >= 0 && compactViewIndex < compactViewIndices.length) { + compactViewCommandCount++; + compactViewIndices[compactViewIndex] = i; + } else if (commandButton.playerCommand == COMMAND_PLAY_PAUSE + && compactViewCommandCount == 0) { + // If there is no custom configuration we use the play/pause action in compact view. + compactViewIndices[0] = i; + } + } + for (int i = 0; i < compactViewIndices.length; i++) { + if (compactViewIndices[i] == INDEX_UNSET) { + compactViewIndices = Arrays.copyOf(compactViewIndices, i); + break; + } + } + return compactViewIndices; } private void ensureNotificationChannel() { diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java index a0c55ff9a8e..e9d9b5a420d 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java @@ -1077,7 +1077,7 @@ private void addMediaItemsInternal(int index, List mediaItems) { /* timelineChangeReason= */ TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED, /* ignored */ PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST, /* positionDiscontinuity= */ false, - /* ignored= */ DISCONTINUITY_REASON_INTERNAL, + /* ignored */ DISCONTINUITY_REASON_INTERNAL, /* mediaItemTransition= */ oldTimeline.isEmpty(), MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED); } @@ -1987,7 +1987,7 @@ private void moveMediaItemsInternal(int fromIndex, int toIndex, int newIndex) { /* timelineChangeReason= */ TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED, /* ignored */ PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST, /* positionDiscontinuity= */ false, - /* ignored= */ DISCONTINUITY_REASON_INTERNAL, + /* ignored */ DISCONTINUITY_REASON_INTERNAL, /* mediaItemTransition= */ false, /* ignored */ MEDIA_ITEM_TRANSITION_REASON_REPEAT); } @@ -2262,7 +2262,7 @@ IMediaSession getSessionInterfaceWithSessionCommandIfAble(@CommandCode int comma IMediaSession getSessionInterfaceWithSessionCommandIfAble(SessionCommand command) { checkArgument(command.commandCode == COMMAND_CODE_CUSTOM); if (!sessionCommands.contains(command)) { - Log.w(TAG, "Controller isn't allowed to call session command:" + command); + Log.w(TAG, "Controller isn't allowed to call custom session command:" + command.customAction); return null; } return iSession; @@ -2578,11 +2578,21 @@ void onSetCustomLayout(int seq, List layout) { if (!isConnected()) { return; } + List validatedCustomLayout = new ArrayList<>(); + for (int i = 0; i < layout.size(); i++) { + CommandButton button = layout.get(i); + if (intersectedPlayerCommands.contains(button.playerCommand) + || (button.sessionCommand != null && sessionCommands.contains(button.sessionCommand)) + || (button.playerCommand != Player.COMMAND_INVALID + && sessionCommands.contains(button.playerCommand))) { + validatedCustomLayout.add(button); + } + } instance.notifyControllerListener( listener -> { ListenableFuture future = checkNotNull( - listener.onSetCustomLayout(instance, layout), + listener.onSetCustomLayout(instance, validatedCustomLayout), "MediaController.Listener#onSetCustomLayout() must not return null"); sendControllerResultWhenReady(seq, future); }); diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaNotification.java b/libraries/session/src/main/java/androidx/media3/session/MediaNotification.java index 140d5b10af8..0632c80c480 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaNotification.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaNotification.java @@ -26,6 +26,8 @@ import androidx.core.graphics.drawable.IconCompat; import androidx.media3.common.Player; import androidx.media3.common.util.UnstableApi; +import com.google.common.collect.ImmutableList; +import java.util.List; /** A notification for media playbacks. */ public final class MediaNotification { @@ -46,23 +48,40 @@ public interface ActionFactory { * @param command A command to send when users trigger this action. */ NotificationCompat.Action createMediaAction( - IconCompat icon, CharSequence title, @Player.Command long command); + IconCompat icon, CharSequence title, @Player.Command int command); /** * Creates a {@link NotificationCompat.Action} for a notification with a custom action. Actions * created with this method are not expected to be handled by the library and will be forwarded - * to the {@linkplain MediaNotification.Provider#handleCustomAction notification provider} that + * to the {@linkplain MediaNotification.Provider#handleCustomCommand notification provider} that * provided them. * * @param icon The icon to show for this action. * @param title The title of the action. * @param customAction The custom action set. * @param extras Extras to be included in the action. - * @see MediaNotification.Provider#handleCustomAction + * @see MediaNotification.Provider#handleCustomCommand */ NotificationCompat.Action createCustomAction( IconCompat icon, CharSequence title, String customAction, Bundle extras); + /** + * Creates a {@link NotificationCompat.Action} for a notification from a custom command button. + * Actions created with this method are not expected to be handled by the library and will be + * forwarded to the {@linkplain MediaNotification.Provider#handleCustomCommand notification + * provider} that provided them. + * + *

    The returned {@link NotificationCompat.Action} will have a {@link PendingIntent} with the + * extras from {@link SessionCommand#customExtras}. Accordingly the {@linkplain + * SessionCommand#customExtras command's extras} will be passed to {@link + * Provider#handleCustomCommand(MediaController, String, Bundle)} when the action is executed. + * + * @param customCommandButton A {@linkplain CommandButton custom command button}. + * @see MediaNotification.Provider#handleCustomCommand + */ + NotificationCompat.Action createCustomActionFromCustomCommandButton( + CommandButton customCommandButton); + /** * Creates a {@link PendingIntent} for a media action that will be handled by the library. * @@ -100,24 +119,28 @@ interface Callback { * @param mediaController The controller of the session. * @param actionFactory The {@link ActionFactory} for creating notification {@linkplain * NotificationCompat.Action actions}. + * @param customLayout The custom layout {@linkplain MediaSession#setCustomLayout(List) set by + * the session}. * @param onNotificationChangedCallback A callback that the provider needs to notify when the * notification has changed and needs to be posted again, for example after a bitmap has * been loaded asynchronously. */ MediaNotification createNotification( MediaController mediaController, + ImmutableList customLayout, ActionFactory actionFactory, Callback onNotificationChangedCallback); /** - * Handles a notification's custom action. + * Handles a notification's custom command. * * @param mediaController The controller of the session. - * @param action The custom action. - * @param extras Extras set in the custom action, otherwise {@link Bundle#EMPTY}. + * @param action The custom command action. + * @param extras A bundle {@linkplain SessionCommand#customExtras set in the custom command}, + * otherwise {@link Bundle#EMPTY}. * @see ActionFactory#createCustomAction */ - void handleCustomAction(MediaController mediaController, String action, Bundle extras); + void handleCustomCommand(MediaController mediaController, String action, Bundle extras); } /** The notification id. */ diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaNotificationManager.java b/libraries/session/src/main/java/androidx/media3/session/MediaNotificationManager.java index 75c168f575e..001ef42cbb6 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaNotificationManager.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaNotificationManager.java @@ -31,6 +31,7 @@ import androidx.media3.common.Player; import androidx.media3.common.util.Log; import androidx.media3.common.util.Util; +import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import java.util.HashMap; @@ -57,6 +58,7 @@ private final Executor mainExecutor; private final Intent startSelfIntent; private final Map> controllerMap; + private final Map> customLayoutMap; private int totalNotificationCount; @Nullable private MediaNotification mediaNotification; @@ -73,13 +75,16 @@ public MediaNotificationManager( mainExecutor = (runnable) -> Util.postOrRun(mainHandler, runnable); startSelfIntent = new Intent(mediaSessionService, mediaSessionService.getClass()); controllerMap = new HashMap<>(); + customLayoutMap = new HashMap<>(); } public void addSession(MediaSession session) { if (controllerMap.containsKey(session)) { return; } - MediaControllerListener listener = new MediaControllerListener(mediaSessionService, session); + customLayoutMap.put(session, ImmutableList.of()); + MediaControllerListener listener = + new MediaControllerListener(mediaSessionService, session, customLayoutMap); ListenableFuture controllerFuture = new MediaController.Builder(mediaSessionService, session.getToken()) .setListener(listener) @@ -104,6 +109,7 @@ public void addSession(MediaSession session) { } public void removeSession(MediaSession session) { + customLayoutMap.remove(session); @Nullable ListenableFuture controllerFuture = controllerMap.remove(session); if (controllerFuture != null) { MediaController.releaseFuture(controllerFuture); @@ -117,7 +123,7 @@ public void onCustomAction(MediaSession session, String action, Bundle extras) { } try { MediaController mediaController = controllerFuture.get(0, TimeUnit.MILLISECONDS); - mediaNotificationProvider.handleCustomAction(mediaController, action, extras); + mediaNotificationProvider.handleCustomCommand(mediaController, action, extras); } catch (InterruptedException | ExecutionException | TimeoutException e) { // We should never reach this. throw new IllegalStateException(e); @@ -150,7 +156,11 @@ public void updateNotification(MediaSession session) { () -> onNotificationUpdated(notificationSequence, session, notification)); MediaNotification mediaNotification = - this.mediaNotificationProvider.createNotification(mediaController, actionFactory, callback); + this.mediaNotificationProvider.createNotification( + mediaController, + checkStateNotNull(customLayoutMap.get(session)), + actionFactory, + callback); updateNotificationInternal(session, mediaNotification); } @@ -229,10 +239,15 @@ private static final class MediaControllerListener implements MediaController.Listener, Player.Listener { private final MediaSessionService mediaSessionService; private final MediaSession session; + private final Map> customLayoutMap; - public MediaControllerListener(MediaSessionService mediaSessionService, MediaSession session) { + public MediaControllerListener( + MediaSessionService mediaSessionService, + MediaSession session, + Map> customLayoutMap) { this.mediaSessionService = mediaSessionService; this.session = session; + this.customLayoutMap = customLayoutMap; } public void onConnected() { @@ -242,6 +257,14 @@ public void onConnected() { } } + @Override + public ListenableFuture onSetCustomLayout( + MediaController controller, List layout) { + customLayoutMap.put(session, ImmutableList.copyOf(layout)); + mediaSessionService.onUpdateNotification(session); + return Futures.immediateFuture(new SessionResult(SessionResult.RESULT_SUCCESS)); + } + @Override public void onEvents(Player player, Player.Events events) { // We must limit the frequency of notification updates, otherwise the system may suppress diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java index 71f707c494c..db269b26891 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java @@ -631,9 +631,19 @@ public ListenableFuture setCustomLayout( } /** - * Sets the custom layout and broadcasts it to all connected controllers including the legacy + * Broadcasts the custom layout to all connected Media3 controllers and converts the buttons to + * custom actions in the legacy media session playback state (see {@code + * PlaybackStateCompat.Builder#addCustomAction(PlaybackStateCompat.CustomAction)}) for legacy * controllers. * + *

    When converting, the {@link SessionCommand#customExtras custom extras of the session + * command} is used for the extras of the legacy custom action. + * + *

    Media3 controllers that connect after calling this method will not receive the broadcast. + * You need to call {@link #setCustomLayout(ControllerInfo, List)} in {@link + * MediaSession.Callback#onPostConnect(MediaSession, ControllerInfo)} to make these controllers + * aware of the custom layout. + * * @param layout The ordered list of {@link CommandButton}. */ public void setCustomLayout(List layout) { diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java index 8b92613b67b..02300c7ba12 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java @@ -191,13 +191,14 @@ public void onCommand(String commandName, @Nullable Bundle args, @Nullable Resul } @Override - public void onCustomAction(String action, @Nullable Bundle extras) { - Bundle args = extras == null ? Bundle.EMPTY : extras; - SessionCommand command = new SessionCommand(action, args); + public void onCustomAction(String action, @Nullable Bundle args) { + SessionCommand command = new SessionCommand(action, /* extras= */ Bundle.EMPTY); dispatchSessionTaskWithSessionCommand( command, controller -> - ignoreFuture(sessionImpl.onCustomCommandOnHandler(controller, command, args))); + ignoreFuture( + sessionImpl.onCustomCommandOnHandler( + controller, command, args != null ? args : Bundle.EMPTY))); } @Override diff --git a/libraries/session/src/test/java/androidx/media3/session/DefaultActionFactoryTest.java b/libraries/session/src/test/java/androidx/media3/session/DefaultActionFactoryTest.java index 52a11687bfc..fc7f5b1402e 100644 --- a/libraries/session/src/test/java/androidx/media3/session/DefaultActionFactoryTest.java +++ b/libraries/session/src/test/java/androidx/media3/session/DefaultActionFactoryTest.java @@ -20,9 +20,12 @@ import android.app.PendingIntent; import android.content.Intent; +import android.os.Bundle; import androidx.annotation.Nullable; +import androidx.core.app.NotificationCompat; import androidx.media3.common.Player; import androidx.test.ext.junit.runners.AndroidJUnit4; +import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; @@ -64,6 +67,51 @@ public void isCustomAction_withNonCustomActionIntent_returnsFalse() { assertThat(actionFactory.isCustomAction(intent)).isFalse(); } + @Test + public void createCustomActionFromCustomCommandButton() { + DefaultActionFactory actionFactory = + new DefaultActionFactory(Robolectric.setupService(TestService.class)); + + Bundle commandBundle = new Bundle(); + commandBundle.putString("command-key", "command-value"); + Bundle buttonBundle = new Bundle(); + buttonBundle.putString("button-key", "button-value"); + CommandButton customSessionCommand = + new CommandButton.Builder() + .setSessionCommand(new SessionCommand("a", commandBundle)) + .setExtras(buttonBundle) + .setIconResId(R.drawable.media3_notification_pause) + .setDisplayName("name") + .build(); + + NotificationCompat.Action notificationAction = + actionFactory.createCustomActionFromCustomCommandButton(customSessionCommand); + + assertThat(String.valueOf(notificationAction.title)).isEqualTo("name"); + assertThat(notificationAction.getIconCompat().getResId()) + .isEqualTo(R.drawable.media3_notification_pause); + assertThat(notificationAction.getExtras().size()).isEqualTo(0); + assertThat(notificationAction.getActionIntent()).isNotNull(); + } + + @Test + public void + createCustomActionFromCustomCommandButton_notACustomAction_throwsIllegalArgumentException() { + DefaultActionFactory actionFactory = + new DefaultActionFactory(Robolectric.setupService(TestService.class)); + + CommandButton customSessionCommand = + new CommandButton.Builder() + .setPlayerCommand(Player.COMMAND_PLAY_PAUSE) + .setIconResId(R.drawable.media3_notification_pause) + .setDisplayName("name") + .build(); + + Assert.assertThrows( + IllegalArgumentException.class, + () -> actionFactory.createCustomActionFromCustomCommandButton(customSessionCommand)); + } + /** A test service for unit tests. */ public static final class TestService extends MediaLibraryService { @Nullable diff --git a/libraries/session/src/test/java/androidx/media3/session/DefaultMediaNotificationProviderTest.java b/libraries/session/src/test/java/androidx/media3/session/DefaultMediaNotificationProviderTest.java new file mode 100644 index 00000000000..de561338639 --- /dev/null +++ b/libraries/session/src/test/java/androidx/media3/session/DefaultMediaNotificationProviderTest.java @@ -0,0 +1,342 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package androidx.media3.session; + +import static com.google.common.truth.Truth.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; + +import android.os.Bundle; +import androidx.annotation.Nullable; +import androidx.core.app.NotificationCompat; +import androidx.media3.common.Player; +import androidx.media3.common.Player.Commands; +import androidx.test.core.app.ApplicationProvider; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import com.google.common.collect.ImmutableList; +import java.util.List; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.InOrder; +import org.mockito.Mockito; +import org.robolectric.Robolectric; + +/** Tests for {@link DefaultMediaNotificationProvider}. */ +@RunWith(AndroidJUnit4.class) +public class DefaultMediaNotificationProviderTest { + + @Test + public void getMediaButtons_playWhenReadyTrueOrFalse_correctPlayPauseResources() { + DefaultMediaNotificationProvider defaultMediaNotificationProvider = + new DefaultMediaNotificationProvider(ApplicationProvider.getApplicationContext()); + Commands commands = new Commands.Builder().addAllCommands().build(); + + List mediaButtonsWhenPlaying = + defaultMediaNotificationProvider.getMediaButtons( + commands, /* customLayout= */ ImmutableList.of(), /* playWhenReady= */ true); + List mediaButtonWhenPaused = + defaultMediaNotificationProvider.getMediaButtons( + commands, /* customLayout= */ ImmutableList.of(), /* playWhenReady= */ false); + + assertThat(mediaButtonsWhenPlaying).hasSize(3); + assertThat(mediaButtonsWhenPlaying.get(1).playerCommand).isEqualTo(Player.COMMAND_PLAY_PAUSE); + assertThat(mediaButtonsWhenPlaying.get(1).iconResId) + .isEqualTo(R.drawable.media3_notification_pause); + assertThat(String.valueOf(mediaButtonsWhenPlaying.get(1).displayName)).isEqualTo("Pause"); + assertThat(mediaButtonWhenPaused).hasSize(3); + assertThat(mediaButtonWhenPaused.get(1).playerCommand).isEqualTo(Player.COMMAND_PLAY_PAUSE); + assertThat(mediaButtonWhenPaused.get(1).iconResId) + .isEqualTo(R.drawable.media3_notification_play); + assertThat(String.valueOf(mediaButtonWhenPaused.get(1).displayName)).isEqualTo("Play"); + } + + @Test + public void getMediaButtons_allCommandsAvailable_createsPauseSkipNextSkipPreviousButtons() { + DefaultMediaNotificationProvider defaultMediaNotificationProvider = + new DefaultMediaNotificationProvider(ApplicationProvider.getApplicationContext()); + Commands commands = new Commands.Builder().addAllCommands().build(); + SessionCommand customSessionCommand = new SessionCommand("", Bundle.EMPTY); + CommandButton customCommandButton = + new CommandButton.Builder() + .setDisplayName("displayName") + .setIconResId(R.drawable.media3_icon_circular_play) + .setSessionCommand(customSessionCommand) + .build(); + + List mediaButtons = + defaultMediaNotificationProvider.getMediaButtons( + commands, ImmutableList.of(customCommandButton), /* playWhenReady= */ true); + + assertThat(mediaButtons).hasSize(4); + assertThat(mediaButtons.get(0).playerCommand) + .isEqualTo(Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); + assertThat(mediaButtons.get(1).playerCommand).isEqualTo(Player.COMMAND_PLAY_PAUSE); + assertThat(mediaButtons.get(2).playerCommand).isEqualTo(Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); + assertThat(mediaButtons.get(3)).isEqualTo(customCommandButton); + } + + @Test + public void getMediaButtons_noPlayerCommandsAvailable_onlyCustomLayoutButtons() { + DefaultMediaNotificationProvider defaultMediaNotificationProvider = + new DefaultMediaNotificationProvider(ApplicationProvider.getApplicationContext()); + Commands commands = new Commands.Builder().build(); + SessionCommand customSessionCommand = new SessionCommand("action1", Bundle.EMPTY); + CommandButton customCommandButton = + new CommandButton.Builder() + .setDisplayName("displayName") + .setIconResId(R.drawable.media3_icon_circular_play) + .setSessionCommand(customSessionCommand) + .build(); + + List mediaButtons = + defaultMediaNotificationProvider.getMediaButtons( + commands, ImmutableList.of(customCommandButton), /* playWhenReady= */ true); + + assertThat(mediaButtons).containsExactly(customCommandButton); + } + + @Test + public void addNotificationActions_customCompactViewDeclarations_correctCompactViewIndices() { + DefaultMediaNotificationProvider defaultMediaNotificationProvider = + new DefaultMediaNotificationProvider(ApplicationProvider.getApplicationContext()); + NotificationCompat.Builder mockNotificationBuilder = mock(NotificationCompat.Builder.class); + MediaNotification.ActionFactory mockActionFactory = mock(MediaNotification.ActionFactory.class); + CommandButton commandButton1 = + new CommandButton.Builder() + .setPlayerCommand(Player.COMMAND_PLAY_PAUSE) + .setDisplayName("displayName") + .setIconResId(R.drawable.media3_icon_circular_play) + .build(); + Bundle commandButton2Bundle = new Bundle(); + commandButton2Bundle.putInt(DefaultMediaNotificationProvider.COMMAND_KEY_COMPACT_VIEW_INDEX, 0); + CommandButton commandButton2 = + new CommandButton.Builder() + .setDisplayName("displayName") + .setIconResId(R.drawable.media3_icon_circular_play) + .setSessionCommand(new SessionCommand("action2", Bundle.EMPTY)) + .setExtras(commandButton2Bundle) + .build(); + Bundle commandButton3Bundle = new Bundle(); + commandButton3Bundle.putInt(DefaultMediaNotificationProvider.COMMAND_KEY_COMPACT_VIEW_INDEX, 2); + CommandButton commandButton3 = + new CommandButton.Builder() + .setDisplayName("displayName") + .setIconResId(R.drawable.media3_icon_circular_play) + .setSessionCommand(new SessionCommand("action3", Bundle.EMPTY)) + .setExtras(commandButton3Bundle) + .build(); + Bundle commandButton4Bundle = new Bundle(); + commandButton4Bundle.putInt(DefaultMediaNotificationProvider.COMMAND_KEY_COMPACT_VIEW_INDEX, 1); + CommandButton commandButton4 = + new CommandButton.Builder() + .setDisplayName("displayName") + .setIconResId(R.drawable.media3_icon_circular_play) + .setSessionCommand(new SessionCommand("action4", Bundle.EMPTY)) + .setExtras(commandButton4Bundle) + .build(); + + int[] compactViewIndices = + defaultMediaNotificationProvider.addNotificationActions( + ImmutableList.of(commandButton1, commandButton2, commandButton3, commandButton4), + mockNotificationBuilder, + mockActionFactory); + + verify(mockNotificationBuilder, times(4)).addAction(any()); + InOrder inOrder = Mockito.inOrder(mockActionFactory); + inOrder + .verify(mockActionFactory) + .createMediaAction(any(), eq("displayName"), eq(commandButton1.playerCommand)); + inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton2); + inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton3); + inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton4); + verifyNoMoreInteractions(mockActionFactory); + assertThat(compactViewIndices).asList().containsExactly(1, 3, 2).inOrder(); + } + + @Test + public void addNotificationActions_playPauseCommandNoCustomDeclaration_playPauseInCompactView() { + DefaultMediaNotificationProvider defaultMediaNotificationProvider = + new DefaultMediaNotificationProvider(ApplicationProvider.getApplicationContext()); + NotificationCompat.Builder mockNotificationBuilder = mock(NotificationCompat.Builder.class); + MediaNotification.ActionFactory mockActionFactory = mock(MediaNotification.ActionFactory.class); + CommandButton commandButton1 = + new CommandButton.Builder() + .setDisplayName("displayName") + .setIconResId(R.drawable.media3_icon_circular_play) + .setSessionCommand(new SessionCommand("action1", Bundle.EMPTY)) + .build(); + CommandButton commandButton2 = + new CommandButton.Builder() + .setPlayerCommand(Player.COMMAND_PLAY_PAUSE) + .setDisplayName("displayName") + .setIconResId(R.drawable.media3_icon_circular_play) + .build(); + + int[] compactViewIndices = + defaultMediaNotificationProvider.addNotificationActions( + ImmutableList.of(commandButton1, commandButton2), + mockNotificationBuilder, + mockActionFactory); + + ArgumentCaptor actionCaptor = + ArgumentCaptor.forClass(NotificationCompat.Action.class); + verify(mockNotificationBuilder, times(2)).addAction(actionCaptor.capture()); + List actions = actionCaptor.getAllValues(); + assertThat(actions).hasSize(2); + InOrder inOrder = Mockito.inOrder(mockActionFactory); + inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton1); + inOrder + .verify(mockActionFactory) + .createMediaAction(any(), eq("displayName"), eq(commandButton2.playerCommand)); + verifyNoMoreInteractions(mockActionFactory); + assertThat(compactViewIndices).asList().containsExactly(1); + } + + @Test + public void + addNotificationActions_noPlayPauseCommandNoCustomDeclaration_emptyCompactViewIndices() { + DefaultMediaNotificationProvider defaultMediaNotificationProvider = + new DefaultMediaNotificationProvider(ApplicationProvider.getApplicationContext()); + NotificationCompat.Builder mockNotificationBuilder = mock(NotificationCompat.Builder.class); + MediaNotification.ActionFactory mockActionFactory = mock(MediaNotification.ActionFactory.class); + CommandButton commandButton1 = + new CommandButton.Builder() + .setDisplayName("displayName") + .setIconResId(R.drawable.media3_icon_circular_play) + .setSessionCommand(new SessionCommand("action1", Bundle.EMPTY)) + .build(); + + int[] compactViewIndices = + defaultMediaNotificationProvider.addNotificationActions( + ImmutableList.of(commandButton1), mockNotificationBuilder, mockActionFactory); + + InOrder inOrder = Mockito.inOrder(mockActionFactory); + inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton1); + verifyNoMoreInteractions(mockActionFactory); + assertThat(compactViewIndices).asList().isEmpty(); + } + + @Test + public void addNotificationActions_outOfBoundsCompactViewIndices_ignored() { + DefaultMediaNotificationProvider defaultMediaNotificationProvider = + new DefaultMediaNotificationProvider(ApplicationProvider.getApplicationContext()); + NotificationCompat.Builder mockNotificationBuilder = mock(NotificationCompat.Builder.class); + MediaNotification.ActionFactory mockActionFactory = mock(MediaNotification.ActionFactory.class); + Bundle commandButtonBundle1 = new Bundle(); + commandButtonBundle1.putInt(DefaultMediaNotificationProvider.COMMAND_KEY_COMPACT_VIEW_INDEX, 2); + CommandButton commandButton1 = + new CommandButton.Builder() + .setDisplayName("displayName") + .setIconResId(R.drawable.media3_icon_circular_play) + .setSessionCommand(new SessionCommand("action1", Bundle.EMPTY)) + .setExtras(commandButtonBundle1) + .build(); + Bundle commandButtonBundle2 = new Bundle(); + commandButtonBundle2.putInt( + DefaultMediaNotificationProvider.COMMAND_KEY_COMPACT_VIEW_INDEX, -1); + CommandButton commandButton2 = + new CommandButton.Builder() + .setDisplayName("displayName") + .setIconResId(R.drawable.media3_icon_circular_play) + .setSessionCommand(new SessionCommand("action1", Bundle.EMPTY)) + .setExtras(commandButtonBundle2) + .build(); + + int[] compactViewIndices = + defaultMediaNotificationProvider.addNotificationActions( + ImmutableList.of(commandButton1, commandButton2), + mockNotificationBuilder, + mockActionFactory); + + InOrder inOrder = Mockito.inOrder(mockActionFactory); + inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton1); + inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton2); + verifyNoMoreInteractions(mockActionFactory); + assertThat(compactViewIndices).asList().isEmpty(); + } + + @Test + public void addNotificationActions_unsetLeadingArrayFields_cropped() { + DefaultMediaNotificationProvider defaultMediaNotificationProvider = + new DefaultMediaNotificationProvider(ApplicationProvider.getApplicationContext()); + NotificationCompat.Builder mockNotificationBuilder = mock(NotificationCompat.Builder.class); + MediaNotification.ActionFactory mockActionFactory = mock(MediaNotification.ActionFactory.class); + Bundle commandButtonBundle = new Bundle(); + commandButtonBundle.putInt(DefaultMediaNotificationProvider.COMMAND_KEY_COMPACT_VIEW_INDEX, 1); + CommandButton commandButton1 = + new CommandButton.Builder() + .setDisplayName("displayName") + .setIconResId(R.drawable.media3_icon_circular_play) + .setSessionCommand(new SessionCommand("action1", Bundle.EMPTY)) + .setExtras(commandButtonBundle) + .build(); + + int[] compactViewIndices = + defaultMediaNotificationProvider.addNotificationActions( + ImmutableList.of(commandButton1), mockNotificationBuilder, mockActionFactory); + + InOrder inOrder = Mockito.inOrder(mockActionFactory); + inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton1); + verifyNoMoreInteractions(mockActionFactory); + // [INDEX_UNSET, 1, INDEX_UNSET] cropped up to the first INDEX_UNSET value + assertThat(compactViewIndices).asList().isEmpty(); + } + + @Test + public void addNotificationActions_correctNotificationActionAttributes() { + DefaultMediaNotificationProvider defaultMediaNotificationProvider = + new DefaultMediaNotificationProvider(ApplicationProvider.getApplicationContext()); + NotificationCompat.Builder mockNotificationBuilder = mock(NotificationCompat.Builder.class); + DefaultActionFactory defaultActionFactory = + new DefaultActionFactory(Robolectric.setupService(TestService.class)); + Bundle commandButtonBundle = new Bundle(); + commandButtonBundle.putString("testKey", "testValue"); + CommandButton commandButton1 = + new CommandButton.Builder() + .setDisplayName("displayName1") + .setIconResId(R.drawable.media3_notification_play) + .setSessionCommand(new SessionCommand("action1", Bundle.EMPTY)) + .setExtras(commandButtonBundle) + .build(); + + defaultMediaNotificationProvider.addNotificationActions( + ImmutableList.of(commandButton1), mockNotificationBuilder, defaultActionFactory); + + ArgumentCaptor actionCaptor = + ArgumentCaptor.forClass(NotificationCompat.Action.class); + verify(mockNotificationBuilder).addAction(actionCaptor.capture()); + verifyNoMoreInteractions(mockNotificationBuilder); + List actions = actionCaptor.getAllValues(); + assertThat(actions).hasSize(1); + assertThat(String.valueOf(actions.get(0).title)).isEqualTo("displayName1"); + assertThat(actions.get(0).getIconCompat().getResId()).isEqualTo(commandButton1.iconResId); + assertThat(actions.get(0).getExtras().size()).isEqualTo(0); + } + + /** A test service for unit tests. */ + private static final class TestService extends MediaLibraryService { + @Nullable + @Override + public MediaLibrarySession onGetSession(MediaSession.ControllerInfo controllerInfo) { + return null; + } + } +} From 1d139174fdd1582bc6d1745a46017d790b8f3da8 Mon Sep 17 00:00:00 2001 From: ibaker Date: Mon, 23 May 2022 13:01:22 +0100 Subject: [PATCH 106/182] Rollback of 07302a23bd5894d57514c68b2db499ac46726e77 *** Original commit *** Remove `@Nullable` from `MediaSource.Factory` setters The null-behaviour of these methods creates a minimization footgun, because **any** call to these setters will prevent R8 from removing the default implementation (even if it's never used by the app) - this is because R8 can't tell the default implementation is only used if the parameter is `null`. PiperOrigin-RevId: 450410833 --- RELEASENOTES.md | 5 -- .../exoplayer/offline/DownloadHelper.java | 10 ++- .../source/DefaultMediaSourceFactory.java | 45 ++++-------- .../media3/exoplayer/source/MediaSource.java | 11 ++- .../source/ProgressiveMediaSource.java | 70 ++++++------------- .../source/DefaultMediaSourceFactoryTest.java | 15 ++++ .../exoplayer/dash/DashMediaSource.java | 46 +++++------- .../dash/DefaultMediaSourceFactoryTest.java | 15 ++++ .../media3/exoplayer/hls/HlsMediaSource.java | 51 +++++--------- .../hls/DefaultMediaSourceFactoryTest.java | 15 ++++ .../ImaServerSideAdInsertionMediaSource.java | 4 +- .../exoplayer/rtsp/RtspMediaSource.java | 6 +- .../smoothstreaming/SsMediaSource.java | 47 +++++-------- .../DefaultMediaSourceFactoryTest.java | 15 ++++ .../test/utils/FakeMediaSourceFactory.java | 5 +- 15 files changed, 168 insertions(+), 192 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index a5c5e2ba237..dc5972d32f8 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -18,11 +18,6 @@ ([#10248](https://github.com/google/ExoPlayer/issues/10248)). * Stop detecting 5G-NSA network type on API 29 and 30. These playbacks will assume a 4G network. - * Disallow passing `null` to - `MediaSource.Factory.setDrmSessionManagerProvider` and - `MediaSource.Factory.setLoadErrorHandlingPolicy`. Instances of - `DefaultDrmSessionManagerProvider` and `DefaultLoadErrorHandlingPolicy` - can be passed explicitly if required. * Track selection: * Flatten `TrackSelectionOverrides` class into `TrackSelectionParameters`, and promote `TrackSelectionOverride` to a top level class. diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java index df11e0e5893..07db1b368ea 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java @@ -952,12 +952,10 @@ private static MediaSource createMediaSourceInternal( MediaItem mediaItem, DataSource.Factory dataSourceFactory, @Nullable DrmSessionManager drmSessionManager) { - DefaultMediaSourceFactory mediaSourceFactory = - new DefaultMediaSourceFactory(dataSourceFactory, ExtractorsFactory.EMPTY); - if (drmSessionManager != null) { - mediaSourceFactory.setDrmSessionManagerProvider(unusedMediaItem -> drmSessionManager); - } - return mediaSourceFactory.createMediaSource(mediaItem); + return new DefaultMediaSourceFactory(dataSourceFactory, ExtractorsFactory.EMPTY) + .setDrmSessionManagerProvider( + drmSessionManager != null ? unusedMediaItem -> drmSessionManager : null) + .createMediaSource(mediaItem); } private static boolean isProgressive(MediaItem.LocalConfiguration localConfiguration) { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java index afad68202b8..5ffb33a7cd8 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java @@ -345,26 +345,16 @@ public DefaultMediaSourceFactory setLiveMaxSpeed(float maxSpeed) { @UnstableApi @Override public DefaultMediaSourceFactory setDrmSessionManagerProvider( - DrmSessionManagerProvider drmSessionManagerProvider) { - delegateFactoryLoader.setDrmSessionManagerProvider( - checkNotNull( - drmSessionManagerProvider, - "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by" - + " instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct and" - + " pass an instance in order to retain the old behavior.")); + @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { + delegateFactoryLoader.setDrmSessionManagerProvider(drmSessionManagerProvider); return this; } @UnstableApi @Override public DefaultMediaSourceFactory setLoadErrorHandlingPolicy( - LoadErrorHandlingPolicy loadErrorHandlingPolicy) { - this.loadErrorHandlingPolicy = - checkNotNull( - loadErrorHandlingPolicy, - "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by" - + " instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and" - + " pass an instance in order to retain the old behavior."); + @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + this.loadErrorHandlingPolicy = loadErrorHandlingPolicy; delegateFactoryLoader.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); return this; } @@ -441,23 +431,16 @@ public MediaSource createMediaSource(MediaItem mediaItem) { SubtitleDecoderFactory.DEFAULT.createDecoder(format), format) : new UnknownSubtitlesExtractor(format) }; - ProgressiveMediaSource.Factory progressiveMediaSourceFactory = - new ProgressiveMediaSource.Factory(dataSourceFactory, extractorsFactory); - if (loadErrorHandlingPolicy != null) { - progressiveMediaSourceFactory.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); - } mediaSources[i + 1] = - progressiveMediaSourceFactory.createMediaSource( - MediaItem.fromUri(subtitleConfigurations.get(i).uri.toString())); + new ProgressiveMediaSource.Factory(dataSourceFactory, extractorsFactory) + .setLoadErrorHandlingPolicy(loadErrorHandlingPolicy) + .createMediaSource( + MediaItem.fromUri(subtitleConfigurations.get(i).uri.toString())); } else { - SingleSampleMediaSource.Factory singleSampleMediaSourceFactory = - new SingleSampleMediaSource.Factory(dataSourceFactory); - if (loadErrorHandlingPolicy != null) { - singleSampleMediaSourceFactory.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); - } mediaSources[i + 1] = - singleSampleMediaSourceFactory.createMediaSource( - subtitleConfigurations.get(i), /* durationUs= */ C.TIME_UNSET); + new SingleSampleMediaSource.Factory(dataSourceFactory) + .setLoadErrorHandlingPolicy(loadErrorHandlingPolicy) + .createMediaSource(subtitleConfigurations.get(i), /* durationUs= */ C.TIME_UNSET); } } @@ -566,14 +549,16 @@ public MediaSource.Factory getMediaSourceFactory(@C.ContentType int contentType) return mediaSourceFactory; } - public void setDrmSessionManagerProvider(DrmSessionManagerProvider drmSessionManagerProvider) { + public void setDrmSessionManagerProvider( + @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = drmSessionManagerProvider; for (MediaSource.Factory mediaSourceFactory : mediaSourceFactories.values()) { mediaSourceFactory.setDrmSessionManagerProvider(drmSessionManagerProvider); } } - public void setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + public void setLoadErrorHandlingPolicy( + @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { this.loadErrorHandlingPolicy = loadErrorHandlingPolicy; for (MediaSource.Factory mediaSourceFactory : mediaSourceFactories.values()) { mediaSourceFactory.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSource.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSource.java index d9d496bccdd..32c3c75a490 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSource.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSource.java @@ -24,10 +24,12 @@ import androidx.media3.datasource.TransferListener; import androidx.media3.exoplayer.ExoPlayer; import androidx.media3.exoplayer.analytics.PlayerId; +import androidx.media3.exoplayer.drm.DefaultDrmSessionManagerProvider; import androidx.media3.exoplayer.drm.DrmSessionEventListener; import androidx.media3.exoplayer.drm.DrmSessionManager; import androidx.media3.exoplayer.drm.DrmSessionManagerProvider; import androidx.media3.exoplayer.upstream.Allocator; +import androidx.media3.exoplayer.upstream.DefaultLoadErrorHandlingPolicy; import androidx.media3.exoplayer.upstream.LoadErrorHandlingPolicy; import java.io.IOException; @@ -67,18 +69,23 @@ interface Factory { * Sets the {@link DrmSessionManagerProvider} used to obtain a {@link DrmSessionManager} for a * {@link MediaItem}. * + *

    If not set, {@link DefaultDrmSessionManagerProvider} is used. + * * @return This factory, for convenience. */ @UnstableApi - Factory setDrmSessionManagerProvider(DrmSessionManagerProvider drmSessionManagerProvider); + Factory setDrmSessionManagerProvider( + @Nullable DrmSessionManagerProvider drmSessionManagerProvider); /** * Sets an optional {@link LoadErrorHandlingPolicy}. * + * @param loadErrorHandlingPolicy A {@link LoadErrorHandlingPolicy}, or {@code null} to use the + * {@link DefaultLoadErrorHandlingPolicy}. * @return This factory, for convenience. */ @UnstableApi - Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy); + Factory setLoadErrorHandlingPolicy(@Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy); /** * Returns the {@link C.ContentType content types} supported by media sources created by this diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaSource.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaSource.java index 807e336e8dc..5d3756fc3b0 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaSource.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaSource.java @@ -65,18 +65,10 @@ public static final class Factory implements MediaSourceFactory { @Nullable private Object tag; /** - * Creates a new factory for {@link ProgressiveMediaSource}s. - * - *

    The factory will use the following default components: + * Creates a new factory for {@link ProgressiveMediaSource}s, using the extractors provided by + * {@link DefaultExtractorsFactory}. * - *

      - *
    • {@link DefaultExtractorsFactory} - *
    • {@link DefaultDrmSessionManagerProvider} - *
    • {@link DefaultLoadErrorHandlingPolicy} - *
    - * - * @param dataSourceFactory A factory for {@linkplain DataSource data sources} to read the - * media. + * @param dataSourceFactory A factory for {@link DataSource}s to read the media. */ public Factory(DataSource.Factory dataSourceFactory) { this(dataSourceFactory, new DefaultExtractorsFactory()); @@ -85,18 +77,6 @@ public Factory(DataSource.Factory dataSourceFactory) { /** * Equivalent to {@link #Factory(DataSource.Factory, ProgressiveMediaExtractor.Factory) new * Factory(dataSourceFactory, () -> new BundledExtractorsAdapter(extractorsFactory)}. - * - *

    The factory will use the following default components: - * - *

      - *
    • {@link DefaultDrmSessionManagerProvider} - *
    • {@link DefaultLoadErrorHandlingPolicy} - *
    - * - * @param dataSourceFactory A factory for {@linkplain DataSource data sources} to read the - * media. - * @param extractorsFactory A factory for the {@linkplain Extractor extractors} used to extract - * the media from its container. */ public Factory(DataSource.Factory dataSourceFactory, ExtractorsFactory extractorsFactory) { this(dataSourceFactory, playerId -> new BundledExtractorsAdapter(extractorsFactory)); @@ -105,17 +85,9 @@ public Factory(DataSource.Factory dataSourceFactory, ExtractorsFactory extractor /** * Creates a new factory for {@link ProgressiveMediaSource}s. * - *

    The factory will use the following default components: - * - *

      - *
    • {@link DefaultDrmSessionManagerProvider} - *
    • {@link DefaultLoadErrorHandlingPolicy} - *
    - * - * @param dataSourceFactory A factory for {@linkplain DataSource data sources} to read the - * media. + * @param dataSourceFactory A factory for {@link DataSource}s to read the media. * @param progressiveMediaExtractorFactory A factory for the {@link ProgressiveMediaExtractor} - * to extract the media from its container. + * to extract media from its container. */ public Factory( DataSource.Factory dataSourceFactory, @@ -131,8 +103,7 @@ public Factory( /** * Creates a new factory for {@link ProgressiveMediaSource}s. * - * @param dataSourceFactory A factory for {@linkplain DataSource data sources} to read the - * media. + * @param dataSourceFactory A factory for {@link DataSource}s to read the media. * @param progressiveMediaExtractorFactory A factory for the {@link ProgressiveMediaExtractor} * to extract media from its container. * @param drmSessionManagerProvider A provider to obtain a {@link DrmSessionManager} for a @@ -155,14 +126,19 @@ public Factory( this.continueLoadingCheckIntervalBytes = continueLoadingCheckIntervalBytes; } - @Override - public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + /** + * Sets the {@link LoadErrorHandlingPolicy}. The default value is created by calling {@link + * DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy()}. + * + * @param loadErrorHandlingPolicy A {@link LoadErrorHandlingPolicy}. + * @return This factory, for convenience. + */ + public Factory setLoadErrorHandlingPolicy( + @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { this.loadErrorHandlingPolicy = - checkNotNull( - loadErrorHandlingPolicy, - "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by" - + " instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and" - + " pass an instance in order to retain the old behavior."); + loadErrorHandlingPolicy != null + ? loadErrorHandlingPolicy + : new DefaultLoadErrorHandlingPolicy(); return this; } @@ -183,13 +159,11 @@ public Factory setContinueLoadingCheckIntervalBytes(int continueLoadingCheckInte @Override public Factory setDrmSessionManagerProvider( - DrmSessionManagerProvider drmSessionManagerProvider) { + @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = - checkNotNull( - drmSessionManagerProvider, - "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by" - + " instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct" - + " and pass an instance in order to retain the old behavior."); + drmSessionManagerProvider != null + ? drmSessionManagerProvider + : new DefaultDrmSessionManagerProvider(); return this; } diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java index 7d3af7bb082..a87d86f8a88 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java @@ -73,6 +73,21 @@ public void createMediaSource_withPath_progressiveSource() { assertThat(mediaSource).isInstanceOf(ProgressiveMediaSource.class); } + @Test + public void createMediaSource_withNull_usesNonNullDefaults() { + DefaultMediaSourceFactory defaultMediaSourceFactory = + new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext()); + MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA).build(); + + MediaSource mediaSource = + defaultMediaSourceFactory + .setDrmSessionManagerProvider(null) + .setLoadErrorHandlingPolicy(null) + .createMediaSource(mediaItem); + + assertThat(mediaSource).isNotNull(); + } + @Test public void createMediaSource_withSubtitle_isMergingMediaSource() { DefaultMediaSourceFactory defaultMediaSourceFactory = diff --git a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java index 7abde693ba5..178078f4800 100644 --- a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java +++ b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java @@ -114,15 +114,6 @@ public static final class Factory implements MediaSourceFactory { /** * Creates a new factory for {@link DashMediaSource}s. * - *

    The factory will use the following default components: - * - *

      - *
    • {@link DefaultDashChunkSource.Factory} - *
    • {@link DefaultDrmSessionManagerProvider} - *
    • {@link DefaultLoadErrorHandlingPolicy} - *
    • {@link DefaultCompositeSequenceableLoaderFactory} - *
    - * * @param dataSourceFactory A factory for {@link DataSource} instances that will be used to load * manifest and media data. */ @@ -133,14 +124,6 @@ public Factory(DataSource.Factory dataSourceFactory) { /** * Creates a new factory for {@link DashMediaSource}s. * - *

    The factory will use the following default components: - * - *

      - *
    • {@link DefaultDrmSessionManagerProvider} - *
    • {@link DefaultLoadErrorHandlingPolicy} - *
    • {@link DefaultCompositeSequenceableLoaderFactory} - *
    - * * @param chunkSourceFactory A factory for {@link DashChunkSource} instances. * @param manifestDataSourceFactory A factory for {@link DataSource} instances that will be used * to load (and refresh) the manifest. May be {@code null} if the factory will only ever be @@ -160,24 +143,27 @@ public Factory( @Override public Factory setDrmSessionManagerProvider( - DrmSessionManagerProvider drmSessionManagerProvider) { + @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = - checkNotNull( - drmSessionManagerProvider, - "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by" - + " instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct" - + " and pass an instance in order to retain the old behavior."); + drmSessionManagerProvider != null + ? drmSessionManagerProvider + : new DefaultDrmSessionManagerProvider(); return this; } - @Override - public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + /** + * Sets the {@link LoadErrorHandlingPolicy}. The default value is created by calling {@link + * DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy()}. + * + * @param loadErrorHandlingPolicy A {@link LoadErrorHandlingPolicy}. + * @return This factory, for convenience. + */ + public Factory setLoadErrorHandlingPolicy( + @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { this.loadErrorHandlingPolicy = - checkNotNull( - loadErrorHandlingPolicy, - "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by" - + " instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and" - + " pass an instance in order to retain the old behavior."); + loadErrorHandlingPolicy != null + ? loadErrorHandlingPolicy + : new DefaultLoadErrorHandlingPolicy(); return this; } diff --git a/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DefaultMediaSourceFactoryTest.java b/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DefaultMediaSourceFactoryTest.java index b6d4ac102f5..3d4ebd874e5 100644 --- a/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DefaultMediaSourceFactoryTest.java +++ b/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DefaultMediaSourceFactoryTest.java @@ -74,6 +74,21 @@ public void createMediaSource_withPath_dashSource() { assertThat(mediaSource).isInstanceOf(DashMediaSource.class); } + @Test + public void createMediaSource_withNull_usesNonNullDefaults() { + DefaultMediaSourceFactory defaultMediaSourceFactory = + new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext()); + MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.mpd").build(); + + MediaSource mediaSource = + defaultMediaSourceFactory + .setDrmSessionManagerProvider(null) + .setLoadErrorHandlingPolicy(null) + .createMediaSource(mediaItem); + + assertThat(mediaSource).isNotNull(); + } + @Test public void getSupportedTypes_dashModule_containsTypeDash() { int[] supportedTypes = diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java index 0cc5663a035..18d9b0fd960 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java @@ -114,17 +114,6 @@ public static final class Factory implements MediaSourceFactory { /** * Creates a new factory for {@link HlsMediaSource}s. * - *

    The factory will use the following default components: - * - *

      - *
    • {@link DefaultDrmSessionManagerProvider} - *
    • {@link DefaultHlsPlaylistParserFactory} - *
    • {@link DefaultHlsPlaylistTracker#FACTORY} - *
    • {@link HlsExtractorFactory#DEFAULT} - *
    • {@link DefaultLoadErrorHandlingPolicy} - *
    • {@link DefaultCompositeSequenceableLoaderFactory} - *
    - * * @param dataSourceFactory A data source factory that will be wrapped by a {@link * DefaultHlsDataSourceFactory} to create {@link DataSource}s for manifests, segments and * keys. @@ -136,17 +125,6 @@ public Factory(DataSource.Factory dataSourceFactory) { /** * Creates a new factory for {@link HlsMediaSource}s. * - *

    The factory will use the following default components: - * - *

      - *
    • {@link DefaultDrmSessionManagerProvider} - *
    • {@link DefaultHlsPlaylistParserFactory} - *
    • {@link DefaultHlsPlaylistTracker#FACTORY} - *
    • {@link HlsExtractorFactory#DEFAULT} - *
    • {@link DefaultLoadErrorHandlingPolicy} - *
    • {@link DefaultCompositeSequenceableLoaderFactory} - *
    - * * @param hlsDataSourceFactory An {@link HlsDataSourceFactory} for {@link DataSource}s for * manifests, segments and keys. */ @@ -177,14 +155,19 @@ public Factory setExtractorFactory(@Nullable HlsExtractorFactory extractorFactor return this; } - @Override - public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + /** + * Sets the {@link LoadErrorHandlingPolicy}. The default value is created by calling {@link + * DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy()}. + * + * @param loadErrorHandlingPolicy A {@link LoadErrorHandlingPolicy}. + * @return This factory, for convenience. + */ + public Factory setLoadErrorHandlingPolicy( + @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { this.loadErrorHandlingPolicy = - checkNotNull( - loadErrorHandlingPolicy, - "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by" - + " instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and" - + " pass an instance in order to retain the old behavior."); + loadErrorHandlingPolicy != null + ? loadErrorHandlingPolicy + : new DefaultLoadErrorHandlingPolicy(); return this; } @@ -293,13 +276,11 @@ public Factory setUseSessionKeys(boolean useSessionKeys) { @Override public Factory setDrmSessionManagerProvider( - DrmSessionManagerProvider drmSessionManagerProvider) { + @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = - checkNotNull( - drmSessionManagerProvider, - "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by" - + " instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct" - + " and pass an instance in order to retain the old behavior."); + drmSessionManagerProvider != null + ? drmSessionManagerProvider + : new DefaultDrmSessionManagerProvider(); return this; } diff --git a/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/DefaultMediaSourceFactoryTest.java b/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/DefaultMediaSourceFactoryTest.java index 2a2ff66b280..b474edf99cf 100644 --- a/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/DefaultMediaSourceFactoryTest.java +++ b/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/DefaultMediaSourceFactoryTest.java @@ -74,6 +74,21 @@ public void createMediaSource_withPath_hlsSource() { assertThat(mediaSource).isInstanceOf(HlsMediaSource.class); } + @Test + public void createMediaSource_withNull_usesNonNullDefaults() { + DefaultMediaSourceFactory defaultMediaSourceFactory = + new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext()); + MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.m3u8").build(); + + MediaSource mediaSource = + defaultMediaSourceFactory + .setDrmSessionManagerProvider(null) + .setLoadErrorHandlingPolicy(null) + .createMediaSource(mediaItem); + + assertThat(mediaSource).isNotNull(); + } + @Test public void getSupportedTypes_hlsModule_containsTypeHls() { int[] supportedTypes = diff --git a/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java b/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java index e7d261c2208..d6278fe69ae 100644 --- a/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java +++ b/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java @@ -136,14 +136,14 @@ public Factory(AdsLoader adsLoader, MediaSource.Factory contentMediaSourceFactor @Override public MediaSource.Factory setLoadErrorHandlingPolicy( - LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { contentMediaSourceFactory.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); return this; } @Override public MediaSource.Factory setDrmSessionManagerProvider( - DrmSessionManagerProvider drmSessionManagerProvider) { + @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { contentMediaSourceFactory.setDrmSessionManagerProvider(drmSessionManagerProvider); return this; } diff --git a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.java b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.java index 3aa2d7f090b..0c08b62220b 100644 --- a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.java +++ b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.java @@ -148,13 +148,15 @@ public Factory setTimeoutMs(@IntRange(from = 1) long timeoutMs) { /** Does nothing. {@link RtspMediaSource} does not support DRM. */ @Override - public Factory setDrmSessionManagerProvider(DrmSessionManagerProvider drmSessionManager) { + public Factory setDrmSessionManagerProvider( + @Nullable DrmSessionManagerProvider drmSessionManager) { return this; } /** Does nothing. {@link RtspMediaSource} does not support error handling policies. */ @Override - public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + public Factory setLoadErrorHandlingPolicy( + @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { // TODO(internal b/172331505): Implement support. return this; } diff --git a/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java b/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java index b8231da9b1c..ffb18544b81 100644 --- a/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java +++ b/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java @@ -93,15 +93,6 @@ public static final class Factory implements MediaSourceFactory { /** * Creates a new factory for {@link SsMediaSource}s. * - *

    The factory will use the following default components: - * - *

      - *
    • {@link DefaultSsChunkSource.Factory} - *
    • {@link DefaultDrmSessionManagerProvider} - *
    • {@link DefaultLoadErrorHandlingPolicy} - *
    • {@link DefaultCompositeSequenceableLoaderFactory} - *
    - * * @param dataSourceFactory A factory for {@link DataSource} instances that will be used to load * manifest and media data. */ @@ -110,14 +101,7 @@ public Factory(DataSource.Factory dataSourceFactory) { } /** - * Creates a new factory for {@link SsMediaSource}s. The factory will use the following default - * components: - * - *
      - *
    • {@link DefaultDrmSessionManagerProvider} - *
    • {@link DefaultLoadErrorHandlingPolicy} - *
    • {@link DefaultCompositeSequenceableLoaderFactory} - *
    + * Creates a new factory for {@link SsMediaSource}s. * * @param chunkSourceFactory A factory for {@link SsChunkSource} instances. * @param manifestDataSourceFactory A factory for {@link DataSource} instances that will be used @@ -136,14 +120,19 @@ public Factory( compositeSequenceableLoaderFactory = new DefaultCompositeSequenceableLoaderFactory(); } - @Override - public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + /** + * Sets the {@link LoadErrorHandlingPolicy}. The default value is created by calling {@link + * DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy()}. + * + * @param loadErrorHandlingPolicy A {@link LoadErrorHandlingPolicy}. + * @return This factory, for convenience. + */ + public Factory setLoadErrorHandlingPolicy( + @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { this.loadErrorHandlingPolicy = - checkNotNull( - loadErrorHandlingPolicy, - "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by" - + " instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and" - + " pass an instance in order to retain the old behavior."); + loadErrorHandlingPolicy != null + ? loadErrorHandlingPolicy + : new DefaultLoadErrorHandlingPolicy(); return this; } @@ -195,13 +184,11 @@ public Factory setCompositeSequenceableLoaderFactory( @Override public Factory setDrmSessionManagerProvider( - DrmSessionManagerProvider drmSessionManagerProvider) { + @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = - checkNotNull( - drmSessionManagerProvider, - "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by" - + " instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct" - + " and pass an instance in order to retain the old behavior."); + drmSessionManagerProvider != null + ? drmSessionManagerProvider + : new DefaultDrmSessionManagerProvider(); return this; } diff --git a/libraries/exoplayer_smoothstreaming/src/test/java/androidx/media3/exoplayer/smoothstreaming/DefaultMediaSourceFactoryTest.java b/libraries/exoplayer_smoothstreaming/src/test/java/androidx/media3/exoplayer/smoothstreaming/DefaultMediaSourceFactoryTest.java index f5a205fcbe7..28ca0c58a75 100644 --- a/libraries/exoplayer_smoothstreaming/src/test/java/androidx/media3/exoplayer/smoothstreaming/DefaultMediaSourceFactoryTest.java +++ b/libraries/exoplayer_smoothstreaming/src/test/java/androidx/media3/exoplayer/smoothstreaming/DefaultMediaSourceFactoryTest.java @@ -85,6 +85,21 @@ public void createMediaSource_withManifestPath_smoothstreamingSource() { assertThat(mediaSource).isInstanceOf(SsMediaSource.class); } + @Test + public void createMediaSource_withNull_usesNonNullDefaults() { + DefaultMediaSourceFactory defaultMediaSourceFactory = + new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext()); + MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.ism").build(); + + MediaSource mediaSource = + defaultMediaSourceFactory + .setDrmSessionManagerProvider(null) + .setLoadErrorHandlingPolicy(null) + .createMediaSource(mediaItem); + + assertThat(mediaSource).isNotNull(); + } + @Test public void getSupportedTypes_smoothstreamingModule_containsTypeSS() { int[] supportedTypes = diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSourceFactory.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSourceFactory.java index bd92f38471f..f87863c64f2 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSourceFactory.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSourceFactory.java @@ -15,6 +15,7 @@ */ package androidx.media3.test.utils; +import androidx.annotation.Nullable; import androidx.media3.common.AdPlaybackState; import androidx.media3.common.C; import androidx.media3.common.MediaItem; @@ -38,13 +39,13 @@ public final class FakeMediaSourceFactory implements MediaSourceFactory { @Override public MediaSourceFactory setDrmSessionManagerProvider( - DrmSessionManagerProvider drmSessionManagerProvider) { + @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { throw new UnsupportedOperationException(); } @Override public MediaSourceFactory setLoadErrorHandlingPolicy( - LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { throw new UnsupportedOperationException(); } From 89194dee59506cdea8eefff6158ed7fab3c991c8 Mon Sep 17 00:00:00 2001 From: ibaker Date: Mon, 23 May 2022 13:26:05 +0100 Subject: [PATCH 107/182] Add `DefaultMediaSourceFactory.setDataSourceFactory` Also add this to the stable API instead of the constructor that takes `DataSource.Factory`. PiperOrigin-RevId: 450414119 --- .../media3/demo/main/PlayerActivity.java | 7 ++- .../source/DefaultMediaSourceFactory.java | 54 +++++++++++++++---- 2 files changed, 49 insertions(+), 12 deletions(-) diff --git a/demos/main/src/main/java/androidx/media3/demo/main/PlayerActivity.java b/demos/main/src/main/java/androidx/media3/demo/main/PlayerActivity.java index a2e960114db..22ee82e1796 100644 --- a/demos/main/src/main/java/androidx/media3/demo/main/PlayerActivity.java +++ b/demos/main/src/main/java/androidx/media3/demo/main/PlayerActivity.java @@ -311,8 +311,11 @@ private MediaSource.Factory createMediaSourceFactory() { serverSideAdsLoader = serverSideAdLoaderBuilder.build(); ImaServerSideAdInsertionMediaSource.Factory imaServerSideAdInsertionMediaSourceFactory = new ImaServerSideAdInsertionMediaSource.Factory( - serverSideAdsLoader, new DefaultMediaSourceFactory(dataSourceFactory)); - return new DefaultMediaSourceFactory(dataSourceFactory) + serverSideAdsLoader, + new DefaultMediaSourceFactory(/* context= */ this) + .setDataSourceFactory(dataSourceFactory)); + return new DefaultMediaSourceFactory(/* context= */ this) + .setDataSourceFactory(dataSourceFactory) .setDrmSessionManagerProvider(drmSessionManagerProvider) .setLocalAdInsertionComponents( this::getClientSideAdsLoader, /* adViewProvider= */ playerView) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java index 5ffb33a7cd8..7d8f3671720 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java @@ -58,6 +58,7 @@ import java.util.Map; import java.util.Set; import org.checkerframework.checker.nullness.compatqual.NullableType; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** * The default {@link MediaSource.Factory} implementation. @@ -106,9 +107,9 @@ public interface AdsLoaderProvider extends AdsLoader.Provider {} private static final String TAG = "DMediaSourceFactory"; - private final DataSource.Factory dataSourceFactory; private final DelegateFactoryLoader delegateFactoryLoader; + private DataSource.Factory dataSourceFactory; @Nullable private MediaSource.Factory serverSideAdInsertionMediaSourceFactory; @Nullable private AdsLoader.Provider adsLoaderProvider; @Nullable private AdViewProvider adViewProvider; @@ -132,6 +133,9 @@ public DefaultMediaSourceFactory(Context context) { /** * Creates a new instance. * + *

    Note that this constructor is only useful to try and ensure that ExoPlayer's {@link + * DefaultExtractorsFactory} can be removed by ProGuard or R8. + * * @param context Any context. * @param extractorsFactory An {@link ExtractorsFactory} used to extract progressive media from * its container. @@ -144,9 +148,13 @@ public DefaultMediaSourceFactory(Context context, ExtractorsFactory extractorsFa /** * Creates a new instance. * + *

    Note that this constructor is only useful to try and ensure that ExoPlayer's {@link + * DefaultDataSource.Factory} can be removed by ProGuard or R8. + * * @param dataSourceFactory A {@link DataSource.Factory} to create {@link DataSource} instances * for requesting media data. */ + @UnstableApi public DefaultMediaSourceFactory(DataSource.Factory dataSourceFactory) { this(dataSourceFactory, new DefaultExtractorsFactory()); } @@ -154,6 +162,10 @@ public DefaultMediaSourceFactory(DataSource.Factory dataSourceFactory) { /** * Creates a new instance. * + *

    Note that this constructor is only useful to try and ensure that ExoPlayer's {@link + * DefaultDataSource.Factory} and {@link DefaultExtractorsFactory} can be removed by ProGuard or + * R8. + * * @param dataSourceFactory A {@link DataSource.Factory} to create {@link DataSource} instances * for requesting media data. * @param extractorsFactory An {@link ExtractorsFactory} used to extract progressive media from @@ -163,7 +175,8 @@ public DefaultMediaSourceFactory(DataSource.Factory dataSourceFactory) { public DefaultMediaSourceFactory( DataSource.Factory dataSourceFactory, ExtractorsFactory extractorsFactory) { this.dataSourceFactory = dataSourceFactory; - delegateFactoryLoader = new DelegateFactoryLoader(dataSourceFactory, extractorsFactory); + delegateFactoryLoader = new DelegateFactoryLoader(extractorsFactory); + delegateFactoryLoader.setDataSourceFactory(dataSourceFactory); liveTargetOffsetMs = C.TIME_UNSET; liveMinOffsetMs = C.TIME_UNSET; liveMaxOffsetMs = C.TIME_UNSET; @@ -260,6 +273,18 @@ public DefaultMediaSourceFactory clearLocalAdInsertionComponents() { return this; } + /** + * Sets the {@link DataSource.Factory} used to create {@link DataSource} instances for requesting + * media data. + * + * @param dataSourceFactory The {@link DataSource.Factory}. + * @return This factory, for convenience. + */ + public DefaultMediaSourceFactory setDataSourceFactory(DataSource.Factory dataSourceFactory) { + this.dataSourceFactory = dataSourceFactory; + return this; + } + /** * Sets the {@link MediaSource.Factory} used to handle {@link MediaItem} instances containing a * {@link Uri} identified as resolving to content with server side ad insertion (SSAI). @@ -501,19 +526,17 @@ private MediaSource maybeWrapWithAdsMediaSource(MediaItem mediaItem, MediaSource /** Loads media source factories lazily. */ private static final class DelegateFactoryLoader { - private final DataSource.Factory dataSourceFactory; private final ExtractorsFactory extractorsFactory; private final Map> mediaSourceFactorySuppliers; private final Set supportedTypes; private final Map mediaSourceFactories; + private DataSource.@MonotonicNonNull Factory dataSourceFactory; @Nullable private DrmSessionManagerProvider drmSessionManagerProvider; @Nullable private LoadErrorHandlingPolicy loadErrorHandlingPolicy; - public DelegateFactoryLoader( - DataSource.Factory dataSourceFactory, ExtractorsFactory extractorsFactory) { - this.dataSourceFactory = dataSourceFactory; + public DelegateFactoryLoader(ExtractorsFactory extractorsFactory) { this.extractorsFactory = extractorsFactory; mediaSourceFactorySuppliers = new HashMap<>(); supportedTypes = new HashSet<>(); @@ -549,6 +572,15 @@ public MediaSource.Factory getMediaSourceFactory(@C.ContentType int contentType) return mediaSourceFactory; } + public void setDataSourceFactory(DataSource.Factory dataSourceFactory) { + if (dataSourceFactory != this.dataSourceFactory) { + this.dataSourceFactory = dataSourceFactory; + // TODO(b/233577470): Call MediaSource.Factory.setDataSourceFactory on each value when it + // exists on the interface. + mediaSourceFactories.clear(); + } + } + public void setDrmSessionManagerProvider( @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = drmSessionManagerProvider; @@ -587,19 +619,19 @@ private Supplier maybeLoadSupplier(@C.ContentType int conte clazz = Class.forName("androidx.media3.exoplayer.dash.DashMediaSource$Factory") .asSubclass(MediaSource.Factory.class); - mediaSourceFactorySupplier = () -> newInstance(clazz, dataSourceFactory); + mediaSourceFactorySupplier = () -> newInstance(clazz, checkNotNull(dataSourceFactory)); break; case C.CONTENT_TYPE_SS: clazz = Class.forName("androidx.media3.exoplayer.smoothstreaming.SsMediaSource$Factory") .asSubclass(MediaSource.Factory.class); - mediaSourceFactorySupplier = () -> newInstance(clazz, dataSourceFactory); + mediaSourceFactorySupplier = () -> newInstance(clazz, checkNotNull(dataSourceFactory)); break; case C.CONTENT_TYPE_HLS: clazz = Class.forName("androidx.media3.exoplayer.hls.HlsMediaSource$Factory") .asSubclass(MediaSource.Factory.class); - mediaSourceFactorySupplier = () -> newInstance(clazz, dataSourceFactory); + mediaSourceFactorySupplier = () -> newInstance(clazz, checkNotNull(dataSourceFactory)); break; case C.CONTENT_TYPE_RTSP: clazz = @@ -609,7 +641,9 @@ private Supplier maybeLoadSupplier(@C.ContentType int conte break; case C.CONTENT_TYPE_OTHER: mediaSourceFactorySupplier = - () -> new ProgressiveMediaSource.Factory(dataSourceFactory, extractorsFactory); + () -> + new ProgressiveMediaSource.Factory( + checkNotNull(dataSourceFactory), extractorsFactory); break; default: // Do nothing. From d6a6529b0695860ed47822aac26efcbb7d118fa4 Mon Sep 17 00:00:00 2001 From: claincly Date: Mon, 23 May 2022 14:54:02 +0100 Subject: [PATCH 108/182] Skip performance tests if device is not capable. PiperOrigin-RevId: 450427828 --- .../media3/transformer/AndroidTestUtil.java | 36 +++++++++++++++++++ .../EncoderPerformanceAnalysisTest.java | 9 +++++ 2 files changed, 45 insertions(+) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java index 0c1a092c4f7..1ff90371c00 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java @@ -61,6 +61,14 @@ public final class AndroidTestUtil { public static final String MP4_ASSET_WITH_INCREASING_TIMESTAMPS_360P_15S_URI_STRING = "asset:///media/mp4/sample_with_increasing_timestamps_360p.mp4"; + public static final Format MP4_ASSET_WITH_INCREASING_TIMESTAMPS_360P_15S_FORMAT = + new Format.Builder() + .setSampleMimeType(MimeTypes.VIDEO_H264) + .setWidth(640) + .setHeight(360) + .setFrameRate(30.00f) + .build(); + public static final String MP4_ASSET_SEF_URI_STRING = "asset:///media/mp4/sample_sef_slow_motion.mp4"; public static final Format MP4_ASSET_SEF_FORMAT = @@ -258,6 +266,34 @@ public static boolean skipAndLogIfInsufficientCodecSupport( return true; } + /** + * Returns the {@link Format} of the given test asset. + * + * @param uri The string {@code uri} to the test file. The {@code uri} must be defined in this + * file. + * @throws IllegalArgumentException If the given {@code uri} is not defined in this file. + */ + public static Format getFormatForTestFile(String uri) { + switch (uri) { + case MP4_ASSET_URI_STRING: + return MP4_ASSET_FORMAT; + case MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING: + return MP4_ASSET_WITH_INCREASING_TIMESTAMPS_FORMAT; + case MP4_ASSET_WITH_INCREASING_TIMESTAMPS_360P_15S_URI_STRING: + return MP4_ASSET_WITH_INCREASING_TIMESTAMPS_360P_15S_FORMAT; + case MP4_ASSET_SEF_URI_STRING: + return MP4_ASSET_SEF_FORMAT; + case MP4_REMOTE_10_SECONDS_URI_STRING: + return MP4_REMOTE_10_SECONDS_FORMAT; + case MP4_REMOTE_H264_MP3_URI_STRING: + return MP4_REMOTE_H264_MP3_FORMAT; + case MP4_REMOTE_4K60_PORTRAIT_URI_STRING: + return MP4_REMOTE_4K60_PORTRAIT_FORMAT; + default: + throw new IllegalArgumentException("The format for the given uri is not found."); + } + } + private static boolean canDecode(Format format) throws MediaCodecUtil.DecoderQueryException { @Nullable MediaCodecInfo decoderInfo = diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/EncoderPerformanceAnalysisTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/EncoderPerformanceAnalysisTest.java index 8a906c3b5af..9d799c6e732 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/EncoderPerformanceAnalysisTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/EncoderPerformanceAnalysisTest.java @@ -51,6 +51,7 @@ public class EncoderPerformanceAnalysisTest { private static final ImmutableList INPUT_FILES = ImmutableList.of( + AndroidTestUtil.MP4_ASSET_WITH_INCREASING_TIMESTAMPS_360P_15S_URI_STRING, AndroidTestUtil.MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING, AndroidTestUtil.MP4_REMOTE_4K60_PORTRAIT_URI_STRING); @@ -98,6 +99,14 @@ public void analyzeEncoderPerformance() throws Exception { "analyzePerformance_%s_OpRate_%d_Priority_%d", filename, operatingRate, priority); Context context = ApplicationProvider.getApplicationContext(); + if (AndroidTestUtil.skipAndLogIfInsufficientCodecSupport( + context, + testId, + /* decodingFormat= */ AndroidTestUtil.getFormatForTestFile(fileUri), + /* encodingFormat= */ AndroidTestUtil.getFormatForTestFile(fileUri))) { + return; + } + if (Util.SDK_INT < 23) { recordTestSkipped( context, From a8a4faa28c9ea5eb7d7738c57846a690e38ec237 Mon Sep 17 00:00:00 2001 From: bachinger Date: Mon, 23 May 2022 15:13:43 +0100 Subject: [PATCH 109/182] Do not setOffloadEndOfStream if AudioTrack is not playing AudioTrack.setOffloadEndOfStream should be called after a track has been buffered. Additionally, the AudioTrack must be playing. It has been observed that for very short media (<1s), the AudioTrack might not have started immediately after the read that buffered the audio. In such a situation, calling AudioTrack.setOffloadEndOfStream throws and playback fails. Avoid this failure by checking that the AudioTrack is playing before calling setOffloadEndOfStream. This means that very short gapless media will not be gapless, this was deemed acceptable given that such very short media should be very rare in offload. PiperOrigin-RevId: 450431146 --- .../androidx/media3/exoplayer/audio/DefaultAudioSink.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java index de739678fba..25b531ef788 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java @@ -914,7 +914,11 @@ public boolean handleBuffer( pendingConfiguration = null; if (isOffloadedPlayback(audioTrack) && offloadMode != OFFLOAD_MODE_ENABLED_GAPLESS_DISABLED) { - audioTrack.setOffloadEndOfStream(); + // If the first track is very short (typically <1s), the offload AudioTrack might + // not have started yet. Do not call setOffloadEndOfStream as it would throw. + if (audioTrack.getPlayState() == AudioTrack.PLAYSTATE_PLAYING) { + audioTrack.setOffloadEndOfStream(); + } audioTrack.setOffloadDelayPadding( configuration.inputFormat.encoderDelay, configuration.inputFormat.encoderPadding); isWaitingForOffloadEndOfStreamHandled = true; From 26a1817ebf6b692aa1993220cab3fe59762be4c5 Mon Sep 17 00:00:00 2001 From: ibaker Date: Mon, 23 May 2022 17:12:22 +0100 Subject: [PATCH 110/182] Rollback of https://github.com/androidx/media/commit/e01bb47263bb509497b79bf0a475c3bd385dcb95 *** Original commit *** Rollback of https://github.com/androidx/media/commit/07302a23bd5894d57514c68b2db499ac46726e77 *** Original commit *** Remove `@Nullable` from `MediaSource.Factory` setters The null-behaviour of these methods creates a minimization footgun, because **any** call to these setters will prevent R8 from removing the default implementation (even if it's never used by the app) - this is because R8 can't tell the default imple... *** PiperOrigin-RevId: 450453325 --- RELEASENOTES.md | 5 ++ .../exoplayer/offline/DownloadHelper.java | 10 +-- .../source/DefaultMediaSourceFactory.java | 45 ++++++++---- .../media3/exoplayer/source/MediaSource.java | 11 +-- .../source/ProgressiveMediaSource.java | 70 +++++++++++++------ .../source/DefaultMediaSourceFactoryTest.java | 15 ---- .../exoplayer/dash/DashMediaSource.java | 46 +++++++----- .../dash/DefaultMediaSourceFactoryTest.java | 15 ---- .../media3/exoplayer/hls/HlsMediaSource.java | 51 +++++++++----- .../hls/DefaultMediaSourceFactoryTest.java | 15 ---- .../ImaServerSideAdInsertionMediaSource.java | 4 +- .../exoplayer/rtsp/RtspMediaSource.java | 6 +- .../smoothstreaming/SsMediaSource.java | 47 ++++++++----- .../DefaultMediaSourceFactoryTest.java | 15 ---- .../test/utils/FakeMediaSourceFactory.java | 5 +- 15 files changed, 192 insertions(+), 168 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index dc5972d32f8..a5c5e2ba237 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -18,6 +18,11 @@ ([#10248](https://github.com/google/ExoPlayer/issues/10248)). * Stop detecting 5G-NSA network type on API 29 and 30. These playbacks will assume a 4G network. + * Disallow passing `null` to + `MediaSource.Factory.setDrmSessionManagerProvider` and + `MediaSource.Factory.setLoadErrorHandlingPolicy`. Instances of + `DefaultDrmSessionManagerProvider` and `DefaultLoadErrorHandlingPolicy` + can be passed explicitly if required. * Track selection: * Flatten `TrackSelectionOverrides` class into `TrackSelectionParameters`, and promote `TrackSelectionOverride` to a top level class. diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java index 07db1b368ea..df11e0e5893 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java @@ -952,10 +952,12 @@ private static MediaSource createMediaSourceInternal( MediaItem mediaItem, DataSource.Factory dataSourceFactory, @Nullable DrmSessionManager drmSessionManager) { - return new DefaultMediaSourceFactory(dataSourceFactory, ExtractorsFactory.EMPTY) - .setDrmSessionManagerProvider( - drmSessionManager != null ? unusedMediaItem -> drmSessionManager : null) - .createMediaSource(mediaItem); + DefaultMediaSourceFactory mediaSourceFactory = + new DefaultMediaSourceFactory(dataSourceFactory, ExtractorsFactory.EMPTY); + if (drmSessionManager != null) { + mediaSourceFactory.setDrmSessionManagerProvider(unusedMediaItem -> drmSessionManager); + } + return mediaSourceFactory.createMediaSource(mediaItem); } private static boolean isProgressive(MediaItem.LocalConfiguration localConfiguration) { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java index 7d8f3671720..f0a8cb11648 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java @@ -370,16 +370,26 @@ public DefaultMediaSourceFactory setLiveMaxSpeed(float maxSpeed) { @UnstableApi @Override public DefaultMediaSourceFactory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { - delegateFactoryLoader.setDrmSessionManagerProvider(drmSessionManagerProvider); + DrmSessionManagerProvider drmSessionManagerProvider) { + delegateFactoryLoader.setDrmSessionManagerProvider( + checkNotNull( + drmSessionManagerProvider, + "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by" + + " instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct and" + + " pass an instance in order to retain the old behavior.")); return this; } @UnstableApi @Override public DefaultMediaSourceFactory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { - this.loadErrorHandlingPolicy = loadErrorHandlingPolicy; + LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + this.loadErrorHandlingPolicy = + checkNotNull( + loadErrorHandlingPolicy, + "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by" + + " instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and" + + " pass an instance in order to retain the old behavior."); delegateFactoryLoader.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); return this; } @@ -456,16 +466,23 @@ public MediaSource createMediaSource(MediaItem mediaItem) { SubtitleDecoderFactory.DEFAULT.createDecoder(format), format) : new UnknownSubtitlesExtractor(format) }; + ProgressiveMediaSource.Factory progressiveMediaSourceFactory = + new ProgressiveMediaSource.Factory(dataSourceFactory, extractorsFactory); + if (loadErrorHandlingPolicy != null) { + progressiveMediaSourceFactory.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); + } mediaSources[i + 1] = - new ProgressiveMediaSource.Factory(dataSourceFactory, extractorsFactory) - .setLoadErrorHandlingPolicy(loadErrorHandlingPolicy) - .createMediaSource( - MediaItem.fromUri(subtitleConfigurations.get(i).uri.toString())); + progressiveMediaSourceFactory.createMediaSource( + MediaItem.fromUri(subtitleConfigurations.get(i).uri.toString())); } else { + SingleSampleMediaSource.Factory singleSampleMediaSourceFactory = + new SingleSampleMediaSource.Factory(dataSourceFactory); + if (loadErrorHandlingPolicy != null) { + singleSampleMediaSourceFactory.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); + } mediaSources[i + 1] = - new SingleSampleMediaSource.Factory(dataSourceFactory) - .setLoadErrorHandlingPolicy(loadErrorHandlingPolicy) - .createMediaSource(subtitleConfigurations.get(i), /* durationUs= */ C.TIME_UNSET); + singleSampleMediaSourceFactory.createMediaSource( + subtitleConfigurations.get(i), /* durationUs= */ C.TIME_UNSET); } } @@ -581,16 +598,14 @@ public void setDataSourceFactory(DataSource.Factory dataSourceFactory) { } } - public void setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { + public void setDrmSessionManagerProvider(DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = drmSessionManagerProvider; for (MediaSource.Factory mediaSourceFactory : mediaSourceFactories.values()) { mediaSourceFactory.setDrmSessionManagerProvider(drmSessionManagerProvider); } } - public void setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + public void setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { this.loadErrorHandlingPolicy = loadErrorHandlingPolicy; for (MediaSource.Factory mediaSourceFactory : mediaSourceFactories.values()) { mediaSourceFactory.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSource.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSource.java index 32c3c75a490..d9d496bccdd 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSource.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaSource.java @@ -24,12 +24,10 @@ import androidx.media3.datasource.TransferListener; import androidx.media3.exoplayer.ExoPlayer; import androidx.media3.exoplayer.analytics.PlayerId; -import androidx.media3.exoplayer.drm.DefaultDrmSessionManagerProvider; import androidx.media3.exoplayer.drm.DrmSessionEventListener; import androidx.media3.exoplayer.drm.DrmSessionManager; import androidx.media3.exoplayer.drm.DrmSessionManagerProvider; import androidx.media3.exoplayer.upstream.Allocator; -import androidx.media3.exoplayer.upstream.DefaultLoadErrorHandlingPolicy; import androidx.media3.exoplayer.upstream.LoadErrorHandlingPolicy; import java.io.IOException; @@ -69,23 +67,18 @@ interface Factory { * Sets the {@link DrmSessionManagerProvider} used to obtain a {@link DrmSessionManager} for a * {@link MediaItem}. * - *

    If not set, {@link DefaultDrmSessionManagerProvider} is used. - * * @return This factory, for convenience. */ @UnstableApi - Factory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider); + Factory setDrmSessionManagerProvider(DrmSessionManagerProvider drmSessionManagerProvider); /** * Sets an optional {@link LoadErrorHandlingPolicy}. * - * @param loadErrorHandlingPolicy A {@link LoadErrorHandlingPolicy}, or {@code null} to use the - * {@link DefaultLoadErrorHandlingPolicy}. * @return This factory, for convenience. */ @UnstableApi - Factory setLoadErrorHandlingPolicy(@Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy); + Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy); /** * Returns the {@link C.ContentType content types} supported by media sources created by this diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaSource.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaSource.java index 5d3756fc3b0..807e336e8dc 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaSource.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaSource.java @@ -65,10 +65,18 @@ public static final class Factory implements MediaSourceFactory { @Nullable private Object tag; /** - * Creates a new factory for {@link ProgressiveMediaSource}s, using the extractors provided by - * {@link DefaultExtractorsFactory}. + * Creates a new factory for {@link ProgressiveMediaSource}s. + * + *

    The factory will use the following default components: * - * @param dataSourceFactory A factory for {@link DataSource}s to read the media. + *

      + *
    • {@link DefaultExtractorsFactory} + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    + * + * @param dataSourceFactory A factory for {@linkplain DataSource data sources} to read the + * media. */ public Factory(DataSource.Factory dataSourceFactory) { this(dataSourceFactory, new DefaultExtractorsFactory()); @@ -77,6 +85,18 @@ public Factory(DataSource.Factory dataSourceFactory) { /** * Equivalent to {@link #Factory(DataSource.Factory, ProgressiveMediaExtractor.Factory) new * Factory(dataSourceFactory, () -> new BundledExtractorsAdapter(extractorsFactory)}. + * + *

    The factory will use the following default components: + * + *

      + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    + * + * @param dataSourceFactory A factory for {@linkplain DataSource data sources} to read the + * media. + * @param extractorsFactory A factory for the {@linkplain Extractor extractors} used to extract + * the media from its container. */ public Factory(DataSource.Factory dataSourceFactory, ExtractorsFactory extractorsFactory) { this(dataSourceFactory, playerId -> new BundledExtractorsAdapter(extractorsFactory)); @@ -85,9 +105,17 @@ public Factory(DataSource.Factory dataSourceFactory, ExtractorsFactory extractor /** * Creates a new factory for {@link ProgressiveMediaSource}s. * - * @param dataSourceFactory A factory for {@link DataSource}s to read the media. + *

    The factory will use the following default components: + * + *

      + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    + * + * @param dataSourceFactory A factory for {@linkplain DataSource data sources} to read the + * media. * @param progressiveMediaExtractorFactory A factory for the {@link ProgressiveMediaExtractor} - * to extract media from its container. + * to extract the media from its container. */ public Factory( DataSource.Factory dataSourceFactory, @@ -103,7 +131,8 @@ public Factory( /** * Creates a new factory for {@link ProgressiveMediaSource}s. * - * @param dataSourceFactory A factory for {@link DataSource}s to read the media. + * @param dataSourceFactory A factory for {@linkplain DataSource data sources} to read the + * media. * @param progressiveMediaExtractorFactory A factory for the {@link ProgressiveMediaExtractor} * to extract media from its container. * @param drmSessionManagerProvider A provider to obtain a {@link DrmSessionManager} for a @@ -126,19 +155,14 @@ public Factory( this.continueLoadingCheckIntervalBytes = continueLoadingCheckIntervalBytes; } - /** - * Sets the {@link LoadErrorHandlingPolicy}. The default value is created by calling {@link - * DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy()}. - * - * @param loadErrorHandlingPolicy A {@link LoadErrorHandlingPolicy}. - * @return This factory, for convenience. - */ - public Factory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + @Override + public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { this.loadErrorHandlingPolicy = - loadErrorHandlingPolicy != null - ? loadErrorHandlingPolicy - : new DefaultLoadErrorHandlingPolicy(); + checkNotNull( + loadErrorHandlingPolicy, + "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by" + + " instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and" + + " pass an instance in order to retain the old behavior."); return this; } @@ -159,11 +183,13 @@ public Factory setContinueLoadingCheckIntervalBytes(int continueLoadingCheckInte @Override public Factory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { + DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = - drmSessionManagerProvider != null - ? drmSessionManagerProvider - : new DefaultDrmSessionManagerProvider(); + checkNotNull( + drmSessionManagerProvider, + "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by" + + " instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct" + + " and pass an instance in order to retain the old behavior."); return this; } diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java index a87d86f8a88..7d3af7bb082 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactoryTest.java @@ -73,21 +73,6 @@ public void createMediaSource_withPath_progressiveSource() { assertThat(mediaSource).isInstanceOf(ProgressiveMediaSource.class); } - @Test - public void createMediaSource_withNull_usesNonNullDefaults() { - DefaultMediaSourceFactory defaultMediaSourceFactory = - new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext()); - MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA).build(); - - MediaSource mediaSource = - defaultMediaSourceFactory - .setDrmSessionManagerProvider(null) - .setLoadErrorHandlingPolicy(null) - .createMediaSource(mediaItem); - - assertThat(mediaSource).isNotNull(); - } - @Test public void createMediaSource_withSubtitle_isMergingMediaSource() { DefaultMediaSourceFactory defaultMediaSourceFactory = diff --git a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java index 178078f4800..7abde693ba5 100644 --- a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java +++ b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.java @@ -114,6 +114,15 @@ public static final class Factory implements MediaSourceFactory { /** * Creates a new factory for {@link DashMediaSource}s. * + *

    The factory will use the following default components: + * + *

      + *
    • {@link DefaultDashChunkSource.Factory} + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    • {@link DefaultCompositeSequenceableLoaderFactory} + *
    + * * @param dataSourceFactory A factory for {@link DataSource} instances that will be used to load * manifest and media data. */ @@ -124,6 +133,14 @@ public Factory(DataSource.Factory dataSourceFactory) { /** * Creates a new factory for {@link DashMediaSource}s. * + *

    The factory will use the following default components: + * + *

      + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    • {@link DefaultCompositeSequenceableLoaderFactory} + *
    + * * @param chunkSourceFactory A factory for {@link DashChunkSource} instances. * @param manifestDataSourceFactory A factory for {@link DataSource} instances that will be used * to load (and refresh) the manifest. May be {@code null} if the factory will only ever be @@ -143,27 +160,24 @@ public Factory( @Override public Factory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { + DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = - drmSessionManagerProvider != null - ? drmSessionManagerProvider - : new DefaultDrmSessionManagerProvider(); + checkNotNull( + drmSessionManagerProvider, + "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by" + + " instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct" + + " and pass an instance in order to retain the old behavior."); return this; } - /** - * Sets the {@link LoadErrorHandlingPolicy}. The default value is created by calling {@link - * DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy()}. - * - * @param loadErrorHandlingPolicy A {@link LoadErrorHandlingPolicy}. - * @return This factory, for convenience. - */ - public Factory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + @Override + public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { this.loadErrorHandlingPolicy = - loadErrorHandlingPolicy != null - ? loadErrorHandlingPolicy - : new DefaultLoadErrorHandlingPolicy(); + checkNotNull( + loadErrorHandlingPolicy, + "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by" + + " instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and" + + " pass an instance in order to retain the old behavior."); return this; } diff --git a/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DefaultMediaSourceFactoryTest.java b/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DefaultMediaSourceFactoryTest.java index 3d4ebd874e5..b6d4ac102f5 100644 --- a/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DefaultMediaSourceFactoryTest.java +++ b/libraries/exoplayer_dash/src/test/java/androidx/media3/exoplayer/dash/DefaultMediaSourceFactoryTest.java @@ -74,21 +74,6 @@ public void createMediaSource_withPath_dashSource() { assertThat(mediaSource).isInstanceOf(DashMediaSource.class); } - @Test - public void createMediaSource_withNull_usesNonNullDefaults() { - DefaultMediaSourceFactory defaultMediaSourceFactory = - new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext()); - MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.mpd").build(); - - MediaSource mediaSource = - defaultMediaSourceFactory - .setDrmSessionManagerProvider(null) - .setLoadErrorHandlingPolicy(null) - .createMediaSource(mediaItem); - - assertThat(mediaSource).isNotNull(); - } - @Test public void getSupportedTypes_dashModule_containsTypeDash() { int[] supportedTypes = diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java index 18d9b0fd960..0cc5663a035 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.java @@ -114,6 +114,17 @@ public static final class Factory implements MediaSourceFactory { /** * Creates a new factory for {@link HlsMediaSource}s. * + *

    The factory will use the following default components: + * + *

      + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultHlsPlaylistParserFactory} + *
    • {@link DefaultHlsPlaylistTracker#FACTORY} + *
    • {@link HlsExtractorFactory#DEFAULT} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    • {@link DefaultCompositeSequenceableLoaderFactory} + *
    + * * @param dataSourceFactory A data source factory that will be wrapped by a {@link * DefaultHlsDataSourceFactory} to create {@link DataSource}s for manifests, segments and * keys. @@ -125,6 +136,17 @@ public Factory(DataSource.Factory dataSourceFactory) { /** * Creates a new factory for {@link HlsMediaSource}s. * + *

    The factory will use the following default components: + * + *

      + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultHlsPlaylistParserFactory} + *
    • {@link DefaultHlsPlaylistTracker#FACTORY} + *
    • {@link HlsExtractorFactory#DEFAULT} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    • {@link DefaultCompositeSequenceableLoaderFactory} + *
    + * * @param hlsDataSourceFactory An {@link HlsDataSourceFactory} for {@link DataSource}s for * manifests, segments and keys. */ @@ -155,19 +177,14 @@ public Factory setExtractorFactory(@Nullable HlsExtractorFactory extractorFactor return this; } - /** - * Sets the {@link LoadErrorHandlingPolicy}. The default value is created by calling {@link - * DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy()}. - * - * @param loadErrorHandlingPolicy A {@link LoadErrorHandlingPolicy}. - * @return This factory, for convenience. - */ - public Factory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + @Override + public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { this.loadErrorHandlingPolicy = - loadErrorHandlingPolicy != null - ? loadErrorHandlingPolicy - : new DefaultLoadErrorHandlingPolicy(); + checkNotNull( + loadErrorHandlingPolicy, + "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by" + + " instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and" + + " pass an instance in order to retain the old behavior."); return this; } @@ -276,11 +293,13 @@ public Factory setUseSessionKeys(boolean useSessionKeys) { @Override public Factory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { + DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = - drmSessionManagerProvider != null - ? drmSessionManagerProvider - : new DefaultDrmSessionManagerProvider(); + checkNotNull( + drmSessionManagerProvider, + "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by" + + " instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct" + + " and pass an instance in order to retain the old behavior."); return this; } diff --git a/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/DefaultMediaSourceFactoryTest.java b/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/DefaultMediaSourceFactoryTest.java index b474edf99cf..2a2ff66b280 100644 --- a/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/DefaultMediaSourceFactoryTest.java +++ b/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/DefaultMediaSourceFactoryTest.java @@ -74,21 +74,6 @@ public void createMediaSource_withPath_hlsSource() { assertThat(mediaSource).isInstanceOf(HlsMediaSource.class); } - @Test - public void createMediaSource_withNull_usesNonNullDefaults() { - DefaultMediaSourceFactory defaultMediaSourceFactory = - new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext()); - MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.m3u8").build(); - - MediaSource mediaSource = - defaultMediaSourceFactory - .setDrmSessionManagerProvider(null) - .setLoadErrorHandlingPolicy(null) - .createMediaSource(mediaItem); - - assertThat(mediaSource).isNotNull(); - } - @Test public void getSupportedTypes_hlsModule_containsTypeHls() { int[] supportedTypes = diff --git a/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java b/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java index d6278fe69ae..e7d261c2208 100644 --- a/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java +++ b/libraries/exoplayer_ima/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.java @@ -136,14 +136,14 @@ public Factory(AdsLoader adsLoader, MediaSource.Factory contentMediaSourceFactor @Override public MediaSource.Factory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + LoadErrorHandlingPolicy loadErrorHandlingPolicy) { contentMediaSourceFactory.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); return this; } @Override public MediaSource.Factory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { + DrmSessionManagerProvider drmSessionManagerProvider) { contentMediaSourceFactory.setDrmSessionManagerProvider(drmSessionManagerProvider); return this; } diff --git a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.java b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.java index 0c08b62220b..3aa2d7f090b 100644 --- a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.java +++ b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.java @@ -148,15 +148,13 @@ public Factory setTimeoutMs(@IntRange(from = 1) long timeoutMs) { /** Does nothing. {@link RtspMediaSource} does not support DRM. */ @Override - public Factory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManager) { + public Factory setDrmSessionManagerProvider(DrmSessionManagerProvider drmSessionManager) { return this; } /** Does nothing. {@link RtspMediaSource} does not support error handling policies. */ @Override - public Factory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { // TODO(internal b/172331505): Implement support. return this; } diff --git a/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java b/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java index ffb18544b81..b8231da9b1c 100644 --- a/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java +++ b/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.java @@ -93,6 +93,15 @@ public static final class Factory implements MediaSourceFactory { /** * Creates a new factory for {@link SsMediaSource}s. * + *

    The factory will use the following default components: + * + *

      + *
    • {@link DefaultSsChunkSource.Factory} + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    • {@link DefaultCompositeSequenceableLoaderFactory} + *
    + * * @param dataSourceFactory A factory for {@link DataSource} instances that will be used to load * manifest and media data. */ @@ -101,7 +110,14 @@ public Factory(DataSource.Factory dataSourceFactory) { } /** - * Creates a new factory for {@link SsMediaSource}s. + * Creates a new factory for {@link SsMediaSource}s. The factory will use the following default + * components: + * + *
      + *
    • {@link DefaultDrmSessionManagerProvider} + *
    • {@link DefaultLoadErrorHandlingPolicy} + *
    • {@link DefaultCompositeSequenceableLoaderFactory} + *
    * * @param chunkSourceFactory A factory for {@link SsChunkSource} instances. * @param manifestDataSourceFactory A factory for {@link DataSource} instances that will be used @@ -120,19 +136,14 @@ public Factory( compositeSequenceableLoaderFactory = new DefaultCompositeSequenceableLoaderFactory(); } - /** - * Sets the {@link LoadErrorHandlingPolicy}. The default value is created by calling {@link - * DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy()}. - * - * @param loadErrorHandlingPolicy A {@link LoadErrorHandlingPolicy}. - * @return This factory, for convenience. - */ - public Factory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + @Override + public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) { this.loadErrorHandlingPolicy = - loadErrorHandlingPolicy != null - ? loadErrorHandlingPolicy - : new DefaultLoadErrorHandlingPolicy(); + checkNotNull( + loadErrorHandlingPolicy, + "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by" + + " instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and" + + " pass an instance in order to retain the old behavior."); return this; } @@ -184,11 +195,13 @@ public Factory setCompositeSequenceableLoaderFactory( @Override public Factory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { + DrmSessionManagerProvider drmSessionManagerProvider) { this.drmSessionManagerProvider = - drmSessionManagerProvider != null - ? drmSessionManagerProvider - : new DefaultDrmSessionManagerProvider(); + checkNotNull( + drmSessionManagerProvider, + "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by" + + " instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct" + + " and pass an instance in order to retain the old behavior."); return this; } diff --git a/libraries/exoplayer_smoothstreaming/src/test/java/androidx/media3/exoplayer/smoothstreaming/DefaultMediaSourceFactoryTest.java b/libraries/exoplayer_smoothstreaming/src/test/java/androidx/media3/exoplayer/smoothstreaming/DefaultMediaSourceFactoryTest.java index 28ca0c58a75..f5a205fcbe7 100644 --- a/libraries/exoplayer_smoothstreaming/src/test/java/androidx/media3/exoplayer/smoothstreaming/DefaultMediaSourceFactoryTest.java +++ b/libraries/exoplayer_smoothstreaming/src/test/java/androidx/media3/exoplayer/smoothstreaming/DefaultMediaSourceFactoryTest.java @@ -85,21 +85,6 @@ public void createMediaSource_withManifestPath_smoothstreamingSource() { assertThat(mediaSource).isInstanceOf(SsMediaSource.class); } - @Test - public void createMediaSource_withNull_usesNonNullDefaults() { - DefaultMediaSourceFactory defaultMediaSourceFactory = - new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext()); - MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.ism").build(); - - MediaSource mediaSource = - defaultMediaSourceFactory - .setDrmSessionManagerProvider(null) - .setLoadErrorHandlingPolicy(null) - .createMediaSource(mediaItem); - - assertThat(mediaSource).isNotNull(); - } - @Test public void getSupportedTypes_smoothstreamingModule_containsTypeSS() { int[] supportedTypes = diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSourceFactory.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSourceFactory.java index f87863c64f2..bd92f38471f 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSourceFactory.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaSourceFactory.java @@ -15,7 +15,6 @@ */ package androidx.media3.test.utils; -import androidx.annotation.Nullable; import androidx.media3.common.AdPlaybackState; import androidx.media3.common.C; import androidx.media3.common.MediaItem; @@ -39,13 +38,13 @@ public final class FakeMediaSourceFactory implements MediaSourceFactory { @Override public MediaSourceFactory setDrmSessionManagerProvider( - @Nullable DrmSessionManagerProvider drmSessionManagerProvider) { + DrmSessionManagerProvider drmSessionManagerProvider) { throw new UnsupportedOperationException(); } @Override public MediaSourceFactory setLoadErrorHandlingPolicy( - @Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { + LoadErrorHandlingPolicy loadErrorHandlingPolicy) { throw new UnsupportedOperationException(); } From 196a99aa5ff6e644a9f0276d67ca057f9bb1a73b Mon Sep 17 00:00:00 2001 From: hschlueter Date: Mon, 23 May 2022 18:37:04 +0100 Subject: [PATCH 111/182] Don't reallocate EGLSurface for same debug surface. Recreating an EGLSurface for a surface that already has an EGLSurface is not allowed according to the [documentation](https://www.khronos.org/registry/EGL/sdk/docs/man/html/eglCreatePlatformWindowSurface.xhtml). This fix was tested on the devices listed in the bug description (Pixel 5a, Nexus 5). PiperOrigin-RevId: 450473569 --- .../androidx/media3/transformer/FrameProcessorChain.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java index 7704ba2ce29..3e4d8959337 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java @@ -602,10 +602,13 @@ public void surfaceCreated(SurfaceHolder holder) {} @Override public synchronized void surfaceChanged( SurfaceHolder holder, int format, int width, int height) { - surface = holder.getSurface(); - eglSurface = null; this.width = width; this.height = height; + Surface newSurface = holder.getSurface(); + if (surface == null || !surface.equals(newSurface)) { + surface = newSurface; + eglSurface = null; + } } @Override From 9463efef4be938452905d41123b689c46f52407b Mon Sep 17 00:00:00 2001 From: tonihei Date: Tue, 24 May 2022 10:33:59 +0000 Subject: [PATCH 112/182] Wrap TelephonyCallback in nested class to avoid class loading issues. PiperOrigin-RevId: 450643824 --- .../common/util/NetworkTypeObserver.java | 59 ++++++++++++------- 1 file changed, 37 insertions(+), 22 deletions(-) diff --git a/libraries/common/src/main/java/androidx/media3/common/util/NetworkTypeObserver.java b/libraries/common/src/main/java/androidx/media3/common/util/NetworkTypeObserver.java index e2e3f96044d..c6421efd613 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/NetworkTypeObserver.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/NetworkTypeObserver.java @@ -216,34 +216,49 @@ public void onReceive(Context context, Intent intent) { @C.NetworkType int networkType = getNetworkTypeFromConnectivityManager(context); if (Util.SDK_INT >= 31 && networkType == C.NETWORK_TYPE_4G) { // Delay update of the network type to check whether this is actually 5G-NSA. - try { - TelephonyManager telephonyManager = - checkNotNull((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)); - DisplayInfoCallback callback = new DisplayInfoCallback(); - telephonyManager.registerTelephonyCallback(context.getMainExecutor(), callback); - // We are only interested in the initial response with the current state, so unregister - // the listener immediately. - telephonyManager.unregisterTelephonyCallback(callback); - return; - } catch (RuntimeException e) { - // Ignore problems with listener registration and keep reporting as 4G. - } + Api31.disambiguate4gAnd5gNsa(context, /* instance= */ NetworkTypeObserver.this); + } else { + updateNetworkType(networkType); } - updateNetworkType(networkType); } } @RequiresApi(31) - private final class DisplayInfoCallback extends TelephonyCallback implements DisplayInfoListener { + private static final class Api31 { - @Override - public void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo) { - int overrideNetworkType = telephonyDisplayInfo.getOverrideNetworkType(); - boolean is5gNsa = - overrideNetworkType == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA - || overrideNetworkType == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE - || overrideNetworkType == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_ADVANCED; - updateNetworkType(is5gNsa ? C.NETWORK_TYPE_5G_NSA : C.NETWORK_TYPE_4G); + public static void disambiguate4gAnd5gNsa(Context context, NetworkTypeObserver instance) { + try { + TelephonyManager telephonyManager = + checkNotNull((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)); + DisplayInfoCallback callback = new DisplayInfoCallback(instance); + telephonyManager.registerTelephonyCallback(context.getMainExecutor(), callback); + // We are only interested in the initial response with the current state, so unregister + // the listener immediately. + telephonyManager.unregisterTelephonyCallback(callback); + } catch (RuntimeException e) { + // Ignore problems with listener registration and keep reporting as 4G. + instance.updateNetworkType(C.NETWORK_TYPE_4G); + } + } + + private static final class DisplayInfoCallback extends TelephonyCallback + implements DisplayInfoListener { + + private final NetworkTypeObserver instance; + + public DisplayInfoCallback(NetworkTypeObserver instance) { + this.instance = instance; + } + + @Override + public void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo) { + int overrideNetworkType = telephonyDisplayInfo.getOverrideNetworkType(); + boolean is5gNsa = + overrideNetworkType == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA + || overrideNetworkType == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE + || overrideNetworkType == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_ADVANCED; + instance.updateNetworkType(is5gNsa ? C.NETWORK_TYPE_5G_NSA : C.NETWORK_TYPE_4G); + } } } } From d840aa4dc1b6643ef528103408e9ba9522825f11 Mon Sep 17 00:00:00 2001 From: hschlueter Date: Tue, 24 May 2022 15:01:32 +0000 Subject: [PATCH 113/182] Skip transform4K60 test if 4K decoding is not supported. 4K decoding is not supported (not required to be supported) on all devices, e.g., Nexus 5 does not support it. PiperOrigin-RevId: 450682519 --- .../androidx/media3/transformer/AndroidTestUtil.java | 6 +++--- .../media3/transformer/mh/TransformationTest.java | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java index 1ff90371c00..3c7ba3f5a21 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java @@ -232,11 +232,11 @@ public static void writeTestSummaryToFile(Context context, String testId, JSONOb * @param context The {@link Context context}. * @param testId The test ID. * @param decodingFormat The {@link Format format} to decode. - * @param encodingFormat The {@link Format format} to encode. + * @param encodingFormat The {@link Format format} to encode, optional. * @return Whether the test should be skipped. */ public static boolean skipAndLogIfInsufficientCodecSupport( - Context context, String testId, Format decodingFormat, Format encodingFormat) + Context context, String testId, Format decodingFormat, @Nullable Format encodingFormat) throws IOException, JSONException { boolean canDecode = false; @Nullable MediaCodecUtil.DecoderQueryException queryException = null; @@ -246,7 +246,7 @@ public static boolean skipAndLogIfInsufficientCodecSupport( queryException = e; } - boolean canEncode = canEncode(encodingFormat); + boolean canEncode = encodingFormat == null || canEncode(encodingFormat); if (canDecode && canEncode) { return false; diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java index 42022a83a8d..a2d3b654d95 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java @@ -19,6 +19,7 @@ import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_SEF_URI_STRING; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_URI_STRING; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING; +import static androidx.media3.transformer.AndroidTestUtil.MP4_REMOTE_4K60_PORTRAIT_FORMAT; import static androidx.media3.transformer.AndroidTestUtil.MP4_REMOTE_4K60_PORTRAIT_URI_STRING; import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped; @@ -90,6 +91,15 @@ public void transformToSpecificBitrate() throws Exception { public void transform4K60() throws Exception { String testId = TAG + "_transform4K60"; Context context = ApplicationProvider.getApplicationContext(); + + if (AndroidTestUtil.skipAndLogIfInsufficientCodecSupport( + context, + testId, + /* decodingFormat= */ MP4_REMOTE_4K60_PORTRAIT_FORMAT, + /* encodingFormat= */ null)) { + return; + } + Transformer transformer = new Transformer.Builder(context).setEncoderFactory(FORCE_ENCODE_ENCODER_FACTORY).build(); new TransformerAndroidTestRunner.Builder(context, transformer) From cb0429742021781ecd36b7c739a5dbb7258bd9d1 Mon Sep 17 00:00:00 2001 From: ibaker Date: Tue, 24 May 2022 17:03:30 +0000 Subject: [PATCH 114/182] Remove `InvalidResponseCodeException#headerFields` from the stable API Representing HTTP headers in a `java.util.Map` is error-prone, because the names (keys) need to be case-insensitive (per [RFC 2616 section 4.2](https://datatracker.ietf.org/doc/html/rfc2616#section-4.2)) but this is fundamentally technically incompatible with the `Map` interface (e.g. with headers `{"key": ["val_1", "val_2"]}` then `get("key")` and `get("KeY")` both return the same list, but `size()` returns `1`). It also breaks as soon as you copy the `Map` into a non-case-insensitive (i.e. normal) `Map` implementation, e.g. Guava's `ImmutableMap`. It's risky that a line as 'innocent' as `ImmutableMap.copyOf(headers)` could break things so badly. For now it's enough to keep this field unstable (it's currently the only reference to HTTP headers in the stable API). We can consider stabilising an improved HTTP header representation in future. PiperOrigin-RevId: 450708598 --- .../main/java/androidx/media3/datasource/HttpDataSource.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/datasource/src/main/java/androidx/media3/datasource/HttpDataSource.java b/libraries/datasource/src/main/java/androidx/media3/datasource/HttpDataSource.java index 55afcf273e3..4f755b6ed14 100644 --- a/libraries/datasource/src/main/java/androidx/media3/datasource/HttpDataSource.java +++ b/libraries/datasource/src/main/java/androidx/media3/datasource/HttpDataSource.java @@ -418,7 +418,7 @@ final class InvalidResponseCodeException extends HttpDataSourceException { @Nullable public final String responseMessage; /** An unmodifiable map of the response header fields and values. */ - public final Map> headerFields; + @UnstableApi public final Map> headerFields; /** The response body. */ public final byte[] responseBody; From c6ed7c4bcb6be6979b4b87e2931873a6de2e58f3 Mon Sep 17 00:00:00 2001 From: ibaker Date: Wed, 25 May 2022 10:35:46 +0000 Subject: [PATCH 115/182] Make `Rating.RATING_UNSET` package-private This value is only needed by subclasses of `Rating`, all of which are in this package (the `Rating` constructor is already package-private to ensure this). PiperOrigin-RevId: 450886872 --- .../common/src/main/java/androidx/media3/common/Rating.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/common/src/main/java/androidx/media3/common/Rating.java b/libraries/common/src/main/java/androidx/media3/common/Rating.java index e0c8aa735e9..f0df87c434d 100644 --- a/libraries/common/src/main/java/androidx/media3/common/Rating.java +++ b/libraries/common/src/main/java/androidx/media3/common/Rating.java @@ -32,7 +32,7 @@ public abstract class Rating implements Bundleable { /** A float value that denotes the rating is unset. */ - public static final float RATING_UNSET = -1.0f; + /* package */ static final float RATING_UNSET = -1.0f; // Default package-private constructor to prevent extending Rating class outside this package. /* package */ Rating() {} From 678b6c04380302548635a9d30468c692d4fe08b2 Mon Sep 17 00:00:00 2001 From: hschlueter Date: Wed, 25 May 2022 12:30:50 +0000 Subject: [PATCH 116/182] Replace 640x360 H264 test video with 320x240 H264 video. Decoding and encoding 320x240 H264 video should be supported on all devices from Android 5.0 based on CDD requirements. https://source.android.com/compatibility/5.0/android-5.0-cdd#5_2_video_encoding 640x360 encoding doesn't seem to be supported on Nexus 5. PiperOrigin-RevId: 450901715 --- ...e_with_increasing_timestamps_320w_240h.mp4 | Bin 0 -> 1666877 bytes .../media3/transformer/AndroidTestUtil.java | 14 +++++++------- .../transformer/mh/TranscodeQualityTest.java | 8 +++++--- .../EncoderPerformanceAnalysisTest.java | 2 +- 4 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 libraries/test_data/src/test/assets/media/mp4/sample_with_increasing_timestamps_320w_240h.mp4 diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_with_increasing_timestamps_320w_240h.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_with_increasing_timestamps_320w_240h.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..c3b140bea576d89f509e5dee1c0b4aadac5519ef GIT binary patch literal 1666877 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 V$KEV@ zKW{BDDNA17mmMYKLqP&v*Pc}m@BjSA-TYA>eaz2Z!7Oc;hoAfAYefHj^UmB~vT@EKQfodQy@yiedZIr7&tc@627_QATKs z&L4KK%k}sxE3={__jjE~+VPm!j2%)qE$+hnr5Tzk1h=oG65>?$(tiazySwii2mToI zA9wai9``Tyt6UUFT7W^N@e2ll`PEQ?qK9sCv$KxL_>$~nVN8J57nB!Wl4idz-km;S zIhLf~;o@fQYS4VdjOGpr-U#X%6aD@&;-ijMhPS-ITWvwyhkdi?Z{UcIddOP0TdxzH z`eh>j-Bb|~?|+zE-PJK78zVCnltue#ehID~Wxhw>rU^;T-ak#wwV+T`6#1Mq{$9eG zkZR@DTcx+R#SCJcsfh}MEeE7l z{Hxh79xwjLd~Nnw2iqnr9_wP~Uj8UVqmPE9>izA4YHtkoIH)p)n65bfd@u4f`@59I zvkab(3*TlN%XQ^2W!f=I2m9%o_q);lRYl5uodZ1|?)wHR4^Uc6STSJZUE=AEF7L%b zkdp}-_sOts|5pTNw!==A6G@kVfPmT+XFsr=EU5RF^8LT=*0?LaVElcH-Q&FHu%S*8zj4-r57)kXGGkF?|Lh~h zL5hPtp7ajsCBNA*V8w&*r;3BcLB)d>4^^ z%pDk>`F-D@VT3q(Fyc_#gQbR{&L8{wFaKcz$_gw|K`DGh7IOB0oA=Fqr4Q-<&RykB$F)|+9jCPL*I z(z{(3LMr=brfyp;*5J1Iz!5e$l!?f(@z|0+K(?jn@v`Dt4m0A|CFUZP%te>o?7#c^ z%lnm%V6gUY=ECR2tZEmIwZ4j7?y~z!2?#BDMQ%1jz7#0>VuH#ud(6r`p?MEq<0P$N zyMNiz^}iYtyXKO;^7DnuDswPXd*KHTi0?@!r{M{SFlB?u6qD#ttCNgBu6 z|1a7vuq&z2CkpL$#i*{wh=RuTnqn->kohSzwr?o_}`T-1vc!xQEylf3Sx-3BZ!7 zRJmioGk=Fu?-R{wGU3BtwYjs-5;hmu{G^76v}Yivj|tg%N7y%OK`hU{VUiD}(5Yod zZcput=HkSrp_#krc3SCX7DWiXvG^l|TF?Bx2#bbcy6(O|wo>n5C`R`;*95ZxnoB7o zUl++C5)s?lLWA;$CG0`q|>oWy~YjbR}0U1Y=@?IOYi1Ck`J@)u5lo`OJwxM(I z49W0O;fYD(5Esk!ei6A9`Ikp>22!M}&CO=Hf0uE50N+f)&UhR>0~%K*xHd`xjSX zf<5-toKf_=SvwsvUJ6?)#g;-z;$Mt4{WV~sd#dWOz6*$|!MjiiWp1@z;T8Y@1`k1- z0B7SlJhEPg@BjYkm!-YGK|9|v{-wPLi}ml>By3&n0^T&%?{*ri|NNb4)iZL8nU%-r z(huY3s7^xaA2d?9e-KYK#k04diTYM!KNul z@N%Z8?Q{^`?FW?l{TwduzhI2G*lD-+3Jbg4{omlgMc(r-XYHz8hdJDOd*$3oOZEFP zRMMj`d2ptA$hipi-&eaEgBA`iiRB=> zqsiGOBx`*)iH_p}!epqXx)+Im!=qH@!bA8SeEcPoTAs525~ z`Xr&dre=H;@(~Bbv0%tWgL!w0P;c@ZA820CxA78^pkyM!ii6L7D2_wfFZ(&*QG6djY&O_;Z_rDu3S3y}i5Ogqb$=#X>GqgHrC~CHt;Sye|2$ zwfO$*jvF<3)W~mL*Xj6(*2!f~DQpCD`>PWj7ysS<#T2)qLL%?W|H5F4LUO3@i6PW) zT&80vKZ}r3{n@T4k>6ZDF#3Jkf`ZLe=go@PDTkn-w-dKg=?+{CnsEJ|C67X385j1~EBDER3f zS`2V6`ngCRLk_RyhwFD0aG6LAeUEv5PsUiD*B#lv{BrHvWi%T=pFtKy7yhwlgnVvZ zieBC6y5NLf6TR2h%w$hEkqiBMF>S5zNKH+SW%jESP+KGa1(bS>o^kqwviB_ofL@PN zB7_`g9tkyfN~!QkkbImdlbxOLP*ayhW#&T!gC#YDoqCPE!AIGU16^hcJ+&(e0F2pS zz(%&NUj-a!iP3rsT)!N~WpS)FsL!?;g71kY8M>Pp+y!gWTF1<868~40=Oo;8X#e3m(cS?by2BmLjVK`+j2H3Y zfB`R0Wq?>nRt*h;LIAtcaptb3=5mEu3!*BkDo{Yzy(@a&{aVZBy|G^uHXp7twt9xc zaMFEC+He%;FB-B0^oz^IOsFD~->1%bR*`fxeCXc%ubNB=QV8Xq{_1$t^F4TNB9+av zTy@Iz=vNOV5miemxT1?09W0&Mpxne)tnDS4#b~T`b#9AQYbMXV__quG3QLf0X`*N5 znhI34GOgm5OV}TQN%)Y8v#PCY1lwuF`V`LWjQC)RZ-&EXvvNw)J+q~Q#2F-LBPtuLK5aO(83sJV9?k~ zg1kt?9jB`Mm%rQVrkteX z=rtyrr|x1-9(XPu*@W)?&5b_TOZt$ka;lZ?l&XXsq4%BxWbi|%eMTAz+cpJ>||m8cJhK`;x0FZ|Ug7GH>`yvk#OQ`EyIgW2FHJZqbO(u@$$Rdg}>tFLR3eOZEs! zJ2CV8GWx!rsoy&jpYdW{-f*<(<^A^w67!3_{w5hqi?lZbJp6A5+uy49UZU@Ab_^Oi z|9?ly)8K+?=gUs-%p~K>^pStvFqo;6O}x%$%lgTL=U?7O^gi$v&P&%T2$q2z>0C4GB}nxUp!?o!nFNK1#&V{y1W!5*NGhf+iC<`7}P!t+00<`au{#)c-Ln zzI+4uui}LavSA;OroQ~VZ3KFfAHiG>xRcRM7}M8je)|6Gm%gPf1CEE^7cp~^&PaWu z%m2876qBH69vNi(abvA^;zFR`OqGUkpW-8}cajwcii0sN(K^3x;SJ+xmZ;4iFXY{u zXf{Q;wP|AR32h4?wnHk$O!f6uhkoHgzKr0(vYz$BC_3f9N#WP$3cY#PDrNnzCooz3 zL35rin)gc;1YM@1oya3V#e;V)KGDgbkrK#0Vk9Ng@R>zH{Ic{E#zj}RKih}4gD&am z<-!Xdh2idL(*&`ijWieb8*1t*{uGw_l6dc^!agXwCG>Aus7`K0(-Cny@nZNT@^98> zR;K4;;tjixf~UN`C3XA~mpza9nMoF&{r9N91Np4=dhux*LS-XIt1<>K-Su3mrV{nl zxk99(x1N!&bCAFNp)7Xgktl9k4i`u zyFj?*0PbDS#?L=}I%4e}S-+S6hIO#f2=5F;mfKQKZ1uvIQI}ko?t+|%>r#cNHxhA2 z--IU2L|&1~uW(6w%l_Aw>3l@%?P2V$u$#qIxX0jy}tz zOtq-at7Z_nPg5^}+hV=*wQmwzuCCWYBW(s(N3Z4Vf7u;{x4Kir6vN^Xp5jSrnFZeK zbcwB22?bnjy}!3EAA-+#=d0SAgCF>sju~+YZ1$)B5_>giOVKU#@2ib3{d)1Oc z@ut2!x$USs5^Lr9Vj_5LdsU^}kDyP+#P8h0HN4NMXck{k9^|sYCob7D4T;`ALqnUw*34E+FX<`N=QcYM`v<*~4>7nR^&Po6ma}@a)LH zEP5bDZ&1v*Rgp>Aa-VFni6ht&;vA+5OYcy{)3zBHx@0ehWueuV--_IdbmU(6 ziu!L{#@54D{S~^Q9b9DNMIS-lJ%T*9)Z|YyU`wYjad}Odo_l7K6qY%17sq%7A4D}l z%M@1#5N&^xByw@h89(5Rr6Ozc--3?_&!!;#R7>$+>i9=sr0e1lDCQ51mRf`q1jVt0 zGX&_)@W$jKUl}=`8U0ah)SDFetqN}{L zNmtFv8U`!SAsUDu`|$_?Gg4-tm^3>J1q1X^ySp%<)nkBhrQ&U-sAT_ccRjB}5H>D_mj}B1&%Tl(P~sM(v`50v1;=yeW*| zj#A4neu^euz>~A$eVvGIEmur@{U{EsC%U<5O_b$4+H70wuDtHLJD#f1uCCQriJ~Cp z?(w8>?wq*N!xD}Kv)%BX#Uy(iyf94d#e~!5S#O+*c-m|=3}PY(fKBI9 zb*#=eRN5s;QE>?hl?SuOWxiM6iQTsRm6LVm6`w53JRJ|y(Y*9N?;B*cWf;}*(puyv zmKIoIQb?e)o}hy5-A*(tw-s|kHTd=cLGo5%nZ|&a6M40!aEJ=yY`cqm1wK_K>oEw8 zK568(NoCT4v`{=4X-hayae<? zdf6*sb6CY)9TzHH+bCM;mI4*uxnzW>TIHEvX`>~B@M;(qV`Lufyr;zs3%KY#5MR+vrZxqglCR8-|3I4raN zCOpS+VmQen8FBuZS_w=C&P2Z-{VqDHj|{T!C1-jL_{;u2j4+e~uZ;XR6Cd!2ZhzTA zFJv#zW7zYv*hi$CkG}x*{O$EzWb6kdvo1P_Chy0UImbBIE8HUxgn3kVd3cH9Sx>6f zx4L?k`>rNBNb|gs^`T+}pfO;&-{Z?0EF&SEL+#+he?PB}$h?nBQNpwDJaXE=4}< zh^O{0?tki0t#s}t9)s=ii27Yjuiq#?+hj=1i9p8q;R zkK{&XZPWwctE;RiE+{63j_531o@5hRS zOtf|6{=WZ$X>+e=-nogsy&3)r>>TtxF|hT!@1tBqq!bMu&tG!x`g;4juxRgTT-~VX z(7WiG4%}Q9;nf?nSvxh<7*xbESjqX{7z%og|NlzXUujntn3EOl7<LrKEb4Z^1yhC(O$nC+_*hU2*ZiH~jP{7vtcisV_+>exG(TnM3;bD4S34 zTQMV#zV1>DJgC3xqGjl()P?#4hG5J;eQ75I`;?Q%?|1I`Ttv2OluXxMNMM79`afKL za@7Qrt9$ucT1vCEnOT?in!=lI$K)kC`9oEwr$I*Zh;irtb?dJ&WM8k-(=g-5f$JkF zbJMyb8(-|Xi4Qb7b<2YKbdk4&Ir)BbxhJ*I&{JM@8PhD_aQUfQZGtzz6-q}d4Gs^Bf zyGKTMJ6Gomr`0J;^8bPp?(gu49#P9pd&V@n$IuPPEc{i-{xawINN()kd4EOd z!W$n&k4owa4f43Xll$fP1%H433vgB~8RzuPf)H(f&pI zLp!+wT(&~*FD)f%LOVt=hlWT`YleGTXi_mv{|Mvb7gJyqYLd!!ha>Ypd)h6yN9~usU-zL!56Hsz4`Irje!)1GUbk-1 zgiNG`Z=ujSq#lIwON=IT(LaLIn2Jw*``5DyvM*puP**4}^4@F*6_`h{0ap3>MXg1X zicTjR(*k0K)7(g)^HWh=qvX6M>MB~bcp;d+>~#p`_rpxF2oWu&dQk-SFu@7_@qA(@ z_^tcPehN4q?**>z$_nv8FC|_IIY#oYZp$0&S0V%0`%aRi_wt_tTc-=lrnP8ZJXzb0 z49Gw5AuVnB;Fzagzg>3KC@AiKs@BnPnJcfK+OwOvyy58fsk19MCnwXBWd=}SBZY7c`r{)%kw*s7L`uaSOlU{kqK`hK zspZuzc3Cenc{mpqSoAnM2e18eh-x@W0HI?|l=%HDwV`8WDMb?RjXm`=(lW0zNoaDk zmbsVVfH&L%MQnvi5X2TYtyG)MOx{d|Qwrzh0aqNzD zZbg;H{?(Styl>ETevnl);;nZ0OWMO~letI;OjJiZp-s=GYdkedY$}}HE7Xl7=Sa{s z!N-$eB(J5CwN10JzAJpiNxmJ%Mzd>fr;4Qs35kL!7L9IuRSK(th6ZqY1cG}(5?UJ7 zRb-Let_G$+Dh(2?!D=}a7(yIJKSaMG66yVaE;}kkB>-AAfFy@l`wLFw(X8ni#$?Ei z&_*CCEvx~+000RqL7QNA*suE1e{tDK29jfGE83JJALV)v9~B02`zEMT^Dq1%(KHxj zqr<$zO+7^4uAdnpWO=Lo6iOQ1`(}^o!~gy7)mZu~4>2-d|NhZSn9xJ#ZysCHIQfP@ zC^P}(_sPxo(2){@LD(3;Y1jMlIjfVG&m%8YkF-`t+A~ZaC4TnSwD=-D?&e>$d=?oE z^N*c;ex4Y0t`&X=;MNlMC&FuevmbZdAS=RLzN6-cl0Kpf2Vs^6s0_Mq)Dm*?jXCip z2W9N+MnfNWK>|X59=uc?8I9B6@6C?-%a`A(895_@r=}jd?NM^^?*ExS!X?j4!=%;^ z`JTA`5q6#MRa;XRdij+dMZ9!KZafso8ijxSvD6AgzUYAeOj^5q zW(yV|+9Qt-MW;e3w=zZOpx@Cjt73=p!S3sVF;~80rP3MWZ__Ky?mvydKa8xM zyN6d2xR(Ux13Wrmr{?>M{|HzveU#8GVG_CJa06W+Xe72Y;4)fqmU{gk&m#u!xvY zST!uUf3C#K87nC3{vtfcINMi|c@o4Jlz;9?Nf3*}@Jvz8K`sr1pgg3CNQ=w;cp@WC z=W+SE#?Ki+CYSki`8))gh)nWrnKy5gvw$->`I-h2Ku~4ftZtsiv|zK zJ#jV+R2l~~ckvwd@)Cb=nIJL;mHO`gf@{B@yXF6UCy=xGh0Yi3r^a4t;rb!4v`){2 zF8)=Aq6S*qmi#0`7hFN-#!L_**tuznK5p`h$S+%rf%IK&Y8mQc3di&Hdp}DI=8xeH z?0!&D0P@g63Sj)c`e>s%W&05hr9mH>aGvSU7+>zwJM$Nw7fl5CPs7e~3qGm}BEk9Z zdT)grBu|<9GWP)nhDh+eN&fgYHjr z1=ufcm@UFS4hR}dx6_Z97UJmh)Ej(x90BgBo$>4av#sS9F!_aEJ( zsF-I0d*y@f6BE0=^~xC}HJu+Jy8xcMjn;qs661ugc43L7y^*bw;WJ;HkpI7^;)L#V z+@t7Ml7%ha;kLkssAhnT^I1v99;?Vvtg}uYu&U33swFemzE#S*ppwqt;I`#cLc8Bf zi8dNUa&_RGi}h9sF{Zz}u3J?mQSjU+&G@~1A<(3$i}>2mHr@E_X{raU_4Ew%k)Luj zILm(#EeK8jdkG5%(a~aP-gWW*_xLHh&61HY@{+8>H^=MKu4B9VK(l+h_bnff=wT&% z&7B_o%;Xy)1nC0t^D7GR-cz@_utkLL2a4K1P@d^$Uxv^*>`HS!F7+?Bmz{RwuEH`e z>`~NS-@c;Z$Tt1DM82EF$#=$m@4|$12m}#j;GpYrwLCX z7YydvEepPK`e2r+q13yalksKnv)WA(E@&YWysvAed=#Dcdzk6YIm2OVV=wopNKu~o zO8yLBN!)kftBTLKebJb#YtHrZ{nue0O+qOAZmcxy|KO{5$@8PI9#CFr-{#Nf_oO?> zq>GVw`oqq}KM8O*WS@`R{7Ex1dxao+7Fxc8hz8XqIL+bF? zwjh+tM$@;;@9GN57lwcGPcq{{d8*i=!QFVMu#c0+rcVn&=3nno7t_ued+?-w#E+Mj zH*%^47tT`u@z=eIFXiTfj!-Fa`H6Ot(X#X_bA_Xgm)37$W{~5IHXN4P{;I_^%uIvl z`884b4usD;dj!pRb5yIuZqR=TBaa^$~@wn4@FZ&aZf7juEGP@vXMg{#GDm)fjz1qP-L ztnf!_dO}mvhWNi*s5VbnIQ~#EW0%V_CBhe&e8fzPfJtpw<+wsyam89f^n*;WJjAlt zJZ5=efQY$m#$1lxa^@eyh!Ol2M6~YDz6v&KJIuVq1~1Df+le z_Fwm~hZs$-#~i#d-8bN_wX7R{@Ew=UL0*Cve-5|s#b2zbo)WDl{}ya8i-r^hX4UJQ)EC`h$_xQD#;#I(l^8smyZwDwl{Qi49rw?-jW4-hhUkCK_YQ zIABPK5#GogF@UQqLy-5%^hMYguN`{jUu|!~S+_B~P`Jt$@5-4P$z&=hMv61G#N*8+ zc1B2^VtZgnE>dL)aiYXZi~6V~@UI$e%ekbNgWW0Lc(zlQP1s+u$Z)%w*Lhq|W~7*^ z5P_$O1lAOYBoF9>;xdmW6rTGf=WO}}9nDKLmMP{ttecewM)2jhK@ucohhmkPi;u`c zv)F643S63;$HVlgkO$p8V`O*3@lD8aO!&qQ%;Bj~pRP1()=AxR7$n&+TsILRnv=^H zr?yIBQ@4ovq#1^T6M);*HJ3|wwM)%nNh(4lqQk}~HtW1^Ea}Nc)9Sto$<3_#uHDUR z)#}E*Kl?ty(;>&_b#N$|sbyXj6Jt0*iw;*~sF)yVRhM{%SfH0Jq_%$&i zn+0n?$%$NI2%~+4?EVdO(25aE4Pv0_#+$nmv0hf#0zxrnkJY2##k;sH1Y}@JMvw2J zOiJ(o00@{tn}BEHmAmEpRsIP%#e;|=5q5zgE{0Rx@KKRweaL_8zpCJu2C;SdPX?3o zuH-x4da@c{FZH&pDvXboo`ES0e{r98@iaylzXCW_gzyF0lE@A6Z`5Nj9 z3O6fZe;qF0s3;K#_|u$#{J03;eYBZ2ztna`$W_t4@@w+_>X=HIo9;$+2o@7<`N3VT z$^DaZ5B4bce4%IM`>zCK8QtUR=GKN#j^7*<&JAIe7X<*PU3Fmiyw$m3`b!5Q1m(;~ z#DMy7VJ@9pi4n%~{p*4uSlJWHUP8V*PjQ8%83WUb(K;9N!}v3xfp!q;-B4KrFOP

    Gk=3%9?Q+++?ZK&s{`_!C{1#4{W?m!v7G%n&ebzqrnf^Y5MYtohE>sGW-VR`^w=9=` zvhuK0)9^!jPg#F=p_DSQ#>079_47{rzPwGKt`S&sGL`l8<@)@dRsEF9m4D$2zW3!; zSNJdyD*n@yu-&u&*$M`JS)w>C+|OZ5$H#kmu+O-jMKgw1zOB;i_(ZRM?)Jphr69K6Li(365R&d=+p| zYu7E=@J@WR=Ej_O+rICeAmG=uliojJTXMFHzSBqAw1fzHTbGaG3-%H6zE$rIOO`#2 z_){~=g4%i~DbD(5z+byxZnbS{B8`kTh{FTc#qOS^^R|`2SiI^_$LZJw-}JQ4?)^p# zm4ButMpgW%Vf2@4e3u{RE)T?c2$IhK@I{J)-{K>&BagLc(Y0O1Li`8(e3E%jF;buI zVoO>)BvRvM&+XSP;=e)($4b${El)(i*4XRDMw&Zxyt?Hcxo0oe;D~NQ<;*JJh*o7` ziFn}l3jfDr2$~$mJq_&)$ZaTN#Pb^s-}DXn@$dPMhVF~=WwF1F?_MRBjj zSTh$r7qlE)gqMX5_wN4$aQY0#yE(4+bA#2^$ZxxihZ?2gy^<2%bx0 zFXFqJLiT1wo*;)HzDfRpOypX6G;a9&SEj~|u#F~iTjk7UlTa?r%06pLaYeJc?``DS z#UU3CtkZKnhxPp2i!$(p{9=}Y$CA8?WvkzWE|;3&HOxP7c)8%SkI`;1Lc`8UckV3s zAn}^_Pw{-K%D?eMls_2}7cVmXb4NvkK;Io-f*-5@0j@4!tN71%rV8%=Eiv0HC6`d1 z@1wi@$K@Yl6ZfN>=?sc^u71JcqWXre=haZLFKP%)pR(F_iS;^p6}{A61e{1 z`Q7^5ai)}OMkG=?J2(0mRDEYz!J};}&?COS-K}A3%G-Qwmk7?gnNLD;Dd=zJA<3AL z!d|91C|lF(&@uK80x#Sa~W;%;3ZLi6C+m4Bj-^7*O_Ya9N`!4R6j;4Fu zxb(Q&9)U@iHa=cFE#r=w1fv6pj#(tq@9_AJ?j747t-hZ$ps>O$67|rn3D3yq#y?FW z?)5jgqat?mhHi`FzmT^v6St%iphQb`B)64v7kaB~B~{-oW&WghNSEp|kA2Tfb*sqg zZ0p_RR(wd8cf09r5Yj$L^c1NNngM-`#U)~4&le{=dfKD)=p%*kq}M4jQl*c?UvJ~6 zl+KX;FMYnP{vs;vk;P+rR|KUi%ADbI{*n8d=vavtp=FkaLXqcs`Kdm8h$fLNp-YSO zhGnt^+CJ#sKfdljljjk;pjuLq528)LcL==679jgC*VrZcl!DS*G4_xD$wmL9ff-%c z`Fa*BF!=jde=q$Am`)m8Ck)Htz9j-uZen;O_nRHUc>`v%GU-4P7ia(t6JtU5eqjwf^z*T}>f;z`Z`Aj%D6;@DSg}$~RwEr7#^dS_lyi z>Qy^oD!MFx>~xE~CGQ|hpXx8VT$fqmu7v~(-TPxMd7d4(-gJha5l7D{%!qHkf|mpy z$Ye9+X#3c3%}-xambRKxV^*j{RcM-!hnL;;9#l}|zk9r-Oh4N2j&IA!Es z4`|E9{2{!f$1d7K&tzV8cCK62)2?xqbU#wBBK9tJ_QC`pONmo%fbWn|_cXWq9&jW# zoAdZR=jL~MZRoSdaD!Nx|pEi)I(80T%mNNVJN-xVQf?r7dCDoB&nCuQ|bbGf^#Jq67 z-oL{?wR5lbKuB7^4YPV)Gg>%8I+@+iCwPJf`Ig7^R!cD+rWA8nZ8$H98H|d)Yd|mm!X+bf0?cfxW=P zS}RJ7oshUfU^vimFw@`k;Elh}o_<_nh_A&{D*RMh*eJ>moKPi@{r*_HCiQSn4Z9ZG zVFfAPJbugV+WZmnDMMl6^8~MP(IKr;ds%Ae5f94&IkDr+l=V>eKx$@ z>(PI&3U4jpBaPzczY$KSFSzhc%RJ*LEYqeG%oYt#4Wxq-i5#^VS70&XlJk-qQ+d7p zi>L;+=a=70*h@0W?)`Kkc026tcTSnd^(?vd1Xte*rcv(qs={KVM|ssXFuf zdxEL`!}l>M%SPFFVHe-5K{q&hQIP8VGj_27(?&D{7cEOw7+x4zZGI(gDM!`qf0?FBNgr}4*R>&eyg=&xU0zJt||?KrjsdB$zLIW zt8(90!Zx2MFoo=j3NZinFFOxS;>2pq9f^LKJ&bqN&_kVkKMab~!}FM8UU6$L{^D`6 z%xGL-67d^&uS{7_UEdscq_Bj1-RBJ$mc#o^<^5&FMns2b2YcNT3SpT(+WpWmVD}&q zz4fvPyP$U*c%XiyoQ;Dy8tf3sMiSkPbO@pA)?41j`!8nx2>XXwZ2HSYe*YhK5apjJ zaHV6r+!2(+{NpmysR&ToW^XU|xG0!(KZrH!2=@>2^b(B}eON-@4l|(Tr-CD&GtV!A zQz4xXU&4Pfo-biC{I$cA$~!Bc2@=KRULqOg@_L9MlCb}b=lNGEZ2?|?xu)5zgt^F$ zwZR9)OTK|Iqit5TaW2vAjRNhAjrZoKoz8*GGBVLg(2qUmB4Ygvl9P0=cc5<}5)oCa zh$Oa4a*`KL)f&yK{CQ4>aP}NZ08#dZhe)3Fc#8Wk4ypF|?ERsca`%4cCA`5bzhu<} zA(#|EFKSAxzB7?WZK~ZD?D9OjxKF_ zT)*R+Ho;pLJpW;@AcwvqSF2v`oE!N!^_CV&)jSHm?i!>xOJmL@mG{)`PaQc zSxirG?hWXv?jP0ue;~+qndDOxY^KpstWI^gW0&6V5+li#Ln$~b0vpoZ(T*ISfBW=7 zEk5`}hhfUSj*0(lA#;pfbO{Lg0#fAH1ak%6LJxdcj0um^B@D5;`C{x5N5F(t%oD~) zv{W31GG&2K5Rm#ZFpl%?1!fACV>9%umfKp#Me^Bi8t}7Acq}Y;$G;W_OB5CD2Qk=W z?hA3j1$Bp>IJss1-(1IN74>TCckM6?XD65B*q^cUHgSq*R`MzjBe{%MZx7OuadK~wjXYY8N&l%7AoNkMW zuTsa??-(+Z6c)v4#(M1V_=iA^ST^}(*!dNz1)G6rJt<6X8uaqE|LJMdH?DftW$m#* zoUhF(s3%?lQ8>ig>v3{oI0dc9yYX6W;Vk#i(@{M|K-WFV-qfVbba516HLshb?KMtz z9u+__$R|o{HBAj~IxX~2F2~Ok3GZj}gd>pzN-|(WnGaomIoi`>FB#q>-E7_PdTK5% z1?l$4V*^^QKxC5FL9Ig3W}ebJWb}ZlBKl;s!;-BSWhB6|V5BsJmgo~sfa*2g8XBKK z1oTURpMw^iaunD)3I@eN5&%ur+O?5g$%s^v91=hRWsU3E{YuT0A)NMYpQQ7QvQB%? zsvVEV>po|$>v-9gG6I9NDE zx=JRcM1@IAEpXo%388Nf^>3_Huc6cHu?00;F!o4{w-pq=l1^uZx_C^7ygx<&@+=e7Bb z96k;#&zJtFA)V-%T#960n|dGRqY+PA*Uj~|KLCzP84|im7V-N3F88+5?dc^h^RMsE z|90T4?*A@c?eI!Vyr=uO!A9r%-!GCtZvT8dhV}VNoD}-+P**JcHl9K7U*;m7`YAtz ziNkSaIPm%PO$?l3k{7$nPG$F}3nxu?tQ>#NV?{(s5qdrkdm%hSV$a^1ZyRN8K z$Y?I<+P~=nqPxB{nfH6{+$KxNypN9{m+AW%op+ARiuWGenbW=LyeGM?wl*ir_WFYE zb~#t!*QkLm`cJMFBk8c_2#ltkMAIxk@LSy{m=B%t5(1bCyly|v3S1J1!z=lYXsCZ{uvA3 zkMQCM+-G1Q`~Cd~pFL18hff;fOLK+xJ=ID>FDZAoQeJf($$8Xws>#6(&@1L133T5Z z;OQtHfw#9-EaeryLkYMK_2902`Msn@`+iJ3sWbTac+6;UC&h$%d*d6rA595ia#?j1 zUy!bPw65$?DH++xWF>Mp@khHX{ozx#3y8q04`b<%zp*7Fe(&KPW%e{huN+@gM?2pQ z@#e}6e0RUE%f*8h55iG|U&y~zg1qzj>kKY=f))b5y|H9xb_}btX4Lyy1Z8#g@zfpO z{nLC<_up&1w_`VVnSI}trMBJH3Pj`aJ??#RzD8XA|CxXK6e$5CpVB+fa3!|CvBz8| zb_MeW?*Hq{DjD;C(gZ>ZLV=K$$8b@1$P&A~@PSw%rym&wQ|0mt3kS4bEEuqU32!dZ ze(iGf2xlO_mcc_&IMT1jGME0VFYlfxg|`VmdpoKuy)72l!DBP}B+j2_hHr1-!RoYu zAcPKL;-I@`xJM`y;nz~DTi*A0Fy~P+`A6MHQnZuR|Ga>?@4;dDY&8xqnz9Lm{nYhP z{|I2~T%`4Z)q%V0&zU&s2)Ul&_vsK(6ucLNwFEYKC;cU&K3^sD$&5AKQ|14??|#8W z;-Jn!xybLA@7xtxneu5X?qS(Mok?6~b>qmOL%+@a^h50)HYa(1N|PBMDxr3#vI2m6 z`R@$0@q*~I9kz5Vk)9~ow->6Y8?X0i3>Rjy&vF5xE%wtz1%5cg!i{|;@lYt9Ze`>6 zR)_g{WFGbI6wjd_iz=P0`G;x0I5a1^I7@Ug{lBW%MD|W#w&b%GuIU>>`9QCfJS-iS zpY)Q#l(wWK`AK8Cd_LxX+akm1UGI{!+#hENP=Ztyync8@{3qog(n%XR7|92>q4CC;-bzZJ4gJ@RO z83L3|d1kh2Oxb&o&%5{}E*M0Gyqpzxd%Ku5hBoi~n{Ohrm1H~)`!C@s-ir%+X|Knb zb6@6bG5MF}_v(jfK50=t5^?|YsoZ~}6h*h{NpEXidnWHM*7QrjoQK2^B_)|})ttpcK`^NUvEJAK|O;t7`bqv)64$x~bXc?Fj&Zu?L4!A!1_ zFU)lH%EV@y{Dn6vo?qX^?>u3&xN6&%|8kSd8}i#IT%PI9sLU&013e;B0&GxPoCf|J@UmprzP_lmA4-ak#R#g@^8 zTz3y=`uDxoERxeHBa-dJL22JPa$T=)!EA%>ggYoa%^!VQkcq$1EZC69KTnXc!6kZG ze!WOh`B&>`5}1Q8plPmk_t}26uvS&M>R5Yz8byu0d;FV}FWhd(Jrng>;yY%ZQJc%+ zs_wDdqXKhu(k4$J;RuaJ)#hGF%omi`gfRM*A!k0 z+k$2HFSZMaG}XELz4HIoVy7_^BJl%m?)zPYMINos_j0EH`z1rMb~;f`5Rr7oYnL;f zcH>o(J@WjUk_k5@{jUWQ=b&<5{s|22@1@OlXjy!+{3Jr(#|w?_FE8Im3lC{ge}V=?+~F*qx^27;^&d2~DvWJnui94&~6x zSN?)qjEQ~$pQ)qYsV_46Nukm7&X`l*FDh(iFq!m)=RH4n{Q?<-`fXJOUEDu$-e9*H zYu_Dk{6wK~mI#!Brl^kcF=DZ((E?=S>|A7zKnhmODDzj6F3zALE?8nG`g~jEIoTV8 zIp^)Lve#{b%`Gq6;RY|1SBeVutJ5#(mY|@r(PVkIXTGdQ*exu~6I+wYO|kG?P0NbD zW8$W1F&)Uv;ku$k$u1vom=zNW+_HA2E*UuAi{K92<)z!+lH&MP&UGBm#q_AUJ~Wai zH`jPZ`yX%7;TK8^!jgkXOO%fI16%8g*Dp=)D!8ILGFQCWAsUGH{QZytHBe18r14K4OB29Qz4b7L-iwfi>2U5+qI61fH2Cqu})UL(Y@<(fA5#{Uf&nDM$c zd-4!O@1izpE5drXarf1(MBKtgq%HshPo_*bXAZ)Ns_?-=kg*ITDU+FG?hAi*N-m^Y z>oFSvB$SEJg@QJw#DTF8WN{ODH8#65IcAKPDjZGpi9tc*&w8gf>fEKAY!~IcT-4sG z|4*53Rt^hyefzfMQIi8_NCgy>j0Ax} zgv4Ve0MeVxoUxMiQSA}bsjOAPc!EeN7!(@@IHuvKFS;>!5r}r10zj&u2qYl^n8jPD zzrS~w`Ga39^HDr^;3wZ?O{ojc{bwY4_X${tB7l`(TDLqc%Yu;ShFkzXE3s%9ez2m~ zS#v-DbI=br(JUh-b-@*X&=i-H>Y*1Hlhp)RCP@Vc000NAL7U)b;BuI*$?oK?e4BekG1-Y$nvU(7=iU-f0>x_qSLCC)|?$~-}= zSP2*I2)1^${}YB~nYcY7#_kGgFE5#Ac+O97o*Pm<2sZe*n{_srOw-=<^%I?sAo-Nv zkCitnd>=CI<^G3E8suI3olSbBToIOJuHfsnSSP-&*2Br%gDT<#ZsrCYe=sw_G17P; zO$~k7N02T4D;ve-p_p$z`v`M~pTm-$f>85pW!*<=cH(6mIa$^^hnX#*miJwFtNTjAux6lk{@VA#axNH>=i7hAW?hS7 zFl6d|h^xK{<@!xJEa7l`yBEI&6PUf;`u0(I{G1UAkXWNP+N&8d(~#6Ze~M^0R!xB{ z+%Y4SkUlz({?MNd%ig?54(#(Pr%WN{T%qnfA`62#?Qeo3qTjau{7`|{A34GjWuShT zNburBnCED7=d>usOGt~5KErpv2^@j9BCF25R3RG(5Xa2oHV5Du^_VU?U%m9#{)Ar8 zrCt7D{J!tlvRH~pKinCf#wgKc`tK9Szs$daj&j0?JREWeq7E5b1s9NlLO4Do9G_)x zuArlegB)$vKMz4~@gI_NASs@&70*($BDw1?-{vMh+50I4_PiBN3v(0g-gO%t#YQQy zd5RX#Pf$#9vVMni53xG+m)Cm~ArVXFutm6+_I2V3n7q#S*qG3~?m8vBHqh5xj8wk$ z;Dn-}#X-M4aRorf#7#WBL_V7D!A(JP6}c>T*5Q0uFg}{)zQHY^y=Z%}_Fw9`Nbeyg z-w2lN_RdJh`>qOzjU(Ge((5&aW656Ixl5x@Y$E`eJfDu{ZlK;|(#tQAU z3vE}gF-!xF+P{-Uvx4D@=VAint=i8vM4Kf=(p6h{Tcgz6H# zz-g-o^3E#8S$@9=cRf9|cDlMU-`Ai;YRx^(IV$JeqsA@2MzeMgcK-#q(6B~GPl1B) z+HB?Uluw7D z5KMe5kQw++_B$J|%uZ$e7IT()SBG4^2F2JH?_%*XPm45vgh|+7i&4>*_uKt@7r^>) z?|QWbW!?8`LQOj&t_sPj-5G>87-@b*^j0+ZB8PI$9-#jCDwKTV`GIF3`DtRfv$;p~ z-|Umq{AJO6ym$Y)e%OhZ%G>2F$(=^nEG-T!Za6pm67&8r)k9o1Dd39`v|+0!-xNshR$qUF3yQLyGbvsO`IqJWf`08@ zz35pZzV=4GEJP}G}GW-5J zguY;5=y@$qB++!A|7I^4l`sEivHdd9ab3*07U-`R36arpxZaCj@I^r7p&b{uhub0> z<@)jl8!znM%l*DgFzj+{78fb)tu&e_x4K>^ z*;zX+znW|5;&HRTzWsbBD;gBUqEl7DBo6aKh(9d8b&cX~{qJ>Q6B>Du-krk{EBqH- zyK5r-`k03wA#%U+bB_?eg$`lzkNviaNQM3$W25q2@sYPj$`&CgX8JR@ZAcBPXD_|( zB0=`jrlrT|fjAc3Hca2~gn`Y{uNw<0uiOz?^90ryDYsD6cS5g1mn#4={x+&1HPwewy8?>y>eQ6}e%FIcz#5 z@Jw=MHju2tLi@_dan{|aoHuvO&ra^}P$Yc6^5-sBp@f)x{@l&st{vRGs0)>-BNI#j zw20I)Qm$W>?4mMAIP&EtX?zh08=QGA{=o>0^ZOwhh$;Tb-~l;ogfbA+Mi_-0UlYZ> ztGT-+EQASFScf3pf06DlzD7E(tI`y0mlm4AM=P3P&GF*{^BnaeutVO#c&Aic*T{h< z)RH(n0WP75_+OO*Gyzb-3^EuWgFr|XoM(dX?hz=;zV97&C1-Y4O}2TbnkvkSMLAaX zsG^&eGdnFKt<>B^_{K55$Y~7*u`Uy@$#G zi=g~@#x#bgdu`(G&LmAL-LyLNleJK~q5^ooU7 zZcD6rH9{k@*P78O!N0(`a9-OC z&kONhXa4RVMxrI!H*!?nr?YfnGkw%p#W?tQB+HV)G=^{WBIeR}7lL^I<)}?i&3YmZ z;Ed0^t)i%1*pHHavld`wEe*z2EIOrSKH)?2q+QMuc9TBD;@omJM@kV{R{uy_q| zz{?F{VYAgAd_@M5`Y~9E!W%oaC%_D9F8-n=N;m)j2Gv2D09WFP$$QiPbZ6}sDuxZ$ zs4lzrJNo$SaJuX(j2HfO)AOBS7dHP}Wq^JSWr@1QB?@&*<{ShYh2MkTQ zCE9N;?o{?X7hiXGcj_d!d(Z!(*#Su|^KD&`W2YTKMf0w5Pj5T@%jKsh!i9XJ(YC?B zwDIz}q`U7h_&twTOjwN8VVKzv5PYn^Y4Za|gFX0?h0y2nuQQ*-Ncf9HmiZ?B;HN!1 z8$0qoaKC&aNvq3nRhDTaueV5fQ5=a^La1O_EFP*`etWCxKaP?ZUONLt48xXK;Ai`C zuty)MX$kvkkS5IBp|P+@W`+-!d=SS(zxSnnqR+W=cjW}8bFaLWu_Mt{{W1=;mBC`c zzsDSCFw=jbdDorz`FHp!hT*(FH)1romb>r4O}&lq%6xgd5*fQLp;9JEm?XiWz`xXn zp&sKa|G{QQ@x;x=uHf%1zuMUNBz);+?Ds^Q|IM7QacF|{ETl%;lH74l*wN3PjlUJEp%LCy9Xp39jyqH zx8Kgt_Rq!fwv0@CSU63`y>wq~Di|;4%xp2H0&nPa^aw31wICxk; zd+7)gLPR2#!cpI#ODSIYh(k#t^7aafayPWoo?8Y!*Yv;Ovk=bj8)#P14zkKwc6I!s zGZH;F%2ggC{s~D*Eq~<&yafLhVk?7?K7LinE7A!Ga$Z(0ANZjds62to_Pyv5QI^oR z9_6!5?Q;~~LDc2>e=g*g;EQDRg17h5{KW5!%DiE(_jfG)!Cpc#+urYY z_3RPfcNgJHjI<#8ST6K9do9^^Vdj_5?02w}sx2%rUlARfxRCypXrI>M3UtE`F<|QR zgHJzjr;z~(BC3c>sV1N4gx!WstZo?e`L9e+8W}Tv49$(biE4Ll_sPD(BknFW-$nMm z$aboK#a-u7I)z0o=`rxARr&|eQY@d;B z*R}FXpRZ2-z{%8o5K2$DhiN&-^{`e|JiM*${k~9{QngDW z_gF}e%Fis)5y@Otcqbu;L$ciL;<533A$c5&^WR@tJR{*pKxI?8Drtsa@I^e=f4NN! zmT&sHx4&Xy8PZ z`ln@1>nr{VH*<)8dLaxSE%dk}E-(ta*Jdx>`{K)TjGO889W1?YNowuK*Ftt)d*RvY z@K>dkwiZ`EK6tJY!&H2Dc7MK+F#=z^yZeeU2{kL<60a}%;D%z1?&WdwsAD>hEAGek zi1PCnpH)gk&p*O<$}>sKe_Vfe8DzDi^otIjE0BN1cwGh{8C`c18}86kE0c}RF+d?U>b-ty!x z`FQJC7mF_&C_6i9uvMh>6aJZi&%0#_h?RK*QkP!;;)Jn6HlM$geLoe`c?u`4NZdX2 z>sJq#n(CmeK{N5cHt`LBO6m2^W8n@udjGTQ4=dNq(Gw_kO|^qagU^VM->&5E&g@{>_K^6|kmkFE1}2*0nz z@Ku-Ci@nu@KA5lBtS_h`8i*Ni<&Xh6M*z^FEVLsAg<)WzgetBz#a&#=p$Lgkg;iA* zf!}lgC5PZ0_ziPhr2G2XFP%BZiD|8Fe0^c+KsyZ>SZYkP(@sfJ$-JA?gks+vW70?j zN%QZyGn%@4yvBj>vk3}r_cMjO=*)`-1lxT+%4 zNIP9jv6qCo7gG$9Z`_x(-Dw!uK_vaOK|hZRgOmWsUaH!At`>|P!P*d?FO%=&if4pN zS7ZhzFWA(bl6(@HziSD0E8_ao$TV|9th8ZC9cHQ%T%8K6{D}M`s`m4RGu((#w+(e1 zU^?7B;cblnS-7LZR<_LLu|_HpUnRl?lP%tfJJ zO$srj4}(5NHqc`f!Z2*TXew)ub|`iL)rh%plw$%yq|t%!Q8H42@v~hFEi>cdcv4za zU%X4x=(-Y&eloF%;bvzzhT<}*k)}IgQO>AvMV1Sy|32}elz}3~TfnstJndaF$xIK+ zamYoEFUr3Fn$%fV;$p~&cCA=@k_G$zv)0_UFZ}Cl_Tp27r%C<4|8+~TRmCsb*lBTV z+iIC~BXfy`3Ir3t000KjL7E^}xU2vF{@}RW%d)-?lXvP9DA z1;?qTZO@kZiI0cvaG;&t&#>IQ+^PIM7gt@!5#9=hGTFB&Ur>(44{5M-yVcp+UjMiz6FT#$Vk)>e7klrI@j@7g>FF?H|A{z?cZRX=^=@TV@}4}(V`5({Ka-R4<; zJ_$CR-1tYCd&q6imxk)#l!YIXX1iw>->F38e^5v%=lr^paNRTThf|fd+^NpLE_jl; zLt{-^8M@q`;S%ut9vr~b<;4*^lY1l0Jiq=Rl3v0jC8el?-Z};ExA6s!^Y^mU5pxMY z-NFR9hj~j%)DEMdJg`a1NTi=vmU0cGic7*9oGqCuJcN)p{cu&Rgv ztqcqI^20^Hf+_v4^!Qwv)IdhMfWCGAuMNvp`iSOCqI);L2DFbv106m(#`7`hp@HC1<&QqdG-GOL<+YXLQli5^a2P z|K14jhxp_-7jRL>eO6m({%&$dCFXG%E7A>TpZFYusV0tv~OM)iJal zSo{(f4$AzdjAi=o3R?J|oa;PyU2*_P9^Rq}q&Q2Fd-oIM4!rBJJ%1I>7ko{BkH%X1 zn)Az+2)1tVW&dv!Ny^5TjKTHd@#(v5g?84EvgIPwxH!LHic|?PxzqA$xFi#f6SA-1 zoK@!=I{D?xFZ%D?%XAXy6vy{ZQ3a~<4%tBdpr5+LRKrwxX>1k3=#g^u=d9ls(<6Iq zuhel9AE50kx^A|b+D#w(`6gaWy!I|tgvk;QA`oxKzO27qkSOtB?lM_@?G1~T2+O;? zi*aI*GnX*OF#9=4SCG(mK6!aQpLz4I1*L_duWy>KT$E}LGUDicnf={4*Z3su8F$=& zQp8b~(c4G2wWAoIUHl?^q%2JHVB4sJZhMXy{?)pt1ewK3Jujgg6XR`u?LBiFH%)Ti zeMMV8yL z{)gY(zuUGbf!bxeuS|knt~_vTTYaskg(Gy(shhvg&99r*!9;;~cX9uB(fYZwIw7SC zui-myK>v-KJw@ankc4jM{Fz6~+wXR9mOCbRc}zf)&o2=mwVB7~`nV`8pXKf?ED>W= zZ)ar~XM~8FW8j^~lcQGme|Sm7?&b2A@jIAv5XpFATBx&_QvA(fX_UCkM|(sfGc>RJ z3D?p$v%I}Nw#)oqNV%MXI?%aD(@A_3a2B4Z6A{#lO)^eSlrB;?!CrgbyFoWS%pVuv zua;P1S3tx|E#moG_kbEFkquE;JVF&x)oxw~ayY0F-36j6>wkog$t-Pu2+qEl2lF9R z@O5IX0xWi(vi|&nY+*I#%)edX5)wa}7}43M@#6cse7ReH6f9sKxGZ*_{{R35K0%s5 zN8*KD9HRMWuEqB#Fw_3QCiI^#`sNWY`UvYW&E1ZF{$KXrwjlBI1HtFeioY-G|M|Cn z|4*y+1f92I<0tl;S*|stF~3NInU;d%XOM-SbGJZu$wv z1*d2TJr`SZI(vdm&IH^Vppq~Yyx^ual?<4rh*^!%ZoD6j36Bq7j$e1ICC(0TYX)z= zq^{Wo>&4|}qM{(bxO(BZG+SC8aEpE|#j5k~^)exXzxruOmF@pg)1@FIQ2}zm$A}(nF8!j5hn$?w}%pbg?(J2QC~0kQ>*nThqd+a+%>X%bNThTeR{$W z?)UwaHDY#%zv-85bF}m;K@R(fg(r5qt#J5jv>W9tDwbdS`0TSFXRLyxaydUuTMzMh zON1V0u_g7_--1FkVqRT!Z|oy-qnLA_;k<2p=Zq#WCwn3n+DNSRNOsKnF>Z7l<~~Zf zG{s&1gyk<+Bz9t=(kag|1DcU zt23a7(SGZj%q8)+uu4tJ3wGX1e_=Y4EuDCMOwoOb8|>ki`A>KFyT3gD1oHb+ z3`E)dlN5$)PyX5Z>!5n3wf4w?thk`Iv zSF-ovU{eMVT+u|)8jy}!*Fnx0D*dtwv{!MZP0yPB;l;H0tcKeo8#aomZ0lv#ei zzF#uw&D2J?vtuz8rOGUl87$CCEHnPdQH?ju8kv_bCkQCHU)Eeb*4e2OlDQ;;k13AqB@v ze^`_fHti`SdFA5rl${=t3*OKwkh#fQ=TP)fwCDJO=gZuSr?~S?;D^~UZ|%P_Yq;#v zjpOciuP@)wgVMtL{Aj=YvJc@Oo~opnNbEyOXCO}=#&X45uBPJ+d+5-ut8?lknATm| z33Np(g0fX?<6h=0tHkboC~1UY>8r>0Wyf{?ufYRb{1g|0zFP;fIbn#FSk0#dOlIiq zCScS0-*^Ju5c^CWW+UQ1D+DMMa}|(zftPE&wm$eP$C~^*k39P-&x*^J<3dKYcaiVc z%2&Bx(k*)?vwcOAH`xj2;^J)0WFaDXYmOCj;!!I}?8i)wpB*yxDG7opNGP>A{BSn7GFGHvhw92 z6!-V1$mFNtJo9z{&0bUZy6dn&Xx#^XcMSlLRr>{|s^?OYh(_KS%|cM6H9Ev@YVEDv zRL*mr2^kcbvShv!Ms}sgEylBY@x5!I$qH)4Dsk`cH!;5E@D3qvt+A>B7NkUf z0{D^cqaB12j#hVVYU$fdmcgeKX4c7&SGd6#wjU0!Vc{F0@!O_pmmw;At0 zNjthMgk8DDijinO(@lJNXtuC|%Z{`bcr zk_{SlV8Pm8jy4IYe*AZ&RGP*D_kBllgp9J9z3>fco9X|T@2wmOrbzs`NqJ8y_}#vZ zhK_x+;$fQ(Kd6BR=$bxIHi-um6cNnzD5x}@D*WL9Mf?kqB#ln|000GgL7HG!;sFg6 z-Sw_t{XubY!l%<439NjAxEI)u8-hsK*uR&_ryAdcryra?ra1<1*OadQq>j_0^gdvh z5}s)a5NR!Y7xxLuzeUyiFAT}=|CI8;+w0%|A+IL`brH_R0Y;De>F#vvR|I#x$COD0 zUtHoIwRgJiwbkXHFTYtPExuo?>F!oP7pT`A%g$eN@yMUT9Be!6A3_bAVYicl`m)d595t*YwDFq3MJrb0$}E|J~~FRo&BhNe6c)-Z%K26F{0}{mv`DvKug6 z{1hJ<5nGva-(L75ExC)l*92B+ux2L~U;XKJFht;|eii>85?!fJ`F>BJNGFY!7W6Du z+;fkdX}9)CzxETyD!3l`4fukXee5gD2X}mUq1OaQrsN5K;GmZwEb8Qy={K0UuDB!K zkLABGh+(t$bj!~Va@kiIAvINWJdRRONcysaxGRTp`Sv>#LnWSs_K}naY%P21-v~~P z&L4_=E;7)-(xqFXmWGR zKLQ7KNcH|VWu~WGf@XY0xa7F#x$76IU)g0Ih9~>;WnDM2P7AtED1O{>YJxIY+=ZV^qBE;2Ke}#zUe=&S$fh}s=`pt#PB{zzI49ss*5W8CApLDet|@+nSSU+K=;8Z zsjbWfedO$I)=tE2{s{!`)L#X1=fWRy9f`X)4e@Jng1NcpJ??yLHOb$rOLgmTL|r3; zUuD<9Zcxcn*rvvqlam?^cAxVZ_D_P~jo-WFQbml+K6`%XzQ2N9<7L#u))2Tit!PY3 zhYZJ2b9q|k*}`^s|&x@Nh4_UIyWUBj@o4oj1k zxu{YtJeqr-vv+%IB{yT!sIe%9Yrx!J5aWMA6EsnqM;@zjU+D$fN}Rv%jH5Wo20rh( zW|_5WnkL$zg*hc3c})%=F)i z%3Cn@f3W^CB0fCT_0Wl=dD9mE!}8PQ;m-8LqA$SwZY`(!kGu5~Z_OEhAv|6C?(3Af zUcHMi48PV@U*gTlEa^`F7vM#D3-Qw{tXVt~*1T2>Rq4jKy=$9=et;nwhynNW00B2^ zgR_WC8XE-!0dA{JYVBLPi=xONRbqg8r72CDXn{6c)C(D>P3-*{pD`Veq3%r~p7a*e zN;+zo`{snzGBKy3=|w#G;VSfUayDo%)Hzv6Y+_llk5s41K#6}|Z?5lOS>AM?g;Hde z%C^YXL)uyU>d!@wJ-8Fa@GT^!1!#&o1W+YTuHF9}8p>G6HC0|&*F}5xwb;7qAR7&u zs$-H-gpo2Uxf%;r$s$cDJdq3rD*%R$nYE7oAua1@!`KR^I$|P9wfa3?Pr;anS0>HF zpi{WK9;Qiq_p=}vcNSU+Bu0r zPgh%McIV6$N(wO32lRYjqXU+=oh9D+Lo++O0?#+Dg?mGI> zJEmDF+BZuAF>Mc!T}~NMG~#`kUm?V_#~RLT)rQg1j^WB(>k(KF30!O*m_p2yt+}35 zOqm$Vs(h6!v8r|Sd^EXtv-C~QNREI2f0C-fJc|& zIT{GfJh?3UG_sPStVZ;2zD8~44|Gul9w^d}e!Z9fvt@tTC#Upc(-aA?$_(x{%!C5F?@84irJIPJw|VPjuu`XaE7Gt_3|cv4xyb z;kku(Vq;@b^YkU+KV>JkT!nY_1l`jsFHeHH&%JW{ze6b-!%O#MuqmgP#!k{QB_L5q z-q5u>g09hwlAtS`8M}fntP9^S@8dis!-OjB?|V-r_9Ce4DH(tI=2*buhE&$B5AN^m zHF*HOn7IG=?@#bfMv85&<}WqKA5t&_vBers?-QUtGU z{s^vP>HU}e+I(F^;CDdf)h>ze^qE< zGCAJ9*3`z7QAAp{1#hoC0zS9oVBx2R$4(67t-*ZvpF! zEW4W0-bK$gx3{2KrFo+KZKJmQQ81q70@hQUGJ0+=$BEiMeS~k62ysiCIlMDxNcngo zJ?{N5LPsyV%h#Q5tRDnh(SE5GVUiVJ+`dcrO3Z`pRPT9zT4*3a;_0V!rumsD81cD( zCDcjEqR76n{r-$1NngP^P4j;aLA!rLW2u-EN0YM*_(*rnH7PvxtAkK1&qw!AhX!o_ z>L!X-YeBsg!P^<_`v~z6Q5l>XKx#t!da$&`HMA?5UCDZal9*~s(>w6$8zvL_roX;X z4p8}i_#+bWGDaoU(HIifb8mECr%uLBK5~qo5yrcR#>*^xgM7ss+&hPo^{WrIFNMc7 z=l$zY-f91$`mN=yj5vm8FWq^#O@L2VW5{J&hMH?1FOhd*@-m-Q!9boJi?To>2H>+p z?<3S@XAasu=b7!@cxi%tQ9sn(-%{57QQzh^QIn7A3NqOU*@wo6QE%HM+4QV}iatO0 zPWQ|I*n@8Pb_y>qw)&cayY>oX293W8KIYlaRYh6f;Z7LYGX#vb)KdB?V)(Xm?O7rQ zz4X=+DG$Cy{pu%WI`gmU3G)7B=3V+(e+g?7$P|1#7h!lk_>82FOitaR1w0oUlM6oo z5?r?*e4&e_u4=d_nuR5EP;=Zr*X|3hkKN9x7f1{Af4ZA$@SvO9T3mZMXP%r^4!0_ zK%Y1AG8t1l<@pz_zG%uZuLpNOX%pYLCGhya(jggt#dK%*Q)2#drzs-WsqJfji-b7j z^|hD(HFB@ihevMx`4_yMuZt_)-u}!&vS$+$;q9zX;*B__!3rrw!*6Y)miS;J09D@euERr6$>y+)-ipknNN+dOG<%`+}km((?@C zP99K)-oAR`yx8{s?~u28M4gH}muqNDe(j-rqvmr5vkKEz2}ETm5jPn;?|s^Y1B0(WYCM-uw~O z7yF36d`20(laky>X`fG{5!3oCGNyNz>W=Jrd8g)Icc)P$xcXMneh`|^sf4>+zopJW z4p+#(O6PGmtIzg@rAVnkbe2oz62EmqI<4jYjjpV`BX3;4`O`JSnK^&A!C_x0{vX;h zfLcL@lC{5a-Q0vHDQ;or^tSu8aaX@6$tC10%uc4!4Hr?Ho;g(f6c|2<2pV|1gt0Dx z$+7!{q;^nVZ0!Owf)~x&`GI+S6Wfm7S0`DRuf349ttQc}m0;YAxt>8H2)(^}{d*nb zEqs5*e*Dc}>iK_Kr)GLAJW3%YAe@gcofqQ@!HyC8INZwk^O6317Ex(^k$fY3q^23U zMmpBt#$2XH^ATW)>FdP${yzKN{X#PW&OT`}C%Fgvl71^X@~N3Lk)*1&_0UUO%gFD- zBu9)CZOfYX2i`=w=iRH6RqF0RA)o)3-_r=m--QxjEfuhd=cxlu1M&UW3EQ{id*bFE zArRC%)>$nkTWioOzTnk0F1JX8QvdNL+BqGZc5A^wGJJmS3o79sF%+#$d=mp&3jQyG$@1+IaxB}m%US6x>{GReJ z;G>n`2ztJa_;yXL=wCAbnl8OOhaD^11ZMCrzCA4PSaXULFYsBVmL6-x8_j?r8i*J7 z@c;okOM|e`%p@xYhJq0?=ND_c-B##GM5sYkSr`tg9<9%IEr-zR7T;?0ZI=g-*UXwEI=l)2^qmq=o#)y!Ah zzIOq^d|{k<-45IKNo^pAskBI#Fui^q)-n9$9Eh@@c90H*ZJ3P<202GlK+}#V&pZy)MdT`AC5M! zhr7W);M+KRG#i+-Ss@8v03lq>}tj_USOqZ1zBaMfZYkZbvij0~) ziUfgV6!AzU3`p@LRFT)hTI5D%Aoq8VR&7y-TuXU9owH0GdAopbdS_>G zy&fEFzp}}1ClHGhk{dnGJPG11wsB9@wJE|E1=>)#4?q&{Me=MOrZ zEA-&(y#XGuLPdBVJMq?PU30HF^*)Wkf4@}WegeRn?hsW1gH8C*2zH!)V+Q~L1-U_* zpjVgUIbUy#E6h#aawP>6i${h_4y3T%?a0A)CIr4vVAxo`pY|X?`Y)mEV~3v^tL~nW zRUVY`%9OvMSsTkfwJ!6Cc!GqSm44qU`??+CP}L4HAKxgy%aC#Z5ke?@fzNX;_4_X{ zL^g>3qQAir5epvU&3*b;HEIhXh;5rkzWA_b%J`owasr>!Slt`$^8J2bghYN&ewd$x zd}m4Ds(0SdP@}<_;_lsx$F4wc0!QNL?xQ(Z%Hz}ZTxOSOr*DKI4^}g6Q^E%u`rI-= zKSMmr%AZu;nX8#w<2O{OKmJ|4Tj z2+X_NBIiKF{oec|v5|W^@A!C&YX{;jS>f)>I{qUo8}GSJc5{fb`Cs6Kk7bS;-{s20 zt9V1XOYZpUW4BRRg-`2b$+y&YxwoQ*REF8JJ>FkcEynyEl=Je&2w(1h)N=^*%{&Jj z?i&pC#a5t*nM#d1Uv8k6By!5lz4uDa6|>nAhWvzhEA}SxwDMHIi$MIOo5+ojIU;@t z_#3wWa;nAM_t8ae$GZ7l_{>dS2xMOjN!`D}SCx2sIK0m?*2jN~kSIWTZ>*G;@9mWqsvFp0wH&?k6$EdFx(>x_o> zs9y69XwJ5g5L}nll!o71d*7?GupJ5YAk`jb0P`;7J`q~90!@DGMF05Iq zKd8U8{WBkqpqKmIn4cL0?}EMVu9UAizpuVk`~BYM*7}ozqnCwWBkc6cNAmk3alpy> zvh4Hnm9hgKgYZd}skNT&5Vpkp!Kd-lhv1Y&se|PTj5YqBi95_PLHpjhg}eP2R^<=- zA^q!u5iZZ~f}A|#cL%7*KYKo|Vik1eFXhH(@^GYq4*R*oJj)y{=DzreESJ@H!8D(w zzIykOUW@;dEcbS?!vFJh1PJ$y$}7WqnsxjTos%oQ@$>l>?r^@7q?QQp4@CNoUf%ek zMpyDt7yqzV$}(~Hu+9mtI$Xb%bP=gj{b;}P*@8E>9h$_7EZA`hsu%w3miDWwyLc7e*c^05Gp41 zYPpE}^aye0Mjzkcq`b|I#r)Skol7vx^hUdoXlb*q3i2K*|R*UvQNx%1GqD7A%px`FXk!^sn~%NqG$%A`p+Lt()@TD{|g1j7iHk zGZGHvwHADDrG=IDQC_9yK(G4JOrxI_#&P&>x%WN6 z|22LruXggij7>h@4oN{gWO{|6bnWIin^2|EWuc zxPDPiR*n(CMA?swmMg`qzjwHd?0j#ntRO+(U(7}AwBC^7m+>+^&qzt*mxK#@UyQuu)CsE#5vGS+k9vze&-K!U9aEfwuP8xz9Kr6wiuv}7KdInPO zTv;+c2>fmol!=3R8{s{tdDg#&D6_eEcZcnZpZs|KydJzK*92Sp7#AsWp6QlAljy%+ zjv-g&4OpGZp1C(|`vurho+>XxchlgHnRZMU1mflY6~5mEf-Z6&L{sT<_C9_8$9vR+ z{Deb?E=NWBe^=@XO7GrP$YuVnDxzP@Cw%HOekA?0c;sA*u}nS13fSGwjfyS78A2a1 zz6$ae`+UZ2^xty^pQa_#)m3`=g_g?$3hR_r@8uSMLij@~rO6GzNa}CTT&sfPL_=P0 zexR})yQ3$(zX|Zk`Ek<=_8uhne~0;XxapVgxDNbG;GcwFkNS?P{Xu6jBNjcg8(s8$ z37J8A4V) z_kNebM-~i#E46>JW)H>zS8z~L7M!xZf@dDD^^d$yzrj$0i=z88JeT=;5P1*YTjlkX6NF2>P{|zxM{Y8_gVNI&UnVE-O{vj?Sc_3YXFPT`F3fqIcH>eF!^oU*#rq zryr}rWJfm4zw1=x7GWFG=oESMfp-GW(HH0Vid(}l(R{yOf*~8V^WsmLwovaUs=Z6( zqId6V^xdG<W5t&$Y z_Gu&>hb{hEcdsUjXHV1;3Ea8e{u3cX^Ogxb@;iS8d)Z72dOe6YKgESs2}Mk_!C=-8a$)mKeM@XlD(z?e{s}Uu-|F?k zosCKtxm1z!FJ*ZvQ6d2#Pj>s8uR#y|6!Tz+w!w^h2&OH3e!K9E@?KwZPBsOM*k;KAeJogrplzVOj5&|8Fn!-!BA~OTWLbmihX_o#dM-oX=YFj8JKoj;%2c`ldL758O)yP$HvoD)Z! zu*^geJck0pcKSwdereS#{q|Kyx3(>!aEnl8rn)gc-wqVllGras`)D{SsER4keS0-P znVgn;A?lVyy2NLE;&Je-s;EuQM1w(KMkee7Lr6%M5awPQhC;;@4rUn2$?2<+)Em(U z|B&^E65nJN$AG7Ac54MXl&N|i7`<#O(%aYva6ert8UNe$_U-`T%*GLX%$a#pHn=>| zvA5aB=qJ2eUDhSK9cCi4UbsCg!CoEMuAU|kgB*o}b1-U{8#8a${{GanCsnO~;YHtvZBd_uq060N z)@2$k_TST|**@0E+@2luwEC!U000FlL7L!4m*PD_J>QKMnWN6tdcI%v&5D8$fZspM z|GwQt7=>J%sq(MkKXb0{`HC7>=fQv5s3FBgzr@(e);#b2Y1se%{=KX>P(^*;=9qg+ z^8FI66w#I_e7;W6NK6SmoAfYR{rEuj_`%$kn|WEeM;94JI(KAqKineo-nWIa`};tf z8U+27Z`>kC-2?YSe!CEM|79ajx2X+a1aJIqoEGH^!#(BSeL8{?iLZmd!3;i^2WSkT zuJ|UQ5lm;TUwdqet-Qbcf)bn#^Q@n5f;mgNXqY7Q3dn&cbQ^>`(~ph@cK|;=U*6mm zS2 z?)?zkFU46JM=QDI`HJzQcFXPl3S%Nyq1?T!yIcGfPlXHG#PTV*a<6gtkF{5kEi_oaSFH$-3-8G1-IUX8#yj&jxT2x|ALI=NY1j|<=JleWv_PxK0Pq>t-(hhx~1{k zp7PLR z{m2_?80W>Br_7)EOUBwaSh}J=S})()zvbrKIEy`qe7vi@z6&J?SubT-~}d!l9B6v$MBiMOQnIWI4QUSdP73{;wU zeez$s;D+`0u9aL8iQU}!vGFF%4-G-YyeY;3=f3_4xxfa?aG{tu1tT|S?jq@?Jfwsv+AGA*ZTy5%kJ4% z>=p`ngMMhk=`pG6f-;yHm*>mw>-7a$SlDgLkFoojptO?Be}d|6vi#w>D+j?97GnKQ zyLl`BqGj+zN#H;@uSVFIFrPdz@TPk!Y&r^JHXi|v~ln+vgOG)B4g&(I;|CPD3j>g7Ka zL{~G+By;XsWL;>YUXg}+ao=-X6IQjazP%?{{{)6BS#R7ZN;HNV&Rv%u0}?r4xrU6X zHb7P6Z~JAeV;9GwD@zRt+FJq3XdE!#LRKuU{#lFo%1LPw{Eh;SmwFREUw?B?s2hF3 zK}CZg{YTt`w&ko5BsuVpDIybjDrG(RHvLPC@lbd;#J&b8k}W+0ebO(P5??14TByEk zX>nvil>x5`(tj7+H2<#4tRfrM77YSE3>E6L>%m860RCd0j2<%cSq&~!s(l#BI6S7vfPm*Zc(5eFxQm*3EN9|f6G?VC zQ3pzm-Qi&7rBTb&8z=GWe7&aq-hQ5EYxy0gv7wx)jACf@r+ZySk~h0$?z5EpZEFs2 zYOjKtx=kc5X88rKH!b<`w`W6*!#vLXZp(lysV( zkLTEG9b%=^Z3pRbdOuO<@v#4wm2{q6gpb~J=m-b*lj=~90|KlN%s*m|8_Y>@$W{_Dy(p^{6uBl6b z*QaCbt=I8>s#S=6clAkNVbx;BH7vc6T_n3XmM?G(rHbp+#yl$N==PvYt}2-Nu3ssg zuCHXnzXdt&l_>eflKr|jWBJQfW&Tn;@Y0=sgXxd=Y_%(Iy6vdiQ~=-r00!ehn*c}R zh0(%4PTDB-{I_;*Y59L?ryL_YNCzDZ{{beht3Un`yJ+$1W&QlWeNi&E=pc6>zCRzLr%jsMiV zYHQr469t@?+*EioJbTOeee29~E=AYe70bxE3hrc!wOh&|cldHLRngW$>y)^9eSgVt z!lnOlMA4PUA9Ca0a`OKAl&A}b^;O5?EguAJ3Y=se^$Ud0@ySu+ygglbBHhlnZ=hAY zfq9$Zp4Y6u?}(=KETG~qyvmyL;Fej*IGX5f=e1N5kyobP9bdn%kClJig)l_h_Sinq*ISgX_uG5lagd9L zA3}pcvoE)%LQbB2uM1(d?Z>DjzFN=ml&`UrFWvpn^#wDpln(c&xx*Oyy=1Pi>9u4q zeyiw~x)xm{6o=%qAn0Vh%5B&m`v{)gtdF4f?a6zIA_PG8=*U+3@?PI;NRzM308pY~ ztwji@JyCG$o2cTEf6Nhk9~1wsD2Cp8eiLX+p{pbN-diH@OUOwv@TLBfuls`GGcR|0 zy{3~d545{n5tDHA6KJ=j3E?~1X;>A6lA`GW53cM({N-C?dEmo_q7Ox6X92#It z=s)e{d4ad&Ml>I4xG3@0b0=r^Uv;V%VveR)!ORPWzHh-{m@!aV2e92mv3vEh`5#mf zIPr6S96_QeSkH}3fbr@7_$ruxd3SyLsbl5;_tw7zT2c{ys{MXT*-60}3(udv3JbRG z?|*{0J|%M7_j}`y3U~7YwXQ{wddn7~FfoC9{&yQ24fI|3hHgo}P<8x6vUZOVG2p-9 z2wR`@U(@p8=sbsl336$&5L{+0OGc(4c%{NdE%We5HyJK4u+dY3%ap9pIn%E6eCvkU z9=}x~k@|fi5s;P~>smhf7e|QDx3Y8Fxu*$UMPk1Nn}^wM_c@3pj)qHa*Vy1y=4sKWz110{zpJ2vXBolO|A9eWq`6__+ugYQqR zf8ek2uudP6&mY1*GgJL+sljG%^4$rcg7>|Iie)$4(dH?OUsZ5UV+uT{%Z<&Cf^Hc| z=XuU^5=xO?=~Xdhecshv#K%Jt*g90fTpmo|OqHkUV5{1r|II%V8uzSmZ|s=fa|Mkv>R zvhxyp-HN(-eoC_xr@UktJQ7Z!d^K(;LV-T`%|EzEvaWUP#*2ME6TGk^Fw3pprHi^} z{1cKgnw$JYHMy7dUE{{anieHK8>IgQ2f4yd3tb_Gy4FU$@Q8}r)o|Z^x*>((`QIf; zc{(Z7rpGlfd080fev^6qBWI4&>tdtCFO+@tQPzf0CdX-< zyX%AuKTn2aD~p5DQ}hgm;Yy)M|oFV=~SHTT#dD+t&3 z(YlN8+M4o`IeINIcqQ~p>N!uNXU#WIj`H56Bp#lrx2>R2=DQ9{?`G$=u9QrR^4Uo5 z;-Tw%?mp6?3QTN_>=RCE#nUp9t&((q6jrFDVsrZDCat$-f^L#U-+sRmYEJ4*`UP=j z*MRC}EE-QLF_yk*ZtgOB$#Wj=znPuww?Fj zmgJq_i0*I6XLgLSB(W}EBtDM+9gW5O=h`s5%`+Y(nA6YUx)H8!piEyy;F}~rs1chV z;=6t>$_rkQ64!l`9`}h8|0vB)e}Y5cS9Al+URt(JFN4e{mKdikwm2agkM{rT00AXW zWFZ)6Arl6Of&i|rOpM{aYGO)=Ad0FA4*f^(adq!3?|}91DCfA&Yu~-Pcjz`Gd_@2L zIo+E{5=*+IJBo4fNvccEgR=B;mH>ehr6V)`i8i;eFAVMd57|?}4Vysdx_C)~RGbcMl?? z{J($f<|RxEs|M6;SE=^toPql#UOQoDMvGT5JX!D}_)21%sQRfA0q=AD(TbdmI(X+$p)mG5MoLkBmhKLPK5aQs5V|&#=vDQ23{Pa zsUJ>cKv@Wp5aTtzIdgTfK_sVAU9O^`LTlT`r24M&v5jfi{2wP(>^f97WI}Gc>RLs6 zAJl6#*vF1K+uZJE{T%TiWZ;DY(Sj7w0!K?A9yDV_~K%=M~&rvq2e~t9YrWv-djrPi02@2Zi4PD zXBaiZ9FQ;qoc&;RwuqUv>u@Y(>26qqw6%S2OFng~(KrAA26{o8AV=bhqd5CVS46_!5Wk5I>nrR9Sr|)}@%%u6eJv{>bHDf@D=pvHNW`y(kRo#bua<>&cHi__`hqK*Pw)B!yx^iq$VJ|v>NW3uZ5AVzVmJ55NbSf9yF~uex0CC z^MAF=-7u2{g9)vBa@vKNsdi25mk1sycqh#d%ej@H+*a!pdy{en-ZlvqgyOCNEv3M} zzViL{r8MNDVog*;tMoR=|FX=#@KG}MBA|W!-JFu@m?b0~)b5{{?!OwJ-_kDlN}hgx zVx{}|`yTz?)6*zFQyK2||HqVQRc{yGq8w6=;c69Cg0Ab)!VRRh_d1P^kdo< z#Sz#_9fk<&(=f8@s)$pDB%ee!FJ=0+=z*4a^T&=m%R_BtR%um34RH3F9Gu2 z{~9t|BrF?WBAn0bUamllH#{KFxbckdp&g+~I{N#h0N zUhYs%)+ny;tIT1xk2|~*kajA+c>|C4!*|bB#LNFsmzZ7U69uxZ)*||w1@?Swq-cs-tlT(&FaD#8X)x=Cb zo-f@6-)P};4d%W+;Sx8_P5AukBszY{If*Yt_W2xf?mBg;e{1#=6?Qz~ckiG^CFv{l z#S;vrCeu=77w9>w1SjKOW4^!WiC3#0gcF|L^5nk6met*_!7rCN@)_|Oxrc}3L`Hvv z=&$@@;2|Bxd_4zD+spoK0!~2jasCvsOdB-|at?O&$C+VC-1YIDV;MOS*ag@JUJi^r?suCHG_?)wqI>Q)tVsNc$-8 zZvMH8%)8)>+3s}Kq6t@*=Ys3i$qT3dy;b|N$hmK&qGrNtk-iAT?K|qQS>^d>qb2Y0 z6)(3ArDEf4X|wk6U_I*Gs0_m<#~c6a%WaLuh@e+dz( z8K-!!#q+rG4N?j%GaZw%ofhwlF|90wSMd>yyu(CIKJQ$3`@ZkH{3m<&K9i3f4bCb|KOvYvVD}sXL2@QK( z%ha5LE~g}x=ANEkYoz`O@-Hfh1K01lzxX9CI$!rgzF(V~Cwnem_V#ROkLY>de8BQA zhgN^dmu~or>T*_H%SY>4^%x_D>5=}v?z$d7^%p4d$N9hDnl@GKA29la&HTP9ZGu(L zh|{UTX7%0W&MixenZ1KCHJN=YHNr5@Gk{FXM12?`DO2CU2@XNzB?ic_n6ipSro4mC z;)z=Bar32mWVkLdasFbXsqt*r1(zFT-kbQTa@SLwQD{X$M8u>sJQ0713+vk-#gwJ= zfhDQ>>6cpUm)hMRQD&2_&$lkg_2c`PmJ&TatEN>xFKiO|EaZ#Wzo3N~Za?k>SD1p;)szicbX`i>>HyuH>1T6lZ*Ku~?hjwDAp!}{E`Vs5@K8ZLhXTa%w)i>W_+ z#N%G^eb_uHw#5(2z*Xx{OV#rV!!Ip3;7SwR5%T9OAsUbO_VoY(Ax~z&SY##*4T6FY zy>Y5q`|{_J1VJhys)Du?;6dv)CO_LcFk_PuN#jr_DmN9 zYId_Jl#!+~j*R+x<>9BE3p~IDb|)3}e(F|% zgpwG~D>d$w-FR@+K?5l$PkU2*nQs8|3Ll%jfMApsn5GBD%xxNyOcwdKT?>z1VRKEc zCV|8ntZ!BTeAp-eBw$D z0#C}IyypNTDiB5-1p@(Lpol`3zO~KqRhH&+Get=%I7PyxM4yk*qNU32{MVLB^Lqve>qyX;?WI!1i5{!K=RFY{t%|c6 zvc^*;v4}aJpc>Yf1@~(J_z>`Arg!^%HgqWq$Iz69AvKMVL(;&HIDCya=;CBrAD$ZR z!wG$%y(_rjl}!*6nPuv$sSw}*00cKdn?Oh60(-lZ8NQ&Cq+x}Q`r2YLPi~`&NTqTw zopUDUkKmS(Erg&t-mk61$h%PAsk6->{G?fba9O7F0a;#ym$~qq%&}h>66&d`c{ea? z%bi@{@Be?Y(8I}(umA8=ZZ;e8ALqH@jgtA(;xO|*cEiNZ?zl+q z`E%+jXGC9?p*w?UOwDdUbaeCc23)`Fzh8u<2$6Tl z-{C9B1h!NMV^ya5v2Sslic=Y;$c>+68^48AKg3!0!3Tu?xGF4sT%C5gTaVrT_$|2# z_%y5>>_rP(=yL_i zz4yoQo2*u#Mfag0ix+~Ox7gViopOueA0*FZ_wvCHa~|s9$xt3&etmE96P7i>XP1#& zd=5TQmFn)d&l7a-%^Sym2prem&`4^+dTE+2x8)oOY z+Fm2iw`Msha6_%$_^HliUhkWN($8I^<9peE4g3*t-Tn4XOYlXI_}O27f+C!g@$Z7` zQU1;Vxr_h#h>Emd_fJ;PNYprSq@0Q)B+0=b@v_hF@I*lGniJo?6Uq%KP0OESg-2$| zZ6D_!DK32Y!iHXotT|+p{c_C zd=c+=oh}GTF(Q$xvj6jRO?i2%y-PN7t+juGf|T5WZpJ#+KhU?GS$Tf%OXVEZQ0)=+ z(bvRsPkBez7ceZ^FkIvqIg4Fl^ra$u_FqK4#gIKrZ|HC^Xq4A)m&5m~I_(#$uW54; zS#;833UQ&bCgE!!ztbP)Ux#!aN zyc9@wtKd{^RIyRzB6DT%UAaiKjta3qF=gENC*Dlqk^TNsX1P}3aGBljbGLk7j(==- zwbUbrW$*fn>YctXm7pxH9V100>JvUMw}25peK$R@Wd~x$YfQX2=|#A{T;gPdxot)C zrdV&Kv2PtKZD0TZ1p7goVBTMfwZUhNvMDlx*5sL%JlsD|fAs`{1L$wtkYBsqAIr5N zPv1t}rZ4V6F8-gv5eyem+SwczqDun{;&UtCx;W`d%uEGlw_C2 z(EYgf>kelMoUZ3BPhaqfWPD`9MY&4L`zo=<)hA&$hoGZyO@sL9Z%f7>E_aZTN!q_6 z_uTI*JK1rW_$u&8ecrAJ?*CUl53XxP{=eZlhE6*x85jAv2{+@5n`JbEZqV%W=T|{1 z20?ko?qO!0@I)dSlGpO~2(21F^8fd*1Y&UfTJ7(a_xK{UrP_J~L^}Q|=(=IcMe64v zP`mWoH@5IkR`kw@*PU5@zCi?xCE_u|%{27>3$L}qXl0#RCKG*c_6mBAyj-@tl-m|( z5`O;$lN31@$X-TlaF@&$|0!}TMtmeq9kt^8b9sJKtQQ%^oA{CAN$Gcw5E~A!i={;u8PxTOmV+%6m-c zRz9~cy2S46=#CRxIJz%Qa8p3VgT;fqfM+m&I($hQyyJuiWH((HxUgj(@L2(y^5*Wz z71B~wZ{fN*hJGkB0eAQ)B&OxzpX?R8?RZ0$kCZq-ejc5k5910?;|&fy1h0NOKDwv6 zCwzsXo!9z2+z41m_OD+OA$ucunu7U-#9IqA`4t2zM#J5yRK|eiIFP ztuOw+rM+=P%-Kccvy!y&(Bu>9d*{qMM$BDu`&U*tvwm^+w6B-U*Dv6b_p-Ul_(<*_|AJYi&NH38)Oe*ZM>LeQ zaY#k|#23lWGQUS%iYa9tO3^rdm(|}AMXtnu_)m|5rPbzdd3>tL5d@Rhv1R)D5K*uH zm4YX5LR;Pb3r)*rUDLhwdg6%k{5cmVlY$u+{k=Dgwe%6v$NL{I_@DVah-2Rgmm~5> z6;LWaji(`=E#Sl|VVm<#k}v)K5Myry#< zC~F1SoG#nUKx_NIi#}wjalobMUwpzc#v`!|=`B-|{qFFUEO*Xfo?l(6CNxgDSx7Tzh7RE-qe;$XmYa4 z|J|j$zA|-KC^dr<#vLDG!2U)`vq|8hLO}SDM(~UD%pr%9Mvyvv7r{j2vTW3I5qB5J zk6|x$p;?r?5%>swx8r;ia<#4+sQ(wn_>lP5y9F1~m3|iMm!U#vQ!m4Q=%mw0%=u1K z7K_n-`lATI8{13xZujim$IXhKiChu{G1Dqf++Qt-Z#FflOM|u#EFl_?neV{>0Ub_g zpy0?53+Gp@#b;b^wN#ZNBBBb)kwV_07sdBlfL?;vNRbBe5!{8lXbUSF4{LbMZ5AW+3ZH% z*4LR!wi1=OlAom$MU)__IZ8EJs2&Y(vP?b;WqfD1d;6~;CBqo7rsleN$7or|%sj*{ zQ#1(@5T4VASa^f&sZ3g9v8NP1iKIAXcR0t`T680P@Rm{nWOuCDk3*~Uy z+u3coR@Gtg_Ojafba}RaE>+ikoFlQN;8|GH8)esTCn{q|f{j8n+DQn&J}^p3DNnu| zm8Lj|B*UExgh!(&^nkG^RCNS}X@@ZoLZ{BW@te6+tlF;dNSa)TPy`3Sy`eCJ(fax^ zh8)=`vnB3aJHwcm918j>FKpN;J*GBJ@U-(_p?nBI5M-&7i7V*QtChvuOOPho0}&;X zB|~`(+LvYDsMRyADROAqRB=eQ#ttTsi94%nT8A?HMxT~8NFoMcPsxNQG7{b-*Ryep z8Ltf#)HX<9CyjP(N+BnZVC&Wd33^{stQYiR=?6K02=M~1;f8}&s;w{`Z;`%=Eqqd! zYDfSv7&GC8qdcf9#+9o3c0=*o*-O$l01f~E1olCjfZsv}ZseYkLANDgyjSsLyga{T z^iWA#Gj$y7+21V}q~pj`jc5hW%Cbv^d=KC^9nOD-64E|GTU2^8WQgig0_* zY=iU--%y;WZBk`}P`!WPpNu7Hbhv-lArn8Rb3egZ`PY?m7lx8S?5)btBo&70dt@Qk zd3kmS$Go}fTcKHe5cAXjg5N$0_-Z4%lswH79o^ zylU3#3%>N4_e!N$xpb zJul7UzE>7|hv5D2$_)OBU;e>HoA}+;jvn6i!4W14-~R+3QPPEd8WlTuv5=* zV8};vgfZ|{{=F0Z!4;>HIa5~zkiz~Jg1`RC*7E!QKJM-XzBqzY+4Ua2<23wPid8Of z`9_{UONr{cWgfo-;(W56zw40KyX^Q2dVW7#6V4r!mE3_Z`F;1%lA>@!ii7g`xWgt9 z>_(L*uf=8%-u39WcXh57b5EYX4)0iT)%4gAv?eSf*s%gf?EUIz5VgRZ+EoT?B2p-k99ow z&+treoyf~jneq-!f#NvwP!R{(MZVTT@8E|>_r72Hpi60PG|=cz( zW*g1^d^Pdwp>JHp-O13-_$kS8$NB}5{q2D13IdnGO~@(dIF?)>|8A@lLwmpRDt}C0 ze${(exFpL@z6gyhqq+CNUh=`tUbtn}eYd}YK{Ais^uHvg4|?LY(KmJQOS?J8*oeQ> zU%PF|%R1nUBeYZzQ(O@YC#{#XXX*(LwlU@_f^%Uzg(6YZvES;(U-iZD^4A$ggzkOyYT{sYmQ>g+OY2IdPWc@-W+@hvuaNJ7=>6Rj~`kg?|}NJ_b5Z6EP7-R_U@T34$?z4E8y z`9hBGE*xh~b31dV!U7IT`;WvmPUEbhmx>a#KcDoLC$>Pk@iYArnR@qsg)hHX$0;-o z*>Tkl3L7bQ)xkux90=-d4o&s@34!0Si@S|-Ri6bOJ76)ryCod>M~RP+k>e~tLe5(e zdj^5G?=dpV;G>&7*w34mM#sWpOYZl7i7ff@;^h&*lKPKj>NOkCDDlkjd)GB)X|kT+ zAsUaZ{pElG9ZH6<$Sg!05riUhR=BLwJBUO|yt;&{z@UNlj4+bas_jNXjGstz$aYiV#*5zFY7c zY@+6E7_l&gSkq$wrpE-OBuNu0md%YbnxM?d)lyM)f%H7jz!cr4SE590(<}r zQdz!QDAGn#GQ7BJ_O9%5yZJc$U8g#`o~noEX;H47Kkg!akFzm5uxp+vdkK`vtKDV=azbNU(Syp6dCTtK-sGzEN;~& zp3*-_=CW5f=JkZuT6Z?$Qbvr<%9R^y`=}j>P^*}r2_S&RQ|JN4sHE9774)h0MJEsW zd_mR;+@A)a=^+HBv#i5RhitP9omTcua)oiShg1?rpvVU!9EYR6i`5_?2If?jW-Qa) zlGRpN2V30RlDCX&qEd}HO334*%=K?S99i~aQ{Yr&P@Z0Xp0bDo2LJ#BFhQH3--tAn z|NodnnSaf9_Y+&=wEk~D@^E7pm#RDKa}%0A2)S2&|H&W{=)b>Lz4!Tde!uu4v{0O= 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 z

    Nl3O*o(DgOwjC~Vf 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%0Dd7J8DnQ6!MRPTR+ zOnor@ZT|dNgeCQi6Y+w%m%~kp4q(~WXlE}n??qjNWGwI-z$1ppM>_oDWGP-cA`~G< zu3SQ5#Ut&%v6A7gOEs50*zQ+){9l&mDLbvyW$fMWE_nw&urKTj8 zy~-Z$oOh13eVln7Dkqonrm=

    -2Em3N?b9-e5ODs;g{VL;+h8GM)TLp!|TVBbi^ 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

    uM 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%0DH1}{u0bTF#a2h_VCBBrUjZU)P!{z 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�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

    */ @UnstableApi @@ -134,10 +136,18 @@ public final MediaNotification createNotification( Player player = mediaSession.getPlayer(); NotificationCompat.Builder builder = new NotificationCompat.Builder(context, NOTIFICATION_CHANNEL_ID); + + MediaStyle mediaStyle = new MediaStyle(); + int[] compactViewIndices = + addNotificationActions( + getMediaButtons(player.getAvailableCommands(), customLayout, player.getPlayWhenReady()), + builder, + actionFactory); + mediaStyle.setShowActionsInCompactView(compactViewIndices); + // Set metadata info in the notification. MediaMetadata metadata = player.getMediaMetadata(); builder.setContentTitle(metadata.title).setContentText(metadata.artist); - @Nullable ListenableFuture bitmapFuture = loadArtworkBitmap(metadata); if (bitmapFuture != null) { if (bitmapFuture.isDone()) { @@ -161,13 +171,6 @@ public final MediaNotification createNotification( } } - MediaStyle mediaStyle = new MediaStyle(); - int[] compactViewIndices = - addNotificationActions( - getMediaButtons(player.getAvailableCommands(), customLayout, player.getPlayWhenReady()), - builder, - actionFactory); - mediaStyle.setShowActionsInCompactView(compactViewIndices); if (player.isCommandAvailable(COMMAND_STOP) || Util.SDK_INT < 21) { // We must include a cancel intent for pre-L devices. mediaStyle.setCancelButtonIntent(actionFactory.createMediaActionPendingIntent(COMMAND_STOP)); @@ -185,7 +188,7 @@ public final MediaNotification createNotification( .setContentIntent(mediaSession.getSessionActivity()) .setDeleteIntent(actionFactory.createMediaActionPendingIntent(COMMAND_STOP)) .setOnlyAlertOnce(true) - .setSmallIcon(getSmallIconResId(context)) + .setSmallIcon(R.drawable.media3_notification_small_icon) .setStyle(mediaStyle) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) .setOngoing(false) @@ -385,15 +388,6 @@ private ListenableFuture loadArtworkBitmap(MediaMetadata metadata) { return future; } - private static int getSmallIconResId(Context context) { - int appIcon = context.getApplicationInfo().icon; - if (appIcon != 0) { - return appIcon; - } else { - return Util.SDK_INT >= 21 ? R.drawable.media_session_service_notification_ic_music_note : 0; - } - } - private static long getPlaybackStartTimeEpochMs(Player player) { // Changing "showWhen" causes notification flicker if SDK_INT < 21. if (Util.SDK_INT >= 21 From acb48a249564c5793cfadbee262e2eed29dea528 Mon Sep 17 00:00:00 2001 From: bachinger Date: Tue, 31 May 2022 10:39:34 +0000 Subject: [PATCH 154/182] Remove deprecated calls #minor-release PiperOrigin-RevId: 452006137 --- .../main/java/androidx/media3/demo/cast/MainActivity.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/demos/cast/src/main/java/androidx/media3/demo/cast/MainActivity.java b/demos/cast/src/main/java/androidx/media3/demo/cast/MainActivity.java index d6aec8c4a1a..aa9bd9f08ef 100644 --- a/demos/cast/src/main/java/androidx/media3/demo/cast/MainActivity.java +++ b/demos/cast/src/main/java/androidx/media3/demo/cast/MainActivity.java @@ -230,8 +230,8 @@ public RecyclerViewCallback() { @Override public boolean onMove( RecyclerView list, RecyclerView.ViewHolder origin, RecyclerView.ViewHolder target) { - int fromPosition = origin.getAdapterPosition(); - int toPosition = target.getAdapterPosition(); + int fromPosition = origin.getBindingAdapterPosition(); + int toPosition = target.getBindingAdapterPosition(); if (draggingFromPosition == C.INDEX_UNSET) { // A drag has started, but changes to the media queue will be reflected in clearView(). draggingFromPosition = fromPosition; @@ -243,7 +243,7 @@ public boolean onMove( @Override public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { - int position = viewHolder.getAdapterPosition(); + int position = viewHolder.getBindingAdapterPosition(); QueueItemViewHolder queueItemHolder = (QueueItemViewHolder) viewHolder; if (playerManager.removeItem(queueItemHolder.item)) { mediaQueueListAdapter.notifyItemRemoved(position); @@ -282,7 +282,7 @@ public QueueItemViewHolder(TextView textView) { @Override public void onClick(View v) { - playerManager.selectQueueItem(getAdapterPosition()); + playerManager.selectQueueItem(getBindingAdapterPosition()); } } From 1282175808210f0496a4b18ae4e02312dbdf4553 Mon Sep 17 00:00:00 2001 From: ibaker Date: Tue, 31 May 2022 11:52:14 +0000 Subject: [PATCH 155/182] Permit duplicate Opus headers This reinstates the permissive behaviour removed by https://github.com/androidx/media/commit/fe7e5b8181333683fda7869c3d9cffc0bdefcccb Test file created by opening bear.opus in a hex editor and naively duplicating the two header packets, starting at (and including) the first `OggS` in the file and ending just before the third `OggS`. #minor-release Issue: google/ExoPlayer#10038 PiperOrigin-RevId: 452015662 --- RELEASENOTES.md | 4 +- .../media3/extractor/ogg/OpusReader.java | 32 +- .../ogg/OggExtractorParameterizedTest.java | 7 + .../ogg/bear_duplicate_header.opus.0.dump | 1121 +++++++++++++++++ .../ogg/bear_duplicate_header.opus.1.dump | 757 +++++++++++ .../ogg/bear_duplicate_header.opus.2.dump | 389 ++++++ .../ogg/bear_duplicate_header.opus.3.dump | 25 + ..._duplicate_header.opus.unknown_length.dump | 1118 ++++++++++++++++ .../media/ogg/bear_duplicate_header.opus | Bin 0 -> 26120 bytes 9 files changed, 3448 insertions(+), 5 deletions(-) create mode 100644 libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.0.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.1.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.2.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.3.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.unknown_length.dump create mode 100644 libraries/test_data/src/test/assets/media/ogg/bear_duplicate_header.opus diff --git a/RELEASENOTES.md b/RELEASENOTES.md index ce5439d2444..eb53d3d6d11 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -56,7 +56,9 @@ subtitle format. * Extractors: * Matroska: Parse `DiscardPadding` for Opus tracks. - * Parse bitrates from `esds` boxes. + * MP4: Parse bitrates from `esds` boxes. + * Ogg: Allow duplicate Opus ID and comment headers + ([#10038](https://github.com/google/ExoPlayer/issues/10038)). * UI: * Fix delivery of events to `OnClickListener`s set on `PlayerView` and `LegacyPlayerView`, in the case that `useController=false` diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/ogg/OpusReader.java b/libraries/extractor/src/main/java/androidx/media3/extractor/ogg/OpusReader.java index d9975bba3a5..95996f6a804 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/ogg/OpusReader.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/ogg/OpusReader.java @@ -15,7 +15,6 @@ */ package androidx.media3.extractor.ogg; -import static androidx.media3.common.util.Assertions.checkState; import static androidx.media3.common.util.Assertions.checkStateNotNull; import androidx.annotation.Nullable; @@ -39,10 +38,20 @@ 'O', 'p', 'u', 's', 'T', 'a', 'g', 's' }; + private boolean firstCommentHeaderSeen; + public static boolean verifyBitstreamType(ParsableByteArray data) { return peekPacketStartsWith(data, OPUS_ID_HEADER_SIGNATURE); } + @Override + protected void reset(boolean headerData) { + super.reset(headerData); + if (headerData) { + firstCommentHeaderSeen = false; + } + } + @Override protected long preparePayload(ParsableByteArray packet) { return convertTimeToGranule(getPacketDurationUs(packet.getData())); @@ -57,9 +66,15 @@ protected boolean readHeaders(ParsableByteArray packet, long position, SetupData int channelCount = OpusUtil.getChannelCount(headerBytes); List initializationData = OpusUtil.buildInitializationData(headerBytes); - // The ID header must come at the start of the file: - // https://datatracker.ietf.org/doc/html/rfc7845#section-3 - checkState(setupData.format == null); + if (setupData.format != null) { + // setupData.format being non-null indicates we've already seen an ID header. Multiple ID + // headers are not permitted by the Opus spec [1], but have been observed in real files [2], + // so we just ignore all subsequent ones. + // [1] https://datatracker.ietf.org/doc/html/rfc7845#section-3 and + // https://datatracker.ietf.org/doc/html/rfc7845#section-5 + // [2] https://github.com/google/ExoPlayer/issues/10038 + return true; + } setupData.format = new Format.Builder() .setSampleMimeType(MimeTypes.AUDIO_OPUS) @@ -72,6 +87,15 @@ protected boolean readHeaders(ParsableByteArray packet, long position, SetupData // The comment header must come immediately after the ID header, so the format will already // be populated: https://datatracker.ietf.org/doc/html/rfc7845#section-3 checkStateNotNull(setupData.format); + if (firstCommentHeaderSeen) { + // Multiple comment headers are not permitted by the Opus spec [1], but have been observed + // in real files [2], so we just ignore all subsequent ones. + // [1] https://datatracker.ietf.org/doc/html/rfc7845#section-3 and + // https://datatracker.ietf.org/doc/html/rfc7845#section-5 + // [2] https://github.com/google/ExoPlayer/issues/10038 + return true; + } + firstCommentHeaderSeen = true; packet.skipBytes(OPUS_COMMENT_HEADER_SIGNATURE.length); VorbisUtil.CommentHeader commentHeader = VorbisUtil.readVorbisCommentHeader( diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/ogg/OggExtractorParameterizedTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/ogg/OggExtractorParameterizedTest.java index 2b8f329ef58..0e0f76b6dbd 100644 --- a/libraries/extractor/src/test/java/androidx/media3/extractor/ogg/OggExtractorParameterizedTest.java +++ b/libraries/extractor/src/test/java/androidx/media3/extractor/ogg/OggExtractorParameterizedTest.java @@ -43,6 +43,13 @@ public void opus() throws Exception { ExtractorAsserts.assertBehavior(OggExtractor::new, "media/ogg/bear.opus", simulationConfig); } + // https://github.com/google/ExoPlayer/issues/10038 + @Test + public void opus_duplicateHeader() throws Exception { + ExtractorAsserts.assertBehavior( + OggExtractor::new, "media/ogg/bear_duplicate_header.opus", simulationConfig); + } + @Test public void flac() throws Exception { ExtractorAsserts.assertBehavior(OggExtractor::new, "media/ogg/bear_flac.ogg", simulationConfig); diff --git a/libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.0.dump b/libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.0.dump new file mode 100644 index 00000000000..69acdcf9e9f --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.0.dump @@ -0,0 +1,1121 @@ +seekMap: + isSeekable = true + duration = 2747500 + getPosition(0) = [[timeUs=0, position=250]] + getPosition(1) = [[timeUs=1, position=250]] + getPosition(1373750) = [[timeUs=1373750, position=250]] + getPosition(2747500) = [[timeUs=2747500, position=250]] +numberOfTracks = 1 +track 0: + total output bytes = 25541 + sample count = 275 + format 0: + sampleMimeType = audio/opus + channelCount = 2 + sampleRate = 48000 + metadata = entries=[VC: encoder=Lavf54.20.4] + initializationData: + data = length 19, hash BFE794DB + data = length 8, hash CA22068C + data = length 8, hash 79C07075 + sample 0: + time = 0 + flags = 1 + data = length 234, hash B77BFFDA + sample 1: + time = 10000 + flags = 1 + data = length 165, hash F7B07C35 + sample 2: + time = 20000 + flags = 1 + data = length 100, hash 21AFA81F + sample 3: + time = 30000 + flags = 1 + data = length 85, hash 9180DC2F + sample 4: + time = 40000 + flags = 1 + data = length 85, hash 6AE958C + sample 5: + time = 50000 + flags = 1 + data = length 86, hash C1C5AE60 + sample 6: + time = 60000 + flags = 1 + data = length 87, hash B9BD2620 + sample 7: + time = 70000 + flags = 1 + data = length 86, hash 5E69E6F9 + sample 8: + time = 80000 + flags = 1 + data = length 90, hash C44C7DD9 + sample 9: + time = 90000 + flags = 1 + data = length 86, hash C3FCDC6F + sample 10: + time = 100000 + flags = 1 + data = length 86, hash 44EA03BA + sample 11: + time = 110000 + flags = 1 + data = length 160, hash 9F4E1AE8 + sample 12: + time = 120000 + flags = 1 + data = length 89, hash 31234460 + sample 13: + time = 130000 + flags = 1 + data = length 91, hash 45012D79 + sample 14: + time = 140000 + flags = 1 + data = length 90, hash B3E3AC75 + sample 15: + time = 150000 + flags = 1 + data = length 87, hash B83B756B + sample 16: + time = 160000 + flags = 1 + data = length 86, hash 383921EB + sample 17: + time = 170000 + flags = 1 + data = length 97, hash 959AD270 + sample 18: + time = 180000 + flags = 1 + data = length 92, hash 46C74FA8 + sample 19: + time = 190000 + flags = 1 + data = length 91, hash CEA401DD + sample 20: + time = 200000 + flags = 1 + data = length 89, hash 48C41853 + sample 21: + time = 210000 + flags = 1 + data = length 90, hash F23245BD + sample 22: + time = 220000 + flags = 1 + data = length 96, hash 95E8985D + sample 23: + time = 230000 + flags = 1 + data = length 96, hash 34295492 + sample 24: + time = 240000 + flags = 1 + data = length 94, hash 4E3C9C0F + sample 25: + time = 250000 + flags = 1 + data = length 89, hash 28B74A29 + sample 26: + time = 260000 + flags = 1 + data = length 87, hash BAC119A7 + sample 27: + time = 270000 + flags = 1 + data = length 88, hash 7139FF38 + sample 28: + time = 280000 + flags = 1 + data = length 85, hash 246E1D2A + sample 29: + time = 290000 + flags = 1 + data = length 86, hash 488A0900 + sample 30: + time = 300000 + flags = 1 + data = length 90, hash 16FD17B1 + sample 31: + time = 310000 + flags = 1 + data = length 87, hash 20E849D9 + sample 32: + time = 320000 + flags = 1 + data = length 86, hash 23A0E9BA + sample 33: + time = 330000 + flags = 1 + data = length 87, hash EC935537 + sample 34: + time = 340000 + flags = 1 + data = length 92, hash 4D9935AD + sample 35: + time = 350000 + flags = 1 + data = length 87, hash DEDE3FA + sample 36: + time = 360000 + flags = 1 + data = length 87, hash ADC25A6E + sample 37: + time = 370000 + flags = 1 + data = length 88, hash A1C828C5 + sample 38: + time = 380000 + flags = 1 + data = length 89, hash 735C087A + sample 39: + time = 390000 + flags = 1 + data = length 89, hash 19AF5D10 + sample 40: + time = 400000 + flags = 1 + data = length 90, hash BCCEA2BB + sample 41: + time = 410000 + flags = 1 + data = length 86, hash A7C934A0 + sample 42: + time = 420000 + flags = 1 + data = length 86, hash 28BBC0A8 + sample 43: + time = 430000 + flags = 1 + data = length 85, hash E60BB12D + sample 44: + time = 440000 + flags = 1 + data = length 141, hash 1D2B8920 + sample 45: + time = 450000 + flags = 1 + data = length 121, hash 8AA3E19C + sample 46: + time = 460000 + flags = 1 + data = length 86, hash 24DF0F37 + sample 47: + time = 470000 + flags = 1 + data = length 86, hash 1D1775FF + sample 48: + time = 480000 + flags = 1 + data = length 87, hash 5230399E + sample 49: + time = 490000 + flags = 1 + data = length 91, hash 6CD98305 + sample 50: + time = 500000 + flags = 1 + data = length 88, hash 4069FBB + sample 51: + time = 510000 + flags = 1 + data = length 89, hash 76824ABF + sample 52: + time = 520000 + flags = 1 + data = length 87, hash BC1B1322 + sample 53: + time = 530000 + flags = 1 + data = length 102, hash E01BA053 + sample 54: + time = 540000 + flags = 1 + data = length 85, hash C09B626D + sample 55: + time = 550000 + flags = 1 + data = length 88, hash 6B7B404A + sample 56: + time = 560000 + flags = 1 + data = length 85, hash 74A15DC7 + sample 57: + time = 570000 + flags = 1 + data = length 88, hash 38DB82E5 + sample 58: + time = 580000 + flags = 1 + data = length 86, hash 1A39C081 + sample 59: + time = 590000 + flags = 1 + data = length 87, hash 39FEC92 + sample 60: + time = 600000 + flags = 1 + data = length 92, hash 278EA09 + sample 61: + time = 610000 + flags = 1 + data = length 87, hash 28265F2D + sample 62: + time = 620000 + flags = 1 + data = length 86, hash CC2040C6 + sample 63: + time = 630000 + flags = 1 + data = length 138, hash 9E07BC1F + sample 64: + time = 640000 + flags = 1 + data = length 85, hash 4F299670 + sample 65: + time = 650000 + flags = 1 + data = length 125, hash B61123C3 + sample 66: + time = 660000 + flags = 1 + data = length 89, hash 5CC688ED + sample 67: + time = 670000 + flags = 1 + data = length 88, hash 84AF64A6 + sample 68: + time = 680000 + flags = 1 + data = length 89, hash A9BFC8DC + sample 69: + time = 690000 + flags = 1 + data = length 90, hash 2FF77060 + sample 70: + time = 700000 + flags = 1 + data = length 96, hash E11AFD61 + sample 71: + time = 710000 + flags = 1 + data = length 87, hash 85D14EDA + sample 72: + time = 720000 + flags = 1 + data = length 88, hash 5FC71D53 + sample 73: + time = 730000 + flags = 1 + data = length 89, hash 957187B6 + sample 74: + time = 740000 + flags = 1 + data = length 89, hash 5A776082 + sample 75: + time = 750000 + flags = 1 + data = length 87, hash E8A83AFE + sample 76: + time = 760000 + flags = 1 + data = length 87, hash F1989133 + sample 77: + time = 770000 + flags = 1 + data = length 87, hash FA06BCCA + sample 78: + time = 780000 + flags = 1 + data = length 86, hash BD97E0C0 + sample 79: + time = 790000 + flags = 1 + data = length 88, hash E6AE022C + sample 80: + time = 800000 + flags = 1 + data = length 87, hash FB6C6169 + sample 81: + time = 810000 + flags = 1 + data = length 87, hash DFFCD2CF + sample 82: + time = 820000 + flags = 1 + data = length 88, hash A4B5EB52 + sample 83: + time = 830000 + flags = 1 + data = length 85, hash A63CF4EA + sample 84: + time = 840000 + flags = 1 + data = length 86, hash F126E7C7 + sample 85: + time = 850000 + flags = 1 + data = length 86, hash 21A8B22F + sample 86: + time = 860000 + flags = 1 + data = length 87, hash 6520E7C1 + sample 87: + time = 870000 + flags = 1 + data = length 88, hash 825B7423 + sample 88: + time = 880000 + flags = 1 + data = length 88, hash DF3DBD48 + sample 89: + time = 890000 + flags = 1 + data = length 87, hash B32C68D0 + sample 90: + time = 900000 + flags = 1 + data = length 89, hash B99DFFCA + sample 91: + time = 910000 + flags = 1 + data = length 88, hash 9C8D5178 + sample 92: + time = 920000 + flags = 1 + data = length 88, hash 48A0B19A + sample 93: + time = 930000 + flags = 1 + data = length 88, hash B62C94DD + sample 94: + time = 940000 + flags = 1 + data = length 92, hash 96DBDD46 + sample 95: + time = 950000 + flags = 1 + data = length 87, hash 7B80E6F + sample 96: + time = 960000 + flags = 1 + data = length 86, hash 9C60225B + sample 97: + time = 970000 + flags = 1 + data = length 87, hash 45F7E6E8 + sample 98: + time = 980000 + flags = 1 + data = length 87, hash DDC2D592 + sample 99: + time = 990000 + flags = 1 + data = length 91, hash 173D3B26 + sample 100: + time = 1000000 + flags = 1 + data = length 87, hash CF3629DF + sample 101: + time = 1010000 + flags = 1 + data = length 87, hash BBE2E7B3 + sample 102: + time = 1020000 + flags = 1 + data = length 89, hash 89AFFB10 + sample 103: + time = 1030000 + flags = 1 + data = length 88, hash 510DCC90 + sample 104: + time = 1040000 + flags = 1 + data = length 88, hash CBA56E5F + sample 105: + time = 1050000 + flags = 1 + data = length 87, hash B4B1B3FF + sample 106: + time = 1060000 + flags = 1 + data = length 89, hash B976A537 + sample 107: + time = 1070000 + flags = 1 + data = length 96, hash 43ECF2C1 + sample 108: + time = 1080000 + flags = 1 + data = length 90, hash BB7ECB44 + sample 109: + time = 1090000 + flags = 1 + data = length 89, hash B8E221A5 + sample 110: + time = 1100000 + flags = 1 + data = length 86, hash B35BEF5B + sample 111: + time = 1110000 + flags = 1 + data = length 89, hash 9002F0EC + sample 112: + time = 1120000 + flags = 1 + data = length 85, hash F694B20 + sample 113: + time = 1130000 + flags = 1 + data = length 87, hash D7CC386E + sample 114: + time = 1140000 + flags = 1 + data = length 89, hash EE9E0E79 + sample 115: + time = 1150000 + flags = 1 + data = length 90, hash CA72C96B + sample 116: + time = 1160000 + flags = 1 + data = length 112, hash 4AD3D1B1 + sample 117: + time = 1170000 + flags = 1 + data = length 87, hash FA568FAB + sample 118: + time = 1180000 + flags = 1 + data = length 90, hash 6E6948D2 + sample 119: + time = 1190000 + flags = 1 + data = length 89, hash 5465A762 + sample 120: + time = 1200000 + flags = 1 + data = length 87, hash BED19B40 + sample 121: + time = 1210000 + flags = 1 + data = length 89, hash 5D05836A + sample 122: + time = 1220000 + flags = 1 + data = length 87, hash A8A3EF5A + sample 123: + time = 1230000 + flags = 1 + data = length 90, hash 6425A77A + sample 124: + time = 1240000 + flags = 1 + data = length 92, hash 7F320FA + sample 125: + time = 1250000 + flags = 1 + data = length 89, hash 2C7837D6 + sample 126: + time = 1260000 + flags = 1 + data = length 86, hash 58D56685 + sample 127: + time = 1270000 + flags = 1 + data = length 91, hash ADC5072F + sample 128: + time = 1280000 + flags = 1 + data = length 85, hash 53EFD93 + sample 129: + time = 1290000 + flags = 1 + data = length 87, hash D006B535 + sample 130: + time = 1300000 + flags = 1 + data = length 86, hash AE944625 + sample 131: + time = 1310000 + flags = 1 + data = length 89, hash B5D3C81D + sample 132: + time = 1320000 + flags = 1 + data = length 86, hash 3BB1D0E7 + sample 133: + time = 1330000 + flags = 1 + data = length 102, hash 16EEC441 + sample 134: + time = 1340000 + flags = 1 + data = length 90, hash 1005B936 + sample 135: + time = 1350000 + flags = 1 + data = length 85, hash 15EEBF9A + sample 136: + time = 1360000 + flags = 1 + data = length 87, hash 37C83AC2 + sample 137: + time = 1370000 + flags = 1 + data = length 85, hash 2D27855D + sample 138: + time = 1380000 + flags = 1 + data = length 85, hash 753EB7C6 + sample 139: + time = 1390000 + flags = 1 + data = length 91, hash C0813318 + sample 140: + time = 1400000 + flags = 1 + data = length 89, hash 3A6468AC + sample 141: + time = 1410000 + flags = 1 + data = length 88, hash 3D220ABC + sample 142: + time = 1420000 + flags = 1 + data = length 140, hash 7949ABC7 + sample 143: + time = 1430000 + flags = 1 + data = length 92, hash F19AFA45 + sample 144: + time = 1440000 + flags = 1 + data = length 90, hash 3D21587C + sample 145: + time = 1450000 + flags = 1 + data = length 89, hash 5C12226C + sample 146: + time = 1460000 + flags = 1 + data = length 90, hash 22BA14FC + sample 147: + time = 1470000 + flags = 1 + data = length 88, hash F064B21C + sample 148: + time = 1480000 + flags = 1 + data = length 87, hash 6D7906B9 + sample 149: + time = 1490000 + flags = 1 + data = length 88, hash 6756A484 + sample 150: + time = 1500000 + flags = 1 + data = length 91, hash C95C00B6 + sample 151: + time = 1510000 + flags = 1 + data = length 87, hash 728D8119 + sample 152: + time = 1520000 + flags = 1 + data = length 90, hash C43DA1B4 + sample 153: + time = 1530000 + flags = 1 + data = length 88, hash C181BB57 + sample 154: + time = 1540000 + flags = 1 + data = length 84, hash F75B1639 + sample 155: + time = 1550000 + flags = 1 + data = length 87, hash B6F32978 + sample 156: + time = 1560000 + flags = 1 + data = length 90, hash 36D6E2D7 + sample 157: + time = 1570000 + flags = 1 + data = length 87, hash 4C9657A7 + sample 158: + time = 1580000 + flags = 1 + data = length 89, hash C3BDB9B7 + sample 159: + time = 1590000 + flags = 1 + data = length 88, hash DB51087E + sample 160: + time = 1600000 + flags = 1 + data = length 86, hash 1550F998 + sample 161: + time = 1610000 + flags = 1 + data = length 86, hash A445FAD4 + sample 162: + time = 1620000 + flags = 1 + data = length 85, hash 60D3362C + sample 163: + time = 1630000 + flags = 1 + data = length 172, hash 945D63E4 + sample 164: + time = 1640000 + flags = 1 + data = length 107, hash 585B7C04 + sample 165: + time = 1650000 + flags = 1 + data = length 110, hash 74BECF69 + sample 166: + time = 1660000 + flags = 1 + data = length 87, hash 63DE1D24 + sample 167: + time = 1670000 + flags = 1 + data = length 90, hash 1C1D28DB + sample 168: + time = 1680000 + flags = 1 + data = length 87, hash CB382A67 + sample 169: + time = 1690000 + flags = 1 + data = length 85, hash A227BA13 + sample 170: + time = 1700000 + flags = 1 + data = length 86, hash EFD8B10B + sample 171: + time = 1710000 + flags = 1 + data = length 87, hash 47FF364A + sample 172: + time = 1720000 + flags = 1 + data = length 91, hash 31D4B48A + sample 173: + time = 1730000 + flags = 1 + data = length 91, hash DD69BD85 + sample 174: + time = 1740000 + flags = 1 + data = length 88, hash AF1A95C6 + sample 175: + time = 1750000 + flags = 1 + data = length 87, hash 2FB8AF74 + sample 176: + time = 1760000 + flags = 1 + data = length 92, hash 173C707A + sample 177: + time = 1770000 + flags = 1 + data = length 88, hash 5F58F5E8 + sample 178: + time = 1780000 + flags = 1 + data = length 91, hash D449785F + sample 179: + time = 1790000 + flags = 1 + data = length 91, hash CE2CB465 + sample 180: + time = 1800000 + flags = 1 + data = length 93, hash ABC1C62E + sample 181: + time = 1810000 + flags = 1 + data = length 87, hash 83B4B9A0 + sample 182: + time = 1820000 + flags = 1 + data = length 87, hash 3220D562 + sample 183: + time = 1830000 + flags = 1 + data = length 86, hash 64D21AA1 + sample 184: + time = 1840000 + flags = 1 + data = length 86, hash A1FAAF2C + sample 185: + time = 1850000 + flags = 1 + data = length 86, hash ECA80F7E + sample 186: + time = 1860000 + flags = 1 + data = length 86, hash FEB03B2C + sample 187: + time = 1870000 + flags = 1 + data = length 85, hash 2C2E6B2F + sample 188: + time = 1880000 + flags = 1 + data = length 89, hash A0D7AC3 + sample 189: + time = 1890000 + flags = 1 + data = length 87, hash 83739547 + sample 190: + time = 1900000 + flags = 1 + data = length 86, hash 991E531E + sample 191: + time = 1910000 + flags = 1 + data = length 88, hash 16B287A3 + sample 192: + time = 1920000 + flags = 1 + data = length 86, hash FC86EED + sample 193: + time = 1930000 + flags = 1 + data = length 86, hash 96AF0248 + sample 194: + time = 1940000 + flags = 1 + data = length 86, hash 288402C8 + sample 195: + time = 1950000 + flags = 1 + data = length 87, hash 4BBA7912 + sample 196: + time = 1960000 + flags = 1 + data = length 86, hash 4A59C719 + sample 197: + time = 1970000 + flags = 1 + data = length 85, hash 906E8187 + sample 198: + time = 1980000 + flags = 1 + data = length 90, hash CB8B755D + sample 199: + time = 1990000 + flags = 1 + data = length 87, hash C8E02C + sample 200: + time = 2000000 + flags = 1 + data = length 88, hash ACF4D89A + sample 201: + time = 2010000 + flags = 1 + data = length 86, hash 510FE048 + sample 202: + time = 2020000 + flags = 1 + data = length 86, hash 64983E46 + sample 203: + time = 2030000 + flags = 1 + data = length 86, hash CEA76A1E + sample 204: + time = 2040000 + flags = 1 + data = length 87, hash AADE498E + sample 205: + time = 2050000 + flags = 1 + data = length 127, hash 353A6D8C + sample 206: + time = 2060000 + flags = 1 + data = length 87, hash 29E18E62 + sample 207: + time = 2070000 + flags = 1 + data = length 87, hash 2CF7B30F + sample 208: + time = 2080000 + flags = 1 + data = length 94, hash 758704C3 + sample 209: + time = 2090000 + flags = 1 + data = length 88, hash C2153A4C + sample 210: + time = 2100000 + flags = 1 + data = length 86, hash A0A83DA5 + sample 211: + time = 2110000 + flags = 1 + data = length 86, hash 41017D7F + sample 212: + time = 2120000 + flags = 1 + data = length 93, hash 686B0CA2 + sample 213: + time = 2130000 + flags = 1 + data = length 86, hash 554D16CC + sample 214: + time = 2140000 + flags = 1 + data = length 88, hash 99D72771 + sample 215: + time = 2150000 + flags = 1 + data = length 88, hash 7176DFBF + sample 216: + time = 2160000 + flags = 1 + data = length 86, hash BAA22669 + sample 217: + time = 2170000 + flags = 1 + data = length 88, hash B00B0D3C + sample 218: + time = 2180000 + flags = 1 + data = length 89, hash 73FED83A + sample 219: + time = 2190000 + flags = 1 + data = length 86, hash 4A4138D3 + sample 220: + time = 2200000 + flags = 1 + data = length 89, hash E0A860FF + sample 221: + time = 2210000 + flags = 1 + data = length 95, hash EE5A8AED + sample 222: + time = 2220000 + flags = 1 + data = length 92, hash 36DBD7FD + sample 223: + time = 2230000 + flags = 1 + data = length 88, hash EE47A7E4 + sample 224: + time = 2240000 + flags = 1 + data = length 100, hash 2E1A603F + sample 225: + time = 2250000 + flags = 1 + data = length 89, hash 657ED4A3 + sample 226: + time = 2260000 + flags = 1 + data = length 86, hash A833DC7B + sample 227: + time = 2270000 + flags = 1 + data = length 88, hash 81E80732 + sample 228: + time = 2280000 + flags = 1 + data = length 91, hash FA256A0F + sample 229: + time = 2290000 + flags = 1 + data = length 88, hash A63A4DBA + sample 230: + time = 2300000 + flags = 1 + data = length 88, hash 67910A9F + sample 231: + time = 2310000 + flags = 1 + data = length 86, hash EB387DB6 + sample 232: + time = 2320000 + flags = 1 + data = length 88, hash 5ACAAC2A + sample 233: + time = 2330000 + flags = 1 + data = length 86, hash 6ADF2E1F + sample 234: + time = 2340000 + flags = 1 + data = length 85, hash 9D064471 + sample 235: + time = 2350000 + flags = 1 + data = length 87, hash F176C59 + sample 236: + time = 2360000 + flags = 1 + data = length 89, hash 5CA40CE4 + sample 237: + time = 2370000 + flags = 1 + data = length 88, hash 67B944FC + sample 238: + time = 2380000 + flags = 1 + data = length 86, hash B3A84EC8 + sample 239: + time = 2390000 + flags = 1 + data = length 92, hash A6ACF94B + sample 240: + time = 2400000 + flags = 1 + data = length 88, hash CB0C9730 + sample 241: + time = 2410000 + flags = 1 + data = length 88, hash C79FE804 + sample 242: + time = 2420000 + flags = 1 + data = length 88, hash A74C7F0A + sample 243: + time = 2430000 + flags = 1 + data = length 91, hash 55F6F0A5 + sample 244: + time = 2440000 + flags = 1 + data = length 93, hash 330F33E7 + sample 245: + time = 2450000 + flags = 1 + data = length 89, hash 614AFBA0 + sample 246: + time = 2460000 + flags = 1 + data = length 87, hash 3CE4652D + sample 247: + time = 2470000 + flags = 1 + data = length 87, hash 4EFD5467 + sample 248: + time = 2480000 + flags = 1 + data = length 86, hash D81B3EB8 + sample 249: + time = 2490000 + flags = 1 + data = length 88, hash 96CB6871 + sample 250: + time = 2500000 + flags = 1 + data = length 88, hash E9DF2786 + sample 251: + time = 2510000 + flags = 1 + data = length 89, hash 2CA33D96 + sample 252: + time = 2520000 + flags = 1 + data = length 90, hash 96BDE594 + sample 253: + time = 2530000 + flags = 1 + data = length 87, hash C261493C + sample 254: + time = 2540000 + flags = 1 + data = length 86, hash D037318E + sample 255: + time = 2550000 + flags = 1 + data = length 88, hash BC15BC88 + sample 256: + time = 2560000 + flags = 1 + data = length 91, hash A8361A51 + sample 257: + time = 2570000 + flags = 1 + data = length 87, hash 4AFDB5F2 + sample 258: + time = 2580000 + flags = 1 + data = length 87, hash 6447F8CB + sample 259: + time = 2590000 + flags = 1 + data = length 89, hash 48305229 + sample 260: + time = 2600000 + flags = 1 + data = length 87, hash 8741D9E7 + sample 261: + time = 2610000 + flags = 1 + data = length 120, hash 761F020C + sample 262: + time = 2620000 + flags = 1 + data = length 139, hash AECE2E57 + sample 263: + time = 2630000 + flags = 1 + data = length 166, hash 6288797A + sample 264: + time = 2640000 + flags = 1 + data = length 144, hash 437821A0 + sample 265: + time = 2650000 + flags = 1 + data = length 113, hash FCCBEDF1 + sample 266: + time = 2660000 + flags = 1 + data = length 108, hash C4040614 + sample 267: + time = 2670000 + flags = 1 + data = length 125, hash E29064C2 + sample 268: + time = 2680000 + flags = 1 + data = length 126, hash D42D24FF + sample 269: + time = 2690000 + flags = 1 + data = length 122, hash 30AF267D + sample 270: + time = 2700000 + flags = 1 + data = length 122, hash 45CEC1FB + sample 271: + time = 2710000 + flags = 1 + data = length 134, hash 59143FE2 + sample 272: + time = 2720000 + flags = 1 + data = length 134, hash BD52A84 + sample 273: + time = 2730000 + flags = 1 + data = length 120, hash 745C3714 + sample 274: + time = 2740000 + flags = 1 + data = length 126, hash 505E117B +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.1.dump b/libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.1.dump new file mode 100644 index 00000000000..9bab0eadb13 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.1.dump @@ -0,0 +1,757 @@ +seekMap: + isSeekable = true + duration = 2747500 + getPosition(0) = [[timeUs=0, position=250]] + getPosition(1) = [[timeUs=1, position=250]] + getPosition(1373750) = [[timeUs=1373750, position=250]] + getPosition(2747500) = [[timeUs=2747500, position=250]] +numberOfTracks = 1 +track 0: + total output bytes = 17031 + sample count = 184 + format 0: + sampleMimeType = audio/opus + channelCount = 2 + sampleRate = 48000 + metadata = entries=[VC: encoder=Lavf54.20.4] + initializationData: + data = length 19, hash BFE794DB + data = length 8, hash CA22068C + data = length 8, hash 79C07075 + sample 0: + time = 910000 + flags = 1 + data = length 88, hash 9C8D5178 + sample 1: + time = 920000 + flags = 1 + data = length 88, hash 48A0B19A + sample 2: + time = 930000 + flags = 1 + data = length 88, hash B62C94DD + sample 3: + time = 940000 + flags = 1 + data = length 92, hash 96DBDD46 + sample 4: + time = 950000 + flags = 1 + data = length 87, hash 7B80E6F + sample 5: + time = 960000 + flags = 1 + data = length 86, hash 9C60225B + sample 6: + time = 970000 + flags = 1 + data = length 87, hash 45F7E6E8 + sample 7: + time = 980000 + flags = 1 + data = length 87, hash DDC2D592 + sample 8: + time = 990000 + flags = 1 + data = length 91, hash 173D3B26 + sample 9: + time = 1000000 + flags = 1 + data = length 87, hash CF3629DF + sample 10: + time = 1010000 + flags = 1 + data = length 87, hash BBE2E7B3 + sample 11: + time = 1020000 + flags = 1 + data = length 89, hash 89AFFB10 + sample 12: + time = 1030000 + flags = 1 + data = length 88, hash 510DCC90 + sample 13: + time = 1040000 + flags = 1 + data = length 88, hash CBA56E5F + sample 14: + time = 1050000 + flags = 1 + data = length 87, hash B4B1B3FF + sample 15: + time = 1060000 + flags = 1 + data = length 89, hash B976A537 + sample 16: + time = 1070000 + flags = 1 + data = length 96, hash 43ECF2C1 + sample 17: + time = 1080000 + flags = 1 + data = length 90, hash BB7ECB44 + sample 18: + time = 1090000 + flags = 1 + data = length 89, hash B8E221A5 + sample 19: + time = 1100000 + flags = 1 + data = length 86, hash B35BEF5B + sample 20: + time = 1110000 + flags = 1 + data = length 89, hash 9002F0EC + sample 21: + time = 1120000 + flags = 1 + data = length 85, hash F694B20 + sample 22: + time = 1130000 + flags = 1 + data = length 87, hash D7CC386E + sample 23: + time = 1140000 + flags = 1 + data = length 89, hash EE9E0E79 + sample 24: + time = 1150000 + flags = 1 + data = length 90, hash CA72C96B + sample 25: + time = 1160000 + flags = 1 + data = length 112, hash 4AD3D1B1 + sample 26: + time = 1170000 + flags = 1 + data = length 87, hash FA568FAB + sample 27: + time = 1180000 + flags = 1 + data = length 90, hash 6E6948D2 + sample 28: + time = 1190000 + flags = 1 + data = length 89, hash 5465A762 + sample 29: + time = 1200000 + flags = 1 + data = length 87, hash BED19B40 + sample 30: + time = 1210000 + flags = 1 + data = length 89, hash 5D05836A + sample 31: + time = 1220000 + flags = 1 + data = length 87, hash A8A3EF5A + sample 32: + time = 1230000 + flags = 1 + data = length 90, hash 6425A77A + sample 33: + time = 1240000 + flags = 1 + data = length 92, hash 7F320FA + sample 34: + time = 1250000 + flags = 1 + data = length 89, hash 2C7837D6 + sample 35: + time = 1260000 + flags = 1 + data = length 86, hash 58D56685 + sample 36: + time = 1270000 + flags = 1 + data = length 91, hash ADC5072F + sample 37: + time = 1280000 + flags = 1 + data = length 85, hash 53EFD93 + sample 38: + time = 1290000 + flags = 1 + data = length 87, hash D006B535 + sample 39: + time = 1300000 + flags = 1 + data = length 86, hash AE944625 + sample 40: + time = 1310000 + flags = 1 + data = length 89, hash B5D3C81D + sample 41: + time = 1320000 + flags = 1 + data = length 86, hash 3BB1D0E7 + sample 42: + time = 1330000 + flags = 1 + data = length 102, hash 16EEC441 + sample 43: + time = 1340000 + flags = 1 + data = length 90, hash 1005B936 + sample 44: + time = 1350000 + flags = 1 + data = length 85, hash 15EEBF9A + sample 45: + time = 1360000 + flags = 1 + data = length 87, hash 37C83AC2 + sample 46: + time = 1370000 + flags = 1 + data = length 85, hash 2D27855D + sample 47: + time = 1380000 + flags = 1 + data = length 85, hash 753EB7C6 + sample 48: + time = 1390000 + flags = 1 + data = length 91, hash C0813318 + sample 49: + time = 1400000 + flags = 1 + data = length 89, hash 3A6468AC + sample 50: + time = 1410000 + flags = 1 + data = length 88, hash 3D220ABC + sample 51: + time = 1420000 + flags = 1 + data = length 140, hash 7949ABC7 + sample 52: + time = 1430000 + flags = 1 + data = length 92, hash F19AFA45 + sample 53: + time = 1440000 + flags = 1 + data = length 90, hash 3D21587C + sample 54: + time = 1450000 + flags = 1 + data = length 89, hash 5C12226C + sample 55: + time = 1460000 + flags = 1 + data = length 90, hash 22BA14FC + sample 56: + time = 1470000 + flags = 1 + data = length 88, hash F064B21C + sample 57: + time = 1480000 + flags = 1 + data = length 87, hash 6D7906B9 + sample 58: + time = 1490000 + flags = 1 + data = length 88, hash 6756A484 + sample 59: + time = 1500000 + flags = 1 + data = length 91, hash C95C00B6 + sample 60: + time = 1510000 + flags = 1 + data = length 87, hash 728D8119 + sample 61: + time = 1520000 + flags = 1 + data = length 90, hash C43DA1B4 + sample 62: + time = 1530000 + flags = 1 + data = length 88, hash C181BB57 + sample 63: + time = 1540000 + flags = 1 + data = length 84, hash F75B1639 + sample 64: + time = 1550000 + flags = 1 + data = length 87, hash B6F32978 + sample 65: + time = 1560000 + flags = 1 + data = length 90, hash 36D6E2D7 + sample 66: + time = 1570000 + flags = 1 + data = length 87, hash 4C9657A7 + sample 67: + time = 1580000 + flags = 1 + data = length 89, hash C3BDB9B7 + sample 68: + time = 1590000 + flags = 1 + data = length 88, hash DB51087E + sample 69: + time = 1600000 + flags = 1 + data = length 86, hash 1550F998 + sample 70: + time = 1610000 + flags = 1 + data = length 86, hash A445FAD4 + sample 71: + time = 1620000 + flags = 1 + data = length 85, hash 60D3362C + sample 72: + time = 1630000 + flags = 1 + data = length 172, hash 945D63E4 + sample 73: + time = 1640000 + flags = 1 + data = length 107, hash 585B7C04 + sample 74: + time = 1650000 + flags = 1 + data = length 110, hash 74BECF69 + sample 75: + time = 1660000 + flags = 1 + data = length 87, hash 63DE1D24 + sample 76: + time = 1670000 + flags = 1 + data = length 90, hash 1C1D28DB + sample 77: + time = 1680000 + flags = 1 + data = length 87, hash CB382A67 + sample 78: + time = 1690000 + flags = 1 + data = length 85, hash A227BA13 + sample 79: + time = 1700000 + flags = 1 + data = length 86, hash EFD8B10B + sample 80: + time = 1710000 + flags = 1 + data = length 87, hash 47FF364A + sample 81: + time = 1720000 + flags = 1 + data = length 91, hash 31D4B48A + sample 82: + time = 1730000 + flags = 1 + data = length 91, hash DD69BD85 + sample 83: + time = 1740000 + flags = 1 + data = length 88, hash AF1A95C6 + sample 84: + time = 1750000 + flags = 1 + data = length 87, hash 2FB8AF74 + sample 85: + time = 1760000 + flags = 1 + data = length 92, hash 173C707A + sample 86: + time = 1770000 + flags = 1 + data = length 88, hash 5F58F5E8 + sample 87: + time = 1780000 + flags = 1 + data = length 91, hash D449785F + sample 88: + time = 1790000 + flags = 1 + data = length 91, hash CE2CB465 + sample 89: + time = 1800000 + flags = 1 + data = length 93, hash ABC1C62E + sample 90: + time = 1810000 + flags = 1 + data = length 87, hash 83B4B9A0 + sample 91: + time = 1820000 + flags = 1 + data = length 87, hash 3220D562 + sample 92: + time = 1830000 + flags = 1 + data = length 86, hash 64D21AA1 + sample 93: + time = 1840000 + flags = 1 + data = length 86, hash A1FAAF2C + sample 94: + time = 1850000 + flags = 1 + data = length 86, hash ECA80F7E + sample 95: + time = 1860000 + flags = 1 + data = length 86, hash FEB03B2C + sample 96: + time = 1870000 + flags = 1 + data = length 85, hash 2C2E6B2F + sample 97: + time = 1880000 + flags = 1 + data = length 89, hash A0D7AC3 + sample 98: + time = 1890000 + flags = 1 + data = length 87, hash 83739547 + sample 99: + time = 1900000 + flags = 1 + data = length 86, hash 991E531E + sample 100: + time = 1910000 + flags = 1 + data = length 88, hash 16B287A3 + sample 101: + time = 1920000 + flags = 1 + data = length 86, hash FC86EED + sample 102: + time = 1930000 + flags = 1 + data = length 86, hash 96AF0248 + sample 103: + time = 1940000 + flags = 1 + data = length 86, hash 288402C8 + sample 104: + time = 1950000 + flags = 1 + data = length 87, hash 4BBA7912 + sample 105: + time = 1960000 + flags = 1 + data = length 86, hash 4A59C719 + sample 106: + time = 1970000 + flags = 1 + data = length 85, hash 906E8187 + sample 107: + time = 1980000 + flags = 1 + data = length 90, hash CB8B755D + sample 108: + time = 1990000 + flags = 1 + data = length 87, hash C8E02C + sample 109: + time = 2000000 + flags = 1 + data = length 88, hash ACF4D89A + sample 110: + time = 2010000 + flags = 1 + data = length 86, hash 510FE048 + sample 111: + time = 2020000 + flags = 1 + data = length 86, hash 64983E46 + sample 112: + time = 2030000 + flags = 1 + data = length 86, hash CEA76A1E + sample 113: + time = 2040000 + flags = 1 + data = length 87, hash AADE498E + sample 114: + time = 2050000 + flags = 1 + data = length 127, hash 353A6D8C + sample 115: + time = 2060000 + flags = 1 + data = length 87, hash 29E18E62 + sample 116: + time = 2070000 + flags = 1 + data = length 87, hash 2CF7B30F + sample 117: + time = 2080000 + flags = 1 + data = length 94, hash 758704C3 + sample 118: + time = 2090000 + flags = 1 + data = length 88, hash C2153A4C + sample 119: + time = 2100000 + flags = 1 + data = length 86, hash A0A83DA5 + sample 120: + time = 2110000 + flags = 1 + data = length 86, hash 41017D7F + sample 121: + time = 2120000 + flags = 1 + data = length 93, hash 686B0CA2 + sample 122: + time = 2130000 + flags = 1 + data = length 86, hash 554D16CC + sample 123: + time = 2140000 + flags = 1 + data = length 88, hash 99D72771 + sample 124: + time = 2150000 + flags = 1 + data = length 88, hash 7176DFBF + sample 125: + time = 2160000 + flags = 1 + data = length 86, hash BAA22669 + sample 126: + time = 2170000 + flags = 1 + data = length 88, hash B00B0D3C + sample 127: + time = 2180000 + flags = 1 + data = length 89, hash 73FED83A + sample 128: + time = 2190000 + flags = 1 + data = length 86, hash 4A4138D3 + sample 129: + time = 2200000 + flags = 1 + data = length 89, hash E0A860FF + sample 130: + time = 2210000 + flags = 1 + data = length 95, hash EE5A8AED + sample 131: + time = 2220000 + flags = 1 + data = length 92, hash 36DBD7FD + sample 132: + time = 2230000 + flags = 1 + data = length 88, hash EE47A7E4 + sample 133: + time = 2240000 + flags = 1 + data = length 100, hash 2E1A603F + sample 134: + time = 2250000 + flags = 1 + data = length 89, hash 657ED4A3 + sample 135: + time = 2260000 + flags = 1 + data = length 86, hash A833DC7B + sample 136: + time = 2270000 + flags = 1 + data = length 88, hash 81E80732 + sample 137: + time = 2280000 + flags = 1 + data = length 91, hash FA256A0F + sample 138: + time = 2290000 + flags = 1 + data = length 88, hash A63A4DBA + sample 139: + time = 2300000 + flags = 1 + data = length 88, hash 67910A9F + sample 140: + time = 2310000 + flags = 1 + data = length 86, hash EB387DB6 + sample 141: + time = 2320000 + flags = 1 + data = length 88, hash 5ACAAC2A + sample 142: + time = 2330000 + flags = 1 + data = length 86, hash 6ADF2E1F + sample 143: + time = 2340000 + flags = 1 + data = length 85, hash 9D064471 + sample 144: + time = 2350000 + flags = 1 + data = length 87, hash F176C59 + sample 145: + time = 2360000 + flags = 1 + data = length 89, hash 5CA40CE4 + sample 146: + time = 2370000 + flags = 1 + data = length 88, hash 67B944FC + sample 147: + time = 2380000 + flags = 1 + data = length 86, hash B3A84EC8 + sample 148: + time = 2390000 + flags = 1 + data = length 92, hash A6ACF94B + sample 149: + time = 2400000 + flags = 1 + data = length 88, hash CB0C9730 + sample 150: + time = 2410000 + flags = 1 + data = length 88, hash C79FE804 + sample 151: + time = 2420000 + flags = 1 + data = length 88, hash A74C7F0A + sample 152: + time = 2430000 + flags = 1 + data = length 91, hash 55F6F0A5 + sample 153: + time = 2440000 + flags = 1 + data = length 93, hash 330F33E7 + sample 154: + time = 2450000 + flags = 1 + data = length 89, hash 614AFBA0 + sample 155: + time = 2460000 + flags = 1 + data = length 87, hash 3CE4652D + sample 156: + time = 2470000 + flags = 1 + data = length 87, hash 4EFD5467 + sample 157: + time = 2480000 + flags = 1 + data = length 86, hash D81B3EB8 + sample 158: + time = 2490000 + flags = 1 + data = length 88, hash 96CB6871 + sample 159: + time = 2500000 + flags = 1 + data = length 88, hash E9DF2786 + sample 160: + time = 2510000 + flags = 1 + data = length 89, hash 2CA33D96 + sample 161: + time = 2520000 + flags = 1 + data = length 90, hash 96BDE594 + sample 162: + time = 2530000 + flags = 1 + data = length 87, hash C261493C + sample 163: + time = 2540000 + flags = 1 + data = length 86, hash D037318E + sample 164: + time = 2550000 + flags = 1 + data = length 88, hash BC15BC88 + sample 165: + time = 2560000 + flags = 1 + data = length 91, hash A8361A51 + sample 166: + time = 2570000 + flags = 1 + data = length 87, hash 4AFDB5F2 + sample 167: + time = 2580000 + flags = 1 + data = length 87, hash 6447F8CB + sample 168: + time = 2590000 + flags = 1 + data = length 89, hash 48305229 + sample 169: + time = 2600000 + flags = 1 + data = length 87, hash 8741D9E7 + sample 170: + time = 2610000 + flags = 1 + data = length 120, hash 761F020C + sample 171: + time = 2620000 + flags = 1 + data = length 139, hash AECE2E57 + sample 172: + time = 2630000 + flags = 1 + data = length 166, hash 6288797A + sample 173: + time = 2640000 + flags = 1 + data = length 144, hash 437821A0 + sample 174: + time = 2650000 + flags = 1 + data = length 113, hash FCCBEDF1 + sample 175: + time = 2660000 + flags = 1 + data = length 108, hash C4040614 + sample 176: + time = 2670000 + flags = 1 + data = length 125, hash E29064C2 + sample 177: + time = 2680000 + flags = 1 + data = length 126, hash D42D24FF + sample 178: + time = 2690000 + flags = 1 + data = length 122, hash 30AF267D + sample 179: + time = 2700000 + flags = 1 + data = length 122, hash 45CEC1FB + sample 180: + time = 2710000 + flags = 1 + data = length 134, hash 59143FE2 + sample 181: + time = 2720000 + flags = 1 + data = length 134, hash BD52A84 + sample 182: + time = 2730000 + flags = 1 + data = length 120, hash 745C3714 + sample 183: + time = 2740000 + flags = 1 + data = length 126, hash 505E117B +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.2.dump b/libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.2.dump new file mode 100644 index 00000000000..d1ddcab42c3 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.2.dump @@ -0,0 +1,389 @@ +seekMap: + isSeekable = true + duration = 2747500 + getPosition(0) = [[timeUs=0, position=250]] + getPosition(1) = [[timeUs=1, position=250]] + getPosition(1373750) = [[timeUs=1373750, position=250]] + getPosition(2747500) = [[timeUs=2747500, position=250]] +numberOfTracks = 1 +track 0: + total output bytes = 8698 + sample count = 92 + format 0: + sampleMimeType = audio/opus + channelCount = 2 + sampleRate = 48000 + metadata = entries=[VC: encoder=Lavf54.20.4] + initializationData: + data = length 19, hash BFE794DB + data = length 8, hash CA22068C + data = length 8, hash 79C07075 + sample 0: + time = 1830000 + flags = 1 + data = length 86, hash 64D21AA1 + sample 1: + time = 1840000 + flags = 1 + data = length 86, hash A1FAAF2C + sample 2: + time = 1850000 + flags = 1 + data = length 86, hash ECA80F7E + sample 3: + time = 1860000 + flags = 1 + data = length 86, hash FEB03B2C + sample 4: + time = 1870000 + flags = 1 + data = length 85, hash 2C2E6B2F + sample 5: + time = 1880000 + flags = 1 + data = length 89, hash A0D7AC3 + sample 6: + time = 1890000 + flags = 1 + data = length 87, hash 83739547 + sample 7: + time = 1900000 + flags = 1 + data = length 86, hash 991E531E + sample 8: + time = 1910000 + flags = 1 + data = length 88, hash 16B287A3 + sample 9: + time = 1920000 + flags = 1 + data = length 86, hash FC86EED + sample 10: + time = 1930000 + flags = 1 + data = length 86, hash 96AF0248 + sample 11: + time = 1940000 + flags = 1 + data = length 86, hash 288402C8 + sample 12: + time = 1950000 + flags = 1 + data = length 87, hash 4BBA7912 + sample 13: + time = 1960000 + flags = 1 + data = length 86, hash 4A59C719 + sample 14: + time = 1970000 + flags = 1 + data = length 85, hash 906E8187 + sample 15: + time = 1980000 + flags = 1 + data = length 90, hash CB8B755D + sample 16: + time = 1990000 + flags = 1 + data = length 87, hash C8E02C + sample 17: + time = 2000000 + flags = 1 + data = length 88, hash ACF4D89A + sample 18: + time = 2010000 + flags = 1 + data = length 86, hash 510FE048 + sample 19: + time = 2020000 + flags = 1 + data = length 86, hash 64983E46 + sample 20: + time = 2030000 + flags = 1 + data = length 86, hash CEA76A1E + sample 21: + time = 2040000 + flags = 1 + data = length 87, hash AADE498E + sample 22: + time = 2050000 + flags = 1 + data = length 127, hash 353A6D8C + sample 23: + time = 2060000 + flags = 1 + data = length 87, hash 29E18E62 + sample 24: + time = 2070000 + flags = 1 + data = length 87, hash 2CF7B30F + sample 25: + time = 2080000 + flags = 1 + data = length 94, hash 758704C3 + sample 26: + time = 2090000 + flags = 1 + data = length 88, hash C2153A4C + sample 27: + time = 2100000 + flags = 1 + data = length 86, hash A0A83DA5 + sample 28: + time = 2110000 + flags = 1 + data = length 86, hash 41017D7F + sample 29: + time = 2120000 + flags = 1 + data = length 93, hash 686B0CA2 + sample 30: + time = 2130000 + flags = 1 + data = length 86, hash 554D16CC + sample 31: + time = 2140000 + flags = 1 + data = length 88, hash 99D72771 + sample 32: + time = 2150000 + flags = 1 + data = length 88, hash 7176DFBF + sample 33: + time = 2160000 + flags = 1 + data = length 86, hash BAA22669 + sample 34: + time = 2170000 + flags = 1 + data = length 88, hash B00B0D3C + sample 35: + time = 2180000 + flags = 1 + data = length 89, hash 73FED83A + sample 36: + time = 2190000 + flags = 1 + data = length 86, hash 4A4138D3 + sample 37: + time = 2200000 + flags = 1 + data = length 89, hash E0A860FF + sample 38: + time = 2210000 + flags = 1 + data = length 95, hash EE5A8AED + sample 39: + time = 2220000 + flags = 1 + data = length 92, hash 36DBD7FD + sample 40: + time = 2230000 + flags = 1 + data = length 88, hash EE47A7E4 + sample 41: + time = 2240000 + flags = 1 + data = length 100, hash 2E1A603F + sample 42: + time = 2250000 + flags = 1 + data = length 89, hash 657ED4A3 + sample 43: + time = 2260000 + flags = 1 + data = length 86, hash A833DC7B + sample 44: + time = 2270000 + flags = 1 + data = length 88, hash 81E80732 + sample 45: + time = 2280000 + flags = 1 + data = length 91, hash FA256A0F + sample 46: + time = 2290000 + flags = 1 + data = length 88, hash A63A4DBA + sample 47: + time = 2300000 + flags = 1 + data = length 88, hash 67910A9F + sample 48: + time = 2310000 + flags = 1 + data = length 86, hash EB387DB6 + sample 49: + time = 2320000 + flags = 1 + data = length 88, hash 5ACAAC2A + sample 50: + time = 2330000 + flags = 1 + data = length 86, hash 6ADF2E1F + sample 51: + time = 2340000 + flags = 1 + data = length 85, hash 9D064471 + sample 52: + time = 2350000 + flags = 1 + data = length 87, hash F176C59 + sample 53: + time = 2360000 + flags = 1 + data = length 89, hash 5CA40CE4 + sample 54: + time = 2370000 + flags = 1 + data = length 88, hash 67B944FC + sample 55: + time = 2380000 + flags = 1 + data = length 86, hash B3A84EC8 + sample 56: + time = 2390000 + flags = 1 + data = length 92, hash A6ACF94B + sample 57: + time = 2400000 + flags = 1 + data = length 88, hash CB0C9730 + sample 58: + time = 2410000 + flags = 1 + data = length 88, hash C79FE804 + sample 59: + time = 2420000 + flags = 1 + data = length 88, hash A74C7F0A + sample 60: + time = 2430000 + flags = 1 + data = length 91, hash 55F6F0A5 + sample 61: + time = 2440000 + flags = 1 + data = length 93, hash 330F33E7 + sample 62: + time = 2450000 + flags = 1 + data = length 89, hash 614AFBA0 + sample 63: + time = 2460000 + flags = 1 + data = length 87, hash 3CE4652D + sample 64: + time = 2470000 + flags = 1 + data = length 87, hash 4EFD5467 + sample 65: + time = 2480000 + flags = 1 + data = length 86, hash D81B3EB8 + sample 66: + time = 2490000 + flags = 1 + data = length 88, hash 96CB6871 + sample 67: + time = 2500000 + flags = 1 + data = length 88, hash E9DF2786 + sample 68: + time = 2510000 + flags = 1 + data = length 89, hash 2CA33D96 + sample 69: + time = 2520000 + flags = 1 + data = length 90, hash 96BDE594 + sample 70: + time = 2530000 + flags = 1 + data = length 87, hash C261493C + sample 71: + time = 2540000 + flags = 1 + data = length 86, hash D037318E + sample 72: + time = 2550000 + flags = 1 + data = length 88, hash BC15BC88 + sample 73: + time = 2560000 + flags = 1 + data = length 91, hash A8361A51 + sample 74: + time = 2570000 + flags = 1 + data = length 87, hash 4AFDB5F2 + sample 75: + time = 2580000 + flags = 1 + data = length 87, hash 6447F8CB + sample 76: + time = 2590000 + flags = 1 + data = length 89, hash 48305229 + sample 77: + time = 2600000 + flags = 1 + data = length 87, hash 8741D9E7 + sample 78: + time = 2610000 + flags = 1 + data = length 120, hash 761F020C + sample 79: + time = 2620000 + flags = 1 + data = length 139, hash AECE2E57 + sample 80: + time = 2630000 + flags = 1 + data = length 166, hash 6288797A + sample 81: + time = 2640000 + flags = 1 + data = length 144, hash 437821A0 + sample 82: + time = 2650000 + flags = 1 + data = length 113, hash FCCBEDF1 + sample 83: + time = 2660000 + flags = 1 + data = length 108, hash C4040614 + sample 84: + time = 2670000 + flags = 1 + data = length 125, hash E29064C2 + sample 85: + time = 2680000 + flags = 1 + data = length 126, hash D42D24FF + sample 86: + time = 2690000 + flags = 1 + data = length 122, hash 30AF267D + sample 87: + time = 2700000 + flags = 1 + data = length 122, hash 45CEC1FB + sample 88: + time = 2710000 + flags = 1 + data = length 134, hash 59143FE2 + sample 89: + time = 2720000 + flags = 1 + data = length 134, hash BD52A84 + sample 90: + time = 2730000 + flags = 1 + data = length 120, hash 745C3714 + sample 91: + time = 2740000 + flags = 1 + data = length 126, hash 505E117B +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.3.dump b/libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.3.dump new file mode 100644 index 00000000000..cf5a6cba2ae --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.3.dump @@ -0,0 +1,25 @@ +seekMap: + isSeekable = true + duration = 2747500 + getPosition(0) = [[timeUs=0, position=250]] + getPosition(1) = [[timeUs=1, position=250]] + getPosition(1373750) = [[timeUs=1373750, position=250]] + getPosition(2747500) = [[timeUs=2747500, position=250]] +numberOfTracks = 1 +track 0: + total output bytes = 126 + sample count = 1 + format 0: + sampleMimeType = audio/opus + channelCount = 2 + sampleRate = 48000 + metadata = entries=[VC: encoder=Lavf54.20.4] + initializationData: + data = length 19, hash BFE794DB + data = length 8, hash CA22068C + data = length 8, hash 79C07075 + sample 0: + time = 2741000 + flags = 1 + data = length 126, hash 505E117B +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.unknown_length.dump new file mode 100644 index 00000000000..b5f4b1b400b --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/ogg/bear_duplicate_header.opus.unknown_length.dump @@ -0,0 +1,1118 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=0]] +numberOfTracks = 1 +track 0: + total output bytes = 25541 + sample count = 275 + format 0: + sampleMimeType = audio/opus + channelCount = 2 + sampleRate = 48000 + metadata = entries=[VC: encoder=Lavf54.20.4] + initializationData: + data = length 19, hash BFE794DB + data = length 8, hash CA22068C + data = length 8, hash 79C07075 + sample 0: + time = 0 + flags = 1 + data = length 234, hash B77BFFDA + sample 1: + time = 10000 + flags = 1 + data = length 165, hash F7B07C35 + sample 2: + time = 20000 + flags = 1 + data = length 100, hash 21AFA81F + sample 3: + time = 30000 + flags = 1 + data = length 85, hash 9180DC2F + sample 4: + time = 40000 + flags = 1 + data = length 85, hash 6AE958C + sample 5: + time = 50000 + flags = 1 + data = length 86, hash C1C5AE60 + sample 6: + time = 60000 + flags = 1 + data = length 87, hash B9BD2620 + sample 7: + time = 70000 + flags = 1 + data = length 86, hash 5E69E6F9 + sample 8: + time = 80000 + flags = 1 + data = length 90, hash C44C7DD9 + sample 9: + time = 90000 + flags = 1 + data = length 86, hash C3FCDC6F + sample 10: + time = 100000 + flags = 1 + data = length 86, hash 44EA03BA + sample 11: + time = 110000 + flags = 1 + data = length 160, hash 9F4E1AE8 + sample 12: + time = 120000 + flags = 1 + data = length 89, hash 31234460 + sample 13: + time = 130000 + flags = 1 + data = length 91, hash 45012D79 + sample 14: + time = 140000 + flags = 1 + data = length 90, hash B3E3AC75 + sample 15: + time = 150000 + flags = 1 + data = length 87, hash B83B756B + sample 16: + time = 160000 + flags = 1 + data = length 86, hash 383921EB + sample 17: + time = 170000 + flags = 1 + data = length 97, hash 959AD270 + sample 18: + time = 180000 + flags = 1 + data = length 92, hash 46C74FA8 + sample 19: + time = 190000 + flags = 1 + data = length 91, hash CEA401DD + sample 20: + time = 200000 + flags = 1 + data = length 89, hash 48C41853 + sample 21: + time = 210000 + flags = 1 + data = length 90, hash F23245BD + sample 22: + time = 220000 + flags = 1 + data = length 96, hash 95E8985D + sample 23: + time = 230000 + flags = 1 + data = length 96, hash 34295492 + sample 24: + time = 240000 + flags = 1 + data = length 94, hash 4E3C9C0F + sample 25: + time = 250000 + flags = 1 + data = length 89, hash 28B74A29 + sample 26: + time = 260000 + flags = 1 + data = length 87, hash BAC119A7 + sample 27: + time = 270000 + flags = 1 + data = length 88, hash 7139FF38 + sample 28: + time = 280000 + flags = 1 + data = length 85, hash 246E1D2A + sample 29: + time = 290000 + flags = 1 + data = length 86, hash 488A0900 + sample 30: + time = 300000 + flags = 1 + data = length 90, hash 16FD17B1 + sample 31: + time = 310000 + flags = 1 + data = length 87, hash 20E849D9 + sample 32: + time = 320000 + flags = 1 + data = length 86, hash 23A0E9BA + sample 33: + time = 330000 + flags = 1 + data = length 87, hash EC935537 + sample 34: + time = 340000 + flags = 1 + data = length 92, hash 4D9935AD + sample 35: + time = 350000 + flags = 1 + data = length 87, hash DEDE3FA + sample 36: + time = 360000 + flags = 1 + data = length 87, hash ADC25A6E + sample 37: + time = 370000 + flags = 1 + data = length 88, hash A1C828C5 + sample 38: + time = 380000 + flags = 1 + data = length 89, hash 735C087A + sample 39: + time = 390000 + flags = 1 + data = length 89, hash 19AF5D10 + sample 40: + time = 400000 + flags = 1 + data = length 90, hash BCCEA2BB + sample 41: + time = 410000 + flags = 1 + data = length 86, hash A7C934A0 + sample 42: + time = 420000 + flags = 1 + data = length 86, hash 28BBC0A8 + sample 43: + time = 430000 + flags = 1 + data = length 85, hash E60BB12D + sample 44: + time = 440000 + flags = 1 + data = length 141, hash 1D2B8920 + sample 45: + time = 450000 + flags = 1 + data = length 121, hash 8AA3E19C + sample 46: + time = 460000 + flags = 1 + data = length 86, hash 24DF0F37 + sample 47: + time = 470000 + flags = 1 + data = length 86, hash 1D1775FF + sample 48: + time = 480000 + flags = 1 + data = length 87, hash 5230399E + sample 49: + time = 490000 + flags = 1 + data = length 91, hash 6CD98305 + sample 50: + time = 500000 + flags = 1 + data = length 88, hash 4069FBB + sample 51: + time = 510000 + flags = 1 + data = length 89, hash 76824ABF + sample 52: + time = 520000 + flags = 1 + data = length 87, hash BC1B1322 + sample 53: + time = 530000 + flags = 1 + data = length 102, hash E01BA053 + sample 54: + time = 540000 + flags = 1 + data = length 85, hash C09B626D + sample 55: + time = 550000 + flags = 1 + data = length 88, hash 6B7B404A + sample 56: + time = 560000 + flags = 1 + data = length 85, hash 74A15DC7 + sample 57: + time = 570000 + flags = 1 + data = length 88, hash 38DB82E5 + sample 58: + time = 580000 + flags = 1 + data = length 86, hash 1A39C081 + sample 59: + time = 590000 + flags = 1 + data = length 87, hash 39FEC92 + sample 60: + time = 600000 + flags = 1 + data = length 92, hash 278EA09 + sample 61: + time = 610000 + flags = 1 + data = length 87, hash 28265F2D + sample 62: + time = 620000 + flags = 1 + data = length 86, hash CC2040C6 + sample 63: + time = 630000 + flags = 1 + data = length 138, hash 9E07BC1F + sample 64: + time = 640000 + flags = 1 + data = length 85, hash 4F299670 + sample 65: + time = 650000 + flags = 1 + data = length 125, hash B61123C3 + sample 66: + time = 660000 + flags = 1 + data = length 89, hash 5CC688ED + sample 67: + time = 670000 + flags = 1 + data = length 88, hash 84AF64A6 + sample 68: + time = 680000 + flags = 1 + data = length 89, hash A9BFC8DC + sample 69: + time = 690000 + flags = 1 + data = length 90, hash 2FF77060 + sample 70: + time = 700000 + flags = 1 + data = length 96, hash E11AFD61 + sample 71: + time = 710000 + flags = 1 + data = length 87, hash 85D14EDA + sample 72: + time = 720000 + flags = 1 + data = length 88, hash 5FC71D53 + sample 73: + time = 730000 + flags = 1 + data = length 89, hash 957187B6 + sample 74: + time = 740000 + flags = 1 + data = length 89, hash 5A776082 + sample 75: + time = 750000 + flags = 1 + data = length 87, hash E8A83AFE + sample 76: + time = 760000 + flags = 1 + data = length 87, hash F1989133 + sample 77: + time = 770000 + flags = 1 + data = length 87, hash FA06BCCA + sample 78: + time = 780000 + flags = 1 + data = length 86, hash BD97E0C0 + sample 79: + time = 790000 + flags = 1 + data = length 88, hash E6AE022C + sample 80: + time = 800000 + flags = 1 + data = length 87, hash FB6C6169 + sample 81: + time = 810000 + flags = 1 + data = length 87, hash DFFCD2CF + sample 82: + time = 820000 + flags = 1 + data = length 88, hash A4B5EB52 + sample 83: + time = 830000 + flags = 1 + data = length 85, hash A63CF4EA + sample 84: + time = 840000 + flags = 1 + data = length 86, hash F126E7C7 + sample 85: + time = 850000 + flags = 1 + data = length 86, hash 21A8B22F + sample 86: + time = 860000 + flags = 1 + data = length 87, hash 6520E7C1 + sample 87: + time = 870000 + flags = 1 + data = length 88, hash 825B7423 + sample 88: + time = 880000 + flags = 1 + data = length 88, hash DF3DBD48 + sample 89: + time = 890000 + flags = 1 + data = length 87, hash B32C68D0 + sample 90: + time = 900000 + flags = 1 + data = length 89, hash B99DFFCA + sample 91: + time = 910000 + flags = 1 + data = length 88, hash 9C8D5178 + sample 92: + time = 920000 + flags = 1 + data = length 88, hash 48A0B19A + sample 93: + time = 930000 + flags = 1 + data = length 88, hash B62C94DD + sample 94: + time = 940000 + flags = 1 + data = length 92, hash 96DBDD46 + sample 95: + time = 950000 + flags = 1 + data = length 87, hash 7B80E6F + sample 96: + time = 960000 + flags = 1 + data = length 86, hash 9C60225B + sample 97: + time = 970000 + flags = 1 + data = length 87, hash 45F7E6E8 + sample 98: + time = 980000 + flags = 1 + data = length 87, hash DDC2D592 + sample 99: + time = 990000 + flags = 1 + data = length 91, hash 173D3B26 + sample 100: + time = 1000000 + flags = 1 + data = length 87, hash CF3629DF + sample 101: + time = 1010000 + flags = 1 + data = length 87, hash BBE2E7B3 + sample 102: + time = 1020000 + flags = 1 + data = length 89, hash 89AFFB10 + sample 103: + time = 1030000 + flags = 1 + data = length 88, hash 510DCC90 + sample 104: + time = 1040000 + flags = 1 + data = length 88, hash CBA56E5F + sample 105: + time = 1050000 + flags = 1 + data = length 87, hash B4B1B3FF + sample 106: + time = 1060000 + flags = 1 + data = length 89, hash B976A537 + sample 107: + time = 1070000 + flags = 1 + data = length 96, hash 43ECF2C1 + sample 108: + time = 1080000 + flags = 1 + data = length 90, hash BB7ECB44 + sample 109: + time = 1090000 + flags = 1 + data = length 89, hash B8E221A5 + sample 110: + time = 1100000 + flags = 1 + data = length 86, hash B35BEF5B + sample 111: + time = 1110000 + flags = 1 + data = length 89, hash 9002F0EC + sample 112: + time = 1120000 + flags = 1 + data = length 85, hash F694B20 + sample 113: + time = 1130000 + flags = 1 + data = length 87, hash D7CC386E + sample 114: + time = 1140000 + flags = 1 + data = length 89, hash EE9E0E79 + sample 115: + time = 1150000 + flags = 1 + data = length 90, hash CA72C96B + sample 116: + time = 1160000 + flags = 1 + data = length 112, hash 4AD3D1B1 + sample 117: + time = 1170000 + flags = 1 + data = length 87, hash FA568FAB + sample 118: + time = 1180000 + flags = 1 + data = length 90, hash 6E6948D2 + sample 119: + time = 1190000 + flags = 1 + data = length 89, hash 5465A762 + sample 120: + time = 1200000 + flags = 1 + data = length 87, hash BED19B40 + sample 121: + time = 1210000 + flags = 1 + data = length 89, hash 5D05836A + sample 122: + time = 1220000 + flags = 1 + data = length 87, hash A8A3EF5A + sample 123: + time = 1230000 + flags = 1 + data = length 90, hash 6425A77A + sample 124: + time = 1240000 + flags = 1 + data = length 92, hash 7F320FA + sample 125: + time = 1250000 + flags = 1 + data = length 89, hash 2C7837D6 + sample 126: + time = 1260000 + flags = 1 + data = length 86, hash 58D56685 + sample 127: + time = 1270000 + flags = 1 + data = length 91, hash ADC5072F + sample 128: + time = 1280000 + flags = 1 + data = length 85, hash 53EFD93 + sample 129: + time = 1290000 + flags = 1 + data = length 87, hash D006B535 + sample 130: + time = 1300000 + flags = 1 + data = length 86, hash AE944625 + sample 131: + time = 1310000 + flags = 1 + data = length 89, hash B5D3C81D + sample 132: + time = 1320000 + flags = 1 + data = length 86, hash 3BB1D0E7 + sample 133: + time = 1330000 + flags = 1 + data = length 102, hash 16EEC441 + sample 134: + time = 1340000 + flags = 1 + data = length 90, hash 1005B936 + sample 135: + time = 1350000 + flags = 1 + data = length 85, hash 15EEBF9A + sample 136: + time = 1360000 + flags = 1 + data = length 87, hash 37C83AC2 + sample 137: + time = 1370000 + flags = 1 + data = length 85, hash 2D27855D + sample 138: + time = 1380000 + flags = 1 + data = length 85, hash 753EB7C6 + sample 139: + time = 1390000 + flags = 1 + data = length 91, hash C0813318 + sample 140: + time = 1400000 + flags = 1 + data = length 89, hash 3A6468AC + sample 141: + time = 1410000 + flags = 1 + data = length 88, hash 3D220ABC + sample 142: + time = 1420000 + flags = 1 + data = length 140, hash 7949ABC7 + sample 143: + time = 1430000 + flags = 1 + data = length 92, hash F19AFA45 + sample 144: + time = 1440000 + flags = 1 + data = length 90, hash 3D21587C + sample 145: + time = 1450000 + flags = 1 + data = length 89, hash 5C12226C + sample 146: + time = 1460000 + flags = 1 + data = length 90, hash 22BA14FC + sample 147: + time = 1470000 + flags = 1 + data = length 88, hash F064B21C + sample 148: + time = 1480000 + flags = 1 + data = length 87, hash 6D7906B9 + sample 149: + time = 1490000 + flags = 1 + data = length 88, hash 6756A484 + sample 150: + time = 1500000 + flags = 1 + data = length 91, hash C95C00B6 + sample 151: + time = 1510000 + flags = 1 + data = length 87, hash 728D8119 + sample 152: + time = 1520000 + flags = 1 + data = length 90, hash C43DA1B4 + sample 153: + time = 1530000 + flags = 1 + data = length 88, hash C181BB57 + sample 154: + time = 1540000 + flags = 1 + data = length 84, hash F75B1639 + sample 155: + time = 1550000 + flags = 1 + data = length 87, hash B6F32978 + sample 156: + time = 1560000 + flags = 1 + data = length 90, hash 36D6E2D7 + sample 157: + time = 1570000 + flags = 1 + data = length 87, hash 4C9657A7 + sample 158: + time = 1580000 + flags = 1 + data = length 89, hash C3BDB9B7 + sample 159: + time = 1590000 + flags = 1 + data = length 88, hash DB51087E + sample 160: + time = 1600000 + flags = 1 + data = length 86, hash 1550F998 + sample 161: + time = 1610000 + flags = 1 + data = length 86, hash A445FAD4 + sample 162: + time = 1620000 + flags = 1 + data = length 85, hash 60D3362C + sample 163: + time = 1630000 + flags = 1 + data = length 172, hash 945D63E4 + sample 164: + time = 1640000 + flags = 1 + data = length 107, hash 585B7C04 + sample 165: + time = 1650000 + flags = 1 + data = length 110, hash 74BECF69 + sample 166: + time = 1660000 + flags = 1 + data = length 87, hash 63DE1D24 + sample 167: + time = 1670000 + flags = 1 + data = length 90, hash 1C1D28DB + sample 168: + time = 1680000 + flags = 1 + data = length 87, hash CB382A67 + sample 169: + time = 1690000 + flags = 1 + data = length 85, hash A227BA13 + sample 170: + time = 1700000 + flags = 1 + data = length 86, hash EFD8B10B + sample 171: + time = 1710000 + flags = 1 + data = length 87, hash 47FF364A + sample 172: + time = 1720000 + flags = 1 + data = length 91, hash 31D4B48A + sample 173: + time = 1730000 + flags = 1 + data = length 91, hash DD69BD85 + sample 174: + time = 1740000 + flags = 1 + data = length 88, hash AF1A95C6 + sample 175: + time = 1750000 + flags = 1 + data = length 87, hash 2FB8AF74 + sample 176: + time = 1760000 + flags = 1 + data = length 92, hash 173C707A + sample 177: + time = 1770000 + flags = 1 + data = length 88, hash 5F58F5E8 + sample 178: + time = 1780000 + flags = 1 + data = length 91, hash D449785F + sample 179: + time = 1790000 + flags = 1 + data = length 91, hash CE2CB465 + sample 180: + time = 1800000 + flags = 1 + data = length 93, hash ABC1C62E + sample 181: + time = 1810000 + flags = 1 + data = length 87, hash 83B4B9A0 + sample 182: + time = 1820000 + flags = 1 + data = length 87, hash 3220D562 + sample 183: + time = 1830000 + flags = 1 + data = length 86, hash 64D21AA1 + sample 184: + time = 1840000 + flags = 1 + data = length 86, hash A1FAAF2C + sample 185: + time = 1850000 + flags = 1 + data = length 86, hash ECA80F7E + sample 186: + time = 1860000 + flags = 1 + data = length 86, hash FEB03B2C + sample 187: + time = 1870000 + flags = 1 + data = length 85, hash 2C2E6B2F + sample 188: + time = 1880000 + flags = 1 + data = length 89, hash A0D7AC3 + sample 189: + time = 1890000 + flags = 1 + data = length 87, hash 83739547 + sample 190: + time = 1900000 + flags = 1 + data = length 86, hash 991E531E + sample 191: + time = 1910000 + flags = 1 + data = length 88, hash 16B287A3 + sample 192: + time = 1920000 + flags = 1 + data = length 86, hash FC86EED + sample 193: + time = 1930000 + flags = 1 + data = length 86, hash 96AF0248 + sample 194: + time = 1940000 + flags = 1 + data = length 86, hash 288402C8 + sample 195: + time = 1950000 + flags = 1 + data = length 87, hash 4BBA7912 + sample 196: + time = 1960000 + flags = 1 + data = length 86, hash 4A59C719 + sample 197: + time = 1970000 + flags = 1 + data = length 85, hash 906E8187 + sample 198: + time = 1980000 + flags = 1 + data = length 90, hash CB8B755D + sample 199: + time = 1990000 + flags = 1 + data = length 87, hash C8E02C + sample 200: + time = 2000000 + flags = 1 + data = length 88, hash ACF4D89A + sample 201: + time = 2010000 + flags = 1 + data = length 86, hash 510FE048 + sample 202: + time = 2020000 + flags = 1 + data = length 86, hash 64983E46 + sample 203: + time = 2030000 + flags = 1 + data = length 86, hash CEA76A1E + sample 204: + time = 2040000 + flags = 1 + data = length 87, hash AADE498E + sample 205: + time = 2050000 + flags = 1 + data = length 127, hash 353A6D8C + sample 206: + time = 2060000 + flags = 1 + data = length 87, hash 29E18E62 + sample 207: + time = 2070000 + flags = 1 + data = length 87, hash 2CF7B30F + sample 208: + time = 2080000 + flags = 1 + data = length 94, hash 758704C3 + sample 209: + time = 2090000 + flags = 1 + data = length 88, hash C2153A4C + sample 210: + time = 2100000 + flags = 1 + data = length 86, hash A0A83DA5 + sample 211: + time = 2110000 + flags = 1 + data = length 86, hash 41017D7F + sample 212: + time = 2120000 + flags = 1 + data = length 93, hash 686B0CA2 + sample 213: + time = 2130000 + flags = 1 + data = length 86, hash 554D16CC + sample 214: + time = 2140000 + flags = 1 + data = length 88, hash 99D72771 + sample 215: + time = 2150000 + flags = 1 + data = length 88, hash 7176DFBF + sample 216: + time = 2160000 + flags = 1 + data = length 86, hash BAA22669 + sample 217: + time = 2170000 + flags = 1 + data = length 88, hash B00B0D3C + sample 218: + time = 2180000 + flags = 1 + data = length 89, hash 73FED83A + sample 219: + time = 2190000 + flags = 1 + data = length 86, hash 4A4138D3 + sample 220: + time = 2200000 + flags = 1 + data = length 89, hash E0A860FF + sample 221: + time = 2210000 + flags = 1 + data = length 95, hash EE5A8AED + sample 222: + time = 2220000 + flags = 1 + data = length 92, hash 36DBD7FD + sample 223: + time = 2230000 + flags = 1 + data = length 88, hash EE47A7E4 + sample 224: + time = 2240000 + flags = 1 + data = length 100, hash 2E1A603F + sample 225: + time = 2250000 + flags = 1 + data = length 89, hash 657ED4A3 + sample 226: + time = 2260000 + flags = 1 + data = length 86, hash A833DC7B + sample 227: + time = 2270000 + flags = 1 + data = length 88, hash 81E80732 + sample 228: + time = 2280000 + flags = 1 + data = length 91, hash FA256A0F + sample 229: + time = 2290000 + flags = 1 + data = length 88, hash A63A4DBA + sample 230: + time = 2300000 + flags = 1 + data = length 88, hash 67910A9F + sample 231: + time = 2310000 + flags = 1 + data = length 86, hash EB387DB6 + sample 232: + time = 2320000 + flags = 1 + data = length 88, hash 5ACAAC2A + sample 233: + time = 2330000 + flags = 1 + data = length 86, hash 6ADF2E1F + sample 234: + time = 2340000 + flags = 1 + data = length 85, hash 9D064471 + sample 235: + time = 2350000 + flags = 1 + data = length 87, hash F176C59 + sample 236: + time = 2360000 + flags = 1 + data = length 89, hash 5CA40CE4 + sample 237: + time = 2370000 + flags = 1 + data = length 88, hash 67B944FC + sample 238: + time = 2380000 + flags = 1 + data = length 86, hash B3A84EC8 + sample 239: + time = 2390000 + flags = 1 + data = length 92, hash A6ACF94B + sample 240: + time = 2400000 + flags = 1 + data = length 88, hash CB0C9730 + sample 241: + time = 2410000 + flags = 1 + data = length 88, hash C79FE804 + sample 242: + time = 2420000 + flags = 1 + data = length 88, hash A74C7F0A + sample 243: + time = 2430000 + flags = 1 + data = length 91, hash 55F6F0A5 + sample 244: + time = 2440000 + flags = 1 + data = length 93, hash 330F33E7 + sample 245: + time = 2450000 + flags = 1 + data = length 89, hash 614AFBA0 + sample 246: + time = 2460000 + flags = 1 + data = length 87, hash 3CE4652D + sample 247: + time = 2470000 + flags = 1 + data = length 87, hash 4EFD5467 + sample 248: + time = 2480000 + flags = 1 + data = length 86, hash D81B3EB8 + sample 249: + time = 2490000 + flags = 1 + data = length 88, hash 96CB6871 + sample 250: + time = 2500000 + flags = 1 + data = length 88, hash E9DF2786 + sample 251: + time = 2510000 + flags = 1 + data = length 89, hash 2CA33D96 + sample 252: + time = 2520000 + flags = 1 + data = length 90, hash 96BDE594 + sample 253: + time = 2530000 + flags = 1 + data = length 87, hash C261493C + sample 254: + time = 2540000 + flags = 1 + data = length 86, hash D037318E + sample 255: + time = 2550000 + flags = 1 + data = length 88, hash BC15BC88 + sample 256: + time = 2560000 + flags = 1 + data = length 91, hash A8361A51 + sample 257: + time = 2570000 + flags = 1 + data = length 87, hash 4AFDB5F2 + sample 258: + time = 2580000 + flags = 1 + data = length 87, hash 6447F8CB + sample 259: + time = 2590000 + flags = 1 + data = length 89, hash 48305229 + sample 260: + time = 2600000 + flags = 1 + data = length 87, hash 8741D9E7 + sample 261: + time = 2610000 + flags = 1 + data = length 120, hash 761F020C + sample 262: + time = 2620000 + flags = 1 + data = length 139, hash AECE2E57 + sample 263: + time = 2630000 + flags = 1 + data = length 166, hash 6288797A + sample 264: + time = 2640000 + flags = 1 + data = length 144, hash 437821A0 + sample 265: + time = 2650000 + flags = 1 + data = length 113, hash FCCBEDF1 + sample 266: + time = 2660000 + flags = 1 + data = length 108, hash C4040614 + sample 267: + time = 2670000 + flags = 1 + data = length 125, hash E29064C2 + sample 268: + time = 2680000 + flags = 1 + data = length 126, hash D42D24FF + sample 269: + time = 2690000 + flags = 1 + data = length 122, hash 30AF267D + sample 270: + time = 2700000 + flags = 1 + data = length 122, hash 45CEC1FB + sample 271: + time = 2710000 + flags = 1 + data = length 134, hash 59143FE2 + sample 272: + time = 2720000 + flags = 1 + data = length 134, hash BD52A84 + sample 273: + time = 2730000 + flags = 1 + data = length 120, hash 745C3714 + sample 274: + time = 2740000 + flags = 1 + data = length 126, hash 505E117B +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/media/ogg/bear_duplicate_header.opus b/libraries/test_data/src/test/assets/media/ogg/bear_duplicate_header.opus new file mode 100644 index 0000000000000000000000000000000000000000..aa4e9d6064b2fe0587bb54d76b47095891bf80fd GIT binary patch literal 26120 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 literal 0 HcmV?d00001 From 208a9114a9f516f7034b75b4f21f9ded34de8501 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Tue, 31 May 2022 13:47:08 +0000 Subject: [PATCH 156/182] Create `withMediaPipe` variant only if AAR is present This should fix running `./gradlew clean test` if MediaPipe hasn't been built, for example. PiperOrigin-RevId: 452033698 --- demos/transformer/README.md | 5 +++-- demos/transformer/build.gradle | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/demos/transformer/README.md b/demos/transformer/README.md index 3a53f71dc72..fd767ba6c88 100644 --- a/demos/transformer/README.md +++ b/demos/transformer/README.md @@ -57,8 +57,9 @@ manual steps. ${TRANSFORMER_DEMO_ROOT}/src/withMediaPipe/assets ``` -1. Select the `withMediaPipe` build variant in Android Studio, then build and - run the demo app and select a MediaPipe-based effect. +1. In Android Studio, gradle sync and select the `withMediaPipe` build variant + (this will only appear if the AAR is present), then build and run the demo + app and select a MediaPipe-based effect. [Transformer]: https://exoplayer.dev/transforming-media.html [MediaPipe]: https://google.github.io/mediapipe/ diff --git a/demos/transformer/build.gradle b/demos/transformer/build.gradle index 6f6ff509089..a745fcea1f5 100644 --- a/demos/transformer/build.gradle +++ b/demos/transformer/build.gradle @@ -56,6 +56,16 @@ android { dimension "mediaPipe" } } + + // Ignore the withMediaPipe variant if the MediaPipe AAR is not present. + if (!project.file("libs/edge_detector_mediapipe_aar.aar").exists()) { + variantFilter { variant -> + def names = variant.flavors*.name + if (names.contains("withMediaPipe")) { + setIgnore(true) + } + } + } } dependencies { From 55a194c575ba40dc0e156815f07ec854dc85bd3d Mon Sep 17 00:00:00 2001 From: bachinger Date: Tue, 31 May 2022 14:41:24 +0000 Subject: [PATCH 157/182] Ignore decoding test cases when library not available #minor-release PiperOrigin-RevId: 452043577 --- .../androidx/media3/decoder/opus/OpusDecoderTest.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/libraries/decoder_opus/src/test/java/androidx/media3/decoder/opus/OpusDecoderTest.java b/libraries/decoder_opus/src/test/java/androidx/media3/decoder/opus/OpusDecoderTest.java index f166a511c89..9aa17cffcf1 100644 --- a/libraries/decoder_opus/src/test/java/androidx/media3/decoder/opus/OpusDecoderTest.java +++ b/libraries/decoder_opus/src/test/java/androidx/media3/decoder/opus/OpusDecoderTest.java @@ -16,6 +16,7 @@ package androidx.media3.decoder.opus; import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assume.assumeTrue; import androidx.annotation.Nullable; import androidx.media3.common.C; @@ -26,7 +27,6 @@ import com.google.common.collect.ImmutableList; import java.nio.ByteBuffer; import java.nio.ByteOrder; -import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -69,11 +69,6 @@ protected void loadLibrary(String name) { private static final ImmutableList FULL_INITIALIZATION_DATA = ImmutableList.of(HEADER, CUSTOM_PRE_SKIP_BYTES, CUSTOM_SEEK_PRE_ROLL_BYTES); - @Before - public void setUp() { - assertThat(LOADER.isAvailable()).isTrue(); - } - @Test public void getChannelCount() { int channelCount = OpusDecoder.getChannelCount(HEADER); @@ -120,6 +115,7 @@ public void getDiscardPaddingSamples_negativeSampleLength_returnZero() { @Test public void decode_removesPreSkipFromOutput() throws OpusDecoderException { + assumeTrue(LOADER.isAvailable()); OpusDecoder decoder = new OpusDecoder( /* numInputBuffers= */ 0, @@ -139,6 +135,7 @@ public void decode_removesPreSkipFromOutput() throws OpusDecoderException { @Test public void decode_whenDiscardPaddingDisabled_returnsDiscardPadding() throws OpusDecoderException { + assumeTrue(LOADER.isAvailable()); OpusDecoder decoder = new OpusDecoder( /* numInputBuffers= */ 0, @@ -159,6 +156,7 @@ public void decode_whenDiscardPaddingDisabled_returnsDiscardPadding() @Test public void decode_whenDiscardPaddingEnabled_removesDiscardPadding() throws OpusDecoderException { + assumeTrue(LOADER.isAvailable()); OpusDecoder decoder = new OpusDecoder( /* numInputBuffers= */ 0, From 35b5147eb1404698132d9b063c905202c22e31d8 Mon Sep 17 00:00:00 2001 From: hschlueter Date: Tue, 31 May 2022 17:01:02 +0000 Subject: [PATCH 158/182] Add async error listener to transformer to avoid exception wrapping. This internal listener avoids wrapping the TransformationExceptions in PlaybackExceptions that are handled via the Player.Listener and is also used for FrameProcessingExceptions which already avoided the PlaybackException layer previously. This listener will also be useful in follow-ups for encoder-related TransformationExceptions that are thrown in the SurfaceProvider that will be called on the GL thread. PiperOrigin-RevId: 452074575 --- .../media3/transformer/Transformer.java | 45 ++++++++++++------- .../transformer/TransformerAudioRenderer.java | 9 +++- .../transformer/TransformerBaseRenderer.java | 44 ++++++------------ .../transformer/TransformerVideoRenderer.java | 17 ++++--- 4 files changed, 62 insertions(+), 53 deletions(-) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java index 94fa717381d..db03b0e0ee6 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java @@ -763,7 +763,7 @@ private void startTransformation(MediaItem mediaItem, Muxer muxer) { encoderFactory, decoderFactory, new FallbackListener(mediaItem, listeners, transformationRequest), - playerListener, + /* asyncErrorListener= */ playerListener, debugViewProvider)) .setMediaSourceFactory(mediaSourceFactory) .setTrackSelector(trackSelector) @@ -877,7 +877,7 @@ private static final class TransformerRenderersFactory implements RenderersFacto private final Codec.EncoderFactory encoderFactory; private final Codec.DecoderFactory decoderFactory; private final FallbackListener fallbackListener; - private final FrameProcessorChain.Listener frameProcessorChainListener; + private final AsyncErrorListener asyncErrorListener; private final Transformer.DebugViewProvider debugViewProvider; public TransformerRenderersFactory( @@ -891,7 +891,7 @@ public TransformerRenderersFactory( Codec.EncoderFactory encoderFactory, Codec.DecoderFactory decoderFactory, FallbackListener fallbackListener, - FrameProcessorChain.Listener frameProcessorChainListener, + AsyncErrorListener asyncErrorListener, Transformer.DebugViewProvider debugViewProvider) { this.context = context; this.muxerWrapper = muxerWrapper; @@ -903,7 +903,7 @@ public TransformerRenderersFactory( this.encoderFactory = encoderFactory; this.decoderFactory = decoderFactory; this.fallbackListener = fallbackListener; - this.frameProcessorChainListener = frameProcessorChainListener; + this.asyncErrorListener = asyncErrorListener; this.debugViewProvider = debugViewProvider; mediaClock = new TransformerMediaClock(); } @@ -926,6 +926,7 @@ public Renderer[] createRenderers( transformationRequest, encoderFactory, decoderFactory, + asyncErrorListener, fallbackListener); index++; } @@ -940,8 +941,8 @@ public Renderer[] createRenderers( videoFrameEffects, encoderFactory, decoderFactory, + asyncErrorListener, fallbackListener, - frameProcessorChainListener, debugViewProvider); index++; } @@ -949,8 +950,7 @@ public Renderer[] createRenderers( } } - private final class TransformerPlayerListener - implements Player.Listener, FrameProcessorChain.Listener { + private final class TransformerPlayerListener implements Player.Listener, AsyncErrorListener { private final MediaItem mediaItem; private final MuxerWrapper muxerWrapper; @@ -1001,11 +1001,12 @@ public void onTracksChanged(Tracks tracks) { @Override public void onPlayerError(PlaybackException error) { - @Nullable Throwable cause = error.getCause(); TransformationException transformationException = - cause instanceof TransformationException - ? (TransformationException) cause - : TransformationException.createForPlaybackException(error); + TransformationException.createForPlaybackException(error); + handleTransformationException(transformationException); + } + + private void handleTransformationException(TransformationException transformationException) { if (isCancelling) { // Resources are already being released. listeners.queueEvent( @@ -1057,12 +1058,22 @@ private void handleTransformationEnded(@Nullable TransformationException excepti } @Override - public void onFrameProcessingError(FrameProcessingException exception) { - handler.post( - () -> - handleTransformationEnded( - TransformationException.createForFrameProcessorChain( - exception, TransformationException.ERROR_CODE_GL_PROCESSING_FAILED))); + public void onTransformationException(TransformationException exception) { + if (Looper.myLooper() == looper) { + handleTransformationException(exception); + } else { + handler.post(() -> handleTransformationException(exception)); + } } } + + /** Listener for exceptions that occur during a transformation. */ + /* package */ interface AsyncErrorListener { + /** + * Called when a {@link TransformationException} occurs. + * + *

    Can be called from any thread. + */ + void onTransformationException(TransformationException exception); + } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java index 8180b199cd0..b7bad84ae56 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java @@ -42,8 +42,15 @@ public TransformerAudioRenderer( TransformationRequest transformationRequest, Codec.EncoderFactory encoderFactory, Codec.DecoderFactory decoderFactory, + Transformer.AsyncErrorListener asyncErrorListener, FallbackListener fallbackListener) { - super(C.TRACK_TYPE_AUDIO, muxerWrapper, mediaClock, transformationRequest, fallbackListener); + super( + C.TRACK_TYPE_AUDIO, + muxerWrapper, + mediaClock, + transformationRequest, + asyncErrorListener, + fallbackListener); this.encoderFactory = encoderFactory; this.decoderFactory = decoderFactory; decoderInputBuffer = diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerBaseRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerBaseRenderer.java index b1da9c5ca3d..4cde06566b1 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerBaseRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerBaseRenderer.java @@ -22,10 +22,8 @@ import androidx.media3.common.C; import androidx.media3.common.Format; import androidx.media3.common.MimeTypes; -import androidx.media3.common.PlaybackException; import androidx.media3.decoder.DecoderInputBuffer; import androidx.media3.exoplayer.BaseRenderer; -import androidx.media3.exoplayer.ExoPlaybackException; import androidx.media3.exoplayer.MediaClock; import androidx.media3.exoplayer.RendererCapabilities; import androidx.media3.exoplayer.source.SampleStream.ReadDataResult; @@ -39,11 +37,12 @@ protected final MuxerWrapper muxerWrapper; protected final TransformerMediaClock mediaClock; protected final TransformationRequest transformationRequest; + protected final Transformer.AsyncErrorListener asyncErrorListener; protected final FallbackListener fallbackListener; - protected boolean isRendererStarted; - protected boolean muxerWrapperTrackAdded; - protected boolean muxerWrapperTrackEnded; + private boolean isTransformationRunning; + private boolean muxerWrapperTrackAdded; + private boolean muxerWrapperTrackEnded; protected long streamOffsetUs; protected long streamStartPositionUs; protected @MonotonicNonNull SamplePipeline samplePipeline; @@ -53,11 +52,13 @@ public TransformerBaseRenderer( MuxerWrapper muxerWrapper, TransformerMediaClock mediaClock, TransformationRequest transformationRequest, + Transformer.AsyncErrorListener asyncErrorListener, FallbackListener fallbackListener) { super(trackType); this.muxerWrapper = muxerWrapper; this.mediaClock = mediaClock; this.transformationRequest = transformationRequest; + this.asyncErrorListener = asyncErrorListener; this.fallbackListener = fallbackListener; } @@ -91,17 +92,19 @@ public final boolean isEnded() { } @Override - public final void render(long positionUs, long elapsedRealtimeUs) throws ExoPlaybackException { + public final void render(long positionUs, long elapsedRealtimeUs) { try { - if (!isRendererStarted || isEnded() || !ensureConfigured()) { + if (!isTransformationRunning || isEnded() || !ensureConfigured()) { return; } while (feedMuxerFromPipeline() || samplePipeline.processData() || feedPipelineFromInput()) {} } catch (TransformationException e) { - throw wrapTransformationException(e); + isTransformationRunning = false; + asyncErrorListener.onTransformationException(e); } catch (Muxer.MuxerException e) { - throw wrapTransformationException( + isTransformationRunning = false; + asyncErrorListener.onTransformationException( TransformationException.createForMuxer( e, TransformationException.ERROR_CODE_MUXING_FAILED)); } @@ -122,12 +125,12 @@ protected final void onEnabled(boolean joining, boolean mayRenderStartOfStream) @Override protected final void onStarted() { - isRendererStarted = true; + isTransformationRunning = true; } @Override protected final void onStopped() { - isRendererStarted = false; + isTransformationRunning = false; } @Override @@ -225,23 +228,4 @@ private boolean feedPipelineFromInput() throws TransformationException { return false; } } - - /** - * Returns an {@link ExoPlaybackException} wrapping the {@link TransformationException}. - * - *

    This temporary wrapping is needed due to the dependence on ExoPlayer's BaseRenderer. {@link - * Transformer} extracts the {@link TransformationException} from this {@link - * ExoPlaybackException} again. - */ - private ExoPlaybackException wrapTransformationException( - TransformationException transformationException) { - return ExoPlaybackException.createForRenderer( - transformationException, - "Transformer", - getIndex(), - /* rendererFormat= */ null, - C.FORMAT_HANDLED, - /* isRecoverable= */ false, - PlaybackException.ERROR_CODE_UNSPECIFIED); - } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java index 086f0bfc17c..6ea492fcb94 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java @@ -39,7 +39,6 @@ private final ImmutableList effects; private final Codec.EncoderFactory encoderFactory; private final Codec.DecoderFactory decoderFactory; - private final FrameProcessorChain.Listener frameProcessorChainListener; private final Transformer.DebugViewProvider debugViewProvider; private final DecoderInputBuffer decoderInputBuffer; @@ -54,16 +53,21 @@ public TransformerVideoRenderer( ImmutableList effects, Codec.EncoderFactory encoderFactory, Codec.DecoderFactory decoderFactory, + Transformer.AsyncErrorListener asyncErrorListener, FallbackListener fallbackListener, - FrameProcessorChain.Listener frameProcessorChainListener, Transformer.DebugViewProvider debugViewProvider) { - super(C.TRACK_TYPE_VIDEO, muxerWrapper, mediaClock, transformationRequest, fallbackListener); + super( + C.TRACK_TYPE_VIDEO, + muxerWrapper, + mediaClock, + transformationRequest, + asyncErrorListener, + fallbackListener); this.context = context; this.clippingStartsAtKeyFrame = clippingStartsAtKeyFrame; this.effects = effects; this.encoderFactory = encoderFactory; this.decoderFactory = decoderFactory; - this.frameProcessorChainListener = frameProcessorChainListener; this.debugViewProvider = debugViewProvider; decoderInputBuffer = new DecoderInputBuffer(DecoderInputBuffer.BUFFER_REPLACEMENT_MODE_DISABLED); @@ -102,7 +106,10 @@ protected boolean ensureConfigured() throws TransformationException { encoderFactory, muxerWrapper.getSupportedSampleMimeTypes(getTrackType()), fallbackListener, - frameProcessorChainListener, + /* frameProcessorChainListener= */ exception -> + asyncErrorListener.onTransformationException( + TransformationException.createForFrameProcessorChain( + exception, TransformationException.ERROR_CODE_GL_PROCESSING_FAILED)), debugViewProvider); } if (transformationRequest.flattenForSlowMotion) { From 39674bec78d45baa550df6807e4d49faf42dc25a Mon Sep 17 00:00:00 2001 From: ibaker Date: Tue, 31 May 2022 19:12:32 +0000 Subject: [PATCH 159/182] Fix `HiddenTypedefConstant` Metalava error on `PlaybackException` This is done by removing the `@FieldNumber` IntDef completely. It's not really adding much value anyway, because it's `open` so there's no real enforcement to prevent passing 'incorrect' values. #minor-release PiperOrigin-RevId: 452108972 --- .../media3/common/PlaybackException.java | 33 ++++--------------- 1 file changed, 7 insertions(+), 26 deletions(-) diff --git a/libraries/common/src/main/java/androidx/media3/common/PlaybackException.java b/libraries/common/src/main/java/androidx/media3/common/PlaybackException.java index 4e7850de45d..2bcc6746313 100644 --- a/libraries/common/src/main/java/androidx/media3/common/PlaybackException.java +++ b/libraries/common/src/main/java/androidx/media3/common/PlaybackException.java @@ -401,28 +401,6 @@ public boolean errorInfoEquals(@Nullable PlaybackException other) { // Bundleable implementation. - /** - * Identifiers for fields in a {@link Bundle} which represents a playback exception. Subclasses - * may use {@link #FIELD_CUSTOM_ID_BASE} to generate more keys using {@link #keyForField(int)}. - * - *

    Note: Changes to the Bundleable implementation must be backwards compatible, so as to avoid - * breaking communication across different Bundleable implementation versions. - */ - @Documented - @Retention(RetentionPolicy.SOURCE) - @Target(TYPE_USE) - @IntDef( - open = true, - value = { - FIELD_INT_ERROR_CODE, - FIELD_LONG_TIMESTAMP_MS, - FIELD_STRING_MESSAGE, - FIELD_STRING_CAUSE_CLASS_NAME, - FIELD_STRING_CAUSE_MESSAGE, - }) - @UnstableApi - protected @interface FieldNumber {} - private static final int FIELD_INT_ERROR_CODE = 0; private static final int FIELD_LONG_TIMESTAMP_MS = 1; private static final int FIELD_STRING_MESSAGE = 2; @@ -430,7 +408,7 @@ public boolean errorInfoEquals(@Nullable PlaybackException other) { private static final int FIELD_STRING_CAUSE_MESSAGE = 4; /** - * Defines a minimum field id value for subclasses to use when implementing {@link #toBundle()} + * Defines a minimum field ID value for subclasses to use when implementing {@link #toBundle()} * and {@link Bundleable.Creator}. * *

    Subclasses should obtain their {@link Bundle Bundle's} field keys by applying a non-negative @@ -458,11 +436,14 @@ public Bundle toBundle() { } /** - * Converts the given {@link FieldNumber} to a string which can be used as a field key when - * implementing {@link #toBundle()} and {@link Bundleable.Creator}. + * Converts the given field number to a string which can be used as a field key when implementing + * {@link #toBundle()} and {@link Bundleable.Creator}. + * + *

    Subclasses should use {@code field} values greater than or equal to {@link + * #FIELD_CUSTOM_ID_BASE}. */ @UnstableApi - protected static String keyForField(@FieldNumber int field) { + protected static String keyForField(int field) { return Integer.toString(field, Character.MAX_RADIX); } From bd9bc0f6b7349cf2c1477a6d7e3146555c3ead86 Mon Sep 17 00:00:00 2001 From: bachinger Date: Wed, 1 Jun 2022 13:30:18 +0000 Subject: [PATCH 160/182] Filter bogus AndroidX Media jar file when creating javadoc #minor-release PiperOrigin-RevId: 452282128 --- javadoc_combined.gradle | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/javadoc_combined.gradle b/javadoc_combined.gradle index a1211693393..0b37687b410 100644 --- a/javadoc_combined.gradle +++ b/javadoc_combined.gradle @@ -48,9 +48,21 @@ class CombinedJavadocPlugin implements Plugin { libraryModule.android.libraryVariants.all { variant -> def name = variant.buildType.name if (name == "release") { + // Works around b/234569640 that causes different versions of the androidx.media + // jar to be on the classpath. + def allJarFiles = [] + allJarFiles.addAll(variant.javaCompileProvider.get().classpath.files) + def filteredJarFiles = allJarFiles.findAll { file -> + if (file ==~ /.*media-.\..\..-api.jar$/ + && !file.path.endsWith( + "media-" + project.ext.androidxMediaVersion + "-api.jar")) { + return false; + } + return true; + } classpath += libraryModule.project.files( - variant.javaCompileProvider.get().classpath.files, + filteredJarFiles, libraryModule.project.android.getBootClasspath()) } } From 63436390de55741620ab3faccbbc504af24c2686 Mon Sep 17 00:00:00 2001 From: hschlueter Date: Mon, 6 Jun 2022 10:18:26 +0000 Subject: [PATCH 161/182] Add interface for async texture processors. Implementations of this interface will be able to drop or add frames, change timestamps, accept multiple input frames before producing output, and process frames on their own background thread. A default implementation of this interface will be added to SingleFrameGlTextureProcessor in a follow-up. PiperOrigin-RevId: 453159835 --- .../transformer/GlTextureProcessor.java | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 libraries/transformer/src/main/java/androidx/media3/transformer/GlTextureProcessor.java diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/GlTextureProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/GlTextureProcessor.java new file mode 100644 index 00000000000..3aae70d2805 --- /dev/null +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/GlTextureProcessor.java @@ -0,0 +1,118 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package androidx.media3.transformer; + +import androidx.media3.common.util.UnstableApi; + +/** + * Processes frames from one OpenGL 2D texture to another. + * + *

    The {@code GlTextureProcessor} consumes input frames it accepts via {@link + * #maybeQueueInputFrame(TextureInfo, long)} and surrenders each texture back to the caller via its + * {@linkplain Listener#onInputFrameProcessed(TextureInfo) listener} once the texture's contents + * have been processed. + * + *

    The {@code GlTextureProcessor} produces output frames asynchronously and notifies its owner + * when they are available via its {@linkplain Listener#onOutputFrameAvailable(TextureInfo, long) + * listener}. The {@code GlTextureProcessor} instance's owner must surrender the texture back to the + * {@code GlTextureProcessor} via {@link #releaseOutputFrame(TextureInfo)} when it has finished + * processing it. + * + *

    {@code GlTextureProcessor} implementations can choose to produce output frames before + * receiving input frames or process several input frames before producing an output frame. However, + * {@code GlTextureProcessor} implementations cannot assume that they will receive more than one + * input frame at a time, so they must process each input frame they accept even if they cannot + * produce output yet. + * + *

    The methods in this interface must be called on the thread that owns the parent OpenGL + * context. If the implementation uses another OpenGL context, e.g., on another thread, it must + * configure it to share data with the context of thread the interface methods are called on. + */ +@UnstableApi +public interface GlTextureProcessor { + + /** + * Listener for frame processing events. + * + *

    This listener can be called from any thread. + */ + interface Listener { + /** + * Called when the {@link GlTextureProcessor} has processed an input frame. + * + * @param inputTexture The {@link TextureInfo} that was used to {@linkplain + * #maybeQueueInputFrame(TextureInfo, long) queue} the input frame. + */ + void onInputFrameProcessed(TextureInfo inputTexture); + + /** + * Called when the {@link GlTextureProcessor} has produced an output frame. + * + *

    After the listener's owner has processed the output frame, it must call {@link + * #releaseOutputFrame(TextureInfo)}. The output frame should be released as soon as possible, + * as there is no guarantee that the {@link GlTextureProcessor} will produce further output + * frames before this output frame is released. + * + * @param outputTexture A {@link TextureInfo} describing the texture containing the output + * frame. + * @param presentationTimeUs The presentation timestamp of the output frame, in microseconds. + */ + void onOutputFrameAvailable(TextureInfo outputTexture, long presentationTimeUs); + + /** Called when the {@link GlTextureProcessor} will not produce further output frames. */ + void onOutputStreamEnded(); + + /** + * Called when an exception occurs during asynchronous frame processing. + * + *

    If an error occurred, consuming and producing further frames will not work as expected and + * the {@link GlTextureProcessor} should be released. + */ + void onFrameProcessingError(FrameProcessingException e); + } + + /** Sets the {@link Listener} for frame processing events. */ + void setListener(Listener listener); + + /** + * Processes an input frame if possible. + * + *

    If this method returns {@code true} the input frame has been accepted. The {@code + * GlTextureProcessor} owns the accepted frame until it calls {@link + * Listener#onInputFrameProcessed(TextureInfo)}. The caller should not overwrite or release the + * texture before the {@code GlTextureProcessor} has finished processing it. + * + *

    If this method returns {@code false}, the input frame could not be accepted and the caller + * should decide whether to drop the frame or try again later. + * + * @param inputTexture A {@link TextureInfo} describing the texture containing the input frame. + * @param presentationTimeUs The presentation timestamp of the input frame, in microseconds. + * @return Whether the frame was accepted. + */ + boolean maybeQueueInputFrame(TextureInfo inputTexture, long presentationTimeUs); + + /** + * Notifies the texture processor that the frame on the given output texture is no longer used and + * can be overwritten. + */ + void releaseOutputFrame(TextureInfo outputTexture); + + /** Notifies the texture processor that no further input frames will become available. */ + void signalEndOfInputStream(); + + /** Releases all resources. */ + void release(); +} From 34ca3bc3c3b52b8dcfc531de76bc0b34f7a89c8c Mon Sep 17 00:00:00 2001 From: christosts Date: Mon, 6 Jun 2022 10:42:08 +0000 Subject: [PATCH 162/182] De-flake test in MediaSessionPermissionTest This change makes MediaSessionPermissionTest.removeMediaItems() non-flaky. This is a quick fix though it'd be good to refactor this test file. PiperOrigin-RevId: 453162764 --- .../session/MediaSessionPermissionTest.java | 42 ++++++++++++------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java index 4267345a601..0402c9f05b4 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java @@ -39,6 +39,7 @@ import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; +import androidx.media3.common.MediaItem; import androidx.media3.common.MediaMetadata; import androidx.media3.common.Player; import androidx.media3.common.Rating; @@ -51,6 +52,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.truth.os.BundleSubject; import androidx.test.filters.LargeTest; +import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import java.util.Collections; @@ -151,10 +153,8 @@ public void addMediaItems() throws Exception { public void removeMediaItems() throws Exception { testOnCommandRequest( COMMAND_CHANGE_MEDIA_ITEMS, - controller -> { - controller.addMediaItems(MediaTestUtils.createMediaItems(/* size= */ 5)); - controller.removeMediaItems(/* fromIndex= */ 0, /* toIndex= */ 1); - }); + /* mediaItems= */ MediaTestUtils.createMediaItems(/* size= */ 5), + controller -> controller.removeMediaItems(/* fromIndex= */ 0, /* toIndex= */ 1)); } @Test @@ -180,7 +180,7 @@ public void setDeviceMuted() throws Exception { @Test public void setMediaUri() throws Exception { Uri uri = Uri.parse("media://uri"); - createSessionWithAvailableCommands( + createSession( createSessionCommandsWith(new SessionCommand(COMMAND_CODE_SESSION_SET_MEDIA_URI)), Player.Commands.EMPTY); controllerTestRule @@ -192,7 +192,7 @@ public void setMediaUri() throws Exception { assertThat(callback.uri).isEqualTo(uri); BundleSubject.assertThat(callback.extras).isEmpty(); - createSessionWithAvailableCommands( + createSession( createSessionCommandsWith(new SessionCommand(COMMAND_CODE_SESSION_SET_RATING)), Player.Commands.EMPTY); controllerTestRule @@ -206,7 +206,7 @@ public void setMediaUri() throws Exception { public void setRating() throws Exception { String mediaId = "testSetRating"; Rating rating = new StarRating(5, 3.5f); - createSessionWithAvailableCommands( + createSession( createSessionCommandsWith(new SessionCommand(COMMAND_CODE_SESSION_SET_RATING)), Player.Commands.EMPTY); controllerTestRule.createRemoteController(session.getToken()).setRating(mediaId, rating); @@ -216,7 +216,7 @@ public void setRating() throws Exception { assertThat(callback.mediaId).isEqualTo(mediaId); assertThat(callback.rating).isEqualTo(rating); - createSessionWithAvailableCommands( + createSession( createSessionCommandsWith(new SessionCommand(COMMAND_CODE_SESSION_SET_MEDIA_URI)), Player.Commands.EMPTY); controllerTestRule.createRemoteController(session.getToken()).setRating(mediaId, rating); @@ -228,7 +228,7 @@ public void setRating() throws Exception { public void changingPermissionForSessionCommandWithSetAvailableCommands() throws Exception { String mediaId = "testSetRating"; Rating rating = new StarRating(5, 3.5f); - createSessionWithAvailableCommands( + createSession( createSessionCommandsWith(new SessionCommand(COMMAND_CODE_SESSION_SET_RATING)), Player.Commands.EMPTY); RemoteMediaController controller = @@ -256,7 +256,7 @@ public void changingPermissionForPlayerCommandWithSetAvailableCommands() throws Player.Commands commandsWithoutPlayPause = createPlayerCommandsWithout(playPauseCommand); // Create session with play/pause command. - createSessionWithAvailableCommands(SessionCommands.EMPTY, commandsWithPlayPause); + createSession(SessionCommands.EMPTY, commandsWithPlayPause); // Create player with play/pause command. player.commands = commandsWithPlayPause; player.notifyAvailableCommandsChanged(commandsWithPlayPause); @@ -363,12 +363,19 @@ public ListenableFuture onSetRating( } } - private void createSessionWithAvailableCommands( - SessionCommands sessionCommands, Player.Commands playerCommands) { + private void createSession(SessionCommands sessionCommands, Player.Commands playerCommands) { + createSession(sessionCommands, playerCommands, /* mediaItems= */ ImmutableList.of()); + } + + private void createSession( + SessionCommands sessionCommands, Player.Commands playerCommands, List mediaItems) { player = new MockPlayer.Builder() .setApplicationLooper(threadTestRule.getHandler().getLooper()) .build(); + // Add media items directly on the mock player's list so that the player's interaction state + // does not change. + player.mediaItems.addAll(mediaItems); callback = new MySessionCallback() { @Override @@ -392,16 +399,19 @@ private SessionCommands createSessionCommandsWith(SessionCommand command) { } private void testOnCommandRequest(int commandCode, PermissionTestTask runnable) throws Exception { - createSessionWithAvailableCommands( - SessionCommands.EMPTY, createPlayerCommandsWith(commandCode)); + testOnCommandRequest(commandCode, /* mediaItems= */ ImmutableList.of(), runnable); + } + + private void testOnCommandRequest( + int commandCode, List mediaItems, PermissionTestTask runnable) throws Exception { + createSession(SessionCommands.EMPTY, createPlayerCommandsWith(commandCode), mediaItems); runnable.run(controllerTestRule.createRemoteController(session.getToken())); assertThat(callback.countDownLatch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); assertThat(callback.onCommandRequestCalled).isTrue(); assertThat(callback.command).isEqualTo(commandCode); - createSessionWithAvailableCommands( - SessionCommands.EMPTY, createPlayerCommandsWithout(commandCode)); + createSession(SessionCommands.EMPTY, createPlayerCommandsWithout(commandCode), mediaItems); runnable.run(controllerTestRule.createRemoteController(session.getToken())); assertThat(callback.countDownLatch.await(NO_RESPONSE_TIMEOUT_MS, MILLISECONDS)).isFalse(); From 8d326312fba9ec36264815746c531ea9b28e2c28 Mon Sep 17 00:00:00 2001 From: christosts Date: Mon, 6 Jun 2022 11:35:12 +0000 Subject: [PATCH 163/182] Ignore flaky test PiperOrigin-RevId: 453168843 --- ...MediaControllerCompatCallbackWithMediaSessionCompatTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerCompatCallbackWithMediaSessionCompatTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerCompatCallbackWithMediaSessionCompatTest.java index 551d03b1092..cc506ad562c 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerCompatCallbackWithMediaSessionCompatTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerCompatCallbackWithMediaSessionCompatTest.java @@ -37,6 +37,7 @@ import org.junit.After; import org.junit.Before; import org.junit.ClassRule; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.RuleChain; @@ -84,6 +85,7 @@ public void cleanUp() throws RemoteException { /** Custom actions in the legacy session used for instance by Android Auto and Wear OS. */ @Test + @Ignore("Flaky, see b/235057692") public void setPlaybackState_withCustomActions_onPlaybackStateCompatChangedCalled() throws Exception { MediaSessionCompat.Token sessionToken = session.getSessionToken(); From 247c2d845dbe0887f556fd3d44cdbc4d97f7451a Mon Sep 17 00:00:00 2001 From: ibaker Date: Mon, 6 Jun 2022 16:26:18 +0000 Subject: [PATCH 164/182] Rename `DefaultTrackSelector.ParametersBuilder` to `Parameters.Builder` We generally nest the `Builder` for `Foo` inside `Foo`. In this case, there's already a `DefaultTrackSelector.Parameters.Builder` type visible to a developer, it just happens to be the 'common' `TrackSelectorParameters.Builder`, so using it is a bit weird. For example this code snippet doesn't compile because `DefaultTrackSelector.Parameters.Builder#build()` returns `TrackSelectionParameters`. This CL fixes that problem and the code snippet now compiles. ```java DefaultTrackSelector.Parameters params = new DefaultTrackSelector.Parameters.Builder(context).build() ``` #minor-release PiperOrigin-RevId: 453215702 --- RELEASENOTES.md | 4 + .../media3/common/ForwardingPlayerTest.java | 37 +- .../exoplayer/offline/DownloadHelper.java | 2 +- .../trackselection/DefaultTrackSelector.java | 1169 ++++++++++++----- .../trackselection/TrackSelectionUtil.java | 2 +- .../DefaultTrackSelectorTest.java | 35 +- .../androidx/media3/test/utils/TestUtil.java | 40 + 7 files changed, 946 insertions(+), 343 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index eb53d3d6d11..e59eb25ddb6 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -33,6 +33,10 @@ `Tracks.Group`. `Player.getCurrentTracksInfo` and `Player.Listener.onTracksInfoChanged` have also been renamed to `Player.getCurrentTracks` and `Player.Listener.onTracksChanged`. + * Change `DefaultTrackSelector.buildUponParameters` and + `DefaultTrackSelector.Parameters.buildUpon` to return + `DefaultTrackSelector.Parameters.Builder` instead of the deprecated + `DefaultTrackSelector.ParametersBuilder`. * Video: * Rename `DummySurface` to `PlaceholderSurface`. * Add AV1 support to the `MediaCodecVideoRenderer.getCodecMaxInputSize`. diff --git a/libraries/common/src/test/java/androidx/media3/common/ForwardingPlayerTest.java b/libraries/common/src/test/java/androidx/media3/common/ForwardingPlayerTest.java index 02b6a3e023c..b3c2ccbe3b9 100644 --- a/libraries/common/src/test/java/androidx/media3/common/ForwardingPlayerTest.java +++ b/libraries/common/src/test/java/androidx/media3/common/ForwardingPlayerTest.java @@ -18,22 +18,17 @@ import static androidx.media3.common.Player.EVENT_IS_PLAYING_CHANGED; import static androidx.media3.common.Player.EVENT_MEDIA_ITEM_TRANSITION; import static androidx.media3.common.Player.EVENT_TIMELINE_CHANGED; -import static androidx.media3.common.util.Assertions.checkArgument; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.same; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import androidx.media3.test.utils.StubPlayer; +import androidx.media3.test.utils.TestUtil; import androidx.test.ext.junit.runners.AndroidJUnit4; import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Collections; import java.util.HashSet; import java.util.List; -import java.util.Queue; import java.util.Set; import org.junit.Test; import org.junit.runner.RunWith; @@ -105,7 +100,7 @@ public void onEvents_passesForwardingPlayerAsArgument() { @Test public void forwardingPlayer_overridesAllPlayerMethods() throws Exception { // Check with reflection that ForwardingPlayer overrides all Player methods. - List methods = getPublicMethods(Player.class); + List methods = TestUtil.getPublicMethods(Player.class); for (Method method : methods) { assertThat( ForwardingPlayer.class @@ -119,7 +114,7 @@ public void forwardingPlayer_overridesAllPlayerMethods() throws Exception { public void forwardingListener_overridesAllListenerMethods() throws Exception { // Check with reflection that ForwardingListener overrides all Listener methods. Class forwardingListenerClass = getInnerClass("ForwardingListener"); - List methods = getPublicMethods(Player.Listener.class); + List methods = TestUtil.getPublicMethods(Player.Listener.class); for (Method method : methods) { assertThat( forwardingListenerClass @@ -129,32 +124,6 @@ public void forwardingListener_overridesAllListenerMethods() throws Exception { } } - /** Returns all the public methods of a Java interface. */ - private static List getPublicMethods(Class anInterface) { - checkArgument(anInterface.isInterface()); - // Run a BFS over all extended interfaces to inspect them all. - Queue> interfacesQueue = new ArrayDeque<>(); - interfacesQueue.add(anInterface); - Set> interfaces = new HashSet<>(); - while (!interfacesQueue.isEmpty()) { - Class currentInterface = interfacesQueue.remove(); - if (interfaces.add(currentInterface)) { - Collections.addAll(interfacesQueue, currentInterface.getInterfaces()); - } - } - - List list = new ArrayList<>(); - for (Class currentInterface : interfaces) { - for (Method method : currentInterface.getDeclaredMethods()) { - if (Modifier.isPublic(method.getModifiers())) { - list.add(method); - } - } - } - - return list; - } - private static Class getInnerClass(String className) { for (Class innerClass : ForwardingPlayer.class.getDeclaredClasses()) { if (innerClass.getSimpleName().equals(className)) { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java index df11e0e5893..25f6c981149 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java @@ -746,7 +746,7 @@ public void addTrackSelectionForSingleRenderer( List overrides) { try { assertPreparedWithMedia(); - DefaultTrackSelector.ParametersBuilder builder = trackSelectorParameters.buildUpon(); + DefaultTrackSelector.Parameters.Builder builder = trackSelectorParameters.buildUpon(); for (int i = 0; i < mappedTrackInfos[periodIndex].getRendererCount(); i++) { builder.setRendererDisabled(/* rendererIndex= */ i, /* disabled= */ i != rendererIndex); } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java index 8e45ec3135f..dbed6b4ffb8 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java @@ -102,30 +102,12 @@ public class DefaultTrackSelector extends MappingTrackSelector { /** - * A builder for {@link Parameters}. See the {@link Parameters} documentation for explanations of - * the parameters that can be configured using this builder. + * @deprecated Use {@link Parameters.Builder} instead. */ + @Deprecated public static final class ParametersBuilder extends TrackSelectionParameters.Builder { - // Video - private boolean exceedVideoConstraintsIfNecessary; - private boolean allowVideoMixedMimeTypeAdaptiveness; - private boolean allowVideoNonSeamlessAdaptiveness; - private boolean allowVideoMixedDecoderSupportAdaptiveness; - // Audio - private boolean exceedAudioConstraintsIfNecessary; - private boolean allowAudioMixedMimeTypeAdaptiveness; - private boolean allowAudioMixedSampleRateAdaptiveness; - private boolean allowAudioMixedChannelCountAdaptiveness; - private boolean allowAudioMixedDecoderSupportAdaptiveness; - // General - private boolean exceedRendererCapabilitiesIfNecessary; - private boolean tunnelingEnabled; - private boolean allowMultipleAdaptiveSelections; - // Overrides - private final SparseArray> - selectionOverrides; - private final SparseBooleanArray rendererDisabledFlags; + private final Parameters.Builder delegate; /** * @deprecated {@link Context} constraints will not be set using this constructor. Use {@link @@ -134,10 +116,7 @@ public static final class ParametersBuilder extends TrackSelectionParameters.Bui @Deprecated @SuppressWarnings({"deprecation"}) public ParametersBuilder() { - super(); - selectionOverrides = new SparseArray<>(); - rendererDisabledFlags = new SparseBooleanArray(); - init(); + delegate = new Parameters.Builder(); } /** @@ -146,110 +125,12 @@ public ParametersBuilder() { * @param context Any context. */ public ParametersBuilder(Context context) { - super(context); - selectionOverrides = new SparseArray<>(); - rendererDisabledFlags = new SparseBooleanArray(); - init(); - } - - /** - * @param initialValues The {@link Parameters} from which the initial values of the builder are - * obtained. - */ - private ParametersBuilder(Parameters initialValues) { - super(initialValues); - // Video - exceedVideoConstraintsIfNecessary = initialValues.exceedVideoConstraintsIfNecessary; - allowVideoMixedMimeTypeAdaptiveness = initialValues.allowVideoMixedMimeTypeAdaptiveness; - allowVideoNonSeamlessAdaptiveness = initialValues.allowVideoNonSeamlessAdaptiveness; - allowVideoMixedDecoderSupportAdaptiveness = - initialValues.allowVideoMixedDecoderSupportAdaptiveness; - // Audio - exceedAudioConstraintsIfNecessary = initialValues.exceedAudioConstraintsIfNecessary; - allowAudioMixedMimeTypeAdaptiveness = initialValues.allowAudioMixedMimeTypeAdaptiveness; - allowAudioMixedSampleRateAdaptiveness = initialValues.allowAudioMixedSampleRateAdaptiveness; - allowAudioMixedChannelCountAdaptiveness = - initialValues.allowAudioMixedChannelCountAdaptiveness; - allowAudioMixedDecoderSupportAdaptiveness = - initialValues.allowAudioMixedDecoderSupportAdaptiveness; - // General - exceedRendererCapabilitiesIfNecessary = initialValues.exceedRendererCapabilitiesIfNecessary; - tunnelingEnabled = initialValues.tunnelingEnabled; - allowMultipleAdaptiveSelections = initialValues.allowMultipleAdaptiveSelections; - // Overrides - selectionOverrides = cloneSelectionOverrides(initialValues.selectionOverrides); - rendererDisabledFlags = initialValues.rendererDisabledFlags.clone(); - } - - @SuppressWarnings("method.invocation") // Only setter are invoked. - private ParametersBuilder(Bundle bundle) { - super(bundle); - Parameters defaultValue = Parameters.DEFAULT_WITHOUT_CONTEXT; - // Video - setExceedVideoConstraintsIfNecessary( - bundle.getBoolean( - Parameters.keyForField(Parameters.FIELD_EXCEED_VIDEO_CONSTRAINTS_IF_NECESSARY), - defaultValue.exceedVideoConstraintsIfNecessary)); - setAllowVideoMixedMimeTypeAdaptiveness( - bundle.getBoolean( - Parameters.keyForField(Parameters.FIELD_ALLOW_VIDEO_MIXED_MIME_TYPE_ADAPTIVENESS), - defaultValue.allowVideoMixedMimeTypeAdaptiveness)); - setAllowVideoNonSeamlessAdaptiveness( - bundle.getBoolean( - Parameters.keyForField(Parameters.FIELD_ALLOW_VIDEO_NON_SEAMLESS_ADAPTIVENESS), - defaultValue.allowVideoNonSeamlessAdaptiveness)); - setAllowVideoMixedDecoderSupportAdaptiveness( - bundle.getBoolean( - Parameters.keyForField( - Parameters.FIELD_ALLOW_VIDEO_MIXED_DECODER_SUPPORT_ADAPTIVENESS), - defaultValue.allowVideoMixedDecoderSupportAdaptiveness)); - // Audio - setExceedAudioConstraintsIfNecessary( - bundle.getBoolean( - Parameters.keyForField(Parameters.FIELD_EXCEED_AUDIO_CONSTRAINTS_IF_NCESSARY), - defaultValue.exceedAudioConstraintsIfNecessary)); - setAllowAudioMixedMimeTypeAdaptiveness( - bundle.getBoolean( - Parameters.keyForField(Parameters.FIELD_ALLOW_AUDIO_MIXED_MIME_TYPE_ADAPTIVENESS), - defaultValue.allowAudioMixedMimeTypeAdaptiveness)); - setAllowAudioMixedSampleRateAdaptiveness( - bundle.getBoolean( - Parameters.keyForField(Parameters.FIELD_ALLOW_AUDIO_MIXED_SAMPLE_RATE_ADAPTIVENESS), - defaultValue.allowAudioMixedSampleRateAdaptiveness)); - setAllowAudioMixedChannelCountAdaptiveness( - bundle.getBoolean( - Parameters.keyForField(Parameters.FIELD_ALLOW_AUDIO_MIXED_CHANNEL_COUNT_ADAPTIVENESS), - defaultValue.allowAudioMixedChannelCountAdaptiveness)); - setAllowAudioMixedDecoderSupportAdaptiveness( - bundle.getBoolean( - Parameters.keyForField( - Parameters.FIELD_ALLOW_AUDIO_MIXED_DECODER_SUPPORT_ADAPTIVENESS), - defaultValue.allowAudioMixedDecoderSupportAdaptiveness)); - // General - setExceedRendererCapabilitiesIfNecessary( - bundle.getBoolean( - Parameters.keyForField(Parameters.FIELD_EXCEED_RENDERER_CAPABILITIES_IF_NECESSARY), - defaultValue.exceedRendererCapabilitiesIfNecessary)); - setTunnelingEnabled( - bundle.getBoolean( - Parameters.keyForField(Parameters.FIELD_TUNNELING_ENABLED), - defaultValue.tunnelingEnabled)); - setAllowMultipleAdaptiveSelections( - bundle.getBoolean( - Parameters.keyForField(Parameters.FIELD_ALLOW_MULTIPLE_ADAPTIVE_SELECTIONS), - defaultValue.allowMultipleAdaptiveSelections)); - // Overrides - selectionOverrides = new SparseArray<>(); - setSelectionOverridesFromBundle(bundle); - rendererDisabledFlags = - makeSparseBooleanArrayFromTrueKeys( - bundle.getIntArray( - Parameters.keyForField(Parameters.FIELD_RENDERER_DISABLED_INDICES))); + delegate = new Parameters.Builder(context); } @Override protected ParametersBuilder set(TrackSelectionParameters parameters) { - super.set(parameters); + delegate.set(parameters); return this; } @@ -257,51 +138,51 @@ protected ParametersBuilder set(TrackSelectionParameters parameters) { @Override public DefaultTrackSelector.ParametersBuilder setMaxVideoSizeSd() { - super.setMaxVideoSizeSd(); + delegate.setMaxVideoSizeSd(); return this; } @Override public DefaultTrackSelector.ParametersBuilder clearVideoSizeConstraints() { - super.clearVideoSizeConstraints(); + delegate.clearVideoSizeConstraints(); return this; } @Override public DefaultTrackSelector.ParametersBuilder setMaxVideoSize( int maxVideoWidth, int maxVideoHeight) { - super.setMaxVideoSize(maxVideoWidth, maxVideoHeight); + delegate.setMaxVideoSize(maxVideoWidth, maxVideoHeight); return this; } @Override public DefaultTrackSelector.ParametersBuilder setMaxVideoFrameRate(int maxVideoFrameRate) { - super.setMaxVideoFrameRate(maxVideoFrameRate); + delegate.setMaxVideoFrameRate(maxVideoFrameRate); return this; } @Override public DefaultTrackSelector.ParametersBuilder setMaxVideoBitrate(int maxVideoBitrate) { - super.setMaxVideoBitrate(maxVideoBitrate); + delegate.setMaxVideoBitrate(maxVideoBitrate); return this; } @Override public DefaultTrackSelector.ParametersBuilder setMinVideoSize( int minVideoWidth, int minVideoHeight) { - super.setMinVideoSize(minVideoWidth, minVideoHeight); + delegate.setMinVideoSize(minVideoWidth, minVideoHeight); return this; } @Override public DefaultTrackSelector.ParametersBuilder setMinVideoFrameRate(int minVideoFrameRate) { - super.setMinVideoFrameRate(minVideoFrameRate); + delegate.setMinVideoFrameRate(minVideoFrameRate); return this; } @Override public DefaultTrackSelector.ParametersBuilder setMinVideoBitrate(int minVideoBitrate) { - super.setMinVideoBitrate(minVideoBitrate); + delegate.setMinVideoBitrate(minVideoBitrate); return this; } @@ -315,7 +196,7 @@ public DefaultTrackSelector.ParametersBuilder setMinVideoBitrate(int minVideoBit */ public ParametersBuilder setExceedVideoConstraintsIfNecessary( boolean exceedVideoConstraintsIfNecessary) { - this.exceedVideoConstraintsIfNecessary = exceedVideoConstraintsIfNecessary; + delegate.setExceedVideoConstraintsIfNecessary(exceedVideoConstraintsIfNecessary); return this; } @@ -332,7 +213,7 @@ public ParametersBuilder setExceedVideoConstraintsIfNecessary( */ public ParametersBuilder setAllowVideoMixedMimeTypeAdaptiveness( boolean allowVideoMixedMimeTypeAdaptiveness) { - this.allowVideoMixedMimeTypeAdaptiveness = allowVideoMixedMimeTypeAdaptiveness; + delegate.setAllowVideoMixedMimeTypeAdaptiveness(allowVideoMixedMimeTypeAdaptiveness); return this; } @@ -346,7 +227,7 @@ public ParametersBuilder setAllowVideoMixedMimeTypeAdaptiveness( */ public ParametersBuilder setAllowVideoNonSeamlessAdaptiveness( boolean allowVideoNonSeamlessAdaptiveness) { - this.allowVideoNonSeamlessAdaptiveness = allowVideoNonSeamlessAdaptiveness; + delegate.setAllowVideoNonSeamlessAdaptiveness(allowVideoNonSeamlessAdaptiveness); return this; } @@ -361,46 +242,47 @@ public ParametersBuilder setAllowVideoNonSeamlessAdaptiveness( */ public ParametersBuilder setAllowVideoMixedDecoderSupportAdaptiveness( boolean allowVideoMixedDecoderSupportAdaptiveness) { - this.allowVideoMixedDecoderSupportAdaptiveness = allowVideoMixedDecoderSupportAdaptiveness; + delegate.setAllowVideoMixedDecoderSupportAdaptiveness( + allowVideoMixedDecoderSupportAdaptiveness); return this; } @Override public ParametersBuilder setViewportSizeToPhysicalDisplaySize( Context context, boolean viewportOrientationMayChange) { - super.setViewportSizeToPhysicalDisplaySize(context, viewportOrientationMayChange); + delegate.setViewportSizeToPhysicalDisplaySize(context, viewportOrientationMayChange); return this; } @Override public ParametersBuilder clearViewportSizeConstraints() { - super.clearViewportSizeConstraints(); + delegate.clearViewportSizeConstraints(); return this; } @Override public ParametersBuilder setViewportSize( int viewportWidth, int viewportHeight, boolean viewportOrientationMayChange) { - super.setViewportSize(viewportWidth, viewportHeight, viewportOrientationMayChange); + delegate.setViewportSize(viewportWidth, viewportHeight, viewportOrientationMayChange); return this; } @Override public ParametersBuilder setPreferredVideoMimeType(@Nullable String mimeType) { - super.setPreferredVideoMimeType(mimeType); + delegate.setPreferredVideoMimeType(mimeType); return this; } @Override public ParametersBuilder setPreferredVideoMimeTypes(String... mimeTypes) { - super.setPreferredVideoMimeTypes(mimeTypes); + delegate.setPreferredVideoMimeTypes(mimeTypes); return this; } @Override public DefaultTrackSelector.ParametersBuilder setPreferredVideoRoleFlags( @RoleFlags int preferredVideoRoleFlags) { - super.setPreferredVideoRoleFlags(preferredVideoRoleFlags); + delegate.setPreferredVideoRoleFlags(preferredVideoRoleFlags); return this; } @@ -408,31 +290,31 @@ public DefaultTrackSelector.ParametersBuilder setPreferredVideoRoleFlags( @Override public ParametersBuilder setPreferredAudioLanguage(@Nullable String preferredAudioLanguage) { - super.setPreferredAudioLanguage(preferredAudioLanguage); + delegate.setPreferredAudioLanguage(preferredAudioLanguage); return this; } @Override public ParametersBuilder setPreferredAudioLanguages(String... preferredAudioLanguages) { - super.setPreferredAudioLanguages(preferredAudioLanguages); + delegate.setPreferredAudioLanguages(preferredAudioLanguages); return this; } @Override public ParametersBuilder setPreferredAudioRoleFlags(@C.RoleFlags int preferredAudioRoleFlags) { - super.setPreferredAudioRoleFlags(preferredAudioRoleFlags); + delegate.setPreferredAudioRoleFlags(preferredAudioRoleFlags); return this; } @Override public ParametersBuilder setMaxAudioChannelCount(int maxAudioChannelCount) { - super.setMaxAudioChannelCount(maxAudioChannelCount); + delegate.setMaxAudioChannelCount(maxAudioChannelCount); return this; } @Override public ParametersBuilder setMaxAudioBitrate(int maxAudioBitrate) { - super.setMaxAudioBitrate(maxAudioBitrate); + delegate.setMaxAudioBitrate(maxAudioBitrate); return this; } @@ -446,7 +328,7 @@ public ParametersBuilder setMaxAudioBitrate(int maxAudioBitrate) { */ public ParametersBuilder setExceedAudioConstraintsIfNecessary( boolean exceedAudioConstraintsIfNecessary) { - this.exceedAudioConstraintsIfNecessary = exceedAudioConstraintsIfNecessary; + delegate.setExceedAudioConstraintsIfNecessary(exceedAudioConstraintsIfNecessary); return this; } @@ -461,7 +343,7 @@ public ParametersBuilder setExceedAudioConstraintsIfNecessary( */ public ParametersBuilder setAllowAudioMixedMimeTypeAdaptiveness( boolean allowAudioMixedMimeTypeAdaptiveness) { - this.allowAudioMixedMimeTypeAdaptiveness = allowAudioMixedMimeTypeAdaptiveness; + delegate.setAllowAudioMixedMimeTypeAdaptiveness(allowAudioMixedMimeTypeAdaptiveness); return this; } @@ -476,7 +358,7 @@ public ParametersBuilder setAllowAudioMixedMimeTypeAdaptiveness( */ public ParametersBuilder setAllowAudioMixedSampleRateAdaptiveness( boolean allowAudioMixedSampleRateAdaptiveness) { - this.allowAudioMixedSampleRateAdaptiveness = allowAudioMixedSampleRateAdaptiveness; + delegate.setAllowAudioMixedSampleRateAdaptiveness(allowAudioMixedSampleRateAdaptiveness); return this; } @@ -491,7 +373,7 @@ public ParametersBuilder setAllowAudioMixedSampleRateAdaptiveness( */ public ParametersBuilder setAllowAudioMixedChannelCountAdaptiveness( boolean allowAudioMixedChannelCountAdaptiveness) { - this.allowAudioMixedChannelCountAdaptiveness = allowAudioMixedChannelCountAdaptiveness; + delegate.setAllowAudioMixedChannelCountAdaptiveness(allowAudioMixedChannelCountAdaptiveness); return this; } @@ -506,19 +388,20 @@ public ParametersBuilder setAllowAudioMixedChannelCountAdaptiveness( */ public ParametersBuilder setAllowAudioMixedDecoderSupportAdaptiveness( boolean allowAudioMixedDecoderSupportAdaptiveness) { - this.allowAudioMixedDecoderSupportAdaptiveness = allowAudioMixedDecoderSupportAdaptiveness; + delegate.setAllowAudioMixedDecoderSupportAdaptiveness( + allowAudioMixedDecoderSupportAdaptiveness); return this; } @Override public ParametersBuilder setPreferredAudioMimeType(@Nullable String mimeType) { - super.setPreferredAudioMimeType(mimeType); + delegate.setPreferredAudioMimeType(mimeType); return this; } @Override public ParametersBuilder setPreferredAudioMimeTypes(String... mimeTypes) { - super.setPreferredAudioMimeTypes(mimeTypes); + delegate.setPreferredAudioMimeTypes(mimeTypes); return this; } @@ -527,39 +410,39 @@ public ParametersBuilder setPreferredAudioMimeTypes(String... mimeTypes) { @Override public ParametersBuilder setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings( Context context) { - super.setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings(context); + delegate.setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings(context); return this; } @Override public ParametersBuilder setPreferredTextLanguage(@Nullable String preferredTextLanguage) { - super.setPreferredTextLanguage(preferredTextLanguage); + delegate.setPreferredTextLanguage(preferredTextLanguage); return this; } @Override public ParametersBuilder setPreferredTextLanguages(String... preferredTextLanguages) { - super.setPreferredTextLanguages(preferredTextLanguages); + delegate.setPreferredTextLanguages(preferredTextLanguages); return this; } @Override public ParametersBuilder setPreferredTextRoleFlags(@C.RoleFlags int preferredTextRoleFlags) { - super.setPreferredTextRoleFlags(preferredTextRoleFlags); + delegate.setPreferredTextRoleFlags(preferredTextRoleFlags); return this; } @Override public ParametersBuilder setIgnoredTextSelectionFlags( @C.SelectionFlags int ignoredTextSelectionFlags) { - super.setIgnoredTextSelectionFlags(ignoredTextSelectionFlags); + delegate.setIgnoredTextSelectionFlags(ignoredTextSelectionFlags); return this; } @Override public ParametersBuilder setSelectUndeterminedTextLanguage( boolean selectUndeterminedTextLanguage) { - super.setSelectUndeterminedTextLanguage(selectUndeterminedTextLanguage); + delegate.setSelectUndeterminedTextLanguage(selectUndeterminedTextLanguage); return this; } @@ -569,50 +452,51 @@ public ParametersBuilder setSelectUndeterminedTextLanguage( @Deprecated public ParametersBuilder setDisabledTextTrackSelectionFlags( @C.SelectionFlags int disabledTextTrackSelectionFlags) { - return setIgnoredTextSelectionFlags(disabledTextTrackSelectionFlags); + delegate.setDisabledTextTrackSelectionFlags(disabledTextTrackSelectionFlags); + return this; } // General @Override public ParametersBuilder setForceLowestBitrate(boolean forceLowestBitrate) { - super.setForceLowestBitrate(forceLowestBitrate); + delegate.setForceLowestBitrate(forceLowestBitrate); return this; } @Override public ParametersBuilder setForceHighestSupportedBitrate(boolean forceHighestSupportedBitrate) { - super.setForceHighestSupportedBitrate(forceHighestSupportedBitrate); + delegate.setForceHighestSupportedBitrate(forceHighestSupportedBitrate); return this; } @Override public ParametersBuilder addOverride(TrackSelectionOverride override) { - super.addOverride(override); + delegate.addOverride(override); return this; } @Override public ParametersBuilder clearOverride(TrackGroup trackGroup) { - super.clearOverride(trackGroup); + delegate.clearOverride(trackGroup); return this; } @Override public ParametersBuilder setOverrideForType(TrackSelectionOverride override) { - super.setOverrideForType(override); + delegate.setOverrideForType(override); return this; } @Override public ParametersBuilder clearOverridesOfType(@C.TrackType int trackType) { - super.clearOverridesOfType(trackType); + delegate.clearOverridesOfType(trackType); return this; } @Override public ParametersBuilder clearOverrides() { - super.clearOverrides(); + delegate.clearOverrides(); return this; } @@ -623,13 +507,13 @@ public ParametersBuilder clearOverrides() { @Deprecated @SuppressWarnings("deprecation") public ParametersBuilder setDisabledTrackTypes(Set<@C.TrackType Integer> disabledTrackTypes) { - super.setDisabledTrackTypes(disabledTrackTypes); + delegate.setDisabledTrackTypes(disabledTrackTypes); return this; } @Override public ParametersBuilder setTrackTypeDisabled(@C.TrackType int trackType, boolean disabled) { - super.setTrackTypeDisabled(trackType, disabled); + delegate.setTrackTypeDisabled(trackType, disabled); return this; } @@ -647,7 +531,7 @@ public ParametersBuilder setTrackTypeDisabled(@C.TrackType int trackType, boolea */ public ParametersBuilder setExceedRendererCapabilitiesIfNecessary( boolean exceedRendererCapabilitiesIfNecessary) { - this.exceedRendererCapabilitiesIfNecessary = exceedRendererCapabilitiesIfNecessary; + delegate.setExceedRendererCapabilitiesIfNecessary(exceedRendererCapabilitiesIfNecessary); return this; } @@ -666,7 +550,7 @@ public ParametersBuilder setExceedRendererCapabilitiesIfNecessary( * @return This builder. */ public ParametersBuilder setTunnelingEnabled(boolean tunnelingEnabled) { - this.tunnelingEnabled = tunnelingEnabled; + delegate.setTunnelingEnabled(tunnelingEnabled); return this; } @@ -678,7 +562,7 @@ public ParametersBuilder setTunnelingEnabled(boolean tunnelingEnabled) { */ public ParametersBuilder setAllowMultipleAdaptiveSelections( boolean allowMultipleAdaptiveSelections) { - this.allowMultipleAdaptiveSelections = allowMultipleAdaptiveSelections; + delegate.setAllowMultipleAdaptiveSelections(allowMultipleAdaptiveSelections); return this; } @@ -693,16 +577,7 @@ public ParametersBuilder setAllowMultipleAdaptiveSelections( * @return This builder. */ public final ParametersBuilder setRendererDisabled(int rendererIndex, boolean disabled) { - if (rendererDisabledFlags.get(rendererIndex) == disabled) { - // The disabled flag is unchanged. - return this; - } - // Only true values are placed in the array to make it easier to check for equality. - if (disabled) { - rendererDisabledFlags.put(rendererIndex, true); - } else { - rendererDisabledFlags.delete(rendererIndex); - } + delegate.setRendererDisabled(rendererIndex, disabled); return this; } @@ -733,17 +608,7 @@ public final ParametersBuilder setRendererDisabled(int rendererIndex, boolean di @Deprecated public final ParametersBuilder setSelectionOverride( int rendererIndex, TrackGroupArray groups, @Nullable SelectionOverride override) { - Map overrides = - selectionOverrides.get(rendererIndex); - if (overrides == null) { - overrides = new HashMap<>(); - selectionOverrides.put(rendererIndex, overrides); - } - if (overrides.containsKey(groups) && Util.areEqual(overrides.get(groups), override)) { - // The override is unchanged. - return this; - } - overrides.put(groups, override); + delegate.setSelectionOverride(rendererIndex, groups, override); return this; } @@ -758,16 +623,7 @@ public final ParametersBuilder setSelectionOverride( @Deprecated public final ParametersBuilder clearSelectionOverride( int rendererIndex, TrackGroupArray groups) { - Map overrides = - selectionOverrides.get(rendererIndex); - if (overrides == null || !overrides.containsKey(groups)) { - // Nothing to clear. - return this; - } - overrides.remove(groups); - if (overrides.isEmpty()) { - selectionOverrides.remove(rendererIndex); - } + delegate.clearSelectionOverride(rendererIndex, groups); return this; } @@ -780,13 +636,7 @@ public final ParametersBuilder clearSelectionOverride( */ @Deprecated public final ParametersBuilder clearSelectionOverrides(int rendererIndex) { - Map overrides = - selectionOverrides.get(rendererIndex); - if (overrides == null || overrides.isEmpty()) { - // Nothing to clear. - return this; - } - selectionOverrides.remove(rendererIndex); + delegate.clearSelectionOverrides(rendererIndex); return this; } @@ -798,99 +648,803 @@ public final ParametersBuilder clearSelectionOverrides(int rendererIndex) { */ @Deprecated public final ParametersBuilder clearSelectionOverrides() { - if (selectionOverrides.size() == 0) { - // Nothing to clear. - return this; - } - selectionOverrides.clear(); + delegate.clearSelectionOverrides(); return this; } /** Builds a {@link Parameters} instance with the selected values. */ @Override public Parameters build() { - return new Parameters(this); + return delegate.build(); } + } + + /** + * Extends {@link Parameters} by adding fields that are specific to {@link DefaultTrackSelector}. + */ + public static final class Parameters extends TrackSelectionParameters implements Bundleable { + + /** + * A builder for {@link Parameters}. See the {@link Parameters} documentation for explanations + * of the parameters that can be configured using this builder. + */ + public static final class Builder extends TrackSelectionParameters.Builder { - private void init(ParametersBuilder this) { // Video - exceedVideoConstraintsIfNecessary = true; - allowVideoMixedMimeTypeAdaptiveness = false; - allowVideoNonSeamlessAdaptiveness = true; - allowVideoMixedDecoderSupportAdaptiveness = false; + private boolean exceedVideoConstraintsIfNecessary; + private boolean allowVideoMixedMimeTypeAdaptiveness; + private boolean allowVideoNonSeamlessAdaptiveness; + private boolean allowVideoMixedDecoderSupportAdaptiveness; // Audio - exceedAudioConstraintsIfNecessary = true; - allowAudioMixedMimeTypeAdaptiveness = false; - allowAudioMixedSampleRateAdaptiveness = false; - allowAudioMixedChannelCountAdaptiveness = false; - allowAudioMixedDecoderSupportAdaptiveness = false; + private boolean exceedAudioConstraintsIfNecessary; + private boolean allowAudioMixedMimeTypeAdaptiveness; + private boolean allowAudioMixedSampleRateAdaptiveness; + private boolean allowAudioMixedChannelCountAdaptiveness; + private boolean allowAudioMixedDecoderSupportAdaptiveness; // General - exceedRendererCapabilitiesIfNecessary = true; - tunnelingEnabled = false; - allowMultipleAdaptiveSelections = true; - } + private boolean exceedRendererCapabilitiesIfNecessary; + private boolean tunnelingEnabled; + private boolean allowMultipleAdaptiveSelections; + // Overrides + private final SparseArray> + selectionOverrides; + private final SparseBooleanArray rendererDisabledFlags; + + /** + * @deprecated {@link Context} constraints will not be set using this constructor. Use {@link + * #Builder(Context)} instead. + */ + @Deprecated + @SuppressWarnings({"deprecation"}) + public Builder() { + super(); + selectionOverrides = new SparseArray<>(); + rendererDisabledFlags = new SparseBooleanArray(); + init(); + } - private static SparseArray> - cloneSelectionOverrides( - SparseArray> selectionOverrides) { - SparseArray> clone = - new SparseArray<>(); - for (int i = 0; i < selectionOverrides.size(); i++) { - clone.put(selectionOverrides.keyAt(i), new HashMap<>(selectionOverrides.valueAt(i))); + /** + * Creates a builder with default initial values. + * + * @param context Any context. + */ + public Builder(Context context) { + super(context); + selectionOverrides = new SparseArray<>(); + rendererDisabledFlags = new SparseBooleanArray(); + init(); } - return clone; - } - private void setSelectionOverridesFromBundle(Bundle bundle) { - @Nullable - int[] rendererIndices = - bundle.getIntArray( - Parameters.keyForField(Parameters.FIELD_SELECTION_OVERRIDES_RENDERER_INDICES)); - @Nullable - ArrayList trackGroupArrayBundles = - bundle.getParcelableArrayList( - Parameters.keyForField(Parameters.FIELD_SELECTION_OVERRIDES_TRACK_GROUP_ARRAYS)); - List trackGroupArrays = - trackGroupArrayBundles == null - ? ImmutableList.of() - : BundleableUtil.fromBundleList(TrackGroupArray.CREATOR, trackGroupArrayBundles); - @Nullable - SparseArray selectionOverrideBundles = - bundle.getSparseParcelableArray( - Parameters.keyForField(Parameters.FIELD_SELECTION_OVERRIDES)); - SparseArray selectionOverrides = - selectionOverrideBundles == null - ? new SparseArray<>() - : BundleableUtil.fromBundleSparseArray( - SelectionOverride.CREATOR, selectionOverrideBundles); + /** + * @param initialValues The {@link Parameters} from which the initial values of the builder + * are obtained. + */ + private Builder(Parameters initialValues) { + super(initialValues); + // Video + exceedVideoConstraintsIfNecessary = initialValues.exceedVideoConstraintsIfNecessary; + allowVideoMixedMimeTypeAdaptiveness = initialValues.allowVideoMixedMimeTypeAdaptiveness; + allowVideoNonSeamlessAdaptiveness = initialValues.allowVideoNonSeamlessAdaptiveness; + allowVideoMixedDecoderSupportAdaptiveness = + initialValues.allowVideoMixedDecoderSupportAdaptiveness; + // Audio + exceedAudioConstraintsIfNecessary = initialValues.exceedAudioConstraintsIfNecessary; + allowAudioMixedMimeTypeAdaptiveness = initialValues.allowAudioMixedMimeTypeAdaptiveness; + allowAudioMixedSampleRateAdaptiveness = initialValues.allowAudioMixedSampleRateAdaptiveness; + allowAudioMixedChannelCountAdaptiveness = + initialValues.allowAudioMixedChannelCountAdaptiveness; + allowAudioMixedDecoderSupportAdaptiveness = + initialValues.allowAudioMixedDecoderSupportAdaptiveness; + // General + exceedRendererCapabilitiesIfNecessary = initialValues.exceedRendererCapabilitiesIfNecessary; + tunnelingEnabled = initialValues.tunnelingEnabled; + allowMultipleAdaptiveSelections = initialValues.allowMultipleAdaptiveSelections; + // Overrides + selectionOverrides = cloneSelectionOverrides(initialValues.selectionOverrides); + rendererDisabledFlags = initialValues.rendererDisabledFlags.clone(); + } - if (rendererIndices == null || rendererIndices.length != trackGroupArrays.size()) { - return; // Incorrect format, ignore all overrides. + @SuppressWarnings("method.invocation") // Only setter are invoked. + private Builder(Bundle bundle) { + super(bundle); + Parameters defaultValue = Parameters.DEFAULT_WITHOUT_CONTEXT; + // Video + setExceedVideoConstraintsIfNecessary( + bundle.getBoolean( + Parameters.keyForField(Parameters.FIELD_EXCEED_VIDEO_CONSTRAINTS_IF_NECESSARY), + defaultValue.exceedVideoConstraintsIfNecessary)); + setAllowVideoMixedMimeTypeAdaptiveness( + bundle.getBoolean( + Parameters.keyForField(Parameters.FIELD_ALLOW_VIDEO_MIXED_MIME_TYPE_ADAPTIVENESS), + defaultValue.allowVideoMixedMimeTypeAdaptiveness)); + setAllowVideoNonSeamlessAdaptiveness( + bundle.getBoolean( + Parameters.keyForField(Parameters.FIELD_ALLOW_VIDEO_NON_SEAMLESS_ADAPTIVENESS), + defaultValue.allowVideoNonSeamlessAdaptiveness)); + setAllowVideoMixedDecoderSupportAdaptiveness( + bundle.getBoolean( + Parameters.keyForField( + Parameters.FIELD_ALLOW_VIDEO_MIXED_DECODER_SUPPORT_ADAPTIVENESS), + defaultValue.allowVideoMixedDecoderSupportAdaptiveness)); + // Audio + setExceedAudioConstraintsIfNecessary( + bundle.getBoolean( + Parameters.keyForField(Parameters.FIELD_EXCEED_AUDIO_CONSTRAINTS_IF_NCESSARY), + defaultValue.exceedAudioConstraintsIfNecessary)); + setAllowAudioMixedMimeTypeAdaptiveness( + bundle.getBoolean( + Parameters.keyForField(Parameters.FIELD_ALLOW_AUDIO_MIXED_MIME_TYPE_ADAPTIVENESS), + defaultValue.allowAudioMixedMimeTypeAdaptiveness)); + setAllowAudioMixedSampleRateAdaptiveness( + bundle.getBoolean( + Parameters.keyForField(Parameters.FIELD_ALLOW_AUDIO_MIXED_SAMPLE_RATE_ADAPTIVENESS), + defaultValue.allowAudioMixedSampleRateAdaptiveness)); + setAllowAudioMixedChannelCountAdaptiveness( + bundle.getBoolean( + Parameters.keyForField( + Parameters.FIELD_ALLOW_AUDIO_MIXED_CHANNEL_COUNT_ADAPTIVENESS), + defaultValue.allowAudioMixedChannelCountAdaptiveness)); + setAllowAudioMixedDecoderSupportAdaptiveness( + bundle.getBoolean( + Parameters.keyForField( + Parameters.FIELD_ALLOW_AUDIO_MIXED_DECODER_SUPPORT_ADAPTIVENESS), + defaultValue.allowAudioMixedDecoderSupportAdaptiveness)); + // General + setExceedRendererCapabilitiesIfNecessary( + bundle.getBoolean( + Parameters.keyForField(Parameters.FIELD_EXCEED_RENDERER_CAPABILITIES_IF_NECESSARY), + defaultValue.exceedRendererCapabilitiesIfNecessary)); + setTunnelingEnabled( + bundle.getBoolean( + Parameters.keyForField(Parameters.FIELD_TUNNELING_ENABLED), + defaultValue.tunnelingEnabled)); + setAllowMultipleAdaptiveSelections( + bundle.getBoolean( + Parameters.keyForField(Parameters.FIELD_ALLOW_MULTIPLE_ADAPTIVE_SELECTIONS), + defaultValue.allowMultipleAdaptiveSelections)); + // Overrides + selectionOverrides = new SparseArray<>(); + setSelectionOverridesFromBundle(bundle); + rendererDisabledFlags = + makeSparseBooleanArrayFromTrueKeys( + bundle.getIntArray( + Parameters.keyForField(Parameters.FIELD_RENDERER_DISABLED_INDICES))); } - for (int i = 0; i < rendererIndices.length; i++) { - int rendererIndex = rendererIndices[i]; - TrackGroupArray groups = trackGroupArrays.get(i); - @Nullable SelectionOverride selectionOverride = selectionOverrides.get(i); - setSelectionOverride(rendererIndex, groups, selectionOverride); + + @Override + protected Builder set(TrackSelectionParameters parameters) { + super.set(parameters); + return this; } - } - private SparseBooleanArray makeSparseBooleanArrayFromTrueKeys(@Nullable int[] trueKeys) { - if (trueKeys == null) { - return new SparseBooleanArray(); + // Video + + @Override + public Builder setMaxVideoSizeSd() { + super.setMaxVideoSizeSd(); + return this; } - SparseBooleanArray sparseBooleanArray = new SparseBooleanArray(trueKeys.length); - for (int trueKey : trueKeys) { - sparseBooleanArray.append(trueKey, true); + + @Override + public Builder clearVideoSizeConstraints() { + super.clearVideoSizeConstraints(); + return this; } - return sparseBooleanArray; - } - } - /** - * Extends {@link Parameters} by adding fields that are specific to {@link DefaultTrackSelector}. - */ - public static final class Parameters extends TrackSelectionParameters implements Bundleable { + @Override + public Builder setMaxVideoSize(int maxVideoWidth, int maxVideoHeight) { + super.setMaxVideoSize(maxVideoWidth, maxVideoHeight); + return this; + } + + @Override + public Builder setMaxVideoFrameRate(int maxVideoFrameRate) { + super.setMaxVideoFrameRate(maxVideoFrameRate); + return this; + } + + @Override + public Builder setMaxVideoBitrate(int maxVideoBitrate) { + super.setMaxVideoBitrate(maxVideoBitrate); + return this; + } + + @Override + public Builder setMinVideoSize(int minVideoWidth, int minVideoHeight) { + super.setMinVideoSize(minVideoWidth, minVideoHeight); + return this; + } + + @Override + public Builder setMinVideoFrameRate(int minVideoFrameRate) { + super.setMinVideoFrameRate(minVideoFrameRate); + return this; + } + + @Override + public Builder setMinVideoBitrate(int minVideoBitrate) { + super.setMinVideoBitrate(minVideoBitrate); + return this; + } + + /** + * Sets whether to exceed the {@link #setMaxVideoBitrate}, {@link #setMaxVideoSize(int, int)} + * and {@link #setMaxVideoFrameRate} constraints when no selection can be made otherwise. + * + * @param exceedVideoConstraintsIfNecessary Whether to exceed video constraints when no + * selection can be made otherwise. + * @return This builder. + */ + public Builder setExceedVideoConstraintsIfNecessary( + boolean exceedVideoConstraintsIfNecessary) { + this.exceedVideoConstraintsIfNecessary = exceedVideoConstraintsIfNecessary; + return this; + } + + /** + * Sets whether to allow adaptive video selections containing mixed MIME types. + * + *

    Adaptations between different MIME types may not be completely seamless, in which case + * {@link #setAllowVideoNonSeamlessAdaptiveness(boolean)} also needs to be {@code true} for + * mixed MIME type selections to be made. + * + * @param allowVideoMixedMimeTypeAdaptiveness Whether to allow adaptive video selections + * containing mixed MIME types. + * @return This builder. + */ + public Builder setAllowVideoMixedMimeTypeAdaptiveness( + boolean allowVideoMixedMimeTypeAdaptiveness) { + this.allowVideoMixedMimeTypeAdaptiveness = allowVideoMixedMimeTypeAdaptiveness; + return this; + } + + /** + * Sets whether to allow adaptive video selections where adaptation may not be completely + * seamless. + * + * @param allowVideoNonSeamlessAdaptiveness Whether to allow adaptive video selections where + * adaptation may not be completely seamless. + * @return This builder. + */ + public Builder setAllowVideoNonSeamlessAdaptiveness( + boolean allowVideoNonSeamlessAdaptiveness) { + this.allowVideoNonSeamlessAdaptiveness = allowVideoNonSeamlessAdaptiveness; + return this; + } + + /** + * Sets whether to allow adaptive video selections with mixed levels of {@link + * RendererCapabilities.DecoderSupport} and {@link + * RendererCapabilities.HardwareAccelerationSupport}. + * + * @param allowVideoMixedDecoderSupportAdaptiveness Whether to allow adaptive video selections + * with mixed levels of decoder and hardware acceleration support. + * @return This builder. + */ + public Builder setAllowVideoMixedDecoderSupportAdaptiveness( + boolean allowVideoMixedDecoderSupportAdaptiveness) { + this.allowVideoMixedDecoderSupportAdaptiveness = allowVideoMixedDecoderSupportAdaptiveness; + return this; + } + + @Override + public Builder setViewportSizeToPhysicalDisplaySize( + Context context, boolean viewportOrientationMayChange) { + super.setViewportSizeToPhysicalDisplaySize(context, viewportOrientationMayChange); + return this; + } + + @Override + public Builder clearViewportSizeConstraints() { + super.clearViewportSizeConstraints(); + return this; + } + + @Override + public Builder setViewportSize( + int viewportWidth, int viewportHeight, boolean viewportOrientationMayChange) { + super.setViewportSize(viewportWidth, viewportHeight, viewportOrientationMayChange); + return this; + } + + @Override + public Builder setPreferredVideoMimeType(@Nullable String mimeType) { + super.setPreferredVideoMimeType(mimeType); + return this; + } + + @Override + public Builder setPreferredVideoMimeTypes(String... mimeTypes) { + super.setPreferredVideoMimeTypes(mimeTypes); + return this; + } + + @Override + public Builder setPreferredVideoRoleFlags(@RoleFlags int preferredVideoRoleFlags) { + super.setPreferredVideoRoleFlags(preferredVideoRoleFlags); + return this; + } + + // Audio + + @Override + public Builder setPreferredAudioLanguage(@Nullable String preferredAudioLanguage) { + super.setPreferredAudioLanguage(preferredAudioLanguage); + return this; + } + + @Override + public Builder setPreferredAudioLanguages(String... preferredAudioLanguages) { + super.setPreferredAudioLanguages(preferredAudioLanguages); + return this; + } + + @Override + public Builder setPreferredAudioRoleFlags(@C.RoleFlags int preferredAudioRoleFlags) { + super.setPreferredAudioRoleFlags(preferredAudioRoleFlags); + return this; + } + + @Override + public Builder setMaxAudioChannelCount(int maxAudioChannelCount) { + super.setMaxAudioChannelCount(maxAudioChannelCount); + return this; + } + + @Override + public Builder setMaxAudioBitrate(int maxAudioBitrate) { + super.setMaxAudioBitrate(maxAudioBitrate); + return this; + } + + /** + * Sets whether to exceed the {@link #setMaxAudioChannelCount(int)} and {@link + * #setMaxAudioBitrate(int)} constraints when no selection can be made otherwise. + * + * @param exceedAudioConstraintsIfNecessary Whether to exceed audio constraints when no + * selection can be made otherwise. + * @return This builder. + */ + public Builder setExceedAudioConstraintsIfNecessary( + boolean exceedAudioConstraintsIfNecessary) { + this.exceedAudioConstraintsIfNecessary = exceedAudioConstraintsIfNecessary; + return this; + } + + /** + * Sets whether to allow adaptive audio selections containing mixed MIME types. + * + *

    Adaptations between different MIME types may not be completely seamless. + * + * @param allowAudioMixedMimeTypeAdaptiveness Whether to allow adaptive audio selections + * containing mixed MIME types. + * @return This builder. + */ + public Builder setAllowAudioMixedMimeTypeAdaptiveness( + boolean allowAudioMixedMimeTypeAdaptiveness) { + this.allowAudioMixedMimeTypeAdaptiveness = allowAudioMixedMimeTypeAdaptiveness; + return this; + } + + /** + * Sets whether to allow adaptive audio selections containing mixed sample rates. + * + *

    Adaptations between different sample rates may not be completely seamless. + * + * @param allowAudioMixedSampleRateAdaptiveness Whether to allow adaptive audio selections + * containing mixed sample rates. + * @return This builder. + */ + public Builder setAllowAudioMixedSampleRateAdaptiveness( + boolean allowAudioMixedSampleRateAdaptiveness) { + this.allowAudioMixedSampleRateAdaptiveness = allowAudioMixedSampleRateAdaptiveness; + return this; + } + + /** + * Sets whether to allow adaptive audio selections containing mixed channel counts. + * + *

    Adaptations between different channel counts may not be completely seamless. + * + * @param allowAudioMixedChannelCountAdaptiveness Whether to allow adaptive audio selections + * containing mixed channel counts. + * @return This builder. + */ + public Builder setAllowAudioMixedChannelCountAdaptiveness( + boolean allowAudioMixedChannelCountAdaptiveness) { + this.allowAudioMixedChannelCountAdaptiveness = allowAudioMixedChannelCountAdaptiveness; + return this; + } + + /** + * Sets whether to allow adaptive audio selections with mixed levels of {@link + * RendererCapabilities.DecoderSupport} and {@link + * RendererCapabilities.HardwareAccelerationSupport}. + * + * @param allowAudioMixedDecoderSupportAdaptiveness Whether to allow adaptive audio selections + * with mixed levels of decoder and hardware acceleration support. + * @return This builder. + */ + public Builder setAllowAudioMixedDecoderSupportAdaptiveness( + boolean allowAudioMixedDecoderSupportAdaptiveness) { + this.allowAudioMixedDecoderSupportAdaptiveness = allowAudioMixedDecoderSupportAdaptiveness; + return this; + } + + @Override + public Builder setPreferredAudioMimeType(@Nullable String mimeType) { + super.setPreferredAudioMimeType(mimeType); + return this; + } + + @Override + public Builder setPreferredAudioMimeTypes(String... mimeTypes) { + super.setPreferredAudioMimeTypes(mimeTypes); + return this; + } + + // Text + + @Override + public Builder setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings( + Context context) { + super.setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings(context); + return this; + } + + @Override + public Builder setPreferredTextLanguage(@Nullable String preferredTextLanguage) { + super.setPreferredTextLanguage(preferredTextLanguage); + return this; + } + + @Override + public Builder setPreferredTextLanguages(String... preferredTextLanguages) { + super.setPreferredTextLanguages(preferredTextLanguages); + return this; + } + + @Override + public Builder setPreferredTextRoleFlags(@C.RoleFlags int preferredTextRoleFlags) { + super.setPreferredTextRoleFlags(preferredTextRoleFlags); + return this; + } + + @Override + public Builder setIgnoredTextSelectionFlags(@C.SelectionFlags int ignoredTextSelectionFlags) { + super.setIgnoredTextSelectionFlags(ignoredTextSelectionFlags); + return this; + } + + @Override + public Builder setSelectUndeterminedTextLanguage(boolean selectUndeterminedTextLanguage) { + super.setSelectUndeterminedTextLanguage(selectUndeterminedTextLanguage); + return this; + } + + /** + * @deprecated Use {@link #setIgnoredTextSelectionFlags}. + */ + @Deprecated + public Builder setDisabledTextTrackSelectionFlags( + @C.SelectionFlags int disabledTextTrackSelectionFlags) { + return setIgnoredTextSelectionFlags(disabledTextTrackSelectionFlags); + } + + // General + + @Override + public Builder setForceLowestBitrate(boolean forceLowestBitrate) { + super.setForceLowestBitrate(forceLowestBitrate); + return this; + } + + @Override + public Builder setForceHighestSupportedBitrate(boolean forceHighestSupportedBitrate) { + super.setForceHighestSupportedBitrate(forceHighestSupportedBitrate); + return this; + } + + @Override + public Builder addOverride(TrackSelectionOverride override) { + super.addOverride(override); + return this; + } + + @Override + public Builder clearOverride(TrackGroup trackGroup) { + super.clearOverride(trackGroup); + return this; + } + + @Override + public Builder setOverrideForType(TrackSelectionOverride override) { + super.setOverrideForType(override); + return this; + } + + @Override + public Builder clearOverridesOfType(@C.TrackType int trackType) { + super.clearOverridesOfType(trackType); + return this; + } + + @Override + public Builder clearOverrides() { + super.clearOverrides(); + return this; + } + + /** + * @deprecated Use {@link #setTrackTypeDisabled(int, boolean)}. + */ + @Override + @Deprecated + @SuppressWarnings("deprecation") + public Builder setDisabledTrackTypes(Set<@C.TrackType Integer> disabledTrackTypes) { + super.setDisabledTrackTypes(disabledTrackTypes); + return this; + } + + @Override + public Builder setTrackTypeDisabled(@C.TrackType int trackType, boolean disabled) { + super.setTrackTypeDisabled(trackType, disabled); + return this; + } + + /** + * Sets whether to exceed renderer capabilities when no selection can be made otherwise. + * + *

    This parameter applies when all of the tracks available for a renderer exceed the + * renderer's reported capabilities. If the parameter is {@code true} then the lowest quality + * track will still be selected. Playback may succeed if the renderer has under-reported its + * true capabilities. If {@code false} then no track will be selected. + * + * @param exceedRendererCapabilitiesIfNecessary Whether to exceed renderer capabilities when + * no selection can be made otherwise. + * @return This builder. + */ + public Builder setExceedRendererCapabilitiesIfNecessary( + boolean exceedRendererCapabilitiesIfNecessary) { + this.exceedRendererCapabilitiesIfNecessary = exceedRendererCapabilitiesIfNecessary; + return this; + } + + /** + * Sets whether to enable tunneling if possible. Tunneling will only be enabled if it's + * supported by the audio and video renderers for the selected tracks. + * + *

    Tunneling is known to have many device specific issues and limitations. Manual testing + * is strongly recommended to check that the media plays correctly when this option is + * enabled. See [#9661](https://github.com/google/ExoPlayer/issues/9661), + * [#9133](https://github.com/google/ExoPlayer/issues/9133), + * [#9317](https://github.com/google/ExoPlayer/issues/9317), + * [#9502](https://github.com/google/ExoPlayer/issues/9502). + * + * @param tunnelingEnabled Whether to enable tunneling if possible. + * @return This builder. + */ + public Builder setTunnelingEnabled(boolean tunnelingEnabled) { + this.tunnelingEnabled = tunnelingEnabled; + return this; + } + + /** + * Sets whether multiple adaptive selections with more than one track are allowed. + * + * @param allowMultipleAdaptiveSelections Whether multiple adaptive selections are allowed. + * @return This builder. + */ + public Builder setAllowMultipleAdaptiveSelections(boolean allowMultipleAdaptiveSelections) { + this.allowMultipleAdaptiveSelections = allowMultipleAdaptiveSelections; + return this; + } + + // Overrides + + /** + * Sets whether the renderer at the specified index is disabled. Disabling a renderer prevents + * the selector from selecting any tracks for it. + * + * @param rendererIndex The renderer index. + * @param disabled Whether the renderer is disabled. + * @return This builder. + */ + public final Builder setRendererDisabled(int rendererIndex, boolean disabled) { + if (rendererDisabledFlags.get(rendererIndex) == disabled) { + // The disabled flag is unchanged. + return this; + } + // Only true values are placed in the array to make it easier to check for equality. + if (disabled) { + rendererDisabledFlags.put(rendererIndex, true); + } else { + rendererDisabledFlags.delete(rendererIndex); + } + return this; + } + + /** + * Overrides the track selection for the renderer at the specified index. + * + *

    When the {@link TrackGroupArray} mapped to the renderer matches the one provided, the + * override is applied. When the {@link TrackGroupArray} does not match, the override has no + * effect. The override replaces any previous override for the specified {@link + * TrackGroupArray} for the specified {@link Renderer}. + * + *

    Passing a {@code null} override will cause the renderer to be disabled when the {@link + * TrackGroupArray} mapped to it matches the one provided. When the {@link TrackGroupArray} + * does not match a {@code null} override has no effect. Hence a {@code null} override differs + * from disabling the renderer using {@link #setRendererDisabled(int, boolean)} because the + * renderer is disabled conditionally on the {@link TrackGroupArray} mapped to it, where-as + * {@link #setRendererDisabled(int, boolean)} disables the renderer unconditionally. + * + *

    To remove overrides use {@link #clearSelectionOverride(int, TrackGroupArray)}, {@link + * #clearSelectionOverrides(int)} or {@link #clearSelectionOverrides()}. + * + * @param rendererIndex The renderer index. + * @param groups The {@link TrackGroupArray} for which the override should be applied. + * @param override The override. + * @return This builder. + * @deprecated Use {@link + * TrackSelectionParameters.Builder#addOverride(TrackSelectionOverride)}. + */ + @Deprecated + public final Builder setSelectionOverride( + int rendererIndex, TrackGroupArray groups, @Nullable SelectionOverride override) { + Map overrides = + selectionOverrides.get(rendererIndex); + if (overrides == null) { + overrides = new HashMap<>(); + selectionOverrides.put(rendererIndex, overrides); + } + if (overrides.containsKey(groups) && Util.areEqual(overrides.get(groups), override)) { + // The override is unchanged. + return this; + } + overrides.put(groups, override); + return this; + } + + /** + * Clears a track selection override for the specified renderer and {@link TrackGroupArray}. + * + * @param rendererIndex The renderer index. + * @param groups The {@link TrackGroupArray} for which the override should be cleared. + * @return This builder. + * @deprecated Use {@link TrackSelectionParameters.Builder#clearOverride(TrackGroup)}. + */ + @Deprecated + public final Builder clearSelectionOverride(int rendererIndex, TrackGroupArray groups) { + Map overrides = + selectionOverrides.get(rendererIndex); + if (overrides == null || !overrides.containsKey(groups)) { + // Nothing to clear. + return this; + } + overrides.remove(groups); + if (overrides.isEmpty()) { + selectionOverrides.remove(rendererIndex); + } + return this; + } + + /** + * Clears all track selection overrides for the specified renderer. + * + * @param rendererIndex The renderer index. + * @return This builder. + * @deprecated Use {@link TrackSelectionParameters.Builder#clearOverridesOfType(int)}. + */ + @Deprecated + public final Builder clearSelectionOverrides(int rendererIndex) { + Map overrides = + selectionOverrides.get(rendererIndex); + if (overrides == null || overrides.isEmpty()) { + // Nothing to clear. + return this; + } + selectionOverrides.remove(rendererIndex); + return this; + } + + /** + * Clears all track selection overrides for all renderers. + * + * @return This builder. + * @deprecated Use {@link TrackSelectionParameters.Builder#clearOverrides()}. + */ + @Deprecated + public final Builder clearSelectionOverrides() { + if (selectionOverrides.size() == 0) { + // Nothing to clear. + return this; + } + selectionOverrides.clear(); + return this; + } + + /** Builds a {@link Parameters} instance with the selected values. */ + @Override + public Parameters build() { + return new Parameters(this); + } + + private void init(Builder this) { + // Video + exceedVideoConstraintsIfNecessary = true; + allowVideoMixedMimeTypeAdaptiveness = false; + allowVideoNonSeamlessAdaptiveness = true; + allowVideoMixedDecoderSupportAdaptiveness = false; + // Audio + exceedAudioConstraintsIfNecessary = true; + allowAudioMixedMimeTypeAdaptiveness = false; + allowAudioMixedSampleRateAdaptiveness = false; + allowAudioMixedChannelCountAdaptiveness = false; + allowAudioMixedDecoderSupportAdaptiveness = false; + // General + exceedRendererCapabilitiesIfNecessary = true; + tunnelingEnabled = false; + allowMultipleAdaptiveSelections = true; + } + + private static SparseArray> + cloneSelectionOverrides( + SparseArray> + selectionOverrides) { + SparseArray> clone = + new SparseArray<>(); + for (int i = 0; i < selectionOverrides.size(); i++) { + clone.put(selectionOverrides.keyAt(i), new HashMap<>(selectionOverrides.valueAt(i))); + } + return clone; + } + + private void setSelectionOverridesFromBundle(Bundle bundle) { + @Nullable + int[] rendererIndices = + bundle.getIntArray( + Parameters.keyForField(Parameters.FIELD_SELECTION_OVERRIDES_RENDERER_INDICES)); + @Nullable + ArrayList trackGroupArrayBundles = + bundle.getParcelableArrayList( + Parameters.keyForField(Parameters.FIELD_SELECTION_OVERRIDES_TRACK_GROUP_ARRAYS)); + List trackGroupArrays = + trackGroupArrayBundles == null + ? ImmutableList.of() + : BundleableUtil.fromBundleList(TrackGroupArray.CREATOR, trackGroupArrayBundles); + @Nullable + SparseArray selectionOverrideBundles = + bundle.getSparseParcelableArray( + Parameters.keyForField(Parameters.FIELD_SELECTION_OVERRIDES)); + SparseArray selectionOverrides = + selectionOverrideBundles == null + ? new SparseArray<>() + : BundleableUtil.fromBundleSparseArray( + SelectionOverride.CREATOR, selectionOverrideBundles); + + if (rendererIndices == null || rendererIndices.length != trackGroupArrays.size()) { + return; // Incorrect format, ignore all overrides. + } + for (int i = 0; i < rendererIndices.length; i++) { + int rendererIndex = rendererIndices[i]; + TrackGroupArray groups = trackGroupArrays.get(i); + @Nullable SelectionOverride selectionOverride = selectionOverrides.get(i); + setSelectionOverride(rendererIndex, groups, selectionOverride); + } + } + + private SparseBooleanArray makeSparseBooleanArrayFromTrueKeys(@Nullable int[] trueKeys) { + if (trueKeys == null) { + return new SparseBooleanArray(); + } + SparseBooleanArray sparseBooleanArray = new SparseBooleanArray(trueKeys.length); + for (int trueKey : trueKeys) { + sparseBooleanArray.append(trueKey, true); + } + return sparseBooleanArray; + } + } /** * An instance with default values, except those obtained from the {@link Context}. @@ -900,16 +1454,16 @@ public static final class Parameters extends TrackSelectionParameters implements *

    This instance will not have the following settings: * *

      - *
    • {@link ParametersBuilder#setViewportSizeToPhysicalDisplaySize(Context, boolean) - * Viewport constraints} configured for the primary display. - *
    • {@link - * ParametersBuilder#setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings(Context) + *
    • {@linkplain Builder#setViewportSizeToPhysicalDisplaySize(Context, boolean) Viewport + * constraints} configured for the primary display. + *
    • {@linkplain + * Builder#setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings(Context) * Preferred text language and role flags} configured to the accessibility settings of * {@link android.view.accessibility.CaptioningManager}. *
    */ @SuppressWarnings("deprecation") - public static final Parameters DEFAULT_WITHOUT_CONTEXT = new ParametersBuilder().build(); + public static final Parameters DEFAULT_WITHOUT_CONTEXT = new Builder().build(); /** * @deprecated This instance is not configured using {@link Context} constraints. Use {@link * #getDefaults(Context)} instead. @@ -918,7 +1472,7 @@ public static final class Parameters extends TrackSelectionParameters implements /** Returns an instance configured with default values. */ public static Parameters getDefaults(Context context) { - return new ParametersBuilder(context).build(); + return new Parameters.Builder(context).build(); } // Video @@ -1000,7 +1554,7 @@ public static Parameters getDefaults(Context context) { selectionOverrides; private final SparseBooleanArray rendererDisabledFlags; - private Parameters(ParametersBuilder builder) { + private Parameters(Builder builder) { super(builder); // Video exceedVideoConstraintsIfNecessary = builder.exceedVideoConstraintsIfNecessary; @@ -1039,8 +1593,8 @@ public final boolean getRendererDisabled(int rendererIndex) { * @param groups The {@link TrackGroupArray}. * @return Whether there is an override. * @deprecated Only works to retrieve the overrides set with the deprecated {@link - * ParametersBuilder#setSelectionOverride(int, TrackGroupArray, SelectionOverride)}. Use - * {@link TrackSelectionParameters#overrides} instead. + * Builder#setSelectionOverride(int, TrackGroupArray, SelectionOverride)}. Use {@link + * TrackSelectionParameters#overrides} instead. */ @Deprecated public final boolean hasSelectionOverride(int rendererIndex, TrackGroupArray groups) { @@ -1057,8 +1611,8 @@ public final boolean hasSelectionOverride(int rendererIndex, TrackGroupArray gro * @param groups The {@link TrackGroupArray}. * @return The override, or null if no override exists. * @deprecated Only works to retrieve the overrides set with the deprecated {@link - * ParametersBuilder#setSelectionOverride(int, TrackGroupArray, SelectionOverride)}. Use - * {@link TrackSelectionParameters#overrides} instead. + * Builder#setSelectionOverride(int, TrackGroupArray, SelectionOverride)}. Use {@link + * TrackSelectionParameters#overrides} instead. */ @Deprecated @Nullable @@ -1069,10 +1623,10 @@ public final SelectionOverride getSelectionOverride(int rendererIndex, TrackGrou return overrides != null ? overrides.get(groups) : null; } - /** Creates a new {@link ParametersBuilder}, copying the initial values from this instance. */ + /** Creates a new {@link Parameters.Builder}, copying the initial values from this instance. */ @Override - public ParametersBuilder buildUpon() { - return new ParametersBuilder(this); + public Parameters.Builder buildUpon() { + return new Parameters.Builder(this); } @SuppressWarnings("EqualsGetClass") // Class is not final for backward-compatibility reason. @@ -1231,7 +1785,7 @@ public Bundle toBundle() { /** Object that can restore {@code Parameters} from a {@link Bundle}. */ public static final Creator CREATOR = - bundle -> new ParametersBuilder(bundle).build(); + bundle -> new Parameters.Builder(bundle).build(); private static String keyForField(@FieldNumber int field) { return Integer.toString(field, Character.MAX_RADIX); @@ -1539,21 +2093,30 @@ public void setParameters(TrackSelectionParameters parameters) { } // Only add the fields of `TrackSelectionParameters` to `parameters`. Parameters mergedParameters = - new ParametersBuilder(parametersReference.get()).set(parameters).build(); + new Parameters.Builder(parametersReference.get()).set(parameters).build(); setParametersInternal(mergedParameters); } + /** + * @deprecated Use {@link #setParameters(Parameters.Builder)} instead. + */ + @Deprecated + @SuppressWarnings("deprecation") // Allow setting the deprecated builder + public void setParameters(ParametersBuilder parametersBuilder) { + setParametersInternal(parametersBuilder.build()); + } + /** * Atomically sets the provided parameters for track selection. * * @param parametersBuilder A builder from which to obtain the parameters for track selection. */ - public void setParameters(ParametersBuilder parametersBuilder) { + public void setParameters(Parameters.Builder parametersBuilder) { setParametersInternal(parametersBuilder.build()); } - /** Returns a new {@link ParametersBuilder} initialized with the current selection parameters. */ - public ParametersBuilder buildUponParameters() { + /** Returns a new {@link Parameters.Builder} initialized with the current selection parameters. */ + public Parameters.Builder buildUponParameters() { return getParameters().buildUpon(); } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectionUtil.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectionUtil.java index f5581cc8632..6d8e3b49423 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectionUtil.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectionUtil.java @@ -98,7 +98,7 @@ public static DefaultTrackSelector.Parameters updateParametersWithOverride( TrackGroupArray trackGroupArray, boolean isDisabled, @Nullable SelectionOverride override) { - DefaultTrackSelector.ParametersBuilder builder = + DefaultTrackSelector.Parameters.Builder builder = parameters .buildUpon() .clearSelectionOverrides(rendererIndex) diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelectorTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelectorTest.java index a9576fe88db..60d69cdb993 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelectorTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelectorTest.java @@ -41,6 +41,7 @@ import androidx.media3.common.Timeline; import androidx.media3.common.TrackGroup; import androidx.media3.common.TrackSelectionOverride; +import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.Tracks; import androidx.media3.common.util.Util; import androidx.media3.exoplayer.ExoPlaybackException; @@ -50,17 +51,19 @@ import androidx.media3.exoplayer.source.MediaSource.MediaPeriodId; import androidx.media3.exoplayer.source.TrackGroupArray; import androidx.media3.exoplayer.trackselection.DefaultTrackSelector.Parameters; -import androidx.media3.exoplayer.trackselection.DefaultTrackSelector.ParametersBuilder; import androidx.media3.exoplayer.trackselection.DefaultTrackSelector.SelectionOverride; import androidx.media3.exoplayer.trackselection.TrackSelector.InvalidationListener; import androidx.media3.exoplayer.upstream.BandwidthMeter; import androidx.media3.test.utils.FakeTimeline; +import androidx.media3.test.utils.TestUtil; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import java.lang.reflect.Method; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.junit.After; import org.junit.Before; @@ -516,7 +519,7 @@ public void setParameterWithDefaultParametersDoesNotNotifyInvalidationListener() */ @Test public void setParameterWithNonDefaultParameterNotifyInvalidationListener() { - ParametersBuilder builder = defaultParameters.buildUpon().setPreferredAudioLanguage("eng"); + Parameters.Builder builder = defaultParameters.buildUpon().setPreferredAudioLanguage("eng"); trackSelector.setParameters(builder); verify(invalidationListener).onTrackSelectionsInvalidated(); } @@ -528,7 +531,7 @@ public void setParameterWithNonDefaultParameterNotifyInvalidationListener() { */ @Test public void setParameterWithSameParametersDoesNotNotifyInvalidationListenerAgain() { - ParametersBuilder builder = defaultParameters.buildUpon().setPreferredAudioLanguage("eng"); + Parameters.Builder builder = defaultParameters.buildUpon().setPreferredAudioLanguage("eng"); trackSelector.setParameters(builder); trackSelector.setParameters(builder); verify(invalidationListener, times(1)).onTrackSelectionsInvalidated(); @@ -1268,7 +1271,7 @@ public void selectUndeterminedTextLanguageAsFallback() throws ExoPlaybackExcepti result = trackSelector.selectTracks(textRendererCapabilites, trackGroups, periodId, TIMELINE); assertFixedSelection(result.selections[0], trackGroups, undeterminedUnd); - ParametersBuilder builder = defaultParameters.buildUpon().setPreferredTextLanguage("spa"); + Parameters.Builder builder = defaultParameters.buildUpon().setPreferredTextLanguage("spa"); trackSelector.setParameters(builder); result = trackSelector.selectTracks(textRendererCapabilites, trackGroups, periodId, TIMELINE); assertFixedSelection(result.selections[0], trackGroups, spanish); @@ -2264,6 +2267,30 @@ public void roundTripViaBundle_ofSelectionOverride_yieldsEqualInstance() { assertThat(selectionOverrideFromBundle).isEqualTo(selectionOverrideToBundle); } + /** + * The deprecated {@link DefaultTrackSelector.ParametersBuilder} is implemented by delegating to + * an instance of {@link DefaultTrackSelector.Parameters.Builder}. However, it also extends + * {@link TrackSelectionParameters.Builder}, and for the delegation-pattern to work correctly it + * needs to override every setter method from the superclass (otherwise the setter won't be + * propagated to the delegate). This test ensures that invariant. + * + *

    The test can be removed when the deprecated {@link DefaultTrackSelector.ParametersBuilder} + * is removed. + */ + @SuppressWarnings("deprecation") // Testing deprecated builder + @Test + public void deprecatedParametersBuilderOverridesAllTrackSelectionParametersBuilderMethods() + throws Exception { + List methods = TestUtil.getPublicMethods(TrackSelectionParameters.Builder.class); + for (Method method : methods) { + assertThat( + DefaultTrackSelector.ParametersBuilder.class + .getDeclaredMethod(method.getName(), method.getParameterTypes()) + .getDeclaringClass()) + .isEqualTo(DefaultTrackSelector.ParametersBuilder.class); + } + } + private static void assertSelections(TrackSelectorResult result, TrackSelection[] expected) { assertThat(result.length).isEqualTo(expected.length); for (int i = 0; i < expected.length; i++) { diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/TestUtil.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/TestUtil.java index 11a6bf5a8c9..a59377c27dc 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/TestUtil.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/TestUtil.java @@ -25,6 +25,7 @@ import android.graphics.Color; import android.media.MediaCodec; import android.net.Uri; +import androidx.annotation.Nullable; import androidx.media3.common.C; import androidx.media3.common.Timeline; import androidx.media3.common.util.Assertions; @@ -47,9 +48,17 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; import java.nio.ByteBuffer; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; import java.util.List; +import java.util.Queue; import java.util.Random; +import java.util.Set; /** Utility methods for tests. */ @UnstableApi @@ -454,4 +463,35 @@ public static MetadataInputBuffer createMetadataInputBuffer(byte[] data) { buffer.data.flip(); return buffer; } + + /** Returns all the public methods of a Java class (except those defined by {@link Object}). */ + public static List getPublicMethods(Class clazz) { + // Run a BFS over all extended types to inspect them all. + Queue> supertypeQueue = new ArrayDeque<>(); + supertypeQueue.add(clazz); + Set> supertypes = new HashSet<>(); + Object object = new Object(); + while (!supertypeQueue.isEmpty()) { + Class currentSupertype = supertypeQueue.remove(); + if (supertypes.add(currentSupertype)) { + @Nullable Class superclass = currentSupertype.getSuperclass(); + if (superclass != null && !superclass.isInstance(object)) { + supertypeQueue.add(superclass); + } + + Collections.addAll(supertypeQueue, currentSupertype.getInterfaces()); + } + } + + List list = new ArrayList<>(); + for (Class supertype : supertypes) { + for (Method method : supertype.getDeclaredMethods()) { + if (Modifier.isPublic(method.getModifiers())) { + list.add(method); + } + } + } + + return list; + } } From 14ea2e4c5146ed57d51fe4a69f6b29a9f3954115 Mon Sep 17 00:00:00 2001 From: ibaker Date: Tue, 7 Jun 2022 09:18:36 +0000 Subject: [PATCH 165/182] Fix release notes formatting #minor-release PiperOrigin-RevId: 453384451 --- RELEASENOTES.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index e59eb25ddb6..4678b2a8fdf 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -144,6 +144,10 @@ * Data sources: * Rename `DummyDataSource` to `PlaceholderDataSource`. * Workaround OkHttp interrupt handling. +* FFmpeg extension: + * Update CMake version to `3.21.0+` to avoid a CMake bug causing + AndroidStudio's gradle sync to fail + ([#9933](https://github.com/google/ExoPlayer/issues/9933)). * Remove deprecated symbols: * Remove `Player.Listener.onTracksChanged`. Use `Player.Listener.onTracksInfoChanged` instead. @@ -157,10 +161,6 @@ `DEFAULT_TRACK_SELECTOR_PARAMETERS` constants. Use `getDefaultTrackSelectorParameters(Context)` instead when possible, and `DEFAULT_TRACK_SELECTOR_PARAMETERS_WITHOUT_CONTEXT` otherwise. - * FFmpeg extension: - * Update CMake version to `3.21.0+` to avoid a CMake bug causing - AndroidStudio's gradle sync to fail - ([#9933](https://github.com/google/ExoPlayer/issues/9933)). ### 1.0.0-alpha03 (2022-03-14) From 814e43dbb9432e3adf6c4c278df50433260a461b Mon Sep 17 00:00:00 2001 From: ibaker Date: Tue, 7 Jun 2022 09:27:04 +0000 Subject: [PATCH 166/182] Use a shared `keyForField` implementation in track selection parameters The current setup with distinct, private `keyForField` implementations, leaves open the (theoretical) possibility of a clash in the `Bundle` keys used by the superclass and subclass. This change brings consistency with our only other extensible `Bundleable` type (`PlaybackException`). #minor-release PiperOrigin-RevId: 453385875 --- .../common/TrackSelectionParameters.java | 59 +++++---------- .../trackselection/DefaultTrackSelector.java | 72 +++++++------------ 2 files changed, 42 insertions(+), 89 deletions(-) diff --git a/libraries/common/src/main/java/androidx/media3/common/TrackSelectionParameters.java b/libraries/common/src/main/java/androidx/media3/common/TrackSelectionParameters.java index e7c4cbbc503..b7fe8176e3d 100644 --- a/libraries/common/src/main/java/androidx/media3/common/TrackSelectionParameters.java +++ b/libraries/common/src/main/java/androidx/media3/common/TrackSelectionParameters.java @@ -24,7 +24,6 @@ import android.os.Bundle; import android.os.Looper; import android.view.accessibility.CaptioningManager; -import androidx.annotation.IntDef; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.media3.common.util.BundleableUtil; @@ -34,9 +33,6 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.primitives.Ints; -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -1073,42 +1069,6 @@ public int hashCode() { // Bundleable implementation - @Documented - @Retention(RetentionPolicy.SOURCE) - @IntDef({ - // Video - FIELD_MAX_VIDEO_WIDTH, - FIELD_MAX_VIDEO_HEIGHT, - FIELD_MAX_VIDEO_FRAMERATE, - FIELD_MAX_VIDEO_BITRATE, - FIELD_MIN_VIDEO_WIDTH, - FIELD_MIN_VIDEO_HEIGHT, - FIELD_MIN_VIDEO_FRAMERATE, - FIELD_MIN_VIDEO_BITRATE, - FIELD_VIEWPORT_WIDTH, - FIELD_VIEWPORT_HEIGHT, - FIELD_VIEWPORT_ORIENTATION_MAY_CHANGE, - FIELD_PREFERRED_VIDEO_MIMETYPES, - FIELD_PREFERRED_VIDEO_ROLE_FLAGS, - // Audio - FIELD_PREFERRED_AUDIO_LANGUAGES, - FIELD_PREFERRED_AUDIO_ROLE_FLAGS, - FIELD_MAX_AUDIO_CHANNEL_COUNT, - FIELD_MAX_AUDIO_BITRATE, - FIELD_PREFERRED_AUDIO_MIME_TYPES, - // Text - FIELD_PREFERRED_TEXT_LANGUAGES, - FIELD_PREFERRED_TEXT_ROLE_FLAGS, - FIELD_IGNORED_TEXT_SELECTION_FLAGS, - FIELD_SELECT_UNDETERMINED_TEXT_LANGUAGE, - // General - FIELD_FORCE_LOWEST_BITRATE, - FIELD_FORCE_HIGHEST_SUPPORTED_BITRATE, - FIELD_SELECTION_OVERRIDES, - FIELD_DISABLED_TRACK_TYPE, - }) - private @interface FieldNumber {} - private static final int FIELD_PREFERRED_AUDIO_LANGUAGES = 1; private static final int FIELD_PREFERRED_AUDIO_ROLE_FLAGS = 2; private static final int FIELD_PREFERRED_TEXT_LANGUAGES = 3; @@ -1136,6 +1096,15 @@ public int hashCode() { private static final int FIELD_PREFERRED_VIDEO_ROLE_FLAGS = 25; private static final int FIELD_IGNORED_TEXT_SELECTION_FLAGS = 26; + /** + * Defines a minimum field ID value for subclasses to use when implementing {@link #toBundle()} + * and {@link Bundleable.Creator}. + * + *

    Subclasses should obtain keys for their {@link Bundle} representation by applying a + * non-negative offset on this constant and passing the result to {@link #keyForField(int)}. + */ + @UnstableApi protected static final int FIELD_CUSTOM_ID_BASE = 1000; + @Override public Bundle toBundle() { Bundle bundle = new Bundle(); @@ -1197,7 +1166,15 @@ public static TrackSelectionParameters fromBundle(Bundle bundle) { public static final Creator CREATOR = TrackSelectionParameters::fromBundle; - private static String keyForField(@FieldNumber int field) { + /** + * Converts the given field number to a string which can be used as a field key when implementing + * {@link #toBundle()} and {@link Bundleable.Creator}. + * + *

    Subclasses should use {@code field} values greater than or equal to {@link + * #FIELD_CUSTOM_ID_BASE}. + */ + @UnstableApi + protected static String keyForField(int field) { return Integer.toString(field, Character.MAX_RADIX); } } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java index dbed6b4ffb8..c85e40b24a7 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java @@ -1688,50 +1688,30 @@ public int hashCode() { // Bundleable implementation. - @Documented - @Retention(RetentionPolicy.SOURCE) - @Target(TYPE_USE) - @IntDef({ - // Video - FIELD_EXCEED_VIDEO_CONSTRAINTS_IF_NECESSARY, - FIELD_ALLOW_VIDEO_MIXED_MIME_TYPE_ADAPTIVENESS, - FIELD_ALLOW_VIDEO_NON_SEAMLESS_ADAPTIVENESS, - FIELD_ALLOW_VIDEO_MIXED_DECODER_SUPPORT_ADAPTIVENESS, - // Audio - FIELD_EXCEED_AUDIO_CONSTRAINTS_IF_NCESSARY, - FIELD_ALLOW_AUDIO_MIXED_MIME_TYPE_ADAPTIVENESS, - FIELD_ALLOW_AUDIO_MIXED_SAMPLE_RATE_ADAPTIVENESS, - FIELD_ALLOW_AUDIO_MIXED_CHANNEL_COUNT_ADAPTIVENESS, - FIELD_ALLOW_AUDIO_MIXED_DECODER_SUPPORT_ADAPTIVENESS, - // General - FIELD_EXCEED_RENDERER_CAPABILITIES_IF_NECESSARY, - FIELD_TUNNELING_ENABLED, - FIELD_ALLOW_MULTIPLE_ADAPTIVE_SELECTIONS, - // Overrides - FIELD_SELECTION_OVERRIDES_RENDERER_INDICES, - FIELD_SELECTION_OVERRIDES_TRACK_GROUP_ARRAYS, - FIELD_SELECTION_OVERRIDES, - FIELD_RENDERER_DISABLED_INDICES, - }) - private @interface FieldNumber {} - - // Start at 1000 to avoid conflict with the base class fields. - private static final int FIELD_EXCEED_VIDEO_CONSTRAINTS_IF_NECESSARY = 1000; - private static final int FIELD_ALLOW_VIDEO_MIXED_MIME_TYPE_ADAPTIVENESS = 1001; - private static final int FIELD_ALLOW_VIDEO_NON_SEAMLESS_ADAPTIVENESS = 1002; - private static final int FIELD_EXCEED_AUDIO_CONSTRAINTS_IF_NCESSARY = 1003; - private static final int FIELD_ALLOW_AUDIO_MIXED_MIME_TYPE_ADAPTIVENESS = 1004; - private static final int FIELD_ALLOW_AUDIO_MIXED_SAMPLE_RATE_ADAPTIVENESS = 1005; - private static final int FIELD_ALLOW_AUDIO_MIXED_CHANNEL_COUNT_ADAPTIVENESS = 1006; - private static final int FIELD_EXCEED_RENDERER_CAPABILITIES_IF_NECESSARY = 1007; - private static final int FIELD_TUNNELING_ENABLED = 1008; - private static final int FIELD_ALLOW_MULTIPLE_ADAPTIVE_SELECTIONS = 1009; - private static final int FIELD_SELECTION_OVERRIDES_RENDERER_INDICES = 1010; - private static final int FIELD_SELECTION_OVERRIDES_TRACK_GROUP_ARRAYS = 1011; - private static final int FIELD_SELECTION_OVERRIDES = 1012; - private static final int FIELD_RENDERER_DISABLED_INDICES = 1013; - private static final int FIELD_ALLOW_VIDEO_MIXED_DECODER_SUPPORT_ADAPTIVENESS = 1014; - private static final int FIELD_ALLOW_AUDIO_MIXED_DECODER_SUPPORT_ADAPTIVENESS = 1015; + private static final int FIELD_EXCEED_VIDEO_CONSTRAINTS_IF_NECESSARY = FIELD_CUSTOM_ID_BASE; + private static final int FIELD_ALLOW_VIDEO_MIXED_MIME_TYPE_ADAPTIVENESS = + FIELD_CUSTOM_ID_BASE + 1; + private static final int FIELD_ALLOW_VIDEO_NON_SEAMLESS_ADAPTIVENESS = FIELD_CUSTOM_ID_BASE + 2; + private static final int FIELD_EXCEED_AUDIO_CONSTRAINTS_IF_NCESSARY = FIELD_CUSTOM_ID_BASE + 3; + private static final int FIELD_ALLOW_AUDIO_MIXED_MIME_TYPE_ADAPTIVENESS = + FIELD_CUSTOM_ID_BASE + 4; + private static final int FIELD_ALLOW_AUDIO_MIXED_SAMPLE_RATE_ADAPTIVENESS = + FIELD_CUSTOM_ID_BASE + 5; + private static final int FIELD_ALLOW_AUDIO_MIXED_CHANNEL_COUNT_ADAPTIVENESS = + FIELD_CUSTOM_ID_BASE + 6; + private static final int FIELD_EXCEED_RENDERER_CAPABILITIES_IF_NECESSARY = + FIELD_CUSTOM_ID_BASE + 7; + private static final int FIELD_TUNNELING_ENABLED = FIELD_CUSTOM_ID_BASE + 8; + private static final int FIELD_ALLOW_MULTIPLE_ADAPTIVE_SELECTIONS = FIELD_CUSTOM_ID_BASE + 9; + private static final int FIELD_SELECTION_OVERRIDES_RENDERER_INDICES = FIELD_CUSTOM_ID_BASE + 10; + private static final int FIELD_SELECTION_OVERRIDES_TRACK_GROUP_ARRAYS = + FIELD_CUSTOM_ID_BASE + 11; + private static final int FIELD_SELECTION_OVERRIDES = FIELD_CUSTOM_ID_BASE + 12; + private static final int FIELD_RENDERER_DISABLED_INDICES = FIELD_CUSTOM_ID_BASE + 13; + private static final int FIELD_ALLOW_VIDEO_MIXED_DECODER_SUPPORT_ADAPTIVENESS = + FIELD_CUSTOM_ID_BASE + 14; + private static final int FIELD_ALLOW_AUDIO_MIXED_DECODER_SUPPORT_ADAPTIVENESS = + FIELD_CUSTOM_ID_BASE + 15; @Override public Bundle toBundle() { @@ -1787,10 +1767,6 @@ public Bundle toBundle() { public static final Creator CREATOR = bundle -> new Parameters.Builder(bundle).build(); - private static String keyForField(@FieldNumber int field) { - return Integer.toString(field, Character.MAX_RADIX); - } - /** * Bundles selection overrides in 3 arrays of equal length. Each triplet of matching indices is: * the selection override (stored in a sparse array as they can be null), the trackGroupArray of From 62497f23fd8f92de304e7a87ffa839e221bd78c6 Mon Sep 17 00:00:00 2001 From: christosts Date: Tue, 7 Jun 2022 11:50:47 +0000 Subject: [PATCH 167/182] Minor fix: remove final from methods of final class #minor-release PiperOrigin-RevId: 453408087 --- .../trackselection/DefaultTrackSelector.java | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java index c85e40b24a7..f680f58e19e 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java @@ -576,7 +576,7 @@ public ParametersBuilder setAllowMultipleAdaptiveSelections( * @param disabled Whether the renderer is disabled. * @return This builder. */ - public final ParametersBuilder setRendererDisabled(int rendererIndex, boolean disabled) { + public ParametersBuilder setRendererDisabled(int rendererIndex, boolean disabled) { delegate.setRendererDisabled(rendererIndex, disabled); return this; } @@ -606,7 +606,7 @@ public final ParametersBuilder setRendererDisabled(int rendererIndex, boolean di * @deprecated Use {@link TrackSelectionParameters.Builder#addOverride(TrackSelectionOverride)}. */ @Deprecated - public final ParametersBuilder setSelectionOverride( + public ParametersBuilder setSelectionOverride( int rendererIndex, TrackGroupArray groups, @Nullable SelectionOverride override) { delegate.setSelectionOverride(rendererIndex, groups, override); return this; @@ -621,8 +621,7 @@ public final ParametersBuilder setSelectionOverride( * @deprecated Use {@link TrackSelectionParameters.Builder#clearOverride(TrackGroup)}. */ @Deprecated - public final ParametersBuilder clearSelectionOverride( - int rendererIndex, TrackGroupArray groups) { + public ParametersBuilder clearSelectionOverride(int rendererIndex, TrackGroupArray groups) { delegate.clearSelectionOverride(rendererIndex, groups); return this; } @@ -635,7 +634,7 @@ public final ParametersBuilder clearSelectionOverride( * @deprecated Use {@link TrackSelectionParameters.Builder#clearOverridesOfType(int)}. */ @Deprecated - public final ParametersBuilder clearSelectionOverrides(int rendererIndex) { + public ParametersBuilder clearSelectionOverrides(int rendererIndex) { delegate.clearSelectionOverrides(rendererIndex); return this; } @@ -647,7 +646,7 @@ public final ParametersBuilder clearSelectionOverrides(int rendererIndex) { * @deprecated Use {@link TrackSelectionParameters.Builder#clearOverrides()}. */ @Deprecated - public final ParametersBuilder clearSelectionOverrides() { + public ParametersBuilder clearSelectionOverrides() { delegate.clearSelectionOverrides(); return this; } @@ -1250,7 +1249,7 @@ public Builder setAllowMultipleAdaptiveSelections(boolean allowMultipleAdaptiveS * @param disabled Whether the renderer is disabled. * @return This builder. */ - public final Builder setRendererDisabled(int rendererIndex, boolean disabled) { + public Builder setRendererDisabled(int rendererIndex, boolean disabled) { if (rendererDisabledFlags.get(rendererIndex) == disabled) { // The disabled flag is unchanged. return this; @@ -1290,7 +1289,7 @@ public final Builder setRendererDisabled(int rendererIndex, boolean disabled) { * TrackSelectionParameters.Builder#addOverride(TrackSelectionOverride)}. */ @Deprecated - public final Builder setSelectionOverride( + public Builder setSelectionOverride( int rendererIndex, TrackGroupArray groups, @Nullable SelectionOverride override) { Map overrides = selectionOverrides.get(rendererIndex); @@ -1315,7 +1314,7 @@ public final Builder setSelectionOverride( * @deprecated Use {@link TrackSelectionParameters.Builder#clearOverride(TrackGroup)}. */ @Deprecated - public final Builder clearSelectionOverride(int rendererIndex, TrackGroupArray groups) { + public Builder clearSelectionOverride(int rendererIndex, TrackGroupArray groups) { Map overrides = selectionOverrides.get(rendererIndex); if (overrides == null || !overrides.containsKey(groups)) { @@ -1337,7 +1336,7 @@ public final Builder clearSelectionOverride(int rendererIndex, TrackGroupArray g * @deprecated Use {@link TrackSelectionParameters.Builder#clearOverridesOfType(int)}. */ @Deprecated - public final Builder clearSelectionOverrides(int rendererIndex) { + public Builder clearSelectionOverrides(int rendererIndex) { Map overrides = selectionOverrides.get(rendererIndex); if (overrides == null || overrides.isEmpty()) { @@ -1355,7 +1354,7 @@ public final Builder clearSelectionOverrides(int rendererIndex) { * @deprecated Use {@link TrackSelectionParameters.Builder#clearOverrides()}. */ @Deprecated - public final Builder clearSelectionOverrides() { + public Builder clearSelectionOverrides() { if (selectionOverrides.size() == 0) { // Nothing to clear. return this; @@ -1582,7 +1581,7 @@ private Parameters(Builder builder) { * @param rendererIndex The renderer index. * @return Whether the renderer is disabled. */ - public final boolean getRendererDisabled(int rendererIndex) { + public boolean getRendererDisabled(int rendererIndex) { return rendererDisabledFlags.get(rendererIndex); } @@ -1597,7 +1596,7 @@ public final boolean getRendererDisabled(int rendererIndex) { * TrackSelectionParameters#overrides} instead. */ @Deprecated - public final boolean hasSelectionOverride(int rendererIndex, TrackGroupArray groups) { + public boolean hasSelectionOverride(int rendererIndex, TrackGroupArray groups) { @Nullable Map overrides = selectionOverrides.get(rendererIndex); @@ -1616,7 +1615,7 @@ public final boolean hasSelectionOverride(int rendererIndex, TrackGroupArray gro */ @Deprecated @Nullable - public final SelectionOverride getSelectionOverride(int rendererIndex, TrackGroupArray groups) { + public SelectionOverride getSelectionOverride(int rendererIndex, TrackGroupArray groups) { @Nullable Map overrides = selectionOverrides.get(rendererIndex); @@ -1629,7 +1628,8 @@ public Parameters.Builder buildUpon() { return new Parameters.Builder(this); } - @SuppressWarnings("EqualsGetClass") // Class is not final for backward-compatibility reason. + @SuppressWarnings( + "EqualsGetClass") // Class extends TrackSelectionParameters for backwards compatibility. @Override public boolean equals(@Nullable Object obj) { if (this == obj) { From 96274bfd98b45347e6a06059465625e01e952158 Mon Sep 17 00:00:00 2001 From: olly Date: Tue, 7 Jun 2022 20:23:51 +0000 Subject: [PATCH 168/182] Fix handling of content URIs by demo apps PiperOrigin-RevId: 453510883 --- demos/main/src/main/AndroidManifest.xml | 6 ++++++ demos/surface/src/main/AndroidManifest.xml | 6 ++++++ demos/transformer/src/main/AndroidManifest.xml | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/demos/main/src/main/AndroidManifest.xml b/demos/main/src/main/AndroidManifest.xml index 3cffe0fa543..76fc35d287f 100644 --- a/demos/main/src/main/AndroidManifest.xml +++ b/demos/main/src/main/AndroidManifest.xml @@ -78,6 +78,12 @@ + + + + + + diff --git a/demos/surface/src/main/AndroidManifest.xml b/demos/surface/src/main/AndroidManifest.xml index 2c009ed2ccf..e33c9e7242c 100644 --- a/demos/surface/src/main/AndroidManifest.xml +++ b/demos/surface/src/main/AndroidManifest.xml @@ -43,6 +43,12 @@ + + + + + + diff --git a/demos/transformer/src/main/AndroidManifest.xml b/demos/transformer/src/main/AndroidManifest.xml index 5006e431c17..ff7e08db743 100644 --- a/demos/transformer/src/main/AndroidManifest.xml +++ b/demos/transformer/src/main/AndroidManifest.xml @@ -49,6 +49,12 @@ + + + + + + Date: Wed, 8 Jun 2022 08:31:29 +0000 Subject: [PATCH 169/182] Clarify that `ShuffleOrder` must be consistent in both directions #minor-release PiperOrigin-RevId: 453622964 --- .../java/androidx/media3/exoplayer/source/ShuffleOrder.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ShuffleOrder.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ShuffleOrder.java index 6d75f13b531..e6e2e1b2dcd 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ShuffleOrder.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ShuffleOrder.java @@ -24,6 +24,9 @@ * Shuffled order of indices. * *

    The shuffle order must be immutable to ensure thread safety. + * + *

    The order must be consistent when traversed both {@linkplain #getNextIndex(int) forwards} and + * {@linkplain #getPreviousIndex(int) backwards}. */ @UnstableApi public interface ShuffleOrder { From bd126ec5c5497615572bcdf259278a899b4574f8 Mon Sep 17 00:00:00 2001 From: tonihei Date: Wed, 8 Jun 2022 08:49:40 +0000 Subject: [PATCH 170/182] Forward legacy controller onPlay/PrepareFromXY calls to onAddMediaItems These legacy callbacks are currently forwarded to onSetMediaUri which will be removed in the future. Also make sure to only call player.prepare/play after the items have been set. The calls to onAddQueueItem are also forwarded to onAddMediaItems to actually allow a session to resolve these items to playable media, which wasn't possible so far. PiperOrigin-RevId: 453625204 --- RELEASENOTES.md | 2 + .../media3/demo/session/PlaybackService.kt | 32 +-- .../androidx/media3/session/MediaSession.java | 68 ++---- .../session/MediaSessionLegacyStub.java | 210 ++++++++++-------- ...CallbackWithMediaControllerCompatTest.java | 210 ++++++++++++------ 5 files changed, 295 insertions(+), 227 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 1c4dbbc843f..290a9d4bca5 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -143,6 +143,8 @@ * Replace `MediaSession.MediaItemFiler` with `MediaSession.Callback.onAddMediaItems` to allow asynchronous resolution of requests. + * Forward legacy `MediaController` calls to play media to + `MediaSession.Callback.onAddMediaItems` instead of `onSetMediaUri`. * Data sources: * Rename `DummyDataSource` to `PlaceholderDataSource`. * Workaround OkHttp interrupt handling. diff --git a/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt b/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt index 25c012275a5..cc8291c27db 100644 --- a/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt +++ b/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt @@ -19,7 +19,6 @@ import android.app.PendingIntent.FLAG_IMMUTABLE import android.app.PendingIntent.FLAG_UPDATE_CURRENT import android.app.TaskStackBuilder import android.content.Intent -import android.net.Uri import android.os.Build import android.os.Bundle import androidx.media3.common.AudioAttributes @@ -182,37 +181,21 @@ class PlaybackService : MediaLibraryService() { return Futures.immediateFuture(LibraryResult.ofItemList(children, params)) } - override fun onSetMediaUri( - session: MediaSession, - controller: ControllerInfo, - uri: Uri, - extras: Bundle - ): Int { - - if (uri.toString().startsWith(SEARCH_QUERY_PREFIX) || - uri.toString().startsWith(SEARCH_QUERY_PREFIX_COMPAT) - ) { - val searchQuery = - uri.getQueryParameter("query") ?: return SessionResult.RESULT_ERROR_NOT_SUPPORTED - setMediaItemFromSearchQuery(searchQuery) - - return SessionResult.RESULT_SUCCESS - } else { - return SessionResult.RESULT_ERROR_NOT_SUPPORTED - } - } - override fun onAddMediaItems( mediaSession: MediaSession, controller: MediaSession.ControllerInfo, mediaItems: List ): ListenableFuture> { val updatedMediaItems: List = - mediaItems.map { mediaItem -> MediaItemTree.getItem(mediaItem.mediaId) ?: mediaItem } + mediaItems.map { mediaItem -> + if (mediaItem.requestMetadata.searchQuery != null) + getMediaItemFromSearchQuery(mediaItem.requestMetadata.searchQuery!!) + else MediaItemTree.getItem(mediaItem.mediaId) ?: mediaItem + } return Futures.immediateFuture(updatedMediaItems) } - private fun setMediaItemFromSearchQuery(query: String) { + private fun getMediaItemFromSearchQuery(query: String): MediaItem { // Only accept query with pattern "play [Title]" or "[Title]" // Where [Title]: must be exactly matched // If no media with exact name found, play a random media instead @@ -223,8 +206,7 @@ class PlaybackService : MediaLibraryService() { query } - val item = MediaItemTree.getItemFromTitle(mediaTitle) ?: MediaItemTree.getRandomItem() - player.setMediaItem(item) + return MediaItemTree.getItemFromTitle(mediaTitle) ?: MediaItemTree.getRandomItem() } } diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java index 23db7affefa..93816b33fd2 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java @@ -973,48 +973,6 @@ default ListenableFuture onSetRating( *

    The implementation should create proper {@link MediaItem media item(s)} for the given * {@code uri} and call {@link Player#setMediaItems}. * - *

    When {@link MediaControllerCompat} is connected and sends commands with following methods, - * the {@code uri} will have the following patterns: - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
    Uri patterns corresponding to MediaControllerCompat command methods
    MethodUri pattern
    {@link MediaControllerCompat.TransportControls#prepareFromUri prepareFromUri}The {@code uri} passed as argument
    - * {@link MediaControllerCompat.TransportControls#prepareFromMediaId prepareFromMediaId} - * {@code androidx://media3-session/prepareFromMediaId?id=[mediaId]}
    - * {@link MediaControllerCompat.TransportControls#prepareFromSearch prepareFromSearch} - * {@code androidx://media3-session/prepareFromSearch?query=[query]}
    {@link MediaControllerCompat.TransportControls#playFromUri playFromUri}The {@code uri} passed as argument
    {@link MediaControllerCompat.TransportControls#playFromMediaId playFromMediaId}{@code androidx://media3-session/playFromMediaId?id=[mediaId]}
    {@link MediaControllerCompat.TransportControls#playFromSearch playFromSearch}{@code androidx://media3-session/playFromSearch?query=[query]}
    - * - *

    {@link Player#prepare()} or {@link Player#play()} should follow if this is called by above - * methods. - * * @param session The session for this event. * @param controller The controller information. * @param uri The uri. @@ -1057,7 +1015,8 @@ default ListenableFuture onCustomCommand( /** * Called when a controller requested to add new {@linkplain MediaItem media items} to the - * playlist. + * playlist via one of the {@code Player.addMediaItem(s)} or {@code Player.setMediaItem(s)} + * methods. * *

    Note that the requested {@linkplain MediaItem media items} don't have a {@link * MediaItem.LocalConfiguration} (for example, a URI) and need to be updated to make them @@ -1066,7 +1025,28 @@ default ListenableFuture onCustomCommand( * MediaItem#requestMetadata}. * *

    Return a {@link ListenableFuture} with the resolved {@link MediaItem media items}. You can - * also return the items directly by using Guava's {@link Futures#immediateFuture(Object)}. + * also return the items directly by using Guava's {@link Futures#immediateFuture(Object)}. Once + * the {@link MediaItem media items} have been resolved, the session will call {@link + * Player#setMediaItems} or {@link Player#addMediaItems} as requested. + * + *

    Interoperability: This method will be called in response to the following {@link + * MediaControllerCompat} methods: + * + *

      + *
    • {@link MediaControllerCompat.TransportControls#prepareFromUri prepareFromUri} + *
    • {@link MediaControllerCompat.TransportControls#playFromUri playFromUri} + *
    • {@link MediaControllerCompat.TransportControls#prepareFromMediaId prepareFromMediaId} + *
    • {@link MediaControllerCompat.TransportControls#playFromMediaId playFromMediaId} + *
    • {@link MediaControllerCompat.TransportControls#prepareFromSearch prepareFromSearch} + *
    • {@link MediaControllerCompat.TransportControls#playFromSearch playFromSearch} + *
    • {@link MediaControllerCompat.TransportControls#addQueueItem addQueueItem} + *
    + * + * The values of {@link MediaItem#mediaId}, {@link MediaItem.RequestMetadata#mediaUri}, {@link + * MediaItem.RequestMetadata#searchQuery} and {@link MediaItem.RequestMetadata#extras} will be + * set to match the legacy method call. The session will call {@link Player#setMediaItems} or + * {@link Player#addMediaItems}, followed by {@link Player#prepare()} and {@link Player#play()} + * as appropriate once the {@link MediaItem} has been resolved. * * @param mediaSession The session for this event. * @param controller The controller information. diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java index 088aed877b4..9dcd3bcfa94 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java @@ -82,6 +82,9 @@ import androidx.media3.session.MediaSession.ControllerCb; import androidx.media3.session.MediaSession.ControllerInfo; import androidx.media3.session.SessionCommand.CommandCode; +import com.google.common.collect.ImmutableList; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; import java.util.List; @@ -270,39 +273,25 @@ public void onPrepare() { @Override public void onPrepareFromMediaId(String mediaId, @Nullable Bundle extras) { - Uri mediaUri = - new Uri.Builder() - .scheme(MediaConstants.MEDIA_URI_SCHEME) - .authority(MediaConstants.MEDIA_URI_AUTHORITY) - .path(MediaConstants.MEDIA_URI_PATH_PREPARE_FROM_MEDIA_ID) - .appendQueryParameter(MediaConstants.MEDIA_URI_QUERY_ID, mediaId) - .build(); - onPrepareFromUri(mediaUri, extras); + handleMediaRequest( + createMediaItemForMediaRequest( + mediaId, /* mediaUri= */ null, /* searchQuery= */ null, extras), + /* play= */ false); } @Override public void onPrepareFromSearch(String query, @Nullable Bundle extras) { - Uri mediaUri = - new Uri.Builder() - .scheme(MediaConstants.MEDIA_URI_SCHEME) - .authority(MediaConstants.MEDIA_URI_AUTHORITY) - .path(MediaConstants.MEDIA_URI_PATH_PREPARE_FROM_SEARCH) - .appendQueryParameter(MediaConstants.MEDIA_URI_QUERY_QUERY, query) - .build(); - onPrepareFromUri(mediaUri, extras); + handleMediaRequest( + createMediaItemForMediaRequest(/* mediaId= */ null, /* mediaUri= */ null, query, extras), + /* play= */ false); } @Override public void onPrepareFromUri(Uri mediaUri, @Nullable Bundle extras) { - dispatchSessionTaskWithSessionCommand( - SessionCommand.COMMAND_CODE_SESSION_SET_MEDIA_URI, - controller -> { - if (sessionImpl.onSetMediaUriOnHandler( - controller, mediaUri, extras == null ? Bundle.EMPTY : extras) - == RESULT_SUCCESS) { - sessionImpl.getPlayerWrapper().prepare(); - } - }); + handleMediaRequest( + createMediaItemForMediaRequest( + /* mediaId= */ null, mediaUri, /* searchQuery= */ null, extras), + /* play= */ false); } @Override @@ -325,47 +314,25 @@ public void onPlay() { @Override public void onPlayFromMediaId(String mediaId, @Nullable Bundle extras) { - Uri mediaUri = - new Uri.Builder() - .scheme(MediaConstants.MEDIA_URI_SCHEME) - .authority(MediaConstants.MEDIA_URI_AUTHORITY) - .path(MediaConstants.MEDIA_URI_PATH_PLAY_FROM_MEDIA_ID) - .appendQueryParameter(MediaConstants.MEDIA_URI_QUERY_ID, mediaId) - .build(); - onPlayFromUri(mediaUri, extras); + handleMediaRequest( + createMediaItemForMediaRequest( + mediaId, /* mediaUri= */ null, /* searchQuery= */ null, extras), + /* play= */ true); } @Override public void onPlayFromSearch(String query, @Nullable Bundle extras) { - Uri mediaUri = - new Uri.Builder() - .scheme(MediaConstants.MEDIA_URI_SCHEME) - .authority(MediaConstants.MEDIA_URI_AUTHORITY) - .path(MediaConstants.MEDIA_URI_PATH_PLAY_FROM_SEARCH) - .appendQueryParameter(MediaConstants.MEDIA_URI_QUERY_QUERY, query) - .build(); - onPlayFromUri(mediaUri, extras); + handleMediaRequest( + createMediaItemForMediaRequest(/* mediaId= */ null, /* mediaUri= */ null, query, extras), + /* play= */ true); } @Override public void onPlayFromUri(Uri mediaUri, @Nullable Bundle extras) { - dispatchSessionTaskWithSessionCommand( - SessionCommand.COMMAND_CODE_SESSION_SET_MEDIA_URI, - controller -> { - if (sessionImpl.onSetMediaUriOnHandler( - controller, mediaUri, extras == null ? Bundle.EMPTY : extras) - == RESULT_SUCCESS) { - PlayerWrapper playerWrapper = sessionImpl.getPlayerWrapper(); - @Player.State int playbackState = playerWrapper.getPlaybackState(); - if (playbackState == Player.STATE_IDLE) { - playerWrapper.prepare(); - } else if (playbackState == STATE_ENDED) { - playerWrapper.seekTo( - playerWrapper.getCurrentMediaItemIndex(), /* positionMs= */ C.TIME_UNSET); - } - playerWrapper.play(); - } - }); + handleMediaRequest( + createMediaItemForMediaRequest( + /* mediaId= */ null, mediaUri, /* searchQuery= */ null, extras), + /* play= */ true); } @Override @@ -498,40 +465,12 @@ public void onSetShuffleMode(@PlaybackStateCompat.ShuffleMode int shuffleMode) { @Override public void onAddQueueItem(@Nullable MediaDescriptionCompat description) { - if (description == null) { - return; - } - dispatchSessionTaskWithPlayerCommand( - COMMAND_CHANGE_MEDIA_ITEMS, - controller -> { - @Nullable String mediaId = description.getMediaId(); - if (TextUtils.isEmpty(mediaId)) { - Log.w(TAG, "onAddQueueItem(): Media ID shouldn't be empty"); - return; - } - MediaItem mediaItem = MediaUtils.convertToMediaItem(description); - sessionImpl.getPlayerWrapper().addMediaItem(mediaItem); - }, - sessionCompat.getCurrentControllerInfo()); + handleOnAddQueueItem(description, /* index= */ C.INDEX_UNSET); } @Override public void onAddQueueItem(@Nullable MediaDescriptionCompat description, int index) { - if (description == null) { - return; - } - dispatchSessionTaskWithPlayerCommand( - COMMAND_CHANGE_MEDIA_ITEMS, - controller -> { - @Nullable String mediaId = description.getMediaId(); - if (TextUtils.isEmpty(mediaId)) { - Log.w(TAG, "onAddQueueItem(): Media ID shouldn't be empty"); - return; - } - MediaItem mediaItem = MediaUtils.convertToMediaItem(description); - sessionImpl.getPlayerWrapper().addMediaItem(index, mediaItem); - }, - sessionCompat.getCurrentControllerInfo()); + handleOnAddQueueItem(description, index); } @Override @@ -738,6 +677,85 @@ public void setLegacyControllerDisconnectTimeoutMs(long timeoutMs) { connectionTimeoutMs = timeoutMs; } + private void handleMediaRequest(MediaItem mediaItem, boolean play) { + dispatchSessionTaskWithPlayerCommand( + COMMAND_CHANGE_MEDIA_ITEMS, + controller -> { + ListenableFuture> mediaItemsFuture = + sessionImpl.onAddMediaItemsOnHandler(controller, ImmutableList.of(mediaItem)); + Futures.addCallback( + mediaItemsFuture, + new FutureCallback>() { + @Override + public void onSuccess(List mediaItems) { + postOrRun( + sessionImpl.getApplicationHandler(), + () -> { + Player player = sessionImpl.getPlayerWrapper(); + player.setMediaItems(mediaItems); + @Player.State int playbackState = player.getPlaybackState(); + if (playbackState == Player.STATE_IDLE) { + player.prepare(); + } else if (playbackState == Player.STATE_ENDED) { + player.seekTo(/* positionMs= */ C.TIME_UNSET); + } + if (play) { + player.play(); + } + }); + } + + @Override + public void onFailure(Throwable t) { + // Do nothing, the session is free to ignore these requests. + } + }, + MoreExecutors.directExecutor()); + }, + sessionCompat.getCurrentControllerInfo()); + } + + private void handleOnAddQueueItem(@Nullable MediaDescriptionCompat description, int index) { + if (description == null) { + return; + } + dispatchSessionTaskWithPlayerCommand( + COMMAND_CHANGE_MEDIA_ITEMS, + controller -> { + @Nullable String mediaId = description.getMediaId(); + if (TextUtils.isEmpty(mediaId)) { + Log.w(TAG, "onAddQueueItem(): Media ID shouldn't be empty"); + return; + } + MediaItem mediaItem = MediaUtils.convertToMediaItem(description); + ListenableFuture> mediaItemsFuture = + sessionImpl.onAddMediaItemsOnHandler(controller, ImmutableList.of(mediaItem)); + Futures.addCallback( + mediaItemsFuture, + new FutureCallback>() { + @Override + public void onSuccess(List mediaItems) { + postOrRun( + sessionImpl.getApplicationHandler(), + () -> { + if (index == C.INDEX_UNSET) { + sessionImpl.getPlayerWrapper().addMediaItems(mediaItems); + } else { + sessionImpl.getPlayerWrapper().addMediaItems(index, mediaItems); + } + }); + } + + @Override + public void onFailure(Throwable t) { + // Do nothing, the session is free to ignore these requests. + } + }, + MoreExecutors.directExecutor()); + }, + sessionCompat.getCurrentControllerInfo()); + } + private static void sendCustomCommandResultWhenReady( ResultReceiver receiver, ListenableFuture future) { future.addListener( @@ -776,6 +794,22 @@ private static void setQueueTitle( sessionCompat.setQueueTitle(title); } + private static MediaItem createMediaItemForMediaRequest( + @Nullable String mediaId, + @Nullable Uri mediaUri, + @Nullable String searchQuery, + @Nullable Bundle extras) { + return new MediaItem.Builder() + .setMediaId(mediaId == null ? MediaItem.DEFAULT_MEDIA_ID : mediaId) + .setRequestMetadata( + new MediaItem.RequestMetadata.Builder() + .setMediaUri(mediaUri) + .setSearchQuery(searchQuery) + .setExtras(extras) + .build()) + .build(); + } + /* @FunctionalInterface */ private interface SessionTask { diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java index fd7bd48720f..6fd12bc37ef 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java @@ -56,11 +56,16 @@ import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.LargeTest; +import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.ListeningExecutorService; +import com.google.common.util.concurrent.MoreExecutors; import java.util.ArrayList; import java.util.List; import java.util.concurrent.CountDownLatch; +import java.util.concurrent.Executors; +import java.util.concurrent.atomic.AtomicReference; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; @@ -75,6 +80,7 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { private static final String TAG = "MSCallbackWithMCCTest"; + private static final String TEST_URI = "http://test.test"; private static final String EXPECTED_CONTROLLER_PACKAGE_NAME = (Util.SDK_INT < 21 || Util.SDK_INT >= 24) ? SUPPORT_APP_PACKAGE_NAME : LEGACY_CONTROLLER; @@ -88,6 +94,7 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { private RemoteMediaControllerCompat controller; private MockPlayer player; private AudioManager audioManager; + private ListeningExecutorService executorService; @Before public void setUp() { @@ -95,6 +102,9 @@ public void setUp() { handler = threadTestRule.getHandler(); player = new MockPlayer.Builder().setApplicationLooper(handler.getLooper()).build(); audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); + // Intentionally use an Executor with another thread to test asynchronous workflows involving + // background tasks. + executorService = MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor()); } @After @@ -107,6 +117,7 @@ public void cleanUp() { controller.cleanUp(); controller = null; } + executorService.shutdownNow(); } @Test @@ -294,10 +305,22 @@ public void setPlaybackSpeed_callsSetPlaybackSpeed() throws Exception { @Test public void addQueueItem() throws Exception { + AtomicReference> requestedMediaItems = new AtomicReference<>(); + MediaItem resolvedMediaItem = MediaItem.fromUri(TEST_URI); + MediaSession.Callback callback = + new MediaSession.Callback() { + @Override + public ListenableFuture> onAddMediaItems( + MediaSession mediaSession, ControllerInfo controller, List mediaItems) { + requestedMediaItems.set(mediaItems); + // Resolve MediaItem asynchronously to test correct threading logic. + return executorService.submit(() -> ImmutableList.of(resolvedMediaItem)); + } + }; session = new MediaSession.Builder(context, player) .setId("addQueueItem") - .setCallback(new TestSessionCallback()) + .setCallback(callback) .build(); controller = new RemoteMediaControllerCompat( @@ -305,49 +328,73 @@ public void addQueueItem() throws Exception { handler.postAndSync( () -> { - player.timeline = MediaTestUtils.createTimeline(/* windowCount= */ 10); + List mediaItems = MediaTestUtils.createMediaItems(/* size= */ 10); + player.setMediaItems(mediaItems); + player.timeline = MediaTestUtils.createTimeline(mediaItems); player.notifyTimelineChanged(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED); }); // Prepare an item to add. String mediaId = "newMediaItemId"; - MediaDescriptionCompat desc = new MediaDescriptionCompat.Builder().setMediaId(mediaId).build(); + Uri mediaUri = Uri.parse("https://test.test"); + MediaDescriptionCompat desc = + new MediaDescriptionCompat.Builder().setMediaId(mediaId).setMediaUri(mediaUri).build(); controller.addQueueItem(desc); - player.awaitMethodCalled(MockPlayer.METHOD_ADD_MEDIA_ITEM, TIMEOUT_MS); - assertThat(player.mediaItems).hasSize(1); - assertThat(player.mediaItems.get(0).mediaId).isEqualTo(mediaId); + player.awaitMethodCalled(MockPlayer.METHOD_ADD_MEDIA_ITEMS, TIMEOUT_MS); + assertThat(requestedMediaItems.get()).hasSize(1); + assertThat(requestedMediaItems.get().get(0).mediaId).isEqualTo(mediaId); + assertThat(requestedMediaItems.get().get(0).requestMetadata.mediaUri).isEqualTo(mediaUri); + assertThat(player.mediaItems).hasSize(11); + assertThat(player.mediaItems.get(10)).isEqualTo(resolvedMediaItem); } @Test public void addQueueItemWithIndex() throws Exception { + AtomicReference> requestedMediaItems = new AtomicReference<>(); + MediaItem resolvedMediaItem = MediaItem.fromUri(TEST_URI); + MediaSession.Callback callback = + new MediaSession.Callback() { + @Override + public ListenableFuture> onAddMediaItems( + MediaSession mediaSession, ControllerInfo controller, List mediaItems) { + requestedMediaItems.set(mediaItems); + // Resolve MediaItem asynchronously to test correct threading logic. + return executorService.submit(() -> ImmutableList.of(resolvedMediaItem)); + } + }; session = new MediaSession.Builder(context, player) .setId("addQueueItemWithIndex") - .setCallback(new TestSessionCallback()) + .setCallback(callback) .build(); controller = new RemoteMediaControllerCompat( context, session.getSessionCompat().getSessionToken(), /* waitForConnection= */ true); - List mediaItems = MediaTestUtils.createMediaItems(/* size= */ 10); handler.postAndSync( () -> { + List mediaItems = MediaTestUtils.createMediaItems(/* size= */ 10); player.setMediaItems(mediaItems); - player.timeline = new PlaylistTimeline(mediaItems); + player.timeline = MediaTestUtils.createTimeline(mediaItems); player.notifyTimelineChanged(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED); }); // Prepare an item to add. int testIndex = 1; String mediaId = "media_id"; - MediaDescriptionCompat desc = new MediaDescriptionCompat.Builder().setMediaId(mediaId).build(); + Uri mediaUri = Uri.parse("https://test.test"); + MediaDescriptionCompat desc = + new MediaDescriptionCompat.Builder().setMediaId(mediaId).setMediaUri(mediaUri).build(); controller.addQueueItem(desc, testIndex); - player.awaitMethodCalled(MockPlayer.METHOD_ADD_MEDIA_ITEM_WITH_INDEX, TIMEOUT_MS); + player.awaitMethodCalled(MockPlayer.METHOD_ADD_MEDIA_ITEMS_WITH_INDEX, TIMEOUT_MS); + assertThat(requestedMediaItems.get()).hasSize(1); + assertThat(requestedMediaItems.get().get(0).mediaId).isEqualTo(mediaId); + assertThat(requestedMediaItems.get().get(0).requestMetadata.mediaUri).isEqualTo(mediaUri); assertThat(player.index).isEqualTo(testIndex); assertThat(player.mediaItems).hasSize(11); - assertThat(player.mediaItems.get(1).mediaId).isEqualTo(mediaId); + assertThat(player.mediaItems.get(1)).isEqualTo(resolvedMediaItem); } @Test @@ -788,16 +835,16 @@ public void prepareFromMediaUri() throws Exception { Uri mediaUri = Uri.parse("foo://bar"); Bundle bundle = new Bundle(); bundle.putString("key", "value"); - CountDownLatch latch = new CountDownLatch(1); + AtomicReference> requestedMediaItems = new AtomicReference<>(); + MediaItem resolvedMediaItem = MediaItem.fromUri(TEST_URI); MediaSession.Callback callback = - new TestSessionCallback() { + new MediaSession.Callback() { @Override - public int onSetMediaUri( - MediaSession session, ControllerInfo controller, Uri uri, Bundle extras) { - assertThat(uri).isEqualTo(mediaUri); - assertThat(TestUtils.equals(bundle, extras)).isTrue(); - latch.countDown(); - return RESULT_SUCCESS; + public ListenableFuture> onAddMediaItems( + MediaSession mediaSession, ControllerInfo controller, List mediaItems) { + requestedMediaItems.set(mediaItems); + // Resolve MediaItem asynchronously to test correct threading logic. + return executorService.submit(() -> ImmutableList.of(resolvedMediaItem)); } }; session = @@ -811,8 +858,12 @@ public int onSetMediaUri( controller.getTransportControls().prepareFromUri(mediaUri, bundle); - assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); + player.awaitMethodCalled(MockPlayer.METHOD_SET_MEDIA_ITEMS, TIMEOUT_MS); player.awaitMethodCalled(MockPlayer.METHOD_PREPARE, TIMEOUT_MS); + assertThat(requestedMediaItems.get()).hasSize(1); + assertThat(requestedMediaItems.get().get(0).requestMetadata.mediaUri).isEqualTo(mediaUri); + TestUtils.equals(requestedMediaItems.get().get(0).requestMetadata.extras, bundle); + assertThat(player.mediaItems).containsExactly(resolvedMediaItem); } @Test @@ -820,16 +871,16 @@ public void playFromMediaUri() throws Exception { Uri request = Uri.parse("foo://bar"); Bundle bundle = new Bundle(); bundle.putString("key", "value"); - CountDownLatch latch = new CountDownLatch(1); + AtomicReference> requestedMediaItems = new AtomicReference<>(); + MediaItem resolvedMediaItem = MediaItem.fromUri(TEST_URI); MediaSession.Callback callback = - new TestSessionCallback() { + new MediaSession.Callback() { @Override - public int onSetMediaUri( - MediaSession session, ControllerInfo controller, Uri uri, Bundle extras) { - assertThat(uri).isEqualTo(request); - assertThat(TestUtils.equals(bundle, extras)).isTrue(); - latch.countDown(); - return RESULT_SUCCESS; + public ListenableFuture> onAddMediaItems( + MediaSession mediaSession, ControllerInfo controller, List mediaItems) { + requestedMediaItems.set(mediaItems); + // Resolve MediaItem asynchronously to test correct threading logic. + return executorService.submit(() -> ImmutableList.of(resolvedMediaItem)); } }; session = @@ -843,8 +894,13 @@ public int onSetMediaUri( controller.getTransportControls().playFromUri(request, bundle); - assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); + player.awaitMethodCalled(MockPlayer.METHOD_SET_MEDIA_ITEMS, TIMEOUT_MS); + player.awaitMethodCalled(MockPlayer.METHOD_PREPARE, TIMEOUT_MS); player.awaitMethodCalled(MockPlayer.METHOD_PLAY, TIMEOUT_MS); + assertThat(requestedMediaItems.get()).hasSize(1); + assertThat(requestedMediaItems.get().get(0).requestMetadata.mediaUri).isEqualTo(request); + TestUtils.equals(requestedMediaItems.get().get(0).requestMetadata.extras, bundle); + assertThat(player.mediaItems).containsExactly(resolvedMediaItem); } @Test @@ -852,17 +908,16 @@ public void prepareFromMediaId() throws Exception { String request = "media_id"; Bundle bundle = new Bundle(); bundle.putString("key", "value"); - CountDownLatch latch = new CountDownLatch(1); + AtomicReference> requestedMediaItems = new AtomicReference<>(); + MediaItem resolvedMediaItem = MediaItem.fromUri(TEST_URI); MediaSession.Callback callback = - new TestSessionCallback() { + new MediaSession.Callback() { @Override - public int onSetMediaUri( - MediaSession session, ControllerInfo controller, Uri uri, Bundle extras) { - assertThat(uri.toString()) - .isEqualTo("androidx://media3-session/prepareFromMediaId?id=" + request); - assertThat(TestUtils.equals(bundle, extras)).isTrue(); - latch.countDown(); - return RESULT_SUCCESS; + public ListenableFuture> onAddMediaItems( + MediaSession mediaSession, ControllerInfo controller, List mediaItems) { + requestedMediaItems.set(mediaItems); + // Resolve MediaItem asynchronously to test correct threading logic. + return executorService.submit(() -> ImmutableList.of(resolvedMediaItem)); } }; session = @@ -876,8 +931,12 @@ public int onSetMediaUri( controller.getTransportControls().prepareFromMediaId(request, bundle); - assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); + player.awaitMethodCalled(MockPlayer.METHOD_SET_MEDIA_ITEMS, TIMEOUT_MS); player.awaitMethodCalled(MockPlayer.METHOD_PREPARE, TIMEOUT_MS); + assertThat(requestedMediaItems.get()).hasSize(1); + assertThat(requestedMediaItems.get().get(0).mediaId).isEqualTo(request); + TestUtils.equals(requestedMediaItems.get().get(0).requestMetadata.extras, bundle); + assertThat(player.mediaItems).containsExactly(resolvedMediaItem); } @Test @@ -885,17 +944,16 @@ public void playFromMediaId() throws Exception { String mediaId = "media_id"; Bundle bundle = new Bundle(); bundle.putString("key", "value"); - CountDownLatch latch = new CountDownLatch(1); + AtomicReference> requestedMediaItems = new AtomicReference<>(); + MediaItem resolvedMediaItem = MediaItem.fromUri(TEST_URI); MediaSession.Callback callback = - new TestSessionCallback() { + new MediaSession.Callback() { @Override - public int onSetMediaUri( - MediaSession session, ControllerInfo controller, Uri uri, Bundle extras) { - assertThat(uri.toString()) - .isEqualTo("androidx://media3-session/playFromMediaId?id=" + mediaId); - assertThat(TestUtils.equals(bundle, extras)).isTrue(); - latch.countDown(); - return RESULT_SUCCESS; + public ListenableFuture> onAddMediaItems( + MediaSession mediaSession, ControllerInfo controller, List mediaItems) { + requestedMediaItems.set(mediaItems); + // Resolve MediaItem asynchronously to test correct threading logic. + return executorService.submit(() -> ImmutableList.of(resolvedMediaItem)); } }; session = @@ -909,8 +967,13 @@ public int onSetMediaUri( controller.getTransportControls().playFromMediaId(mediaId, bundle); - assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); + player.awaitMethodCalled(MockPlayer.METHOD_SET_MEDIA_ITEMS, TIMEOUT_MS); + player.awaitMethodCalled(MockPlayer.METHOD_PREPARE, TIMEOUT_MS); player.awaitMethodCalled(MockPlayer.METHOD_PLAY, TIMEOUT_MS); + assertThat(requestedMediaItems.get()).hasSize(1); + assertThat(requestedMediaItems.get().get(0).mediaId).isEqualTo(mediaId); + TestUtils.equals(requestedMediaItems.get().get(0).requestMetadata.extras, bundle); + assertThat(player.mediaItems).containsExactly(resolvedMediaItem); } @Test @@ -918,17 +981,16 @@ public void prepareFromSearch() throws Exception { String query = "test_query"; Bundle bundle = new Bundle(); bundle.putString("key", "value"); - CountDownLatch latch = new CountDownLatch(1); + AtomicReference> requestedMediaItems = new AtomicReference<>(); + MediaItem resolvedMediaItem = MediaItem.fromUri(TEST_URI); MediaSession.Callback callback = - new TestSessionCallback() { + new MediaSession.Callback() { @Override - public int onSetMediaUri( - MediaSession session, ControllerInfo controller, Uri uri, Bundle extras) { - assertThat(uri.toString()) - .isEqualTo("androidx://media3-session/prepareFromSearch?query=" + query); - assertThat(TestUtils.equals(bundle, extras)).isTrue(); - latch.countDown(); - return RESULT_SUCCESS; + public ListenableFuture> onAddMediaItems( + MediaSession mediaSession, ControllerInfo controller, List mediaItems) { + requestedMediaItems.set(mediaItems); + // Resolve MediaItem asynchronously to test correct threading logic. + return executorService.submit(() -> ImmutableList.of(resolvedMediaItem)); } }; session = @@ -942,8 +1004,12 @@ public int onSetMediaUri( controller.getTransportControls().prepareFromSearch(query, bundle); - assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); + player.awaitMethodCalled(MockPlayer.METHOD_SET_MEDIA_ITEMS, TIMEOUT_MS); player.awaitMethodCalled(MockPlayer.METHOD_PREPARE, TIMEOUT_MS); + assertThat(requestedMediaItems.get()).hasSize(1); + assertThat(requestedMediaItems.get().get(0).requestMetadata.searchQuery).isEqualTo(query); + TestUtils.equals(requestedMediaItems.get().get(0).requestMetadata.extras, bundle); + assertThat(player.mediaItems).containsExactly(resolvedMediaItem); } @Test @@ -951,17 +1017,16 @@ public void playFromSearch() throws Exception { String query = "test_query"; Bundle bundle = new Bundle(); bundle.putString("key", "value"); - CountDownLatch latch = new CountDownLatch(1); + AtomicReference> requestedMediaItems = new AtomicReference<>(); + MediaItem resolvedMediaItem = MediaItem.fromUri(TEST_URI); MediaSession.Callback callback = - new TestSessionCallback() { + new MediaSession.Callback() { @Override - public int onSetMediaUri( - MediaSession session, ControllerInfo controller, Uri uri, Bundle extras) { - assertThat(uri.toString()) - .isEqualTo("androidx://media3-session/playFromSearch?query=" + query); - assertThat(TestUtils.equals(bundle, extras)).isTrue(); - latch.countDown(); - return RESULT_SUCCESS; + public ListenableFuture> onAddMediaItems( + MediaSession mediaSession, ControllerInfo controller, List mediaItems) { + requestedMediaItems.set(mediaItems); + // Resolve MediaItem asynchronously to test correct threading logic. + return executorService.submit(() -> ImmutableList.of(resolvedMediaItem)); } }; session = @@ -975,8 +1040,13 @@ public int onSetMediaUri( controller.getTransportControls().playFromSearch(query, bundle); - assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); + player.awaitMethodCalled(MockPlayer.METHOD_SET_MEDIA_ITEMS, TIMEOUT_MS); + player.awaitMethodCalled(MockPlayer.METHOD_PREPARE, TIMEOUT_MS); player.awaitMethodCalled(MockPlayer.METHOD_PLAY, TIMEOUT_MS); + assertThat(requestedMediaItems.get()).hasSize(1); + assertThat(requestedMediaItems.get().get(0).requestMetadata.searchQuery).isEqualTo(query); + TestUtils.equals(requestedMediaItems.get().get(0).requestMetadata.extras, bundle); + assertThat(player.mediaItems).containsExactly(resolvedMediaItem); } @Test From 457f446114823831b940bf46fb256daa0ea00815 Mon Sep 17 00:00:00 2001 From: hschlueter Date: Wed, 8 Jun 2022 09:44:25 +0000 Subject: [PATCH 171/182] Implement default GlTextureProcessor in SingleFrameGlTextureProcessor. SingleFrameGlTextureProcessor is now an abstract class containing a default implementation of the more flexible GlTextureProcessor interface while still exposing the same simple abstract methods for single frame processing it previously did. FrameProcessorChain and GlEffect will be changed to use GlTextureProcessor in follow-ups. PiperOrigin-RevId: 453633000 --- .../transformer/BitmapOverlayProcessor.java | 3 +- .../PeriodicVignetteProcessor.java | 3 +- .../demo/transformer/MediaPipeProcessor.java | 3 +- .../androidx/media3/common/util/GlUtil.java | 35 +++++- .../transformer/FrameProcessorChainTest.java | 5 +- .../transformer/ExternalTextureProcessor.java | 3 +- .../transformer/FrameProcessorChain.java | 13 +-- .../MatrixTransformationProcessor.java | 3 +- .../SingleFrameGlTextureProcessor.java | 109 +++++++++++++++--- 9 files changed, 140 insertions(+), 37 deletions(-) diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayProcessor.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayProcessor.java index 67dff8aa956..b9c0efac373 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayProcessor.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayProcessor.java @@ -44,7 +44,7 @@ */ // TODO(b/227625365): Delete this class and use a texture processor from the Transformer library, // once overlaying a bitmap and text is supported in Transformer. -/* package */ final class BitmapOverlayProcessor implements SingleFrameGlTextureProcessor { +/* package */ final class BitmapOverlayProcessor extends SingleFrameGlTextureProcessor { static { GlUtil.glAssertionsEnabled = true; } @@ -147,6 +147,7 @@ public void drawFrame(int inputTexId, long presentationTimeUs) throws FrameProce @Override public void release() { + super.release(); if (glProgram != null) { glProgram.delete(); } diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteProcessor.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteProcessor.java index 42aec157e0c..fb00e5f888c 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteProcessor.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteProcessor.java @@ -30,7 +30,7 @@ * A {@link SingleFrameGlTextureProcessor} that periodically dims the frames such that pixels are * darker the further they are away from the frame center. */ -/* package */ final class PeriodicVignetteProcessor implements SingleFrameGlTextureProcessor { +/* package */ final class PeriodicVignetteProcessor extends SingleFrameGlTextureProcessor { static { GlUtil.glAssertionsEnabled = true; } @@ -108,6 +108,7 @@ public void drawFrame(int inputTexId, long presentationTimeUs) throws FrameProce @Override public void release() { + super.release(); if (glProgram != null) { glProgram.delete(); } diff --git a/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeProcessor.java b/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeProcessor.java index 65a86666344..7d6ddfae5b3 100644 --- a/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeProcessor.java +++ b/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeProcessor.java @@ -40,7 +40,7 @@ * Runs a MediaPipe graph on input frames. The implementation is currently limited to graphs that * can immediately produce one output frame per input frame. */ -/* package */ final class MediaPipeProcessor implements SingleFrameGlTextureProcessor { +/* package */ final class MediaPipeProcessor extends SingleFrameGlTextureProcessor { private static final LibraryLoader LOADER = new LibraryLoader("mediapipe_jni") { @@ -160,6 +160,7 @@ public void drawFrame(int inputTexId, long presentationTimeUs) throws FrameProce @Override public void release() { + super.release(); checkStateNotNull(frameProcessor).close(); } } diff --git a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java index 2cf1fead3eb..485f2db986b 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java @@ -343,6 +343,13 @@ public static void assertValidTextureSize(int width, int height) { } } + /** Fills the pixels in the current output render target with (r=0, g=0, b=0, a=0). */ + public static void clearOutputFrame() { + GLES20.glClearColor(/* red= */ 0, /* green= */ 0, /* blue= */ 0, /* alpha= */ 0); + GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); + GlUtil.checkGlError(); + } + /** * Makes the specified {@code eglSurface} the render target, using a viewport of {@code width} by * {@code height} pixels. @@ -369,6 +376,22 @@ public static void focusFramebuffer( Api17.focusRenderTarget(eglDisplay, eglContext, eglSurface, framebuffer, width, height); } + /** + * Makes the specified {@code framebuffer} the render target, using a viewport of {@code width} by + * {@code height} pixels. + * + *

    The caller must ensure that there is a current OpenGL context before calling this method. + * + * @param framebuffer The identifier of the framebuffer object to bind as the output render + * target. + * @param width The viewport width, in pixels. + * @param height The viewport height, in pixels. + */ + @RequiresApi(17) + public static void focusFramebufferUsingCurrentContext(int framebuffer, int width, int height) { + Api17.focusFramebufferUsingCurrentContext(framebuffer, width, height); + } + /** * Deletes a GL texture. * @@ -613,14 +636,22 @@ public static void focusRenderTarget( int framebuffer, int width, int height) { + EGL14.eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext); + checkEglException("Error making context current"); + focusFramebufferUsingCurrentContext(framebuffer, width, height); + } + + @DoNotInline + public static void focusFramebufferUsingCurrentContext(int framebuffer, int width, int height) { + checkEglException( + !Util.areEqual(EGL14.eglGetCurrentContext(), EGL14.EGL_NO_CONTEXT), "No current context"); + int[] boundFramebuffer = new int[1]; GLES20.glGetIntegerv(GLES20.GL_FRAMEBUFFER_BINDING, boundFramebuffer, /* offset= */ 0); if (boundFramebuffer[0] != framebuffer) { GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, framebuffer); } checkGlError(); - EGL14.eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext); - checkEglException("Error making context current"); GLES20.glViewport(/* x= */ 0, /* y= */ 0, width, height); checkGlError(); } diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainTest.java index 92a0a5395bc..5dfe72e5b10 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainTest.java @@ -135,7 +135,7 @@ private FrameProcessorChain createFrameProcessorChainWithFakeTextureProcessors( /* enableExperimentalHdrEditing= */ false); } - private static class FakeTextureProcessor implements SingleFrameGlTextureProcessor { + private static class FakeTextureProcessor extends SingleFrameGlTextureProcessor { private final Size outputSize; @@ -150,8 +150,5 @@ public Size configure(int inputWidth, int inputHeight) { @Override public void drawFrame(int inputTexId, long presentationTimeNs) {} - - @Override - public void release() {} } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalTextureProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalTextureProcessor.java index 2d68dd63d9f..823b883668a 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalTextureProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalTextureProcessor.java @@ -26,7 +26,7 @@ import java.io.IOException; /** Copies frames from an external texture and applies color transformations for HDR if needed. */ -/* package */ class ExternalTextureProcessor implements SingleFrameGlTextureProcessor { +/* package */ class ExternalTextureProcessor extends SingleFrameGlTextureProcessor { static { GlUtil.glAssertionsEnabled = true; @@ -115,6 +115,7 @@ public void drawFrame(int inputTexId, long presentationTimeUs) throws FrameProce @Override public void release() { + super.release(); if (glProgram != null) { glProgram.delete(); } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java index 9ea96e3a9b3..c4ded83fd9b 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java @@ -29,7 +29,6 @@ import android.opengl.EGLDisplay; import android.opengl.EGLExt; import android.opengl.EGLSurface; -import android.opengl.GLES20; import android.util.Size; import android.view.Surface; import android.view.SurfaceHolder; @@ -517,12 +516,12 @@ private void processFrame() { outputTexture.fboId, outputTexture.width, outputTexture.height); - clearOutputFrame(); + GlUtil.clearOutputFrame(); textureProcessors.get(i).drawFrame(inputTexId, presentationTimeUs); inputTexId = outputTexture.texId; } GlUtil.focusEglSurface(eglDisplay, eglContext, outputEglSurface, outputWidth, outputHeight); - clearOutputFrame(); + GlUtil.clearOutputFrame(); getLast(textureProcessors).drawFrame(inputTexId, presentationTimeUs); EGLExt.eglPresentationTimeANDROID(eglDisplay, outputEglSurface, inputFrameTimeNs); @@ -533,7 +532,7 @@ private void processFrame() { int finalInputTexId = inputTexId; debugSurfaceViewWrapper.maybeRenderToSurfaceView( () -> { - clearOutputFrame(); + GlUtil.clearOutputFrame(); try { getLast(textureProcessors).drawFrame(finalInputTexId, finalPresentationTimeUs); } catch (FrameProcessingException e) { @@ -553,12 +552,6 @@ private void processFrame() { } } - private static void clearOutputFrame() { - GLES20.glClearColor(/* red= */ 0, /* green= */ 0, /* blue= */ 0, /* alpha= */ 0); - GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); - GlUtil.checkGlError(); - } - /** * Releases the {@link SingleFrameGlTextureProcessor SingleFrameGlTextureProcessors} and destroys * the OpenGL context. diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationProcessor.java index c8d214fdf42..1288ff6ba02 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationProcessor.java @@ -41,7 +41,7 @@ */ @UnstableApi @SuppressWarnings("FunctionalInterfaceClash") // b/228192298 -/* package */ final class MatrixTransformationProcessor implements SingleFrameGlTextureProcessor { +/* package */ final class MatrixTransformationProcessor extends SingleFrameGlTextureProcessor { static { GlUtil.glAssertionsEnabled = true; @@ -171,6 +171,7 @@ public void drawFrame(int inputTexId, long presentationTimeUs) throws FrameProce @Override public void release() { + super.release(); glProgram.delete(); } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/SingleFrameGlTextureProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/SingleFrameGlTextureProcessor.java index 873ebfe1302..5ec5522ddd3 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/SingleFrameGlTextureProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/SingleFrameGlTextureProcessor.java @@ -16,38 +16,42 @@ package androidx.media3.transformer; import android.util.Size; +import androidx.annotation.CallSuper; +import androidx.media3.common.util.GlUtil; import androidx.media3.common.util.UnstableApi; +import org.checkerframework.checker.nullness.qual.EnsuresNonNull; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** * Manages a GLSL shader program for processing a frame. Implementations generally copy input pixels * into an output frame, with changes to pixels specific to the implementation. * - *

    Methods must be called in the following order: - * - *

      - *
    1. {@link #configure(int, int)}, to configure the frame processor based on the input - * dimensions. - *
    2. {@link #drawFrame(int, long)}, to process one frame. - *
    3. {@link #release()}, upon conclusion of processing. - *
    + *

    {@code SingleFrameGlTextureProcessor} implementations must produce exactly one output frame + * per input frame with the same presentation timestamp. For more flexibility, implement {@link + * GlTextureProcessor} directly. * *

    All methods in this class must be called on the thread that owns the OpenGL context. */ @UnstableApi -// TODO(b/227625423): Add GlTextureProcessor interface for async texture processors and make this an -// abstract class with a default implementation of GlTextureProcessor methods. -public interface SingleFrameGlTextureProcessor { +public abstract class SingleFrameGlTextureProcessor implements GlTextureProcessor { + + private @MonotonicNonNull Listener listener; + private int inputWidth; + private int inputHeight; + private @MonotonicNonNull TextureInfo outputTexture; + private boolean outputTextureInUse; /** * Configures the texture processor based on the input dimensions. * - *

    This method can be called multiple times. + *

    This method must be called before {@linkplain #drawFrame(int,long) drawing} the first frame + * and before drawing subsequent frames with different input dimensions. * * @param inputWidth The input width, in pixels. * @param inputHeight The input height, in pixels. * @return The output {@link Size} of frames processed through {@link #drawFrame(int, long)}. */ - Size configure(int inputWidth, int inputHeight); + public abstract Size configure(int inputWidth, int inputHeight); /** * Draws one frame. @@ -63,8 +67,81 @@ public interface SingleFrameGlTextureProcessor { * @param presentationTimeUs The presentation timestamp of the current frame, in microseconds. * @throws FrameProcessingException If an error occurs while processing or drawing the frame. */ - void drawFrame(int inputTexId, long presentationTimeUs) throws FrameProcessingException; + public abstract void drawFrame(int inputTexId, long presentationTimeUs) + throws FrameProcessingException; + + @Override + public final void setListener(Listener listener) { + this.listener = listener; + } + + @Override + public final boolean maybeQueueInputFrame(TextureInfo inputTexture, long presentationTimeUs) { + if (outputTextureInUse) { + return false; + } + + try { + if (outputTexture == null + || inputTexture.width != inputWidth + || inputTexture.height != inputHeight) { + configureOutputTexture(inputTexture.width, inputTexture.height); + } + outputTextureInUse = true; + GlUtil.focusFramebufferUsingCurrentContext( + outputTexture.fboId, outputTexture.width, outputTexture.height); + GlUtil.clearOutputFrame(); + drawFrame(inputTexture.texId, presentationTimeUs); + if (listener != null) { + listener.onInputFrameProcessed(inputTexture); + listener.onOutputFrameAvailable(outputTexture, presentationTimeUs); + } + } catch (FrameProcessingException | RuntimeException e) { + if (listener != null) { + listener.onFrameProcessingError( + e instanceof FrameProcessingException + ? (FrameProcessingException) e + : new FrameProcessingException(e)); + } + } + return true; + } + + @EnsuresNonNull("outputTexture") + private void configureOutputTexture(int inputWidth, int inputHeight) { + this.inputWidth = inputWidth; + this.inputHeight = inputHeight; + Size outputSize = configure(inputWidth, inputHeight); + if (outputTexture == null + || outputSize.getWidth() != outputTexture.width + || outputSize.getHeight() != outputTexture.height) { + if (outputTexture != null) { + GlUtil.deleteTexture(outputTexture.texId); + } + int outputTexId = GlUtil.createTexture(outputSize.getWidth(), outputSize.getHeight()); + int outputFboId = GlUtil.createFboForTexture(outputTexId); + outputTexture = + new TextureInfo(outputTexId, outputFboId, outputSize.getWidth(), outputSize.getHeight()); + } + } + + @Override + public final void releaseOutputFrame(TextureInfo outputTexture) { + outputTextureInUse = false; + } + + @Override + public final void signalEndOfInputStream() { + if (listener != null) { + listener.onOutputStreamEnded(); + } + } - /** Releases all resources. */ - void release(); + @Override + @CallSuper + public void release() { + if (outputTexture != null) { + GlUtil.deleteTexture(outputTexture.texId); + } + } } From cdb80387828c0087d9c9b96c55f303b978847910 Mon Sep 17 00:00:00 2001 From: hschlueter Date: Wed, 8 Jun 2022 09:50:18 +0000 Subject: [PATCH 172/182] Mention alpha for matrix transformation background color. PiperOrigin-RevId: 453633920 --- .../androidx/media3/transformer/GlMatrixTransformation.java | 3 ++- .../java/androidx/media3/transformer/MatrixTransformation.java | 3 ++- .../media3/transformer/MatrixTransformationProcessor.java | 2 +- .../main/java/androidx/media3/transformer/Presentation.java | 2 +- .../androidx/media3/transformer/ScaleToFitTransformation.java | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/GlMatrixTransformation.java b/libraries/transformer/src/main/java/androidx/media3/transformer/GlMatrixTransformation.java index 24bcbbf2c44..b4b91e6087c 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/GlMatrixTransformation.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/GlMatrixTransformation.java @@ -28,7 +28,8 @@ * axes). Transformed pixels that are moved outside of the normal device coordinate range are * clipped. * - *

    Output frame pixels outside of the transformed input frame will be black. + *

    Output frame pixels outside of the transformed input frame will be black, with alpha = 0 if + * applicable. */ @UnstableApi public interface GlMatrixTransformation extends GlEffect { diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformation.java b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformation.java index 79290dc20dd..2bfd1b49469 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformation.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformation.java @@ -25,7 +25,8 @@ * axes). Transformed pixels that are moved outside of the normal device coordinate range are * clipped. * - *

    Output frame pixels outside of the transformed input frame will be black. + *

    Output frame pixels outside of the transformed input frame will be black, with alpha = 0 if + * applicable. */ @UnstableApi public interface MatrixTransformation extends GlMatrixTransformation { diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationProcessor.java index 1288ff6ba02..8c40191dd9a 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationProcessor.java @@ -37,7 +37,7 @@ * Transformed vertices that are moved outside of this range after any of the transformation * matrices are clipped to the NDC range. * - *

    The background color of the output frame will be black. + *

    The background color of the output frame will be (r=0, g=0, b=0, a=0). */ @UnstableApi @SuppressWarnings("FunctionalInterfaceClash") // b/228192298 diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Presentation.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Presentation.java index 7823a601ef3..04969bcd25a 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Presentation.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Presentation.java @@ -40,7 +40,7 @@ * *

    Cropping or aspect ratio is applied before setting resolution. * - *

    The background color of the output frame will be black. + *

    The background color of the output frame will be black, with alpha = 0 if applicable. */ @UnstableApi public final class Presentation implements MatrixTransformation { diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/ScaleToFitTransformation.java b/libraries/transformer/src/main/java/androidx/media3/transformer/ScaleToFitTransformation.java index 55eddb6aeca..12fb0857272 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/ScaleToFitTransformation.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/ScaleToFitTransformation.java @@ -32,7 +32,7 @@ *

    All input frames' pixels will be preserved and copied into an output frame, potentially * changing the width and height of the frame by scaling dimensions to fit. * - *

    The background color of the output frame will be black. + *

    The background color of the output frame will be black, with alpha = 0 if applicable. */ @UnstableApi public final class ScaleToFitTransformation implements MatrixTransformation { From 86973382335156abaa76770c6897d28460fdde36 Mon Sep 17 00:00:00 2001 From: christosts Date: Wed, 8 Jun 2022 10:44:24 +0000 Subject: [PATCH 173/182] Audio passthrough: handle unset audio format channel count With HLS chunkless preparation, audio formats may have no value for channel count. In this case, the DefaultAudioSink will either query the platform for a supported channel count (API 29+) or assume a max channel count based on the encoding spec in order to decide whether the audio format can be played with audio passthrough. Issue: google/ExoPlayer#10204 #minor-release PiperOrigin-RevId: 453644548 --- RELEASENOTES.md | 4 + .../exoplayer/audio/AudioCapabilities.java | 166 ++++++++++++++++-- .../exoplayer/audio/DefaultAudioSink.java | 132 +------------- 3 files changed, 154 insertions(+), 148 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 290a9d4bca5..933615fcf03 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -45,6 +45,10 @@ * Change the return type of `AudioAttributes.getAudioAttributesV21()` from `android.media.AudioAttributes` to a new `AudioAttributesV21` wrapper class, to prevent slow ART verification on API < 21. + * Query the platform (API 29+) or assume the audio encoding channel count + for audio passthrough when the format audio channel count is unset, + which occurs with HLS chunkless preparation + ([10204](https://github.com/google/ExoPlayer/issues/10204)). * Ad playback / IMA: * Decrease ad polling rate from every 100ms to every 200ms, to line up with Media Rating Council (MRC) recommendations. diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/AudioCapabilities.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/AudioCapabilities.java index b6d4f02aa01..9888db45a6d 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/AudioCapabilities.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/AudioCapabilities.java @@ -15,22 +15,29 @@ */ package androidx.media3.exoplayer.audio; +import static androidx.media3.common.util.Assertions.checkNotNull; + import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.media.AudioAttributes; import android.media.AudioFormat; import android.media.AudioManager; import android.media.AudioTrack; import android.net.Uri; import android.provider.Settings.Global; +import android.util.Pair; import androidx.annotation.DoNotInline; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.media3.common.C; +import androidx.media3.common.Format; +import androidx.media3.common.MimeTypes; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import com.google.common.primitives.Ints; import java.util.Arrays; @@ -54,18 +61,20 @@ public final class AudioCapabilities { }, DEFAULT_MAX_CHANNEL_COUNT); - /** Array of all surround sound encodings that a device may be capable of playing. */ - @SuppressWarnings("InlinedApi") - private static final int[] ALL_SURROUND_ENCODINGS = - new int[] { - AudioFormat.ENCODING_AC3, - AudioFormat.ENCODING_E_AC3, - AudioFormat.ENCODING_E_AC3_JOC, - AudioFormat.ENCODING_AC4, - AudioFormat.ENCODING_DOLBY_TRUEHD, - AudioFormat.ENCODING_DTS, - AudioFormat.ENCODING_DTS_HD, - }; + /** + * All surround sound encodings that a device may be capable of playing mapped to a maximum + * channel count. + */ + private static final ImmutableMap ALL_SURROUND_ENCODINGS_AND_MAX_CHANNELS = + new ImmutableMap.Builder() + .put(C.ENCODING_AC3, 6) + .put(C.ENCODING_AC4, 6) + .put(C.ENCODING_DTS, 6) + .put(C.ENCODING_E_AC3_JOC, 6) + .put(C.ENCODING_E_AC3, 8) + .put(C.ENCODING_DTS_HD, 8) + .put(C.ENCODING_DOLBY_TRUEHD, 8) + .buildOrThrow(); /** Global settings key for devices that can specify external surround sound. */ private static final String EXTERNAL_SURROUND_SOUND_KEY = "external_surround_sound_enabled"; @@ -158,6 +167,62 @@ public int getMaxChannelCount() { return maxChannelCount; } + /** Returns whether the device can do passthrough playback for {@code format}. */ + public boolean isPassthroughPlaybackSupported(Format format) { + return getEncodingAndChannelConfigForPassthrough(format) != null; + } + + /** + * Returns the encoding and channel config to use when configuring an {@link AudioTrack} in + * passthrough mode for the specified {@link Format}. Returns {@code null} if passthrough of the + * format is unsupported. + * + * @param format The {@link Format}. + * @return The encoding and channel config to use, or {@code null} if passthrough of the format is + * unsupported. + */ + @Nullable + public Pair getEncodingAndChannelConfigForPassthrough(Format format) { + @C.Encoding + int encoding = MimeTypes.getEncoding(checkNotNull(format.sampleMimeType), format.codecs); + // Check that this is an encoding known to work for passthrough. This avoids trying to use + // passthrough with an encoding where the device/app reports it's capable but it is untested or + // known to be broken (for example AAC-LC). + if (!ALL_SURROUND_ENCODINGS_AND_MAX_CHANNELS.containsKey(encoding)) { + return null; + } + + if (encoding == C.ENCODING_E_AC3_JOC && !supportsEncoding(C.ENCODING_E_AC3_JOC)) { + // E-AC3 receivers support E-AC3 JOC streams (but decode only the base layer). + encoding = C.ENCODING_E_AC3; + } else if (encoding == C.ENCODING_DTS_HD && !supportsEncoding(C.ENCODING_DTS_HD)) { + // DTS receivers support DTS-HD streams (but decode only the core layer). + encoding = C.ENCODING_DTS; + } + if (!supportsEncoding(encoding)) { + return null; + } + int channelCount; + if (format.channelCount == Format.NO_VALUE || encoding == C.ENCODING_E_AC3_JOC) { + // In HLS chunkless preparation, the format channel count and sample rate may be unset. See + // https://github.com/google/ExoPlayer/issues/10204 and b/222127949 for more details. + // For E-AC3 JOC, the format is object based so the format channel count is arbitrary. + int sampleRate = + format.sampleRate != Format.NO_VALUE ? format.sampleRate : DEFAULT_SAMPLE_RATE_HZ; + channelCount = getMaxSupportedChannelCountForPassthrough(encoding, sampleRate); + } else { + channelCount = format.channelCount; + if (channelCount > maxChannelCount) { + return null; + } + } + int channelConfig = getChannelConfigForPassthrough(channelCount); + if (channelConfig == AudioFormat.CHANNEL_INVALID) { + return null; + } + return Pair.create(encoding, channelConfig); + } + @Override public boolean equals(@Nullable Object other) { if (this == other) { @@ -190,28 +255,93 @@ private static boolean deviceMaySetExternalSurroundSoundGlobalSetting() { && ("Amazon".equals(Util.MANUFACTURER) || "Xiaomi".equals(Util.MANUFACTURER)); } + /** + * Returns the maximum number of channels supported for passthrough playback of audio in the given + * encoding, or {@code 0} if the format is unsupported. + */ + private static int getMaxSupportedChannelCountForPassthrough( + @C.Encoding int encoding, int sampleRate) { + // From API 29 we can get the channel count from the platform, but before then there is no way + // to query the platform so we assume the channel count matches the maximum channel count per + // audio encoding spec. + if (Util.SDK_INT >= 29) { + return Api29.getMaxSupportedChannelCountForPassthrough(encoding, sampleRate); + } + return checkNotNull(ALL_SURROUND_ENCODINGS_AND_MAX_CHANNELS.getOrDefault(encoding, 0)); + } + + private static int getChannelConfigForPassthrough(int channelCount) { + if (Util.SDK_INT <= 28) { + // In passthrough mode the channel count used to configure the audio track doesn't affect how + // the stream is handled, except that some devices do overly-strict channel configuration + // checks. Therefore we override the channel count so that a known-working channel + // configuration is chosen in all cases. See [Internal: b/29116190]. + if (channelCount == 7) { + channelCount = 8; + } else if (channelCount == 3 || channelCount == 4 || channelCount == 5) { + channelCount = 6; + } + } + + // Workaround for Nexus Player not reporting support for mono passthrough. See + // [Internal: b/34268671]. + if (Util.SDK_INT <= 26 && "fugu".equals(Util.DEVICE) && channelCount == 1) { + channelCount = 2; + } + + return Util.getAudioTrackChannelConfig(channelCount); + } + @RequiresApi(29) private static final class Api29 { + private static final AudioAttributes DEFAULT_AUDIO_ATTRIBUTES = + new AudioAttributes.Builder() + .setUsage(AudioAttributes.USAGE_MEDIA) + .setContentType(AudioAttributes.CONTENT_TYPE_MOVIE) + .setFlags(0) + .build(); + + private Api29() {} + @DoNotInline public static int[] getDirectPlaybackSupportedEncodings() { ImmutableList.Builder supportedEncodingsListBuilder = ImmutableList.builder(); - for (int encoding : ALL_SURROUND_ENCODINGS) { + for (int encoding : ALL_SURROUND_ENCODINGS_AND_MAX_CHANNELS.keySet()) { if (AudioTrack.isDirectPlaybackSupported( new AudioFormat.Builder() .setChannelMask(AudioFormat.CHANNEL_OUT_STEREO) .setEncoding(encoding) .setSampleRate(DEFAULT_SAMPLE_RATE_HZ) .build(), - new android.media.AudioAttributes.Builder() - .setUsage(android.media.AudioAttributes.USAGE_MEDIA) - .setContentType(android.media.AudioAttributes.CONTENT_TYPE_MOVIE) - .setFlags(0) - .build())) { + DEFAULT_AUDIO_ATTRIBUTES)) { supportedEncodingsListBuilder.add(encoding); } } supportedEncodingsListBuilder.add(AudioFormat.ENCODING_PCM_16BIT); return Ints.toArray(supportedEncodingsListBuilder.build()); } + + /** + * Returns the maximum number of channels supported for passthrough playback of audio in the + * given format, or {@code 0} if the format is unsupported. + */ + @DoNotInline + public static int getMaxSupportedChannelCountForPassthrough( + @C.Encoding int encoding, int sampleRate) { + // TODO(internal b/234351617): Query supported channel masks directly once it's supported, + // see also b/25994457. + for (int channelCount = DEFAULT_MAX_CHANNEL_COUNT; channelCount > 0; channelCount--) { + AudioFormat audioFormat = + new AudioFormat.Builder() + .setEncoding(encoding) + .setSampleRate(sampleRate) + .setChannelMask(Util.getAudioTrackChannelConfig(channelCount)) + .build(); + if (AudioTrack.isDirectPlaybackSupported(audioFormat, DEFAULT_AUDIO_ATTRIBUTES)) { + return channelCount; + } + } + return 0; + } } } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java index 13c80a12282..c1a34adb680 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java @@ -684,7 +684,7 @@ public boolean supportsFormat(Format format) { if (!offloadDisabledUntilNextConfiguration && useOffloadedPlayback(format, audioAttributes)) { return SINK_FORMAT_SUPPORTED_DIRECTLY; } - if (isPassthroughPlaybackSupported(format, audioCapabilities)) { + if (audioCapabilities.isPassthroughPlaybackSupported(format)) { return SINK_FORMAT_SUPPORTED_DIRECTLY; } return SINK_FORMAT_UNSUPPORTED; @@ -767,7 +767,7 @@ public void configure(Format inputFormat, int specifiedBufferSize, @Nullable int outputMode = OUTPUT_MODE_PASSTHROUGH; @Nullable Pair encodingAndChannelConfig = - getEncodingAndChannelConfigForPassthrough(inputFormat, audioCapabilities); + audioCapabilities.getEncodingAndChannelConfigForPassthrough(inputFormat); if (encodingAndChannelConfig == null) { throw new ConfigurationException( "Unable to configure passthrough for: " + inputFormat, inputFormat); @@ -1693,134 +1693,6 @@ private long getWrittenFrames() { : writtenEncodedFrames; } - private static boolean isPassthroughPlaybackSupported( - Format format, AudioCapabilities audioCapabilities) { - return getEncodingAndChannelConfigForPassthrough(format, audioCapabilities) != null; - } - - /** - * Returns the encoding and channel config to use when configuring an {@link AudioTrack} in - * passthrough mode for the specified {@link Format}. Returns {@code null} if passthrough of the - * format is unsupported. - * - * @param format The {@link Format}. - * @param audioCapabilities The device audio capabilities. - * @return The encoding and channel config to use, or {@code null} if passthrough of the format is - * unsupported. - */ - @Nullable - private static Pair getEncodingAndChannelConfigForPassthrough( - Format format, AudioCapabilities audioCapabilities) { - @C.Encoding - int encoding = MimeTypes.getEncoding(checkNotNull(format.sampleMimeType), format.codecs); - // Check for encodings that are known to work for passthrough with the implementation in this - // class. This avoids trying to use passthrough with an encoding where the device/app reports - // it's capable but it is untested or known to be broken (for example AAC-LC). - boolean supportedEncoding = - encoding == C.ENCODING_AC3 - || encoding == C.ENCODING_E_AC3 - || encoding == C.ENCODING_E_AC3_JOC - || encoding == C.ENCODING_AC4 - || encoding == C.ENCODING_DTS - || encoding == C.ENCODING_DTS_HD - || encoding == C.ENCODING_DOLBY_TRUEHD; - if (!supportedEncoding) { - return null; - } - if (encoding == C.ENCODING_E_AC3_JOC - && !audioCapabilities.supportsEncoding(C.ENCODING_E_AC3_JOC)) { - // E-AC3 receivers support E-AC3 JOC streams (but decode only the base layer). - encoding = C.ENCODING_E_AC3; - } else if (encoding == C.ENCODING_DTS_HD - && !audioCapabilities.supportsEncoding(C.ENCODING_DTS_HD)) { - // DTS receivers support DTS-HD streams (but decode only the core layer). - encoding = C.ENCODING_DTS; - } - if (!audioCapabilities.supportsEncoding(encoding)) { - return null; - } - - int channelCount; - if (encoding == C.ENCODING_E_AC3_JOC) { - // E-AC3 JOC is object based so the format channel count is arbitrary. From API 29 we can get - // the channel count for this encoding, but before then there is no way to query it so we - // assume 6 channel audio is supported. - if (Util.SDK_INT >= 29) { - // Default to 48 kHz if the format doesn't have a sample rate (for example, for chunkless - // HLS preparation). See [Internal: b/222127949]. - int sampleRate = format.sampleRate != Format.NO_VALUE ? format.sampleRate : 48000; - channelCount = - getMaxSupportedChannelCountForPassthroughV29(C.ENCODING_E_AC3_JOC, sampleRate); - if (channelCount == 0) { - Log.w(TAG, "E-AC3 JOC encoding supported but no channel count supported"); - return null; - } - } else { - channelCount = 6; - } - } else { - channelCount = format.channelCount; - if (channelCount > audioCapabilities.getMaxChannelCount()) { - return null; - } - } - int channelConfig = getChannelConfigForPassthrough(channelCount); - if (channelConfig == AudioFormat.CHANNEL_INVALID) { - return null; - } - - return Pair.create(encoding, channelConfig); - } - - /** - * Returns the maximum number of channels supported for passthrough playback of audio in the given - * format, or 0 if the format is unsupported. - */ - @RequiresApi(29) - private static int getMaxSupportedChannelCountForPassthroughV29( - @C.Encoding int encoding, int sampleRate) { - android.media.AudioAttributes audioAttributes = - new android.media.AudioAttributes.Builder() - .setUsage(android.media.AudioAttributes.USAGE_MEDIA) - .setContentType(android.media.AudioAttributes.CONTENT_TYPE_MOVIE) - .build(); - // TODO(internal b/25994457): Query supported channel masks directly once it's supported. - for (int channelCount = 8; channelCount > 0; channelCount--) { - AudioFormat audioFormat = - new AudioFormat.Builder() - .setEncoding(encoding) - .setSampleRate(sampleRate) - .setChannelMask(Util.getAudioTrackChannelConfig(channelCount)) - .build(); - if (AudioTrack.isDirectPlaybackSupported(audioFormat, audioAttributes)) { - return channelCount; - } - } - return 0; - } - - private static int getChannelConfigForPassthrough(int channelCount) { - if (Util.SDK_INT <= 28) { - // In passthrough mode the channel count used to configure the audio track doesn't affect how - // the stream is handled, except that some devices do overly-strict channel configuration - // checks. Therefore we override the channel count so that a known-working channel - // configuration is chosen in all cases. See [Internal: b/29116190]. - if (channelCount == 7) { - channelCount = 8; - } else if (channelCount == 3 || channelCount == 4 || channelCount == 5) { - channelCount = 6; - } - } - - // Workaround for Nexus Player not reporting support for mono passthrough. See - // [Internal: b/34268671]. - if (Util.SDK_INT <= 26 && "fugu".equals(Util.DEVICE) && channelCount == 1) { - channelCount = 2; - } - - return Util.getAudioTrackChannelConfig(channelCount); - } - private boolean useOffloadedPlayback(Format format, AudioAttributes audioAttributes) { if (Util.SDK_INT < 29 || offloadMode == OFFLOAD_MODE_DISABLED) { return false; From c5b881e0899e713a7c632da48f1cd64b1394a221 Mon Sep 17 00:00:00 2001 From: huangdarwin Date: Wed, 8 Jun 2022 12:51:28 +0000 Subject: [PATCH 174/182] Transformer GL: Split Presentation and Crop. This removes the prior restriction of needing to remember not to crop and set aspect ratio in the same Presentation.Builder, and makes each class a bit more targeted. This is partially made feasible by the past work to merge consecutive MatrixTransformations into a single MatrixTransformationFrameProcessor, which ensures that there's no loss in quality between successive MatrixTransformations. PiperOrigin-RevId: 453660582 --- .../crop_then_aspect_ratio.png | Bin 0 -> 186941 bytes .../media3/transformer/CropPixelTest.java | 170 ++++++++++++++++++ .../FrameProcessorChainPixelTest.java | 30 +++- .../transformer/PresentationPixelTest.java | 56 ------ .../androidx/media3/transformer/Crop.java | 100 +++++++++++ .../media3/transformer/Presentation.java | 107 ++--------- .../androidx/media3/transformer/CropTest.java | 62 +++++++ .../media3/transformer/PresentationTest.java | 97 ---------- 8 files changed, 368 insertions(+), 254 deletions(-) create mode 100644 libraries/test_data/src/test/assets/media/bitmap/sample_mp4_first_frame/crop_then_aspect_ratio.png create mode 100644 libraries/transformer/src/androidTest/java/androidx/media3/transformer/CropPixelTest.java create mode 100644 libraries/transformer/src/main/java/androidx/media3/transformer/Crop.java create mode 100644 libraries/transformer/src/test/java/androidx/media3/transformer/CropTest.java diff --git a/libraries/test_data/src/test/assets/media/bitmap/sample_mp4_first_frame/crop_then_aspect_ratio.png b/libraries/test_data/src/test/assets/media/bitmap/sample_mp4_first_frame/crop_then_aspect_ratio.png new file mode 100644 index 0000000000000000000000000000000000000000..6813342d46206067162d4cf13c37025688d3ae7a GIT binary patch literal 186941 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͸?Q=^IVIKftn~UM=x% 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 images are taken from an emulator, so tests on different emulators or physical + * devices may fail. To test on other devices, please increase the {@link + * BitmapTestUtil#MAXIMUM_AVERAGE_PIXEL_ABSOLUTE_DIFFERENCE} and/or inspect the saved output bitmaps + * as recommended in {@link FrameProcessorChainPixelTest}. + */ +@RunWith(AndroidJUnit4.class) +public final class CropPixelTest { + public static final String ORIGINAL_PNG_ASSET_PATH = + "media/bitmap/sample_mp4_first_frame/original.png"; + public static final String CROP_SMALLER_PNG_ASSET_PATH = + "media/bitmap/sample_mp4_first_frame/crop_smaller.png"; + public static final String CROP_LARGER_PNG_ASSET_PATH = + "media/bitmap/sample_mp4_first_frame/crop_larger.png"; + + static { + GlUtil.glAssertionsEnabled = true; + } + + private final Context context = getApplicationContext(); + private final EGLDisplay eglDisplay = GlUtil.createEglDisplay(); + private final EGLContext eglContext = GlUtil.createEglContext(eglDisplay); + private @MonotonicNonNull SingleFrameGlTextureProcessor cropTextureProcessor; + private @MonotonicNonNull EGLSurface placeholderEglSurface; + private int inputTexId; + private int outputTexId; + private int inputWidth; + private int inputHeight; + + @Before + public void createTextures() throws IOException { + Bitmap inputBitmap = BitmapTestUtil.readBitmap(ORIGINAL_PNG_ASSET_PATH); + inputWidth = inputBitmap.getWidth(); + inputHeight = inputBitmap.getHeight(); + placeholderEglSurface = GlUtil.createPlaceholderEglSurface(eglDisplay); + GlUtil.focusEglSurface(eglDisplay, eglContext, placeholderEglSurface, inputWidth, inputHeight); + inputTexId = BitmapTestUtil.createGlTextureFromBitmap(inputBitmap); + } + + @After + public void release() { + if (cropTextureProcessor != null) { + cropTextureProcessor.release(); + } + GlUtil.destroyEglContext(eglDisplay, eglContext); + } + + @Test + public void drawFrame_noEdits_producesExpectedOutput() throws Exception { + String testId = "drawFrame_noEdits"; + cropTextureProcessor = + new Crop(/* left= */ -1, /* right= */ 1, /* bottom= */ -1, /* top= */ 1) + .toGlTextureProcessor(context); + Size outputSize = cropTextureProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Bitmap expectedBitmap = BitmapTestUtil.readBitmap(ORIGINAL_PNG_ASSET_PATH); + + cropTextureProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); + Bitmap actualBitmap = + BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( + outputSize.getWidth(), outputSize.getHeight()); + + BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( + testId, /* bitmapLabel= */ "actual", actualBitmap); + // TODO(b/207848601): switch to using proper tooling for testing against golden data. + float averagePixelAbsoluteDifference = + BitmapTestUtil.getAveragePixelAbsoluteDifferenceArgb8888( + expectedBitmap, actualBitmap, testId); + assertThat(averagePixelAbsoluteDifference).isAtMost(MAXIMUM_AVERAGE_PIXEL_ABSOLUTE_DIFFERENCE); + } + + @Test + public void drawFrame_cropSmaller_producesExpectedOutput() throws Exception { + String testId = "drawFrame_cropSmaller"; + cropTextureProcessor = + new Crop(/* left= */ -.9f, /* right= */ .1f, /* bottom= */ -1f, /* top= */ .5f) + .toGlTextureProcessor(context); + Size outputSize = cropTextureProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Bitmap expectedBitmap = BitmapTestUtil.readBitmap(CROP_SMALLER_PNG_ASSET_PATH); + + cropTextureProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); + Bitmap actualBitmap = + BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( + outputSize.getWidth(), outputSize.getHeight()); + + BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( + testId, /* bitmapLabel= */ "actual", actualBitmap); + // TODO(b/207848601): switch to using proper tooling for testing against golden data. + float averagePixelAbsoluteDifference = + BitmapTestUtil.getAveragePixelAbsoluteDifferenceArgb8888( + expectedBitmap, actualBitmap, testId); + assertThat(averagePixelAbsoluteDifference).isAtMost(MAXIMUM_AVERAGE_PIXEL_ABSOLUTE_DIFFERENCE); + } + + @Test + public void drawFrame_cropLarger_producesExpectedOutput() throws Exception { + String testId = "drawFrame_cropLarger"; + cropTextureProcessor = + new Crop(/* left= */ -2f, /* right= */ 2f, /* bottom= */ -1f, /* top= */ 2f) + .toGlTextureProcessor(context); + Size outputSize = cropTextureProcessor.configure(inputWidth, inputHeight); + setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); + Bitmap expectedBitmap = BitmapTestUtil.readBitmap(CROP_LARGER_PNG_ASSET_PATH); + + cropTextureProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); + Bitmap actualBitmap = + BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( + outputSize.getWidth(), outputSize.getHeight()); + + BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( + testId, /* bitmapLabel= */ "actual", actualBitmap); + // TODO(b/207848601): switch to using proper tooling for testing against golden data. + float averagePixelAbsoluteDifference = + BitmapTestUtil.getAveragePixelAbsoluteDifferenceArgb8888( + expectedBitmap, actualBitmap, testId); + assertThat(averagePixelAbsoluteDifference).isAtMost(MAXIMUM_AVERAGE_PIXEL_ABSOLUTE_DIFFERENCE); + } + + private void setupOutputTexture(int outputWidth, int outputHeight) { + outputTexId = GlUtil.createTexture(outputWidth, outputHeight); + int frameBuffer = GlUtil.createFboForTexture(outputTexId); + GlUtil.focusFramebuffer( + eglDisplay, + eglContext, + checkNotNull(placeholderEglSurface), + frameBuffer, + outputWidth, + outputHeight); + } +} diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainPixelTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainPixelTest.java index 7786a7d1a1c..91cf57e840e 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainPixelTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/FrameProcessorChainPixelTest.java @@ -67,6 +67,8 @@ public final class FrameProcessorChainPixelTest { "media/bitmap/sample_mp4_first_frame/translate_then_rotate.png"; public static final String REQUEST_OUTPUT_HEIGHT_PNG_ASSET_PATH = "media/bitmap/sample_mp4_first_frame/request_output_height.png"; + public static final String CROP_THEN_ASPECT_RATIO_PNG_ASSET_PATH = + "media/bitmap/sample_mp4_first_frame/crop_then_aspect_ratio.png"; public static final String ROTATE45_SCALE_TO_FIT_PNG_ASSET_PATH = "media/bitmap/sample_mp4_first_frame/rotate_45_scale_to_fit.png"; @@ -216,6 +218,28 @@ public void processData_withPresentation_setResolution_producesExpectedOutput() assertThat(averagePixelAbsoluteDifference).isAtMost(MAXIMUM_AVERAGE_PIXEL_ABSOLUTE_DIFFERENCE); } + @Test + public void processData_withCropAndPresentation_producesExpectedOutput() throws Exception { + String testId = "processData_withCropAndPresentation"; + setUpAndPrepareFirstFrame( + DEFAULT_PIXEL_WIDTH_HEIGHT_RATIO, + new Crop(/* left= */ -.5f, /* right= */ .5f, /* bottom= */ -.5f, /* top= */ .5f), + new Presentation.Builder() + .setAspectRatio(/* aspectRatio= */ .5f, Presentation.LAYOUT_SCALE_TO_FIT) + .build()); + Bitmap expectedBitmap = BitmapTestUtil.readBitmap(CROP_THEN_ASPECT_RATIO_PNG_ASSET_PATH); + + Bitmap actualBitmap = processFirstFrameAndEnd(); + + BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( + testId, /* bitmapLabel= */ "actual", actualBitmap); + // TODO(b/207848601): switch to using proper tooling for testing against golden data. + float averagePixelAbsoluteDifference = + BitmapTestUtil.getAveragePixelAbsoluteDifferenceArgb8888( + expectedBitmap, actualBitmap, testId); + assertThat(averagePixelAbsoluteDifference).isAtMost(MAXIMUM_AVERAGE_PIXEL_ABSOLUTE_DIFFERENCE); + } + @Test public void processData_withScaleToFitTransformation_rotate45_producesExpectedOutput() throws Exception { @@ -242,10 +266,8 @@ public void processData_withScaleToFitTransformation_rotate45_producesExpectedOu throws Exception { String testId = "processData_withManyComposedMatrixTransformations_producesSameOutputAsCombinedTransformation"; - Presentation centerCrop = - new Presentation.Builder() - .setCrop(/* left= */ -0.5f, /* right= */ 0.5f, /* bottom= */ -0.5f, /* top= */ 0.5f) - .build(); + Crop centerCrop = + new Crop(/* left= */ -0.5f, /* right= */ 0.5f, /* bottom= */ -0.5f, /* top= */ 0.5f); ImmutableList.Builder full10StepRotationAndCenterCrop = new ImmutableList.Builder<>(); for (int i = 0; i < 10; i++) { full10StepRotationAndCenterCrop.add(new Rotation(/* degrees= */ 36)); diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/PresentationPixelTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/PresentationPixelTest.java index e4404c06c5d..9465cd631c6 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/PresentationPixelTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/PresentationPixelTest.java @@ -47,10 +47,6 @@ public final class PresentationPixelTest { public static final String ORIGINAL_PNG_ASSET_PATH = "media/bitmap/sample_mp4_first_frame/original.png"; - public static final String CROP_SMALLER_PNG_ASSET_PATH = - "media/bitmap/sample_mp4_first_frame/crop_smaller.png"; - public static final String CROP_LARGER_PNG_ASSET_PATH = - "media/bitmap/sample_mp4_first_frame/crop_larger.png"; public static final String ASPECT_RATIO_SCALE_TO_FIT_NARROW_PNG_ASSET_PATH = "media/bitmap/sample_mp4_first_frame/aspect_ratio_scale_to_fit_narrow.png"; public static final String ASPECT_RATIO_SCALE_TO_FIT_WIDE_PNG_ASSET_PATH = @@ -118,58 +114,6 @@ public void drawFrame_noEdits_producesExpectedOutput() throws Exception { assertThat(averagePixelAbsoluteDifference).isAtMost(MAXIMUM_AVERAGE_PIXEL_ABSOLUTE_DIFFERENCE); } - @Test - public void drawFrame_cropSmaller_producesExpectedOutput() throws Exception { - String testId = "drawFrame_cropSmaller"; - presentationTextureProcessor = - new Presentation.Builder() - .setCrop(/* left= */ -.9f, /* right= */ .1f, /* bottom= */ -1f, /* top= */ .5f) - .build() - .toGlTextureProcessor(context); - Size outputSize = presentationTextureProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); - Bitmap expectedBitmap = BitmapTestUtil.readBitmap(CROP_SMALLER_PNG_ASSET_PATH); - - presentationTextureProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); - Bitmap actualBitmap = - BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); - - BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( - testId, /* bitmapLabel= */ "actual", actualBitmap); - // TODO(b/207848601): switch to using proper tooling for testing against golden data. - float averagePixelAbsoluteDifference = - BitmapTestUtil.getAveragePixelAbsoluteDifferenceArgb8888( - expectedBitmap, actualBitmap, testId); - assertThat(averagePixelAbsoluteDifference).isAtMost(MAXIMUM_AVERAGE_PIXEL_ABSOLUTE_DIFFERENCE); - } - - @Test - public void drawFrame_cropLarger_producesExpectedOutput() throws Exception { - String testId = "drawFrame_cropSmaller"; - presentationTextureProcessor = - new Presentation.Builder() - .setCrop(/* left= */ -2f, /* right= */ 2f, /* bottom= */ -1f, /* top= */ 2f) - .build() - .toGlTextureProcessor(context); - Size outputSize = presentationTextureProcessor.configure(inputWidth, inputHeight); - setupOutputTexture(outputSize.getWidth(), outputSize.getHeight()); - Bitmap expectedBitmap = BitmapTestUtil.readBitmap(CROP_LARGER_PNG_ASSET_PATH); - - presentationTextureProcessor.drawFrame(inputTexId, /* presentationTimeUs= */ 0); - Bitmap actualBitmap = - BitmapTestUtil.createArgb8888BitmapFromCurrentGlFramebuffer( - outputSize.getWidth(), outputSize.getHeight()); - - BitmapTestUtil.maybeSaveTestBitmapToCacheDirectory( - testId, /* bitmapLabel= */ "actual", actualBitmap); - // TODO(b/207848601): switch to using proper tooling for testing against golden data. - float averagePixelAbsoluteDifference = - BitmapTestUtil.getAveragePixelAbsoluteDifferenceArgb8888( - expectedBitmap, actualBitmap, testId); - assertThat(averagePixelAbsoluteDifference).isAtMost(MAXIMUM_AVERAGE_PIXEL_ABSOLUTE_DIFFERENCE); - } - @Test public void drawFrame_changeAspectRatio_scaleToFit_narrow_producesExpectedOutput() throws Exception { diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Crop.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Crop.java new file mode 100644 index 00000000000..511a5cf8c91 --- /dev/null +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Crop.java @@ -0,0 +1,100 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package androidx.media3.transformer; + +import static androidx.media3.common.util.Assertions.checkArgument; +import static androidx.media3.common.util.Assertions.checkStateNotNull; + +import android.graphics.Matrix; +import android.util.Size; +import androidx.media3.common.util.GlUtil; +import androidx.media3.common.util.UnstableApi; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; + +/** + * Specifies a crop to apply in the vertex shader. + * + *

    The background color of the output frame will be black, with alpha = 0 if applicable. + */ +@UnstableApi +public final class Crop implements MatrixTransformation { + + static { + GlUtil.glAssertionsEnabled = true; + } + + private final float left; + private final float right; + private final float bottom; + private final float top; + + private @MonotonicNonNull Matrix transformationMatrix; + + /** + * Crops a smaller (or larger) frame, per normalized device coordinates (NDC), where the input + * frame corresponds to the square ranging from -1 to 1 on the x and y axes. + * + *

    {@code left} and {@code bottom} default to -1, and {@code right} and {@code top} default to + * 1, which corresponds to not applying any crop. To crop to a smaller subset of the input frame, + * use values between -1 and 1. To crop to a larger frame, use values below -1 and above 1. + * + * @param left The left edge of the output frame, in NDC. Must be less than {@code right}. + * @param right The right edge of the output frame, in NDC. Must be greater than {@code left}. + * @param bottom The bottom edge of the output frame, in NDC. Must be less than {@code top}. + * @param top The top edge of the output frame, in NDC. Must be greater than {@code bottom}. + */ + public Crop(float left, float right, float bottom, float top) { + checkArgument( + right > left, "right value " + right + " should be greater than left value " + left); + checkArgument( + top > bottom, "top value " + top + " should be greater than bottom value " + bottom); + this.left = left; + this.right = right; + this.bottom = bottom; + this.top = top; + + transformationMatrix = new Matrix(); + } + + @Override + public Size configure(int inputWidth, int inputHeight) { + checkArgument(inputWidth > 0, "inputWidth must be positive"); + checkArgument(inputHeight > 0, "inputHeight must be positive"); + + transformationMatrix = new Matrix(); + if (left == -1f && right == 1f && bottom == -1f && top == 1f) { + // No crop needed. + return new Size(inputWidth, inputHeight); + } + + float scaleX = (right - left) / GlUtil.LENGTH_NDC; + float scaleY = (top - bottom) / GlUtil.LENGTH_NDC; + float centerX = (left + right) / 2; + float centerY = (bottom + top) / 2; + + transformationMatrix.postTranslate(-centerX, -centerY); + transformationMatrix.postScale(1f / scaleX, 1f / scaleY); + + int outputWidth = Math.round(inputWidth * scaleX); + int outputHeight = Math.round(inputHeight * scaleY); + return new Size(outputWidth, outputHeight); + } + + @Override + public Matrix getMatrix(long presentationTimeUs) { + return checkStateNotNull(transformationMatrix, "configure must be called first"); + } +} diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Presentation.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Presentation.java index 04969bcd25a..102af6ac7c5 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Presentation.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Presentation.java @@ -16,7 +16,6 @@ package androidx.media3.transformer; import static androidx.media3.common.util.Assertions.checkArgument; -import static androidx.media3.common.util.Assertions.checkState; import static androidx.media3.common.util.Assertions.checkStateNotNull; import static java.lang.annotation.ElementType.TYPE_USE; import static java.lang.annotation.RetentionPolicy.SOURCE; @@ -34,11 +33,11 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; /** - * Controls how a frame is presented with options to set the output resolution, crop the input, and - * choose how to map the input pixels onto the output frame geometry (for example, by stretching the - * input frame to match the specified output frame, or fitting the input frame using letterboxing). + * Controls how a frame is presented with options to set the output resolution and choose how to map + * the input pixels onto the output frame geometry (for example, by stretching the input frame to + * match the specified output frame, or fitting the input frame using letterboxing). * - *

    Cropping or aspect ratio is applied before setting resolution. + *

    Aspect ratio is applied before setting resolution. * *

    The background color of the output frame will be black, with alpha = 0 if applicable. */ @@ -106,21 +105,13 @@ public final class Presentation implements MatrixTransformation { public static final class Builder { // Optional fields. - private int heightPixels; - private float cropLeft; - private float cropRight; - private float cropBottom; - private float cropTop; + private int outputHeight; private float aspectRatio; private @Layout int layout; /** Creates a builder with default values. */ public Builder() { - heightPixels = C.LENGTH_UNSET; - cropLeft = -1f; - cropRight = 1f; - cropBottom = -1f; - cropTop = 1f; + outputHeight = C.LENGTH_UNSET; aspectRatio = C.LENGTH_UNSET; } @@ -138,44 +129,7 @@ public Builder() { * @return This builder. */ public Builder setResolution(int height) { - this.heightPixels = height; - return this; - } - - /** - * Crops a smaller (or larger frame), per normalized device coordinates (NDC), where the input - * frame corresponds to the square ranging from -1 to 1 on the x and y axes. - * - *

    {@code left} and {@code bottom} default to -1, and {@code right} and {@code top} default - * to 1, which corresponds to not applying any crop. To crop to a smaller subset of the input - * frame, use values between -1 and 1. To crop to a larger frame, use values below -1 and above - * 1. - * - *

    Width and height values set may be rescaled by {@link #setResolution(int)}, which is - * applied after cropping changes. - * - *

    Only one of {@code setCrop} or {@link #setAspectRatio(float, int)} can be called for one - * {@link Presentation}. - * - * @param left The left edge of the output frame, in NDC. Must be less than {@code right}. - * @param right The right edge of the output frame, in NDC. Must be greater than {@code left}. - * @param bottom The bottom edge of the output frame, in NDC. Must be less than {@code top}. - * @param top The top edge of the output frame, in NDC. Must be greater than {@code bottom}. - * @return This builder. - */ - public Builder setCrop(float left, float right, float bottom, float top) { - checkArgument( - right > left, "right value " + right + " should be greater than left value " + left); - checkArgument( - top > bottom, "top value " + top + " should be greater than bottom value " + bottom); - checkState( - aspectRatio == C.LENGTH_UNSET, - "setAspectRatio and setCrop cannot be called in the same instance"); - cropLeft = left; - cropRight = right; - cropBottom = bottom; - cropTop = top; - + this.outputHeight = height; return this; } @@ -189,9 +143,6 @@ public Builder setCrop(float left, float right, float bottom, float top) { *

    Width and height values set may be rescaled by {@link #setResolution(int)}, which is * applied after aspect ratio changes. * - *

    Only one of {@link #setCrop(float, float, float, float)} or {@code setAspectRatio} can be - * called for one {@link Presentation}. - * * @param aspectRatio The aspect ratio (width/height ratio) of the output frame. Must be * positive. * @return This builder. @@ -203,17 +154,13 @@ public Builder setAspectRatio(float aspectRatio, @Layout int layout) { || layout == LAYOUT_SCALE_TO_FIT_WITH_CROP || layout == LAYOUT_STRETCH_TO_FIT, "invalid layout " + layout); - checkState( - cropLeft == -1f && cropRight == 1f && cropBottom == -1f && cropTop == 1f, - "setAspectRatio and setCrop cannot be called in the same instance"); this.aspectRatio = aspectRatio; this.layout = layout; return this; } public Presentation build() { - return new Presentation( - heightPixels, cropLeft, cropRight, cropBottom, cropTop, aspectRatio, layout); + return new Presentation(outputHeight, aspectRatio, layout); } } @@ -222,10 +169,6 @@ public Presentation build() { } private final int requestedHeightPixels; - private final float cropLeft; - private final float cropRight; - private final float cropBottom; - private final float cropTop; private final float requestedAspectRatio; private final @Layout int layout; @@ -234,19 +177,8 @@ public Presentation build() { private @MonotonicNonNull Matrix transformationMatrix; /** Creates a new instance. */ - private Presentation( - int requestedHeightPixels, - float cropLeft, - float cropRight, - float cropBottom, - float cropTop, - float requestedAspectRatio, - @Layout int layout) { + private Presentation(int requestedHeightPixels, float requestedAspectRatio, @Layout int layout) { this.requestedHeightPixels = requestedHeightPixels; - this.cropLeft = cropLeft; - this.cropRight = cropRight; - this.cropBottom = cropBottom; - this.cropTop = cropTop; this.requestedAspectRatio = requestedAspectRatio; this.layout = layout; @@ -264,12 +196,7 @@ public Size configure(int inputWidth, int inputHeight) { outputWidth = inputWidth; outputHeight = inputHeight; - if (cropLeft != -1f || cropRight != 1f || cropBottom != -1f || cropTop != 1f) { - checkState( - requestedAspectRatio == C.LENGTH_UNSET, - "aspect ratio and crop cannot both be set in the same instance"); - applyCrop(); - } else if (requestedAspectRatio != C.LENGTH_UNSET) { + if (requestedAspectRatio != C.LENGTH_UNSET) { applyAspectRatio(); } @@ -286,20 +213,6 @@ public Matrix getMatrix(long presentationTimeUs) { return checkStateNotNull(transformationMatrix, "configure must be called first"); } - @RequiresNonNull("transformationMatrix") - private void applyCrop() { - float scaleX = (cropRight - cropLeft) / GlUtil.LENGTH_NDC; - float scaleY = (cropTop - cropBottom) / GlUtil.LENGTH_NDC; - float centerX = (cropLeft + cropRight) / 2; - float centerY = (cropBottom + cropTop) / 2; - - transformationMatrix.postTranslate(-centerX, -centerY); - transformationMatrix.postScale(1f / scaleX, 1f / scaleY); - - outputWidth = outputWidth * scaleX; - outputHeight = outputHeight * scaleY; - } - @RequiresNonNull("transformationMatrix") private void applyAspectRatio() { float inputAspectRatio = outputWidth / outputHeight; diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/CropTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/CropTest.java new file mode 100644 index 00000000000..f28d947709f --- /dev/null +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/CropTest.java @@ -0,0 +1,62 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package androidx.media3.transformer; + +import static com.google.common.truth.Truth.assertThat; + +import android.util.Size; +import androidx.media3.common.util.GlUtil; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Unit tests for {@link Crop}. + * + *

    See {@code CropPixelTest} for pixel tests testing {@link Crop}. + */ +@RunWith(AndroidJUnit4.class) +public final class CropTest { + @Test + public void configure_noEdits_leavesFramesUnchanged() { + int inputWidth = 200; + int inputHeight = 150; + Crop crop = new Crop(/* left= */ -1, /* right= */ 1, /* bottom= */ -1, /* top= */ 1); + + Size outputSize = crop.configure(inputWidth, inputHeight); + + assertThat(outputSize.getWidth()).isEqualTo(inputWidth); + assertThat(outputSize.getHeight()).isEqualTo(inputHeight); + } + + @Test + public void configure_setCrop_changesDimensions() { + int inputWidth = 300; + int inputHeight = 200; + float left = -.5f; + float right = .5f; + float bottom = .5f; + float top = 1f; + Crop crop = new Crop(left, right, bottom, top); + + Size outputSize = crop.configure(inputWidth, inputHeight); + + int expectedPostCropWidth = Math.round(inputWidth * (right - left) / GlUtil.LENGTH_NDC); + int expectedPostCropHeight = Math.round(inputHeight * (top - bottom) / GlUtil.LENGTH_NDC); + assertThat(outputSize.getWidth()).isEqualTo(expectedPostCropWidth); + assertThat(outputSize.getHeight()).isEqualTo(expectedPostCropHeight); + } +} diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/PresentationTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/PresentationTest.java index fd0685a8f70..60f857c059c 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/PresentationTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/PresentationTest.java @@ -16,10 +16,8 @@ package androidx.media3.transformer; import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assert.assertThrows; import android.util.Size; -import androidx.media3.common.util.GlUtil; import androidx.test.ext.junit.runners.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; @@ -56,75 +54,6 @@ public void configure_setResolution_changesDimensions() { assertThat(outputSize.getHeight()).isEqualTo(requestedHeight); } - @Test - public void configure_setCrop_changesDimensions() { - int inputWidth = 300; - int inputHeight = 200; - float left = -.5f; - float right = .5f; - float bottom = .5f; - float top = 1f; - Presentation presentation = - new Presentation.Builder().setCrop(left, right, bottom, top).build(); - - Size outputSize = presentation.configure(inputWidth, inputHeight); - - int expectedPostCropWidth = Math.round(inputWidth * (right - left) / GlUtil.LENGTH_NDC); - int expectedPostCropHeight = Math.round(inputHeight * (top - bottom) / GlUtil.LENGTH_NDC); - assertThat(outputSize.getWidth()).isEqualTo(expectedPostCropWidth); - assertThat(outputSize.getHeight()).isEqualTo(expectedPostCropHeight); - } - - @Test - public void configure_setCropAndSetResolution_changesDimensions() { - int inputWidth = 300; - int inputHeight = 200; - float left = -.5f; - float right = .5f; - float bottom = .5f; - float top = 1f; - int requestedHeight = 100; - Presentation presentation = - new Presentation.Builder() - .setCrop(left, right, bottom, top) - .setResolution(requestedHeight) - .build(); - - Size outputSize = presentation.configure(inputWidth, inputHeight); - - int expectedPostCropWidth = Math.round(inputWidth * (right - left) / GlUtil.LENGTH_NDC); - int expectedPostCropHeight = Math.round(inputHeight * (top - bottom) / GlUtil.LENGTH_NDC); - assertThat(outputSize.getWidth()) - .isEqualTo( - Math.round((float) requestedHeight * expectedPostCropWidth / expectedPostCropHeight)); - assertThat(outputSize.getHeight()).isEqualTo(requestedHeight); - } - - @Test - public void configure_setResolutionAndCrop_changesDimensions() { - int inputWidth = 300; - int inputHeight = 200; - float left = -.5f; - float right = .5f; - float bottom = .5f; - float top = 1f; - int requestedHeight = 100; - Presentation presentation = - new Presentation.Builder() - .setResolution(requestedHeight) - .setCrop(left, right, bottom, top) - .build(); - - Size outputSize = presentation.configure(inputWidth, inputHeight); - - int expectedPostCropWidth = Math.round(inputWidth * (right - left) / GlUtil.LENGTH_NDC); - int expectedPostCropHeight = Math.round(inputHeight * (top - bottom) / GlUtil.LENGTH_NDC); - assertThat(outputSize.getWidth()) - .isEqualTo( - Math.round((float) requestedHeight * expectedPostCropWidth / expectedPostCropHeight)); - assertThat(outputSize.getHeight()).isEqualTo(requestedHeight); - } - @Test public void configure_setAspectRatio_changesDimensions() { int inputWidth = 300; @@ -158,30 +87,4 @@ public void configure_setAspectRatioAndResolution_changesDimensions() { assertThat(outputSize.getWidth()).isEqualTo(Math.round(aspectRatio * requestedHeight)); assertThat(outputSize.getHeight()).isEqualTo(requestedHeight); } - - @Test - public void configure_setAspectRatioAndCrop_throwsIllegalStateException() { - Presentation.Builder presentationBuilder = - new Presentation.Builder() - .setAspectRatio(/* aspectRatio= */ 2f, Presentation.LAYOUT_SCALE_TO_FIT); - - assertThrows( - IllegalStateException.class, - () -> - presentationBuilder.setCrop( - /* left= */ -.5f, /* right= */ .5f, /* bottom= */ .5f, /* top= */ 1f)); - } - - @Test - public void configure_setCropAndAspectRatio_throwsIllegalStateException() { - Presentation.Builder presentationBuilder = - new Presentation.Builder() - .setCrop(/* left= */ -.5f, /* right= */ .5f, /* bottom= */ .5f, /* top= */ 1f); - - assertThrows( - IllegalStateException.class, - () -> - presentationBuilder.setAspectRatio( - /* aspectRatio= */ 2f, Presentation.LAYOUT_SCALE_TO_FIT)); - } } From d506c709c9a793d751908aac879f2f85b74f7b58 Mon Sep 17 00:00:00 2001 From: christosts Date: Wed, 8 Jun 2022 16:23:18 +0000 Subject: [PATCH 175/182] Avoid using ConcurrentHashMap Use Collections.synchronizedSet() instead of creating a set from a ConcurrentHashMap because ConcurrentHashMap has a bug in APIs 21/22 that can result in lost updates. PiperOrigin-RevId: 453696565 --- .../java/androidx/media3/session/MediaSessionService.java | 5 +++-- .../main/java/androidx/media3/session/MediaSessionStub.java | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java index 0cb00a915f6..d44c3d0da1f 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java @@ -43,10 +43,10 @@ import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** @@ -472,7 +472,8 @@ public MediaSessionServiceStub(MediaSessionService serviceReference) { Context context = serviceReference.getApplicationContext(); handler = new Handler(context.getMainLooper()); mediaSessionManager = MediaSessionManager.getSessionManager(context); - pendingControllers = Collections.newSetFromMap(new ConcurrentHashMap<>()); + // ConcurrentHashMap has a bug in APIs 21-22 that can result in lost updates. + pendingControllers = Collections.synchronizedSet(new HashSet<>()); } @Override diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java index 672edf3a308..2a8bbb8b598 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java @@ -83,10 +83,10 @@ import java.lang.ref.WeakReference; import java.util.Collections; import java.util.Deque; +import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.concurrent.CancellationException; -import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutionException; /** @@ -109,7 +109,8 @@ public MediaSessionStub(MediaSessionImpl sessionImpl) { this.sessionImpl = new WeakReference<>(sessionImpl); sessionManager = MediaSessionManager.getSessionManager(sessionImpl.getContext()); connectedControllersManager = new ConnectedControllersManager<>(sessionImpl); - pendingControllers = Collections.newSetFromMap(new ConcurrentHashMap<>()); + // ConcurrentHashMap has a bug in APIs 21-22 that can result in lost updates. + pendingControllers = Collections.synchronizedSet(new HashSet<>()); } public ConnectedControllersManager getConnectedControllersManager() { From 5333c67d08ec22a1b5153af152b456d36099f401 Mon Sep 17 00:00:00 2001 From: tonihei Date: Thu, 9 Jun 2022 10:16:29 +0000 Subject: [PATCH 176/182] Add COMMAND_SET_MEDIA_ITEM to Player.Commands Some Player implementations have no playlist capability but can still set a MediaItem for playback. Examples are a MediaController connected to a legacy MediaSession, ExoPlayer up to 2.12 or MediaPlayer. To indicate this capability, we need an allowed command in addition to COMMAND_CHANGE_MEDIA_ITEMS that just allows to set a single item that replaces everything that is currently played. #minor-release PiperOrigin-RevId: 453879626 --- RELEASENOTES.md | 2 ++ .../java/androidx/media3/cast/CastPlayer.java | 3 ++- .../androidx/media3/cast/CastPlayerTest.java | 2 ++ .../java/androidx/media3/common/Player.java | 7 ++++- .../media3/exoplayer/ExoPlayerImpl.java | 3 ++- .../media3/exoplayer/ExoPlayerTest.java | 3 +++ .../session/MediaControllerImplBase.java | 13 +++++----- .../androidx/media3/session/MediaSession.java | 26 ------------------- .../session/MediaSessionLegacyStub.java | 3 ++- .../media3/session/MediaSessionStub.java | 7 ++--- .../session/MediaSessionPermissionTest.java | 7 +++++ 11 files changed, 37 insertions(+), 39 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 933615fcf03..52d85073d36 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -26,6 +26,8 @@ * Add `MediaItem.RequestMetadata` to represent metadata needed to play media when the exact `LocalConfiguration` is not known. Also remove `MediaMetadata.mediaUrl` as this is now included in `RequestMetadata`. + * Add `Player.Command.COMMAND_SET_MEDIA_ITEM` to enable players to allow + setting a single item. * Track selection: * Flatten `TrackSelectionOverrides` class into `TrackSelectionParameters`, and promote `TrackSelectionOverride` to a top level class. diff --git a/libraries/cast/src/main/java/androidx/media3/cast/CastPlayer.java b/libraries/cast/src/main/java/androidx/media3/cast/CastPlayer.java index ad21e461e79..b01ff7345fb 100644 --- a/libraries/cast/src/main/java/androidx/media3/cast/CastPlayer.java +++ b/libraries/cast/src/main/java/androidx/media3/cast/CastPlayer.java @@ -102,7 +102,8 @@ public final class CastPlayer extends BasePlayer { COMMAND_GET_MEDIA_ITEMS_METADATA, COMMAND_SET_MEDIA_ITEMS_METADATA, COMMAND_CHANGE_MEDIA_ITEMS, - COMMAND_GET_TRACKS) + COMMAND_GET_TRACKS, + COMMAND_SET_MEDIA_ITEM) .build(); public static final float MIN_SPEED_SUPPORTED = 0.5f; diff --git a/libraries/cast/src/test/java/androidx/media3/cast/CastPlayerTest.java b/libraries/cast/src/test/java/androidx/media3/cast/CastPlayerTest.java index bdc324e553f..31b7afd87ad 100644 --- a/libraries/cast/src/test/java/androidx/media3/cast/CastPlayerTest.java +++ b/libraries/cast/src/test/java/androidx/media3/cast/CastPlayerTest.java @@ -36,6 +36,7 @@ import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS; import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME; +import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA; import static androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE; import static androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE; @@ -1359,6 +1360,7 @@ public void isCommandAvailable_isTrueForAvailableCommands() { assertThat(castPlayer.isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_SET_MEDIA_ITEMS_METADATA)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_CHANGE_MEDIA_ITEMS)).isTrue(); + assertThat(castPlayer.isCommandAvailable(COMMAND_SET_MEDIA_ITEM)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_GET_AUDIO_ATTRIBUTES)).isFalse(); assertThat(castPlayer.isCommandAvailable(COMMAND_GET_VOLUME)).isFalse(); assertThat(castPlayer.isCommandAvailable(COMMAND_GET_DEVICE_VOLUME)).isFalse(); diff --git a/libraries/common/src/main/java/androidx/media3/common/Player.java b/libraries/common/src/main/java/androidx/media3/common/Player.java index 4a414f6b373..8cd90d2da18 100644 --- a/libraries/common/src/main/java/androidx/media3/common/Player.java +++ b/libraries/common/src/main/java/androidx/media3/common/Player.java @@ -384,6 +384,7 @@ public static final class Builder { COMMAND_GET_TEXT, COMMAND_SET_TRACK_SELECTION_PARAMETERS, COMMAND_GET_TRACKS, + COMMAND_SET_MEDIA_ITEM, }; private final FlagSet.Builder flagsBuilder; @@ -1402,7 +1403,8 @@ default void onMetadata(Metadata metadata) {} * #COMMAND_GET_VOLUME}, {@link #COMMAND_GET_DEVICE_VOLUME}, {@link #COMMAND_SET_VOLUME}, {@link * #COMMAND_SET_DEVICE_VOLUME}, {@link #COMMAND_ADJUST_DEVICE_VOLUME}, {@link * #COMMAND_SET_VIDEO_SURFACE}, {@link #COMMAND_GET_TEXT}, {@link - * #COMMAND_SET_TRACK_SELECTION_PARAMETERS} or {@link #COMMAND_GET_TRACKS}. + * #COMMAND_SET_TRACK_SELECTION_PARAMETERS}, {@link #COMMAND_GET_TRACKS} or {@link + * #COMMAND_SET_MEDIA_ITEM}. */ // @Target list includes both 'default' targets and TYPE_USE, to ensure backwards compatibility // with Kotlin usages from before TYPE_USE was added. @@ -1441,6 +1443,7 @@ default void onMetadata(Metadata metadata) {} COMMAND_GET_TEXT, COMMAND_SET_TRACK_SELECTION_PARAMETERS, COMMAND_GET_TRACKS, + COMMAND_SET_MEDIA_ITEM, }) @interface Command {} /** Command to start, pause or resume playback. */ @@ -1520,6 +1523,8 @@ default void onMetadata(Metadata metadata) {} int COMMAND_SET_TRACK_SELECTION_PARAMETERS = 29; /** Command to get details of the current track selection. */ int COMMAND_GET_TRACKS = 30; + /** Command to set a {@link MediaItem MediaItem}. */ + int COMMAND_SET_MEDIA_ITEM = 31; /** Represents an invalid {@link Command}. */ int COMMAND_INVALID = -1; diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java index 8902e5d76f3..9f8cd262e5b 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java @@ -303,7 +303,8 @@ public ExoPlayerImpl(ExoPlayer.Builder builder, @Nullable Player wrappingPlayer) COMMAND_SET_DEVICE_VOLUME, COMMAND_ADJUST_DEVICE_VOLUME, COMMAND_SET_VIDEO_SURFACE, - COMMAND_GET_TEXT) + COMMAND_GET_TEXT, + COMMAND_SET_MEDIA_ITEM) .addIf( COMMAND_SET_TRACK_SELECTION_PARAMETERS, trackSelector.isSetParametersSupported()) .build(); diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java index 4b6ce27fc9d..784f6c23df3 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java @@ -37,6 +37,7 @@ import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS; import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME; +import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA; import static androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE; import static androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE; @@ -8979,6 +8980,7 @@ public void isCommandAvailable_isTrueForAvailableCommands() { assertThat(player.isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_SET_MEDIA_ITEMS_METADATA)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_CHANGE_MEDIA_ITEMS)).isTrue(); + assertThat(player.isCommandAvailable(COMMAND_SET_MEDIA_ITEM)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_GET_AUDIO_ATTRIBUTES)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_GET_VOLUME)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_GET_DEVICE_VOLUME)).isTrue(); @@ -12128,6 +12130,7 @@ private static Player.Commands createWithDefaultCommands( COMMAND_GET_MEDIA_ITEMS_METADATA, COMMAND_SET_MEDIA_ITEMS_METADATA, COMMAND_CHANGE_MEDIA_ITEMS, + COMMAND_SET_MEDIA_ITEM, COMMAND_GET_AUDIO_ATTRIBUTES, COMMAND_GET_VOLUME, COMMAND_GET_DEVICE_VOLUME, diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java index 9fe1017622b..6eb54069512 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java @@ -29,6 +29,7 @@ import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS; import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME; +import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA; import static androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE; import static androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE; @@ -817,12 +818,12 @@ public Timeline getCurrentTimeline() { @Override public void setMediaItem(MediaItem mediaItem) { - if (!isPlayerCommandAvailable(COMMAND_CHANGE_MEDIA_ITEMS)) { + if (!isPlayerCommandAvailable(COMMAND_SET_MEDIA_ITEM)) { return; } dispatchRemoteSessionTaskWithPlayerCommand( - COMMAND_CHANGE_MEDIA_ITEMS, + COMMAND_SET_MEDIA_ITEM, (iSession, seq) -> iSession.setMediaItem(controllerStub, seq, mediaItem.toBundle())); setMediaItemsInternal( @@ -834,12 +835,12 @@ public void setMediaItem(MediaItem mediaItem) { @Override public void setMediaItem(MediaItem mediaItem, long startPositionMs) { - if (!isPlayerCommandAvailable(COMMAND_CHANGE_MEDIA_ITEMS)) { + if (!isPlayerCommandAvailable(COMMAND_SET_MEDIA_ITEM)) { return; } dispatchRemoteSessionTaskWithPlayerCommand( - COMMAND_CHANGE_MEDIA_ITEMS, + COMMAND_SET_MEDIA_ITEM, (iSession, seq) -> iSession.setMediaItemWithStartPosition( controllerStub, seq, mediaItem.toBundle(), startPositionMs)); @@ -853,12 +854,12 @@ public void setMediaItem(MediaItem mediaItem, long startPositionMs) { @Override public void setMediaItem(MediaItem mediaItem, boolean resetPosition) { - if (!isPlayerCommandAvailable(COMMAND_CHANGE_MEDIA_ITEMS)) { + if (!isPlayerCommandAvailable(COMMAND_SET_MEDIA_ITEM)) { return; } dispatchRemoteSessionTaskWithPlayerCommand( - COMMAND_CHANGE_MEDIA_ITEMS, + COMMAND_SET_MEDIA_ITEM, (iSession, seq) -> iSession.setMediaItemWithResetPosition( controllerStub, seq, mediaItem.toBundle(), resetPosition)); diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java index 93816b33fd2..194f0742647 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java @@ -889,32 +889,6 @@ default void onDisconnected(MediaSession session, ControllerInfo controller) {} * @param controller The controller information. * @param playerCommand A {@link Player.Command command}. * @return {@link SessionResult#RESULT_SUCCESS} to proceed, or another code to ignore. - * @see Player.Command#COMMAND_PLAY_PAUSE - * @see Player.Command#COMMAND_PREPARE - * @see Player.Command#COMMAND_STOP - * @see Player.Command#COMMAND_SEEK_TO_DEFAULT_POSITION - * @see Player.Command#COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM - * @see Player.Command#COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM - * @see Player.Command#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM - * @see Player.Command#COMMAND_SEEK_TO_MEDIA_ITEM - * @see Player.Command#COMMAND_SET_SPEED_AND_PITCH - * @see Player.Command#COMMAND_SET_SHUFFLE_MODE - * @see Player.Command#COMMAND_SET_REPEAT_MODE - * @see Player.Command#COMMAND_GET_CURRENT_MEDIA_ITEM - * @see Player.Command#COMMAND_GET_TIMELINE - * @see Player.Command#COMMAND_GET_MEDIA_ITEMS_METADATA - * @see Player.Command#COMMAND_SET_MEDIA_ITEMS_METADATA - * @see Player.Command#COMMAND_CHANGE_MEDIA_ITEMS - * @see Player.Command#COMMAND_GET_AUDIO_ATTRIBUTES - * @see Player.Command#COMMAND_GET_VOLUME - * @see Player.Command#COMMAND_GET_DEVICE_VOLUME - * @see Player.Command#COMMAND_SET_VOLUME - * @see Player.Command#COMMAND_SET_DEVICE_VOLUME - * @see Player.Command#COMMAND_ADJUST_DEVICE_VOLUME - * @see Player.Command#COMMAND_SET_VIDEO_SURFACE - * @see Player.Command#COMMAND_GET_TEXT - * @see Player.Command#COMMAND_SET_TRACK_SELECTION_PARAMETERS - * @see Player.Command#COMMAND_GET_TRACKS */ default @SessionResult.Code int onPlayerCommandRequest( MediaSession session, ControllerInfo controller, @Player.Command int playerCommand) { diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java index 9dcd3bcfa94..1b84511f875 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java @@ -24,6 +24,7 @@ import static androidx.media3.common.Player.COMMAND_SEEK_TO_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT; import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS; +import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE; import static androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE; import static androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH; @@ -679,7 +680,7 @@ public void setLegacyControllerDisconnectTimeoutMs(long timeoutMs) { private void handleMediaRequest(MediaItem mediaItem, boolean play) { dispatchSessionTaskWithPlayerCommand( - COMMAND_CHANGE_MEDIA_ITEMS, + COMMAND_SET_MEDIA_ITEM, controller -> { ListenableFuture> mediaItemsFuture = sessionImpl.onAddMediaItemsOnHandler(controller, ImmutableList.of(mediaItem)); diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java index 2a8bbb8b598..109d6afc1d9 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java @@ -29,6 +29,7 @@ import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS; import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME; +import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA; import static androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE; import static androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE; @@ -846,7 +847,7 @@ public void setMediaItem( dispatchSessionTaskWithPlayerCommand( caller, seq, - COMMAND_CHANGE_MEDIA_ITEMS, + COMMAND_SET_MEDIA_ITEM, (sessionImpl, controller) -> sessionImpl.onAddMediaItemsOnHandler(controller, ImmutableList.of(mediaItem)), (sessionImpl, controller, sequence, future) -> @@ -873,7 +874,7 @@ public void setMediaItemWithStartPosition( dispatchSessionTaskWithPlayerCommand( caller, seq, - COMMAND_CHANGE_MEDIA_ITEMS, + COMMAND_SET_MEDIA_ITEM, (sessionImpl, controller) -> sessionImpl.onAddMediaItemsOnHandler(controller, ImmutableList.of(mediaItem)), (sessionImpl, controller, sequence, future) -> @@ -905,7 +906,7 @@ public void setMediaItemWithResetPosition( dispatchSessionTaskWithPlayerCommand( caller, seq, - COMMAND_CHANGE_MEDIA_ITEMS, + COMMAND_SET_MEDIA_ITEM, (sessionImpl, controller) -> sessionImpl.onAddMediaItemsOnHandler(controller, ImmutableList.of(mediaItem)), (sessionImpl, controller, sequence, future) -> diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java index 0402c9f05b4..80a61f8d121 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java @@ -22,6 +22,7 @@ import static androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME; +import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA; import static androidx.media3.common.Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS; import static androidx.media3.session.MediaUtils.createPlayerCommandsWith; @@ -135,6 +136,12 @@ public void setPlaylistMetadata() throws Exception { controller -> controller.setPlaylistMetadata(MediaMetadata.EMPTY)); } + @Test + public void setMediaItem() throws Exception { + testOnCommandRequest( + COMMAND_SET_MEDIA_ITEM, controller -> controller.setMediaItem(MediaItem.EMPTY)); + } + @Test public void setMediaItems() throws Exception { testOnCommandRequest( From 8b592fc77aeead345adac999eda27da55df0ae01 Mon Sep 17 00:00:00 2001 From: bachinger Date: Thu, 9 Jun 2022 15:36:13 +0000 Subject: [PATCH 177/182] Add session URI to Intent used with the notification The service handles three different types of `Intents`. Custom command and media command Intents created by the library and media button event Intents from other sources. Media commands from the library as well as from external sources have the action set to `android.intent.action.MEDIA_BUTTON`. If the data URI is set and can be used to identify a session then it is a library Intent. If the Intent is coming from an external KeyEvent, the service implementation is asked which session to use by calling `onGetSession(controllerInfo)` with the controller info being an anonymous legacy controller info. Intents representing a custom command are always coming from the library and hence always have a data URI. Issue: androidx/media#82 PiperOrigin-RevId: 453932972 --- .../media3/session/DefaultActionFactory.java | 26 ++++--- .../DefaultMediaNotificationProvider.java | 13 +++- .../media3/session/MediaNotification.java | 20 ++++-- .../media3/session/MediaSessionService.java | 10 +-- .../session/DefaultActionFactoryTest.java | 27 ++++++-- .../DefaultMediaNotificationProviderTest.java | 69 +++++++++++++++---- 6 files changed, 123 insertions(+), 42 deletions(-) diff --git a/libraries/session/src/main/java/androidx/media3/session/DefaultActionFactory.java b/libraries/session/src/main/java/androidx/media3/session/DefaultActionFactory.java index cf63e6cc4b0..699f9cb9910 100644 --- a/libraries/session/src/main/java/androidx/media3/session/DefaultActionFactory.java +++ b/libraries/session/src/main/java/androidx/media3/session/DefaultActionFactory.java @@ -66,20 +66,25 @@ public DefaultActionFactory(Service service) { @Override public NotificationCompat.Action createMediaAction( - IconCompat icon, CharSequence title, @Player.Command int command) { - return new NotificationCompat.Action(icon, title, createMediaActionPendingIntent(command)); + MediaSession mediaSession, IconCompat icon, CharSequence title, @Player.Command int command) { + return new NotificationCompat.Action( + icon, title, createMediaActionPendingIntent(mediaSession, command)); } @Override public NotificationCompat.Action createCustomAction( - IconCompat icon, CharSequence title, String customAction, Bundle extras) { + MediaSession mediaSession, + IconCompat icon, + CharSequence title, + String customAction, + Bundle extras) { return new NotificationCompat.Action( - icon, title, createCustomActionPendingIntent(customAction, extras)); + icon, title, createCustomActionPendingIntent(mediaSession, customAction, extras)); } @Override public NotificationCompat.Action createCustomActionFromCustomCommandButton( - CommandButton customCommandButton) { + MediaSession mediaSession, CommandButton customCommandButton) { checkArgument( customCommandButton.sessionCommand != null && customCommandButton.sessionCommand.commandCode @@ -88,13 +93,16 @@ public NotificationCompat.Action createCustomActionFromCustomCommandButton( return new NotificationCompat.Action( IconCompat.createWithResource(service, customCommandButton.iconResId), customCommandButton.displayName, - createCustomActionPendingIntent(customCommand.customAction, customCommand.customExtras)); + createCustomActionPendingIntent( + mediaSession, customCommand.customAction, customCommand.customExtras)); } @Override - public PendingIntent createMediaActionPendingIntent(@Player.Command long command) { + public PendingIntent createMediaActionPendingIntent( + MediaSession mediaSession, @Player.Command long command) { int keyCode = toKeyCode(command); Intent intent = new Intent(Intent.ACTION_MEDIA_BUTTON); + intent.setData(mediaSession.getImpl().getUri()); intent.setComponent(new ComponentName(service, service.getClass())); intent.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN, keyCode)); if (Util.SDK_INT >= 26 && command == COMMAND_PLAY_PAUSE) { @@ -126,8 +134,10 @@ private int toKeyCode(@Player.Command long action) { return KEYCODE_UNKNOWN; } - private PendingIntent createCustomActionPendingIntent(String action, Bundle extras) { + private PendingIntent createCustomActionPendingIntent( + MediaSession mediaSession, String action, Bundle extras) { Intent intent = new Intent(ACTION_CUSTOM); + intent.setData(mediaSession.getImpl().getUri()); intent.setComponent(new ComponentName(service, service.getClass())); intent.putExtra(EXTRAS_KEY_ACTION_CUSTOM, action); intent.putExtra(EXTRAS_KEY_ACTION_CUSTOM_EXTRAS, extras); diff --git a/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java b/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java index dc88c455105..992a6fdad0d 100644 --- a/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java +++ b/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java @@ -140,6 +140,7 @@ public final MediaNotification createNotification( MediaStyle mediaStyle = new MediaStyle(); int[] compactViewIndices = addNotificationActions( + mediaSession, getMediaButtons(player.getAvailableCommands(), customLayout, player.getPlayWhenReady()), builder, actionFactory); @@ -173,7 +174,8 @@ public final MediaNotification createNotification( if (player.isCommandAvailable(COMMAND_STOP) || Util.SDK_INT < 21) { // We must include a cancel intent for pre-L devices. - mediaStyle.setCancelButtonIntent(actionFactory.createMediaActionPendingIntent(COMMAND_STOP)); + mediaStyle.setCancelButtonIntent( + actionFactory.createMediaActionPendingIntent(mediaSession, COMMAND_STOP)); } long playbackStartTimeMs = getPlaybackStartTimeEpochMs(player); @@ -186,7 +188,8 @@ public final MediaNotification createNotification( Notification notification = builder .setContentIntent(mediaSession.getSessionActivity()) - .setDeleteIntent(actionFactory.createMediaActionPendingIntent(COMMAND_STOP)) + .setDeleteIntent( + actionFactory.createMediaActionPendingIntent(mediaSession, COMMAND_STOP)) .setOnlyAlertOnce(true) .setSmallIcon(R.drawable.media3_notification_small_icon) .setStyle(mediaStyle) @@ -292,6 +295,7 @@ protected List getMediaButtons( * buttons are marked with {@link DefaultMediaNotificationProvider#COMMAND_KEY_COMPACT_VIEW_INDEX} * to declare the index in compact view of the given command button in the button extras. * + * @param mediaSession The media session to which the actions will be sent. * @param mediaButtons The command buttons to be included in the notification. * @param builder The builder to add the actions to. * @param actionFactory The actions factory to be used to build notifications. @@ -300,6 +304,7 @@ protected List getMediaButtons( * notification}. */ protected int[] addNotificationActions( + MediaSession mediaSession, List mediaButtons, NotificationCompat.Builder builder, MediaNotification.ActionFactory actionFactory) { @@ -309,11 +314,13 @@ protected int[] addNotificationActions( for (int i = 0; i < mediaButtons.size(); i++) { CommandButton commandButton = mediaButtons.get(i); if (commandButton.sessionCommand != null) { - builder.addAction(actionFactory.createCustomActionFromCustomCommandButton(commandButton)); + builder.addAction( + actionFactory.createCustomActionFromCustomCommandButton(mediaSession, commandButton)); } else { checkState(commandButton.playerCommand != COMMAND_INVALID); builder.addAction( actionFactory.createMediaAction( + mediaSession, IconCompat.createWithResource(context, commandButton.iconResId), commandButton.displayName, commandButton.playerCommand)); diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaNotification.java b/libraries/session/src/main/java/androidx/media3/session/MediaNotification.java index c9c39af9bc6..14064cfc551 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaNotification.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaNotification.java @@ -43,12 +43,16 @@ public interface ActionFactory { * Creates a {@link NotificationCompat.Action} for a notification. These actions will be handled * by the library. * + * @param mediaSession The media session to which the action will be sent. * @param icon The icon to show for this action. * @param title The title of the action. * @param command A command to send when users trigger this action. */ NotificationCompat.Action createMediaAction( - IconCompat icon, CharSequence title, @Player.Command int command); + MediaSession mediaSession, + IconCompat icon, + CharSequence title, + @Player.Command int command); /** * Creates a {@link NotificationCompat.Action} for a notification with a custom action. Actions @@ -56,6 +60,7 @@ NotificationCompat.Action createMediaAction( * to the {@linkplain MediaNotification.Provider#handleCustomCommand notification provider} that * provided them. * + * @param mediaSession The media session to which the action will be sent. * @param icon The icon to show for this action. * @param title The title of the action. * @param customAction The custom action set. @@ -63,7 +68,11 @@ NotificationCompat.Action createMediaAction( * @see MediaNotification.Provider#handleCustomCommand */ NotificationCompat.Action createCustomAction( - IconCompat icon, CharSequence title, String customAction, Bundle extras); + MediaSession mediaSession, + IconCompat icon, + CharSequence title, + String customAction, + Bundle extras); /** * Creates a {@link NotificationCompat.Action} for a notification from a custom command button. @@ -76,18 +85,21 @@ NotificationCompat.Action createCustomAction( * SessionCommand#customExtras command's extras} will be passed to {@link * Provider#handleCustomCommand(MediaSession, String, Bundle)} when the action is executed. * + * @param mediaSession The media session to which the action will be sent. * @param customCommandButton A {@linkplain CommandButton custom command button}. * @see MediaNotification.Provider#handleCustomCommand */ NotificationCompat.Action createCustomActionFromCustomCommandButton( - CommandButton customCommandButton); + MediaSession mediaSession, CommandButton customCommandButton); /** * Creates a {@link PendingIntent} for a media action that will be handled by the library. * + * @param mediaSession The media session to which the action will be sent. * @param command The intent's command. */ - PendingIntent createMediaActionPendingIntent(@Player.Command long command); + PendingIntent createMediaActionPendingIntent( + MediaSession mediaSession, @Player.Command long command); } /** diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java index d44c3d0da1f..680c8834b90 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionService.java @@ -354,19 +354,11 @@ public int onStartCommand(@Nullable Intent intent, int flags, int startId) { if (keyEvent != null) { session.getSessionCompat().getController().dispatchMediaButtonEvent(keyEvent); } - } else if (actionFactory.isCustomAction(intent)) { + } else if (session != null && actionFactory.isCustomAction(intent)) { @Nullable String customAction = actionFactory.getCustomAction(intent); if (customAction == null) { return START_STICKY; } - if (session == null) { - ControllerInfo controllerInfo = ControllerInfo.createLegacyControllerInfo(); - session = onGetSession(controllerInfo); - if (session == null) { - return START_STICKY; - } - addSession(session); - } Bundle customExtras = actionFactory.getCustomActionExtras(intent); getMediaNotificationManager().onCustomAction(session, customAction, customExtras); } diff --git a/libraries/session/src/test/java/androidx/media3/session/DefaultActionFactoryTest.java b/libraries/session/src/test/java/androidx/media3/session/DefaultActionFactoryTest.java index fc7f5b1402e..73c68ce21fc 100644 --- a/libraries/session/src/test/java/androidx/media3/session/DefaultActionFactoryTest.java +++ b/libraries/session/src/test/java/androidx/media3/session/DefaultActionFactoryTest.java @@ -16,10 +16,13 @@ package androidx.media3.session; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import static org.robolectric.Shadows.shadowOf; import android.app.PendingIntent; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import androidx.annotation.Nullable; import androidx.core.app.NotificationCompat; @@ -39,12 +42,18 @@ public class DefaultActionFactoryTest { public void createMediaPendingIntent_intentIsMediaAction() { DefaultActionFactory actionFactory = new DefaultActionFactory(Robolectric.setupService(TestService.class)); + MediaSession mockMediaSession = mock(MediaSession.class); + MediaSessionImpl mockMediaSessionImpl = mock(MediaSessionImpl.class); + when(mockMediaSession.getImpl()).thenReturn(mockMediaSessionImpl); + Uri dataUri = Uri.parse("http://example.com"); + when(mockMediaSessionImpl.getUri()).thenReturn(dataUri); PendingIntent pendingIntent = - actionFactory.createMediaActionPendingIntent(Player.COMMAND_PLAY_PAUSE); + actionFactory.createMediaActionPendingIntent(mockMediaSession, Player.COMMAND_PLAY_PAUSE); ShadowPendingIntent shadowPendingIntent = shadowOf(pendingIntent); assertThat(actionFactory.isMediaAction(shadowPendingIntent.getSavedIntent())).isTrue(); + assertThat(shadowPendingIntent.getSavedIntent().getData()).isEqualTo(dataUri); } @Test @@ -71,7 +80,11 @@ public void isCustomAction_withNonCustomActionIntent_returnsFalse() { public void createCustomActionFromCustomCommandButton() { DefaultActionFactory actionFactory = new DefaultActionFactory(Robolectric.setupService(TestService.class)); - + MediaSession mockMediaSession = mock(MediaSession.class); + MediaSessionImpl mockMediaSessionImpl = mock(MediaSessionImpl.class); + when(mockMediaSession.getImpl()).thenReturn(mockMediaSessionImpl); + Uri dataUri = Uri.parse("http://example.com"); + when(mockMediaSessionImpl.getUri()).thenReturn(dataUri); Bundle commandBundle = new Bundle(); commandBundle.putString("command-key", "command-value"); Bundle buttonBundle = new Bundle(); @@ -85,8 +98,11 @@ public void createCustomActionFromCustomCommandButton() { .build(); NotificationCompat.Action notificationAction = - actionFactory.createCustomActionFromCustomCommandButton(customSessionCommand); + actionFactory.createCustomActionFromCustomCommandButton( + mockMediaSession, customSessionCommand); + ShadowPendingIntent shadowPendingIntent = shadowOf(notificationAction.actionIntent); + assertThat(shadowPendingIntent.getSavedIntent().getData()).isEqualTo(dataUri); assertThat(String.valueOf(notificationAction.title)).isEqualTo("name"); assertThat(notificationAction.getIconCompat().getResId()) .isEqualTo(R.drawable.media3_notification_pause); @@ -99,7 +115,6 @@ public void createCustomActionFromCustomCommandButton() { createCustomActionFromCustomCommandButton_notACustomAction_throwsIllegalArgumentException() { DefaultActionFactory actionFactory = new DefaultActionFactory(Robolectric.setupService(TestService.class)); - CommandButton customSessionCommand = new CommandButton.Builder() .setPlayerCommand(Player.COMMAND_PLAY_PAUSE) @@ -109,7 +124,9 @@ public void createCustomActionFromCustomCommandButton() { Assert.assertThrows( IllegalArgumentException.class, - () -> actionFactory.createCustomActionFromCustomCommandButton(customSessionCommand)); + () -> + actionFactory.createCustomActionFromCustomCommandButton( + mock(MediaSession.class), customSessionCommand)); } /** A test service for unit tests. */ diff --git a/libraries/session/src/test/java/androidx/media3/session/DefaultMediaNotificationProviderTest.java b/libraries/session/src/test/java/androidx/media3/session/DefaultMediaNotificationProviderTest.java index de561338639..4cca95092b6 100644 --- a/libraries/session/src/test/java/androidx/media3/session/DefaultMediaNotificationProviderTest.java +++ b/libraries/session/src/test/java/androidx/media3/session/DefaultMediaNotificationProviderTest.java @@ -22,7 +22,9 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.when; +import android.net.Uri; import android.os.Bundle; import androidx.annotation.Nullable; import androidx.core.app.NotificationCompat; @@ -119,6 +121,7 @@ public void addNotificationActions_customCompactViewDeclarations_correctCompactV new DefaultMediaNotificationProvider(ApplicationProvider.getApplicationContext()); NotificationCompat.Builder mockNotificationBuilder = mock(NotificationCompat.Builder.class); MediaNotification.ActionFactory mockActionFactory = mock(MediaNotification.ActionFactory.class); + MediaSession mockMediaSession = mock(MediaSession.class); CommandButton commandButton1 = new CommandButton.Builder() .setPlayerCommand(Player.COMMAND_PLAY_PAUSE) @@ -155,6 +158,7 @@ public void addNotificationActions_customCompactViewDeclarations_correctCompactV int[] compactViewIndices = defaultMediaNotificationProvider.addNotificationActions( + mockMediaSession, ImmutableList.of(commandButton1, commandButton2, commandButton3, commandButton4), mockNotificationBuilder, mockActionFactory); @@ -163,10 +167,17 @@ public void addNotificationActions_customCompactViewDeclarations_correctCompactV InOrder inOrder = Mockito.inOrder(mockActionFactory); inOrder .verify(mockActionFactory) - .createMediaAction(any(), eq("displayName"), eq(commandButton1.playerCommand)); - inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton2); - inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton3); - inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton4); + .createMediaAction( + eq(mockMediaSession), any(), eq("displayName"), eq(commandButton1.playerCommand)); + inOrder + .verify(mockActionFactory) + .createCustomActionFromCustomCommandButton(mockMediaSession, commandButton2); + inOrder + .verify(mockActionFactory) + .createCustomActionFromCustomCommandButton(mockMediaSession, commandButton3); + inOrder + .verify(mockActionFactory) + .createCustomActionFromCustomCommandButton(mockMediaSession, commandButton4); verifyNoMoreInteractions(mockActionFactory); assertThat(compactViewIndices).asList().containsExactly(1, 3, 2).inOrder(); } @@ -177,6 +188,7 @@ public void addNotificationActions_playPauseCommandNoCustomDeclaration_playPause new DefaultMediaNotificationProvider(ApplicationProvider.getApplicationContext()); NotificationCompat.Builder mockNotificationBuilder = mock(NotificationCompat.Builder.class); MediaNotification.ActionFactory mockActionFactory = mock(MediaNotification.ActionFactory.class); + MediaSession mockMediaSession = mock(MediaSession.class); CommandButton commandButton1 = new CommandButton.Builder() .setDisplayName("displayName") @@ -192,6 +204,7 @@ public void addNotificationActions_playPauseCommandNoCustomDeclaration_playPause int[] compactViewIndices = defaultMediaNotificationProvider.addNotificationActions( + mockMediaSession, ImmutableList.of(commandButton1, commandButton2), mockNotificationBuilder, mockActionFactory); @@ -202,10 +215,13 @@ public void addNotificationActions_playPauseCommandNoCustomDeclaration_playPause List actions = actionCaptor.getAllValues(); assertThat(actions).hasSize(2); InOrder inOrder = Mockito.inOrder(mockActionFactory); - inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton1); inOrder .verify(mockActionFactory) - .createMediaAction(any(), eq("displayName"), eq(commandButton2.playerCommand)); + .createCustomActionFromCustomCommandButton(mockMediaSession, commandButton1); + inOrder + .verify(mockActionFactory) + .createMediaAction( + eq(mockMediaSession), any(), eq("displayName"), eq(commandButton2.playerCommand)); verifyNoMoreInteractions(mockActionFactory); assertThat(compactViewIndices).asList().containsExactly(1); } @@ -217,6 +233,7 @@ public void addNotificationActions_playPauseCommandNoCustomDeclaration_playPause new DefaultMediaNotificationProvider(ApplicationProvider.getApplicationContext()); NotificationCompat.Builder mockNotificationBuilder = mock(NotificationCompat.Builder.class); MediaNotification.ActionFactory mockActionFactory = mock(MediaNotification.ActionFactory.class); + MediaSession mockMediaSession = mock(MediaSession.class); CommandButton commandButton1 = new CommandButton.Builder() .setDisplayName("displayName") @@ -226,10 +243,15 @@ public void addNotificationActions_playPauseCommandNoCustomDeclaration_playPause int[] compactViewIndices = defaultMediaNotificationProvider.addNotificationActions( - ImmutableList.of(commandButton1), mockNotificationBuilder, mockActionFactory); + mockMediaSession, + ImmutableList.of(commandButton1), + mockNotificationBuilder, + mockActionFactory); InOrder inOrder = Mockito.inOrder(mockActionFactory); - inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton1); + inOrder + .verify(mockActionFactory) + .createCustomActionFromCustomCommandButton(mockMediaSession, commandButton1); verifyNoMoreInteractions(mockActionFactory); assertThat(compactViewIndices).asList().isEmpty(); } @@ -240,6 +262,7 @@ public void addNotificationActions_outOfBoundsCompactViewIndices_ignored() { new DefaultMediaNotificationProvider(ApplicationProvider.getApplicationContext()); NotificationCompat.Builder mockNotificationBuilder = mock(NotificationCompat.Builder.class); MediaNotification.ActionFactory mockActionFactory = mock(MediaNotification.ActionFactory.class); + MediaSession mockMediaSession = mock(MediaSession.class); Bundle commandButtonBundle1 = new Bundle(); commandButtonBundle1.putInt(DefaultMediaNotificationProvider.COMMAND_KEY_COMPACT_VIEW_INDEX, 2); CommandButton commandButton1 = @@ -262,13 +285,18 @@ public void addNotificationActions_outOfBoundsCompactViewIndices_ignored() { int[] compactViewIndices = defaultMediaNotificationProvider.addNotificationActions( + mockMediaSession, ImmutableList.of(commandButton1, commandButton2), mockNotificationBuilder, mockActionFactory); InOrder inOrder = Mockito.inOrder(mockActionFactory); - inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton1); - inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton2); + inOrder + .verify(mockActionFactory) + .createCustomActionFromCustomCommandButton(mockMediaSession, commandButton1); + inOrder + .verify(mockActionFactory) + .createCustomActionFromCustomCommandButton(mockMediaSession, commandButton2); verifyNoMoreInteractions(mockActionFactory); assertThat(compactViewIndices).asList().isEmpty(); } @@ -279,6 +307,7 @@ public void addNotificationActions_unsetLeadingArrayFields_cropped() { new DefaultMediaNotificationProvider(ApplicationProvider.getApplicationContext()); NotificationCompat.Builder mockNotificationBuilder = mock(NotificationCompat.Builder.class); MediaNotification.ActionFactory mockActionFactory = mock(MediaNotification.ActionFactory.class); + MediaSession mockMediaSession = mock(MediaSession.class); Bundle commandButtonBundle = new Bundle(); commandButtonBundle.putInt(DefaultMediaNotificationProvider.COMMAND_KEY_COMPACT_VIEW_INDEX, 1); CommandButton commandButton1 = @@ -291,10 +320,15 @@ public void addNotificationActions_unsetLeadingArrayFields_cropped() { int[] compactViewIndices = defaultMediaNotificationProvider.addNotificationActions( - ImmutableList.of(commandButton1), mockNotificationBuilder, mockActionFactory); + mockMediaSession, + ImmutableList.of(commandButton1), + mockNotificationBuilder, + mockActionFactory); InOrder inOrder = Mockito.inOrder(mockActionFactory); - inOrder.verify(mockActionFactory).createCustomActionFromCustomCommandButton(commandButton1); + inOrder + .verify(mockActionFactory) + .createCustomActionFromCustomCommandButton(mockMediaSession, commandButton1); verifyNoMoreInteractions(mockActionFactory); // [INDEX_UNSET, 1, INDEX_UNSET] cropped up to the first INDEX_UNSET value assertThat(compactViewIndices).asList().isEmpty(); @@ -307,6 +341,10 @@ public void addNotificationActions_correctNotificationActionAttributes() { NotificationCompat.Builder mockNotificationBuilder = mock(NotificationCompat.Builder.class); DefaultActionFactory defaultActionFactory = new DefaultActionFactory(Robolectric.setupService(TestService.class)); + MediaSession mockMediaSession = mock(MediaSession.class); + MediaSessionImpl mockMediaSessionImpl = mock(MediaSessionImpl.class); + when(mockMediaSession.getImpl()).thenReturn(mockMediaSessionImpl); + when(mockMediaSessionImpl.getUri()).thenReturn(Uri.parse("http://example.com")); Bundle commandButtonBundle = new Bundle(); commandButtonBundle.putString("testKey", "testValue"); CommandButton commandButton1 = @@ -318,12 +356,17 @@ public void addNotificationActions_correctNotificationActionAttributes() { .build(); defaultMediaNotificationProvider.addNotificationActions( - ImmutableList.of(commandButton1), mockNotificationBuilder, defaultActionFactory); + mockMediaSession, + ImmutableList.of(commandButton1), + mockNotificationBuilder, + defaultActionFactory); ArgumentCaptor actionCaptor = ArgumentCaptor.forClass(NotificationCompat.Action.class); verify(mockNotificationBuilder).addAction(actionCaptor.capture()); verifyNoMoreInteractions(mockNotificationBuilder); + verify(mockMediaSessionImpl).getUri(); + verifyNoMoreInteractions(mockMediaSessionImpl); List actions = actionCaptor.getAllValues(); assertThat(actions).hasSize(1); assertThat(String.valueOf(actions.get(0).title)).isEqualTo("displayName1"); From 12d775f055faac1b9de2c53fd296c5b1d0f89a32 Mon Sep 17 00:00:00 2001 From: claincly Date: Thu, 9 Jun 2022 15:41:09 +0000 Subject: [PATCH 178/182] Ensure re-encode on performance tests PiperOrigin-RevId: 453933854 --- .../media3/transformer/AndroidTestUtil.java | 67 +++++++++++-------- .../RepeatedTranscodeTransformationTest.java | 6 +- .../transformer/mh/TranscodeQualityTest.java | 4 +- .../transformer/mh/TransformationTest.java | 23 +++---- .../mh/analysis/BitrateAnalysisTest.java | 15 +++-- .../EncoderPerformanceAnalysisTest.java | 13 ++-- 6 files changed, 71 insertions(+), 57 deletions(-) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java index 6aac30e68c0..0906548e2ad 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java @@ -218,33 +218,46 @@ public static void recordTestSkipped(Context context, String testId, String reas writeTestSummaryToFile(context, testId, testJson); } - /** - * A {@link Codec.EncoderFactory} that forces encoding, wrapping {@link DefaultEncoderFactory}. - */ - public static final Codec.EncoderFactory FORCE_ENCODE_ENCODER_FACTORY = - new Codec.EncoderFactory() { - @Override - public Codec createForAudioEncoding(Format format, List allowedMimeTypes) - throws TransformationException { - return Codec.EncoderFactory.DEFAULT.createForAudioEncoding(format, allowedMimeTypes); - } - - @Override - public Codec createForVideoEncoding(Format format, List allowedMimeTypes) - throws TransformationException { - return Codec.EncoderFactory.DEFAULT.createForVideoEncoding(format, allowedMimeTypes); - } - - @Override - public boolean audioNeedsEncoding() { - return true; - } - - @Override - public boolean videoNeedsEncoding() { - return true; - } - }; + /** A customizable forwarding {@link Codec.EncoderFactory} that forces encoding. */ + public static final class ForceEncodeEncoderFactory implements Codec.EncoderFactory { + + private final Codec.EncoderFactory encoderFactory; + + /** Creates an instance that wraps {@link DefaultEncoderFactory}. */ + public ForceEncodeEncoderFactory() { + encoderFactory = Codec.EncoderFactory.DEFAULT; + } + + /** + * Creates an instance that wraps {@link DefaultEncoderFactory} that wraps another {@link + * Codec.EncoderFactory}. + */ + public ForceEncodeEncoderFactory(Codec.EncoderFactory wrappedEncoderFactory) { + this.encoderFactory = wrappedEncoderFactory; + } + + @Override + public Codec createForAudioEncoding(Format format, List allowedMimeTypes) + throws TransformationException { + return encoderFactory.createForAudioEncoding(format, allowedMimeTypes); + } + + @Override + public Codec createForVideoEncoding(Format format, List allowedMimeTypes) + throws TransformationException { + return encoderFactory.createForVideoEncoding(format, allowedMimeTypes); + } + + @Override + public boolean audioNeedsEncoding() { + return true; + } + + @Override + public boolean videoNeedsEncoding() { + return true; + } + } /** * Returns a {@link JSONObject} containing device specific details from {@link Build}, including diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/RepeatedTranscodeTransformationTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/RepeatedTranscodeTransformationTest.java index e3a12b5b8ca..19b80a8aac3 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/RepeatedTranscodeTransformationTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/RepeatedTranscodeTransformationTest.java @@ -48,7 +48,7 @@ public void repeatedTranscode_givesConsistentLengthOutput() throws Exception { new Transformer.Builder(context) .setTransformationRequest( new TransformationRequest.Builder().setRotationDegrees(45).build()) - .setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY) + .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory()) .build()) .build(); @@ -78,7 +78,7 @@ public void repeatedTranscodeNoAudio_givesConsistentLengthOutput() throws Except .setRemoveAudio(true) .setTransformationRequest( new TransformationRequest.Builder().setRotationDegrees(45).build()) - .setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY) + .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory()) .build()) .build(); @@ -107,7 +107,7 @@ public void repeatedTranscodeNoVideo_givesConsistentLengthOutput() throws Except new Transformer.Builder(context) .setRemoveVideo(true) .setTransformationRequest(new TransformationRequest.Builder().build()) - .setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY) + .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory()) .build()) .build(); diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TranscodeQualityTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TranscodeQualityTest.java index 2b381d17fae..9906cf98b19 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TranscodeQualityTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TranscodeQualityTest.java @@ -52,7 +52,7 @@ public void transformWithDecodeEncode_ssimIsGreaterThan90Percent() throws Except new Transformer.Builder(context) .setTransformationRequest( new TransformationRequest.Builder().setVideoMimeType(MimeTypes.VIDEO_H264).build()) - .setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY) + .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory()) .setRemoveAudio(true) .build(); @@ -119,7 +119,7 @@ public void transcodeAvcToAvc320x240_ssimIsGreaterThan90Percent() throws Excepti new Transformer.Builder(context) .setTransformationRequest( new TransformationRequest.Builder().setVideoMimeType(MimeTypes.VIDEO_H264).build()) - .setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY) + .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory()) .setRemoveAudio(true) .build(); diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java index 8a4bcf2faf6..5a82a7c0cc0 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java @@ -15,7 +15,6 @@ */ package androidx.media3.transformer.mh; -import static androidx.media3.transformer.AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_SEF_URI_STRING; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_URI_STRING; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING; @@ -30,6 +29,7 @@ import androidx.media3.common.MediaItem; import androidx.media3.common.util.Util; import androidx.media3.transformer.AndroidTestUtil; +import androidx.media3.transformer.AndroidTestUtil.ForceEncodeEncoderFactory; import androidx.media3.transformer.DefaultEncoderFactory; import androidx.media3.transformer.EncoderSelector; import androidx.media3.transformer.TransformationRequest; @@ -52,9 +52,7 @@ public void transform() throws Exception { String testId = TAG + "_transform"; Context context = ApplicationProvider.getApplicationContext(); Transformer transformer = - new Transformer.Builder(context) - .setEncoderFactory(AndroidTestUtil.FORCE_ENCODE_ENCODER_FACTORY) - .build(); + new Transformer.Builder(context).setEncoderFactory(new ForceEncodeEncoderFactory()).build(); new TransformerAndroidTestRunner.Builder(context, transformer) .setMaybeCalculateSsim(true) .build() @@ -80,10 +78,11 @@ public void transformToSpecificBitrate() throws Exception { new Transformer.Builder(context) .setRemoveAudio(true) .setEncoderFactory( - new DefaultEncoderFactory( - EncoderSelector.DEFAULT, - new VideoEncoderSettings.Builder().setBitrate(5_000_000).build(), - /* enableFallback= */ true)) + new ForceEncodeEncoderFactory( + /* wrappedEncoderFactory= */ new DefaultEncoderFactory( + EncoderSelector.DEFAULT, + new VideoEncoderSettings.Builder().setBitrate(5_000_000).build(), + /* enableFallback= */ true))) .build(); new TransformerAndroidTestRunner.Builder(context, transformer) .setMaybeCalculateSsim(true) @@ -105,7 +104,7 @@ public void transform4K60() throws Exception { } Transformer transformer = - new Transformer.Builder(context).setEncoderFactory(FORCE_ENCODE_ENCODER_FACTORY).build(); + new Transformer.Builder(context).setEncoderFactory(new ForceEncodeEncoderFactory()).build(); new TransformerAndroidTestRunner.Builder(context, transformer) .setMaybeCalculateSsim(true) .setTimeoutSeconds(180) @@ -126,7 +125,7 @@ public void transform8K24() throws Exception { return; } Transformer transformer = - new Transformer.Builder(context).setEncoderFactory(FORCE_ENCODE_ENCODER_FACTORY).build(); + new Transformer.Builder(context).setEncoderFactory(new ForceEncodeEncoderFactory()).build(); new TransformerAndroidTestRunner.Builder(context, transformer) .setMaybeCalculateSsim(true) .setTimeoutSeconds(180) @@ -140,7 +139,7 @@ public void transformNoAudio() throws Exception { Context context = ApplicationProvider.getApplicationContext(); Transformer transformer = new Transformer.Builder(context) - .setEncoderFactory(FORCE_ENCODE_ENCODER_FACTORY) + .setEncoderFactory(new ForceEncodeEncoderFactory()) .setRemoveAudio(true) .build(); new TransformerAndroidTestRunner.Builder(context, transformer) @@ -155,7 +154,7 @@ public void transformNoVideo() throws Exception { Context context = ApplicationProvider.getApplicationContext(); Transformer transformer = new Transformer.Builder(context) - .setEncoderFactory(FORCE_ENCODE_ENCODER_FACTORY) + .setEncoderFactory(new ForceEncodeEncoderFactory()) .setRemoveVideo(true) .build(); new TransformerAndroidTestRunner.Builder(context, transformer) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/BitrateAnalysisTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/BitrateAnalysisTest.java index 8215b74b11c..efd973f5ff6 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/BitrateAnalysisTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/BitrateAnalysisTest.java @@ -116,13 +116,14 @@ public void analyzeBitrate() throws Exception { new Transformer.Builder(context) .setRemoveAudio(true) .setEncoderFactory( - new DefaultEncoderFactory( - EncoderSelector.DEFAULT, - new VideoEncoderSettings.Builder() - .setBitrate(bitrate) - .setBitrateMode(bitrateMode) - .build(), - /* enableFallback= */ false)) + new AndroidTestUtil.ForceEncodeEncoderFactory( + /* wrappedEncoderFactory= */ new DefaultEncoderFactory( + EncoderSelector.DEFAULT, + new VideoEncoderSettings.Builder() + .setBitrate(bitrate) + .setBitrateMode(bitrateMode) + .build(), + /* enableFallback= */ false))) .build(); new TransformerAndroidTestRunner.Builder(context, transformer) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/EncoderPerformanceAnalysisTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/EncoderPerformanceAnalysisTest.java index 1f379e6653d..0692bc45c5a 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/EncoderPerformanceAnalysisTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/EncoderPerformanceAnalysisTest.java @@ -126,12 +126,13 @@ public void analyzeEncoderPerformance() throws Exception { new Transformer.Builder(context) .setRemoveAudio(true) .setEncoderFactory( - new DefaultEncoderFactory( - EncoderSelector.DEFAULT, - new VideoEncoderSettings.Builder() - .setEncoderPerformanceParameters(operatingRate, priority) - .build(), - /* enableFallback= */ false)) + new AndroidTestUtil.ForceEncodeEncoderFactory( + /* wrappedEncoderFactory= */ new DefaultEncoderFactory( + EncoderSelector.DEFAULT, + new VideoEncoderSettings.Builder() + .setEncoderPerformanceParameters(operatingRate, priority) + .build(), + /* enableFallback= */ false))) .build(); new TransformerAndroidTestRunner.Builder(context, transformer) From 9221eeb2d87f049c668a056f7fd7901b91dd51e3 Mon Sep 17 00:00:00 2001 From: christosts Date: Thu, 9 Jun 2022 16:19:51 +0000 Subject: [PATCH 179/182] Fix bug: playback is frozen with HLS chunkless preparation This change fixes a bug where the player is frozen with HLS chunkless preparation because the audio stream wrappers are not marked as master timestamp sources before preparation. #minor-release PiperOrigin-RevId: 453941815 --- .../java/androidx/media3/exoplayer/hls/HlsMediaPeriod.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaPeriod.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaPeriod.java index 101bb7a2ed9..863b83f06ee 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaPeriod.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaPeriod.java @@ -555,8 +555,10 @@ private void buildAndPrepareSampleStreamWrappers(long positionUs) { this.sampleStreamWrappers = sampleStreamWrappers.toArray(new HlsSampleStreamWrapper[0]); this.manifestUrlIndicesPerWrapper = manifestUrlIndicesPerWrapper.toArray(new int[0][]); pendingPrepareCount = this.sampleStreamWrappers.length; - // Set timestamp master and trigger preparation (if not already prepared) - this.sampleStreamWrappers[0].setIsTimestampMaster(true); + // Set timestamp masters and trigger preparation (if not already prepared) + for (int i = 0; i < audioVideoSampleStreamWrapperCount; i++) { + this.sampleStreamWrappers[i].setIsTimestampMaster(true); + } for (HlsSampleStreamWrapper sampleStreamWrapper : this.sampleStreamWrappers) { sampleStreamWrapper.continuePreparing(); } From e2f0fd76730fd4042e8b2226300e5173b0179dc1 Mon Sep 17 00:00:00 2001 From: christosts Date: Thu, 9 Jun 2022 17:27:12 +0000 Subject: [PATCH 180/182] DefaultTrackSelector: Constrain audio channel count The track selector will select multi-channel formats when those can be spatialized, otherwise the selector will prefer stereo/mono audio tracks. When the device supports audio spatialization (Android 12L+), the DefaultTrackSelector will monitor for changes in the platform Spatializer and trigger a new track selection upon a Spatializer change event. Devices with a `television` UI mode are excluded from audio channel count constraints. #minor-release PiperOrigin-RevId: 453957269 --- RELEASENOTES.md | 20 + .../media3/exoplayer/ExoPlayerImpl.java | 2 + .../exoplayer/offline/DownloadHelper.java | 2 + .../trackselection/DefaultTrackSelector.java | 397 ++++++++++++++++-- .../trackselection/TrackSelector.java | 17 +- .../DefaultTrackSelectorTest.java | 125 +++++- 6 files changed, 514 insertions(+), 49 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 52d85073d36..aef2c6fd92a 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -39,6 +39,24 @@ `DefaultTrackSelector.Parameters.buildUpon` to return `DefaultTrackSelector.Parameters.Builder` instead of the deprecated `DefaultTrackSelector.ParametersBuilder`. + * Add + `DefaultTrackSelector.Parameters.constrainAudioChannelCountToDeviceCapabilities`. + which is enabled by default. When enabled, the `DefaultTrackSelector` + will prefer audio tracks whose channel count does not exceed the device + output capabilities. On handheld devices, the `DefaultTrackSelector` + will prefer stereo/mono over multichannel audio formats, unless the + multichannel format can be + [Spatialized](https://developer.android.com/reference/android/media/Spatializer) + (Android 12L+) or is a Dolby surround sound format. In addition, on + devices that support audio spatialization, the `DefaultTrackSelector` + will monitor for changes in the + [Spatializer properties](https://developer.android.com/reference/android/media/Spatializer.OnSpatializerStateChangedListener) + and trigger a new track selection upon these. Devices with a + `television` + [UI mode](https://developer.android.com/guide/topics/resources/providing-resources#UiModeQualifier) + are excluded from these constraints and the format with the highest + channel count will be preferred. To enable this feature, the + `DefaultTrackSelector` instance must be constructed with a `Context`. * Video: * Rename `DummySurface` to `PlaceholderSurface`. * Add AV1 support to the `MediaCodecVideoRenderer.getCodecMaxInputSize`. @@ -171,6 +189,8 @@ `DEFAULT_TRACK_SELECTOR_PARAMETERS` constants. Use `getDefaultTrackSelectorParameters(Context)` instead when possible, and `DEFAULT_TRACK_SELECTOR_PARAMETERS_WITHOUT_CONTEXT` otherwise. + * Remove constructor `DefaultTrackSelector(ExoTrackSelection.Factory)`. + Use `DefaultTrackSelector(Context, ExoTrackSelection.Factory)` instead. ### 1.0.0-alpha03 (2022-03-14) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java index 9f8cd262e5b..389112484a0 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java @@ -380,6 +380,7 @@ public ExoPlayerImpl(ExoPlayer.Builder builder, @Nullable Player wrappingPlayer) deviceInfo = createDeviceInfo(streamVolumeManager); videoSize = VideoSize.UNKNOWN; + trackSelector.setAudioAttributes(audioAttributes); sendRendererMessage(TRACK_TYPE_AUDIO, MSG_SET_AUDIO_SESSION_ID, audioSessionId); sendRendererMessage(TRACK_TYPE_VIDEO, MSG_SET_AUDIO_SESSION_ID, audioSessionId); sendRendererMessage(TRACK_TYPE_AUDIO, MSG_SET_AUDIO_ATTRIBUTES, audioAttributes); @@ -1375,6 +1376,7 @@ public void setAudioAttributes(AudioAttributes newAudioAttributes, boolean handl } audioFocusManager.setAudioAttributes(handleAudioFocus ? newAudioAttributes : null); + trackSelector.setAudioAttributes(newAudioAttributes); boolean playWhenReady = getPlayWhenReady(); @AudioFocusManager.PlayerCommand int playerCommand = audioFocusManager.updateAudioFocus(playWhenReady, getPlaybackState()); diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java index 25f6c981149..2874601a705 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java @@ -110,6 +110,7 @@ public final class DownloadHelper { DefaultTrackSelector.Parameters.DEFAULT_WITHOUT_CONTEXT .buildUpon() .setForceHighestSupportedBitrate(true) + .setConstrainAudioChannelCountToDeviceCapabilities(false) .build(); /** Returns the default parameters used for track selection for downloading. */ @@ -117,6 +118,7 @@ public static DefaultTrackSelector.Parameters getDefaultTrackSelectorParameters( return DefaultTrackSelector.Parameters.getDefaults(context) .buildUpon() .setForceHighestSupportedBitrate(true) + .setConstrainAudioChannelCountToDeviceCapabilities(false) .build(); } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java index f680f58e19e..fbd9f6e57d8 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java @@ -15,19 +15,29 @@ */ package androidx.media3.exoplayer.trackselection; +import static androidx.media3.common.util.Assertions.checkStateNotNull; +import static androidx.media3.common.util.Util.castNonNull; import static java.lang.annotation.ElementType.TYPE_USE; import static java.util.Collections.max; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Point; +import android.media.AudioFormat; +import android.media.AudioManager; +import android.media.Spatializer; import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; import android.text.TextUtils; import android.util.Pair; import android.util.SparseArray; import android.util.SparseBooleanArray; +import androidx.annotation.GuardedBy; import androidx.annotation.IntDef; import androidx.annotation.Nullable; +import androidx.annotation.RequiresApi; +import androidx.media3.common.AudioAttributes; import androidx.media3.common.Bundleable; import androidx.media3.common.C; import androidx.media3.common.C.FormatSupport; @@ -40,6 +50,7 @@ import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.BundleableUtil; +import androidx.media3.common.util.Log; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.exoplayer.ExoPlaybackException; @@ -50,6 +61,7 @@ import androidx.media3.exoplayer.RendererConfiguration; import androidx.media3.exoplayer.source.MediaSource.MediaPeriodId; import androidx.media3.exoplayer.source.TrackGroupArray; +import com.google.common.base.Predicate; import com.google.common.collect.ComparisonChain; import com.google.common.collect.ImmutableList; import com.google.common.collect.Ordering; @@ -65,7 +77,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import java.util.concurrent.atomic.AtomicReference; import org.checkerframework.checker.nullness.compatqual.NullableType; /** @@ -101,6 +112,12 @@ @UnstableApi public class DefaultTrackSelector extends MappingTrackSelector { + private static final String TAG = "DefaultTrackSelector"; + private static final String AUDIO_CHANNEL_COUNT_CONSTRAINTS_WARN_MESSAGE = + "Audio channel count constraints cannot be applied without reference to Context. Build the" + + " track selector instance with one of the non-deprecated constructors that take a" + + " Context argument."; + /** * @deprecated Use {@link Parameters.Builder} instead. */ @@ -680,6 +697,7 @@ public static final class Builder extends TrackSelectionParameters.Builder { private boolean allowAudioMixedSampleRateAdaptiveness; private boolean allowAudioMixedChannelCountAdaptiveness; private boolean allowAudioMixedDecoderSupportAdaptiveness; + private boolean constrainAudioChannelCountToDeviceCapabilities; // General private boolean exceedRendererCapabilitiesIfNecessary; private boolean tunnelingEnabled; @@ -734,6 +752,8 @@ private Builder(Parameters initialValues) { initialValues.allowAudioMixedChannelCountAdaptiveness; allowAudioMixedDecoderSupportAdaptiveness = initialValues.allowAudioMixedDecoderSupportAdaptiveness; + constrainAudioChannelCountToDeviceCapabilities = + initialValues.constrainAudioChannelCountToDeviceCapabilities; // General exceedRendererCapabilitiesIfNecessary = initialValues.exceedRendererCapabilitiesIfNecessary; tunnelingEnabled = initialValues.tunnelingEnabled; @@ -746,6 +766,7 @@ private Builder(Parameters initialValues) { @SuppressWarnings("method.invocation") // Only setter are invoked. private Builder(Bundle bundle) { super(bundle); + init(); Parameters defaultValue = Parameters.DEFAULT_WITHOUT_CONTEXT; // Video setExceedVideoConstraintsIfNecessary( @@ -788,6 +809,11 @@ private Builder(Bundle bundle) { Parameters.keyForField( Parameters.FIELD_ALLOW_AUDIO_MIXED_DECODER_SUPPORT_ADAPTIVENESS), defaultValue.allowAudioMixedDecoderSupportAdaptiveness)); + setConstrainAudioChannelCountToDeviceCapabilities( + bundle.getBoolean( + Parameters.keyForField( + Parameters.FIELD_CONSTRAIN_AUDIO_CHANNEL_COUNT_TO_DEVICE_CAPABILITIES), + defaultValue.constrainAudioChannelCountToDeviceCapabilities)); // General setExceedRendererCapabilitiesIfNecessary( bundle.getBoolean( @@ -1082,6 +1108,36 @@ public Builder setPreferredAudioMimeTypes(String... mimeTypes) { return this; } + /** + * Whether to only select audio tracks with channel counts that don't exceed the device's + * output capabilities. The default value is {@code true}. + * + *

    When enabled, the track selector will prefer stereo/mono audio tracks over multichannel + * if the audio cannot be spatialized or the device is outputting stereo audio. For example, + * on a mobile device that outputs non-spatialized audio to its speakers. Dolby surround sound + * formats are excluded from these constraints because some Dolby decoders are known to + * spatialize multichannel audio on Android OS versions that don't support the {@link + * Spatializer} API. + * + *

    For devices with Android 12L+ that support {@linkplain Spatializer audio + * spatialization}, when this is enabled the track selector will trigger a new track selection + * everytime a change in {@linkplain Spatializer.OnSpatializerStateChangedListener + * spatialization properties} is detected. + * + *

    The constraints do not apply on devices with {@code + * television} UI mode. + * + *

    The constraints do not apply when the track selector is created without a reference to a + * {@link Context} via the deprecated {@link + * DefaultTrackSelector#DefaultTrackSelector(TrackSelectionParameters, + * ExoTrackSelection.Factory)} constructor. + */ + public Builder setConstrainAudioChannelCountToDeviceCapabilities(boolean enabled) { + constrainAudioChannelCountToDeviceCapabilities = enabled; + return this; + } + // Text @Override @@ -1381,6 +1437,7 @@ private void init(Builder this) { allowAudioMixedSampleRateAdaptiveness = false; allowAudioMixedChannelCountAdaptiveness = false; allowAudioMixedDecoderSupportAdaptiveness = false; + constrainAudioChannelCountToDeviceCapabilities = true; // General exceedRendererCapabilitiesIfNecessary = true; tunnelingEnabled = false; @@ -1475,6 +1532,7 @@ public static Parameters getDefaults(Context context) { } // Video + /** * Whether to exceed the {@link #maxVideoWidth}, {@link #maxVideoHeight} and {@link * #maxVideoBitrate} constraints when no selection can be made otherwise. The default value is @@ -1499,6 +1557,9 @@ public static Parameters getDefaults(Context context) { * RendererCapabilities.HardwareAccelerationSupport}. */ public final boolean allowVideoMixedDecoderSupportAdaptiveness; + + // Audio + /** * Whether to exceed the {@link #maxAudioChannelCount} and {@link #maxAudioBitrate} constraints * when no selection can be made otherwise. The default value is {@code true}. @@ -1526,6 +1587,14 @@ public static Parameters getDefaults(Context context) { * RendererCapabilities.HardwareAccelerationSupport}. */ public final boolean allowAudioMixedDecoderSupportAdaptiveness; + /** + * Whether to constrain audio track selection so that the selected track's channel count does + * not exceed the device's output capabilities. The default value is {@code true}. + */ + public final boolean constrainAudioChannelCountToDeviceCapabilities; + + // General + /** * Whether to exceed renderer capabilities when no selection can be made otherwise. * @@ -1566,6 +1635,8 @@ private Parameters(Builder builder) { allowAudioMixedSampleRateAdaptiveness = builder.allowAudioMixedSampleRateAdaptiveness; allowAudioMixedChannelCountAdaptiveness = builder.allowAudioMixedChannelCountAdaptiveness; allowAudioMixedDecoderSupportAdaptiveness = builder.allowAudioMixedDecoderSupportAdaptiveness; + constrainAudioChannelCountToDeviceCapabilities = + builder.constrainAudioChannelCountToDeviceCapabilities; // General exceedRendererCapabilitiesIfNecessary = builder.exceedRendererCapabilitiesIfNecessary; tunnelingEnabled = builder.tunnelingEnabled; @@ -1654,6 +1725,8 @@ public boolean equals(@Nullable Object obj) { == other.allowAudioMixedChannelCountAdaptiveness && allowAudioMixedDecoderSupportAdaptiveness == other.allowAudioMixedDecoderSupportAdaptiveness + && constrainAudioChannelCountToDeviceCapabilities + == other.constrainAudioChannelCountToDeviceCapabilities // General && exceedRendererCapabilitiesIfNecessary == other.exceedRendererCapabilitiesIfNecessary && tunnelingEnabled == other.tunnelingEnabled @@ -1678,6 +1751,7 @@ public int hashCode() { result = 31 * result + (allowAudioMixedSampleRateAdaptiveness ? 1 : 0); result = 31 * result + (allowAudioMixedChannelCountAdaptiveness ? 1 : 0); result = 31 * result + (allowAudioMixedDecoderSupportAdaptiveness ? 1 : 0); + result = 31 * result + (constrainAudioChannelCountToDeviceCapabilities ? 1 : 0); // General result = 31 * result + (exceedRendererCapabilitiesIfNecessary ? 1 : 0); result = 31 * result + (tunnelingEnabled ? 1 : 0); @@ -1712,6 +1786,8 @@ public int hashCode() { FIELD_CUSTOM_ID_BASE + 14; private static final int FIELD_ALLOW_AUDIO_MIXED_DECODER_SUPPORT_ADAPTIVENESS = FIELD_CUSTOM_ID_BASE + 15; + private static final int FIELD_CONSTRAIN_AUDIO_CHANNEL_COUNT_TO_DEVICE_CAPABILITIES = + FIELD_CUSTOM_ID_BASE + 16; @Override public Bundle toBundle() { @@ -1746,6 +1822,9 @@ public Bundle toBundle() { bundle.putBoolean( keyForField(FIELD_ALLOW_AUDIO_MIXED_DECODER_SUPPORT_ADAPTIVENESS), allowAudioMixedDecoderSupportAdaptiveness); + bundle.putBoolean( + keyForField(FIELD_CONSTRAIN_AUDIO_CHANNEL_COUNT_TO_DEVICE_CAPABILITIES), + constrainAudioChannelCountToDeviceCapabilities); // General bundle.putBoolean( keyForField(FIELD_EXCEED_RENDERER_CAPABILITIES_IF_NECESSARY), @@ -2004,8 +2083,20 @@ private static String keyForField(@FieldNumber int field) { /** Ordering where all elements are equal. */ private static final Ordering NO_ORDER = Ordering.from((first, second) -> 0); + private final Object lock; + @Nullable public final Context context; private final ExoTrackSelection.Factory trackSelectionFactory; - private final AtomicReference parametersReference; + private final boolean deviceIsTV; + + @GuardedBy("lock") + private Parameters parameters; + + @GuardedBy("lock") + @Nullable + private SpatializerWrapperV32 spatializer; + + @GuardedBy("lock") + private AudioAttributes audioAttributes; /** * @deprecated Use {@link #DefaultTrackSelector(Context)} instead. @@ -2015,14 +2106,6 @@ public DefaultTrackSelector() { this(Parameters.DEFAULT_WITHOUT_CONTEXT, new AdaptiveTrackSelection.Factory()); } - /** - * @deprecated Use {@link #DefaultTrackSelector(Context, ExoTrackSelection.Factory)}. - */ - @Deprecated - public DefaultTrackSelector(ExoTrackSelection.Factory trackSelectionFactory) { - this(Parameters.DEFAULT_WITHOUT_CONTEXT, trackSelectionFactory); - } - /** * @param context Any {@link Context}. */ @@ -2035,26 +2118,88 @@ public DefaultTrackSelector(Context context) { * @param trackSelectionFactory A factory for {@link ExoTrackSelection}s. */ public DefaultTrackSelector(Context context, ExoTrackSelection.Factory trackSelectionFactory) { - this(Parameters.getDefaults(context), trackSelectionFactory); + this(context, Parameters.getDefaults(context), trackSelectionFactory); } /** + * @param context Any {@link Context}. * @param parameters Initial {@link TrackSelectionParameters}. - * @param trackSelectionFactory A factory for {@link ExoTrackSelection}s. */ + public DefaultTrackSelector(Context context, TrackSelectionParameters parameters) { + this(context, parameters, new AdaptiveTrackSelection.Factory()); + } + + /** + * @deprecated Use {@link #DefaultTrackSelector(Context, TrackSelectionParameters, + * ExoTrackSelection.Factory)} + */ + @Deprecated public DefaultTrackSelector( TrackSelectionParameters parameters, ExoTrackSelection.Factory trackSelectionFactory) { + this(parameters, trackSelectionFactory, /* context= */ null); + } + + /** + * @param context Any {@link Context}. + * @param parameters Initial {@link TrackSelectionParameters}. + * @param trackSelectionFactory A factory for {@link ExoTrackSelection}s. + */ + public DefaultTrackSelector( + Context context, + TrackSelectionParameters parameters, + ExoTrackSelection.Factory trackSelectionFactory) { + this(parameters, trackSelectionFactory, context); + } + + /** + * Exists for backwards compatibility so that the deprecated constructor {@link + * #DefaultTrackSelector(TrackSelectionParameters, ExoTrackSelection.Factory)} can initialize + * {@code context} with {@code null} while we don't have a public constructor with a {@code + * Nullable context}. + * + * @param context Any {@link Context}. + * @param parameters Initial {@link TrackSelectionParameters}. + * @param trackSelectionFactory A factory for {@link ExoTrackSelection}s. + */ + private DefaultTrackSelector( + TrackSelectionParameters parameters, + ExoTrackSelection.Factory trackSelectionFactory, + @Nullable Context context) { + this.lock = new Object(); + this.context = context != null ? context.getApplicationContext() : null; this.trackSelectionFactory = trackSelectionFactory; - parametersReference = - new AtomicReference<>( - parameters instanceof Parameters - ? (Parameters) parameters - : Parameters.DEFAULT_WITHOUT_CONTEXT.buildUpon().set(parameters).build()); + if (parameters instanceof Parameters) { + this.parameters = (Parameters) parameters; + } else { + Parameters defaultParameters = + context == null ? Parameters.DEFAULT_WITHOUT_CONTEXT : Parameters.getDefaults(context); + this.parameters = defaultParameters.buildUpon().set(parameters).build(); + } + this.audioAttributes = AudioAttributes.DEFAULT; + this.deviceIsTV = context != null && Util.isTv(context); + if (!deviceIsTV && context != null && Util.SDK_INT >= 32) { + spatializer = SpatializerWrapperV32.tryCreateInstance(context); + } + if (this.parameters.constrainAudioChannelCountToDeviceCapabilities && context == null) { + Log.w(TAG, AUDIO_CHANNEL_COUNT_CONSTRAINTS_WARN_MESSAGE); + } + } + + @Override + public void release() { + synchronized (lock) { + if (Util.SDK_INT >= 32 && spatializer != null) { + spatializer.release(); + } + } + super.release(); } @Override public Parameters getParameters() { - return parametersReference.get(); + synchronized (lock) { + return parameters; + } } @Override @@ -2068,11 +2213,22 @@ public void setParameters(TrackSelectionParameters parameters) { setParametersInternal((Parameters) parameters); } // Only add the fields of `TrackSelectionParameters` to `parameters`. - Parameters mergedParameters = - new Parameters.Builder(parametersReference.get()).set(parameters).build(); + Parameters mergedParameters = new Parameters.Builder(getParameters()).set(parameters).build(); setParametersInternal(mergedParameters); } + @Override + public void setAudioAttributes(AudioAttributes audioAttributes) { + boolean audioAttributesChanged; + synchronized (lock) { + audioAttributesChanged = !this.audioAttributes.equals(audioAttributes); + this.audioAttributes = audioAttributes; + } + if (audioAttributesChanged) { + maybeInvalidateForAudioChannelCountConstraints(); + } + } + /** * @deprecated Use {@link #setParameters(Parameters.Builder)} instead. */ @@ -2103,7 +2259,16 @@ public Parameters.Builder buildUponParameters() { */ private void setParametersInternal(Parameters parameters) { Assertions.checkNotNull(parameters); - if (!parametersReference.getAndSet(parameters).equals(parameters)) { + boolean parametersChanged; + synchronized (lock) { + parametersChanged = !this.parameters.equals(parameters); + this.parameters = parameters; + } + + if (parametersChanged) { + if (parameters.constrainAudioChannelCountToDeviceCapabilities && context == null) { + Log.w(TAG, AUDIO_CHANNEL_COUNT_CONSTRAINTS_WARN_MESSAGE); + } invalidate(); } } @@ -2119,22 +2284,33 @@ private void setParametersInternal(Parameters parameters) { MediaPeriodId mediaPeriodId, Timeline timeline) throws ExoPlaybackException { - Parameters params = parametersReference.get(); + Parameters parameters; + synchronized (lock) { + parameters = this.parameters; + if (parameters.constrainAudioChannelCountToDeviceCapabilities + && Util.SDK_INT >= 32 + && spatializer != null) { + // Initialize the spatializer now so we can get a reference to the playback looper with + // Looper.myLooper(). + spatializer.ensureInitialized(this, checkStateNotNull(Looper.myLooper())); + } + } int rendererCount = mappedTrackInfo.getRendererCount(); ExoTrackSelection.@NullableType Definition[] definitions = selectAllTracks( mappedTrackInfo, rendererFormatSupports, rendererMixedMimeTypeAdaptationSupports, - params); + parameters); - applyTrackSelectionOverrides(mappedTrackInfo, params, definitions); - applyLegacyRendererOverrides(mappedTrackInfo, params, definitions); + applyTrackSelectionOverrides(mappedTrackInfo, parameters, definitions); + applyLegacyRendererOverrides(mappedTrackInfo, parameters, definitions); // Disable renderers if needed. for (int i = 0; i < rendererCount; i++) { @C.TrackType int rendererType = mappedTrackInfo.getRendererType(i); - if (params.getRendererDisabled(i) || params.disabledTrackTypes.contains(rendererType)) { + if (parameters.getRendererDisabled(i) + || parameters.disabledTrackTypes.contains(rendererType)) { definitions[i] = null; } } @@ -2151,7 +2327,7 @@ private void setParametersInternal(Parameters parameters) { for (int i = 0; i < rendererCount; i++) { @C.TrackType int rendererType = mappedTrackInfo.getRendererType(i); boolean forceRendererDisabled = - params.getRendererDisabled(i) || params.disabledTrackTypes.contains(rendererType); + parameters.getRendererDisabled(i) || parameters.disabledTrackTypes.contains(rendererType); boolean rendererEnabled = !forceRendererDisabled && (mappedTrackInfo.getRendererType(i) == C.TRACK_TYPE_NONE @@ -2160,7 +2336,7 @@ private void setParametersInternal(Parameters parameters) { } // Configure audio and video renderers to use tunneling if appropriate. - if (params.tunnelingEnabled) { + if (parameters.tunnelingEnabled) { maybeConfigureRenderersForTunneling( mappedTrackInfo, rendererFormatSupports, rendererConfigurations, rendererTrackSelections); } @@ -2316,10 +2492,50 @@ protected Pair selectAudioTrack( rendererFormatSupports, (int rendererIndex, TrackGroup group, @Capabilities int[] support) -> AudioTrackInfo.createForTrackGroup( - rendererIndex, group, params, support, hasVideoRendererWithMappedTracksFinal), + rendererIndex, + group, + params, + support, + hasVideoRendererWithMappedTracksFinal, + this::isAudioFormatWithinAudioChannelCountConstraints), AudioTrackInfo::compareSelections); } + /** + * Returns whether an audio format is within the audio channel count constraints. + * + *

    This method returns {@code true} if one of the following holds: + * + *

      + *
    • Audio channel count constraints are not applicable (all formats are considered within + * constraints). + *
    • The device has a {@code + * television} UI mode. + *
    • {@code format} has up to 2 channels. + *
    • The device does not support audio spatialization and the format is {@linkplain + * #isDolbyAudio(Format) a Dolby one}. + *
    • Audio spatialization is applicable and {@code format} can be spatialized. + *
    + */ + private boolean isAudioFormatWithinAudioChannelCountConstraints(Format format) { + synchronized (lock) { + return !parameters.constrainAudioChannelCountToDeviceCapabilities + || deviceIsTV + || format.channelCount <= 2 + || (isDolbyAudio(format) + && (Util.SDK_INT < 32 + || spatializer == null + || !spatializer.isSpatializationSupported())) + || (Util.SDK_INT >= 32 + && spatializer != null + && spatializer.isSpatializationSupported() + && spatializer.isAvailable() + && spatializer.isEnabled() + && spatializer.canBeSpatialized(audioAttributes, format)); + } + } + // Text track selection implementation. /** @@ -2453,6 +2669,21 @@ private > Pair sel firstTrackInfo.rendererIndex); } + private void maybeInvalidateForAudioChannelCountConstraints() { + boolean shouldInvalidate; + synchronized (lock) { + shouldInvalidate = + parameters.constrainAudioChannelCountToDeviceCapabilities + && !deviceIsTV + && Util.SDK_INT >= 32 + && spatializer != null + && spatializer.isSpatializationSupported(); + } + if (shouldInvalidate) { + invalidate(); + } + } + // Utility methods. private static void applyTrackSelectionOverrides( @@ -2777,6 +3008,21 @@ private static int getVideoCodecPreferenceScore(@Nullable String mimeType) { } } + private static boolean isDolbyAudio(Format format) { + if (format.sampleMimeType == null) { + return false; + } + switch (format.sampleMimeType) { + case MimeTypes.AUDIO_AC3: + case MimeTypes.AUDIO_E_AC3: + case MimeTypes.AUDIO_E_AC3_JOC: + case MimeTypes.AUDIO_AC4: + return true; + default: + return false; + } + } + /** Base class for track selection information of a {@link Format}. */ private abstract static class TrackInfo> { /** Factory for {@link TrackInfo} implementations for a given {@link TrackGroup}. */ @@ -3026,7 +3272,8 @@ public static ImmutableList createForTrackGroup( TrackGroup trackGroup, Parameters params, @Capabilities int[] formatSupport, - boolean hasMappedVideoTracks) { + boolean hasMappedVideoTracks, + Predicate withinAudioChannelCountConstraints) { ImmutableList.Builder listBuilder = ImmutableList.builder(); for (int i = 0; i < trackGroup.length; i++) { listBuilder.add( @@ -3036,7 +3283,8 @@ public static ImmutableList createForTrackGroup( /* trackIndex= */ i, params, formatSupport[i], - hasMappedVideoTracks)); + hasMappedVideoTracks, + withinAudioChannelCountConstraints)); } return listBuilder.build(); } @@ -3066,7 +3314,8 @@ public AudioTrackInfo( int trackIndex, Parameters parameters, @Capabilities int formatSupport, - boolean hasMappedVideoTracks) { + boolean hasMappedVideoTracks, + Predicate withinAudioChannelCountConstraints) { super(rendererIndex, trackGroup, trackIndex); this.parameters = parameters; this.language = normalizeUndeterminedLanguageToNull(format.language); @@ -3098,7 +3347,8 @@ public AudioTrackInfo( isWithinConstraints = (format.bitrate == Format.NO_VALUE || format.bitrate <= parameters.maxAudioBitrate) && (format.channelCount == Format.NO_VALUE - || format.channelCount <= parameters.maxAudioChannelCount); + || format.channelCount <= parameters.maxAudioChannelCount) + && withinAudioChannelCountConstraints.apply(format); String[] localeLanguages = Util.getSystemLanguageCodes(); int bestLocaleMatchIndex = Integer.MAX_VALUE; int bestLocaleMatchScore = 0; @@ -3375,4 +3625,85 @@ public int compareTo(OtherTrackScore other) { .result(); } } + + /** + * Wraps the {@link Spatializer} in order to encapsulate its APIs within an inner class, to avoid + * runtime linking on devices with {@code API < 32}. + */ + @RequiresApi(32) + private static class SpatializerWrapperV32 { + + private final Spatializer spatializer; + private final boolean spatializationSupported; + + @Nullable private Handler handler; + @Nullable private Spatializer.OnSpatializerStateChangedListener listener; + + @Nullable + public static SpatializerWrapperV32 tryCreateInstance(Context context) { + @Nullable + AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); + return audioManager == null ? null : new SpatializerWrapperV32(audioManager.getSpatializer()); + } + + private SpatializerWrapperV32(Spatializer spatializer) { + this.spatializer = spatializer; + this.spatializationSupported = + spatializer.getImmersiveAudioLevel() != Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_NONE; + } + + public void ensureInitialized(DefaultTrackSelector defaultTrackSelector, Looper looper) { + if (listener != null || handler != null) { + return; + } + this.listener = + new Spatializer.OnSpatializerStateChangedListener() { + @Override + public void onSpatializerEnabledChanged(Spatializer spatializer, boolean enabled) { + defaultTrackSelector.maybeInvalidateForAudioChannelCountConstraints(); + } + + @Override + public void onSpatializerAvailableChanged(Spatializer spatializer, boolean available) { + defaultTrackSelector.maybeInvalidateForAudioChannelCountConstraints(); + } + }; + this.handler = new Handler(looper); + spatializer.addOnSpatializerStateChangedListener(handler::post, listener); + } + + public boolean isSpatializationSupported() { + return spatializationSupported; + } + + public boolean isAvailable() { + return spatializer.isAvailable(); + } + + public boolean isEnabled() { + return spatializer.isEnabled(); + } + + public boolean canBeSpatialized(AudioAttributes audioAttributes, Format format) { + AudioFormat.Builder builder = + new AudioFormat.Builder() + .setEncoding(AudioFormat.ENCODING_PCM_16BIT) + .setChannelMask(Util.getAudioTrackChannelConfig(format.channelCount)); + if (format.sampleRate != Format.NO_VALUE) { + builder.setSampleRate(format.sampleRate); + } + return spatializer.canBeSpatialized( + audioAttributes.getAudioAttributesV21().audioAttributes, builder.build()); + } + + public void release() { + if (listener == null || handler == null) { + return; + } + spatializer.removeOnSpatializerStateChangedListener(listener); + castNonNull(handler).removeCallbacksAndMessages(/* token= */ null); + handler = null; + listener = null; + } + } } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelector.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelector.java index bfde8b19c5a..f6ca0f3eee4 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelector.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelector.java @@ -17,7 +17,9 @@ import static androidx.media3.common.util.Assertions.checkStateNotNull; +import androidx.annotation.CallSuper; import androidx.annotation.Nullable; +import androidx.media3.common.AudioAttributes; import androidx.media3.common.Player; import androidx.media3.common.Timeline; import androidx.media3.common.TrackSelectionParameters; @@ -112,7 +114,8 @@ public interface InvalidationListener { * it has previously made are no longer valid. * @param bandwidthMeter A bandwidth meter which can be used by track selections to select tracks. */ - public final void init(InvalidationListener listener, BandwidthMeter bandwidthMeter) { + @CallSuper + public void init(InvalidationListener listener, BandwidthMeter bandwidthMeter) { this.listener = listener; this.bandwidthMeter = bandwidthMeter; } @@ -121,9 +124,10 @@ public final void init(InvalidationListener listener, BandwidthMeter bandwidthMe * Called by the player to release the selector. The selector cannot be used until {@link * #init(InvalidationListener, BandwidthMeter)} is called again. */ - public final void release() { - this.listener = null; - this.bandwidthMeter = null; + @CallSuper + public void release() { + listener = null; + bandwidthMeter = null; } /** @@ -178,6 +182,11 @@ public boolean isSetParametersSupported() { return false; } + /** Called by the player to set the {@link AudioAttributes} that will be used for playback. */ + public void setAudioAttributes(AudioAttributes audioAttributes) { + // Default implementation is no-op. + } + /** * Calls {@link InvalidationListener#onTrackSelectionsInvalidated()} to invalidate all previously * generated track selections. diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelectorTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelectorTest.java index 60d69cdb993..a90b542769d 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelectorTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelectorTest.java @@ -31,9 +31,9 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.mockito.MockitoAnnotations.initMocks; import android.content.Context; +import android.media.Spatializer; import androidx.media3.common.Bundleable; import androidx.media3.common.C; import androidx.media3.common.Format; @@ -68,14 +68,19 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; /** Unit tests for {@link DefaultTrackSelector}. */ @RunWith(AndroidJUnit4.class) public final class DefaultTrackSelectorTest { + @Rule public final MockitoRule mockito = MockitoJUnit.rule(); + private static final RendererCapabilities ALL_AUDIO_FORMAT_SUPPORTED_RENDERER_CAPABILITIES = new FakeRendererCapabilities(C.TRACK_TYPE_AUDIO); private static final RendererCapabilities ALL_TEXT_FORMAT_SUPPORTED_RENDERER_CAPABILITIES = @@ -142,7 +147,6 @@ public static void setUpBeforeClass() { @Before public void setUp() { - initMocks(this); when(bandwidthMeter.getBitrateEstimate()).thenReturn(1000000L); Context context = ApplicationProvider.getApplicationContext(); defaultParameters = Parameters.getDefaults(context); @@ -877,11 +881,18 @@ public void selectTracksPreferTrackWithinCapabilitiesOverSelectionFlagAndPreferr * are the same, and tracks are within renderer's capabilities. */ @Test - public void selectTracksWithinCapabilitiesSelectHigherNumChannel() throws Exception { + public void + selectTracks_audioChannelCountConstraintsDisabledAndTracksWithinCapabilities_selectHigherNumChannel() + throws Exception { Format.Builder formatBuilder = AUDIO_FORMAT.buildUpon(); Format higherChannelFormat = formatBuilder.setChannelCount(6).build(); Format lowerChannelFormat = formatBuilder.setChannelCount(2).build(); TrackGroupArray trackGroups = wrapFormats(higherChannelFormat, lowerChannelFormat); + trackSelector.setParameters( + trackSelector + .buildUponParameters() + .setConstrainAudioChannelCountToDeviceCapabilities(false) + .build()); TrackSelectorResult result = trackSelector.selectTracks( @@ -957,11 +968,13 @@ public void selectAudioTracks_withinCapabilities_andDifferentLanguage_selectsFir /** * Tests that track selector will prefer audio tracks with higher channel count over tracks with - * higher sample rate when other factors are the same, and tracks are within renderer's - * capabilities. + * higher sample rate when audio channel count constraints are disabled, other factors are the + * same, and tracks are within renderer's capabilities. */ @Test - public void selectTracksPreferHigherNumChannelBeforeSampleRate() throws Exception { + public void + selectTracks_audioChannelCountConstraintsDisabled_preferHigherNumChannelBeforeSampleRate() + throws Exception { Format.Builder formatBuilder = AUDIO_FORMAT.buildUpon(); Format higherChannelLowerSampleRateFormat = formatBuilder.setChannelCount(6).setSampleRate(22050).build(); @@ -969,6 +982,11 @@ public void selectTracksPreferHigherNumChannelBeforeSampleRate() throws Exceptio formatBuilder.setChannelCount(2).setSampleRate(44100).build(); TrackGroupArray trackGroups = wrapFormats(higherChannelLowerSampleRateFormat, lowerChannelHigherSampleRateFormat); + trackSelector.setParameters( + trackSelector + .buildUponParameters() + .setConstrainAudioChannelCountToDeviceCapabilities(false) + .build()); TrackSelectorResult result = trackSelector.selectTracks( @@ -1454,9 +1472,67 @@ public void selectTracksWithMultipleAudioTracks() throws Exception { assertAdaptiveSelection(result.selections[0], trackGroups.get(0), 0, 1); } + /** + * The following test is subject to the execution context. It currently runs on SDK 30 and the + * environment matches a handheld device ({@link Util#isTv(Context)} returns {@code false}) and + * there is no {@link android.media.Spatializer}. If the execution environment upgrades, the test + * may start failing depending on how the Robolectric Spatializer behaves. If the test starts + * failing, and Robolectric offers a shadow Spatializer whose behavior can be controlled, revise + * this test so that the Spatializer cannot spatialize the multichannel format. Also add tests + * where the Spatializer can spatialize multichannel formats and the track selector picks a + * multichannel format. + */ @Test - public void selectTracks_multipleAudioTracks_selectsAllTracksInBestConfigurationOnly() - throws Exception { + public void selectTracks_stereoAndMultichannelAACTracks_selectsStereo() + throws ExoPlaybackException { + Format stereoAudioFormat = AUDIO_FORMAT.buildUpon().setChannelCount(2).setId("0").build(); + Format multichannelAudioFormat = AUDIO_FORMAT.buildUpon().setChannelCount(6).setId("1").build(); + TrackGroupArray trackGroups = singleTrackGroup(stereoAudioFormat, multichannelAudioFormat); + + TrackSelectorResult result = + trackSelector.selectTracks( + new RendererCapabilities[] {AUDIO_CAPABILITIES}, trackGroups, periodId, TIMELINE); + + assertThat(result.length).isEqualTo(1); + assertThat(result.selections[0].getSelectedFormat()).isSameInstanceAs(stereoAudioFormat); + } + + /** + * The following test is subject to the execution context. It currently runs on SDK 30 and the + * environment matches a handheld device ({@link Util#isTv(Context)} returns {@code false}) and + * there is no {@link android.media.Spatializer}. If the execution environment upgrades, the test + * may start failing depending on how the Robolectric Spatializer behaves. If the test starts + * failing, and Robolectric offers a shadow Spatializer whose behavior can be controlled, revise + * this test so that the Spatializer does not support spatialization ({@link + * Spatializer#getImmersiveAudioLevel()} returns {@link + * Spatializer#SPATIALIZER_IMMERSIVE_LEVEL_NONE}). + */ + @Test + public void + selectTracks_withAACStereoAndDolbyMultichannelTrackWithinCapabilities_selectsDolbyMultichannelTrack() + throws ExoPlaybackException { + Format stereoAudioFormat = AUDIO_FORMAT.buildUpon().setChannelCount(2).setId("0").build(); + Format multichannelAudioFormat = + AUDIO_FORMAT + .buildUpon() + .setSampleMimeType(MimeTypes.AUDIO_AC3) + .setChannelCount(6) + .setId("1") + .build(); + TrackGroupArray trackGroups = singleTrackGroup(stereoAudioFormat, multichannelAudioFormat); + + TrackSelectorResult result = + trackSelector.selectTracks( + new RendererCapabilities[] {AUDIO_CAPABILITIES}, trackGroups, periodId, TIMELINE); + + assertThat(result.length).isEqualTo(1); + assertThat(result.selections[0].getSelectedFormat()).isSameInstanceAs(multichannelAudioFormat); + } + + @Test + public void + selectTracks_audioChannelCountConstraintsDisabledAndMultipleAudioTracks_selectsAllTracksInBestConfigurationOnly() + throws Exception { TrackGroupArray trackGroups = singleTrackGroup( buildAudioFormatWithConfiguration( @@ -1476,6 +1552,10 @@ public void selectTracks_multipleAudioTracks_selectsAllTracksInBestConfiguration /* channelCount= */ 6, MimeTypes.AUDIO_AAC, /* sampleRate= */ 44100)); + trackSelector.setParameters( + trackSelector + .buildUponParameters() + .setConstrainAudioChannelCountToDeviceCapabilities(false)); TrackSelectorResult result = trackSelector.selectTracks( @@ -1568,10 +1648,17 @@ public void selectTracksWithMultipleAudioTracksWithMixedMimeTypes() throws Excep } @Test - public void selectTracksWithMultipleAudioTracksWithMixedChannelCounts() throws Exception { + public void + selectTracks_audioChannelCountConstraintsDisabledAndMultipleAudioTracksWithMixedChannelCounts() + throws Exception { Format.Builder formatBuilder = AUDIO_FORMAT.buildUpon(); Format stereoAudioFormat = formatBuilder.setChannelCount(2).build(); Format surroundAudioFormat = formatBuilder.setChannelCount(5).build(); + trackSelector.setParameters( + trackSelector + .buildUponParameters() + .setConstrainAudioChannelCountToDeviceCapabilities(false) + .build()); // Should not adapt between different channel counts, so we expect a fixed selection containing // the track with more channels. @@ -1592,7 +1679,11 @@ public void selectTracksWithMultipleAudioTracksWithMixedChannelCounts() throws E // If we constrain the channel count to 4 we expect a fixed selection containing the track with // fewer channels. - trackSelector.setParameters(defaultParameters.buildUpon().setMaxAudioChannelCount(4)); + trackSelector.setParameters( + defaultParameters + .buildUpon() + .setConstrainAudioChannelCountToDeviceCapabilities(false) + .setMaxAudioChannelCount(4)); result = trackSelector.selectTracks( new RendererCapabilities[] {AUDIO_CAPABILITIES}, trackGroups, periodId, TIMELINE); @@ -1601,7 +1692,11 @@ public void selectTracksWithMultipleAudioTracksWithMixedChannelCounts() throws E // If we constrain the channel count to 2 we expect a fixed selection containing the track with // fewer channels. - trackSelector.setParameters(defaultParameters.buildUpon().setMaxAudioChannelCount(2)); + trackSelector.setParameters( + defaultParameters + .buildUpon() + .setConstrainAudioChannelCountToDeviceCapabilities(false) + .setMaxAudioChannelCount(2)); result = trackSelector.selectTracks( new RendererCapabilities[] {AUDIO_CAPABILITIES}, trackGroups, periodId, TIMELINE); @@ -1610,7 +1705,11 @@ public void selectTracksWithMultipleAudioTracksWithMixedChannelCounts() throws E // If we constrain the channel count to 1 we expect a fixed selection containing the track with // fewer channels. - trackSelector.setParameters(defaultParameters.buildUpon().setMaxAudioChannelCount(1)); + trackSelector.setParameters( + defaultParameters + .buildUpon() + .setConstrainAudioChannelCountToDeviceCapabilities(false) + .setMaxAudioChannelCount(1)); result = trackSelector.selectTracks( new RendererCapabilities[] {AUDIO_CAPABILITIES}, trackGroups, periodId, TIMELINE); @@ -1621,6 +1720,7 @@ public void selectTracksWithMultipleAudioTracksWithMixedChannelCounts() throws E trackSelector.setParameters( defaultParameters .buildUpon() + .setConstrainAudioChannelCountToDeviceCapabilities(false) .setMaxAudioChannelCount(1) .setExceedAudioConstraintsIfNecessary(false)); result = @@ -2399,6 +2499,7 @@ private static Parameters buildParametersForEqualsTest() { .setAllowAudioMixedChannelCountAdaptiveness(true) .setAllowAudioMixedDecoderSupportAdaptiveness(false) .setPreferredAudioMimeTypes(MimeTypes.AUDIO_AC3, MimeTypes.AUDIO_E_AC3) + .setConstrainAudioChannelCountToDeviceCapabilities(false) // Text .setPreferredTextLanguages("de", "en") .setPreferredTextRoleFlags(C.ROLE_FLAG_CAPTION) From cc1f32d094cc4371d92b3ddab144d8965e1bc1c3 Mon Sep 17 00:00:00 2001 From: hschlueter Date: Thu, 9 Jun 2022 17:53:39 +0000 Subject: [PATCH 181/182] Make GlUtil.GlException checked and remove flag to disable it. Transformer always enabled glAssertionsEnabled, so there should be no functional change. ExoPlayer previously disabled glAssertionsEnabled, so GlUtil logged GlExceptions instead of throwing them. The GlExceptions are now caught and logged by the callers so that there should also be no functional change overall. This change also replaces EGLSurfaceTexture#GlException with GlUtil#GlException. PiperOrigin-RevId: 453963741 --- .../demo/gl/BitmapOverlayVideoProcessor.java | 29 +++- .../demo/gl/VideoProcessingGLSurfaceView.java | 8 +- .../transformer/BitmapOverlayProcessor.java | 27 ++-- .../PeriodicVignetteProcessor.java | 23 +-- .../demo/transformer/MediaPipeProcessor.java | 16 +- .../media3/common/util/EGLSurfaceTexture.java | 51 +++---- .../media3/common/util/GlProgram.java | 30 ++-- .../androidx/media3/common/util/GlUtil.java | 139 +++++++++--------- .../exoplayer/video/PlaceholderSurface.java | 5 +- .../video/VideoDecoderGLSurfaceView.java | 61 +++++--- .../video/spherical/ProjectionRenderer.java | 49 ++++-- .../video/spherical/SceneRenderer.java | 32 +++- .../media3/transformer/BitmapTestUtil.java | 5 +- .../media3/transformer/CropPixelTest.java | 26 ++-- ...atrixTransformationProcessorPixelTest.java | 18 +-- .../transformer/PresentationPixelTest.java | 26 ++-- .../androidx/media3/transformer/Crop.java | 4 - .../EncoderCompatibilityTransformation.java | 5 - .../transformer/ExternalTextureProcessor.java | 24 +-- .../transformer/FrameProcessingException.java | 20 +++ .../transformer/FrameProcessorChain.java | 27 ++-- .../androidx/media3/transformer/GlEffect.java | 4 +- .../transformer/GlMatrixTransformation.java | 4 +- .../transformer/GlTextureProcessor.java | 8 +- .../MatrixTransformationProcessor.java | 32 ++-- .../media3/transformer/Presentation.java | 5 - .../transformer/ScaleToFitTransformation.java | 4 - .../SingleFrameGlTextureProcessor.java | 12 +- 28 files changed, 397 insertions(+), 297 deletions(-) diff --git a/demos/gl/src/main/java/androidx/media3/demo/gl/BitmapOverlayVideoProcessor.java b/demos/gl/src/main/java/androidx/media3/demo/gl/BitmapOverlayVideoProcessor.java index 735abf4cfa0..793e1fd4939 100644 --- a/demos/gl/src/main/java/androidx/media3/demo/gl/BitmapOverlayVideoProcessor.java +++ b/demos/gl/src/main/java/androidx/media3/demo/gl/BitmapOverlayVideoProcessor.java @@ -29,6 +29,7 @@ import androidx.media3.common.C; import androidx.media3.common.util.GlProgram; import androidx.media3.common.util.GlUtil; +import androidx.media3.common.util.Log; import java.io.IOException; import java.util.Locale; import javax.microedition.khronos.opengles.GL10; @@ -41,6 +42,7 @@ /* package */ final class BitmapOverlayVideoProcessor implements VideoProcessingGLSurfaceView.VideoProcessor { + private static final String TAG = "BitmapOverlayVP"; private static final int OVERLAY_WIDTH = 512; private static final int OVERLAY_HEIGHT = 256; @@ -85,6 +87,9 @@ public void initialize() { /* fragmentShaderFilePath= */ "bitmap_overlay_video_processor_fragment.glsl"); } catch (IOException e) { throw new IllegalStateException(e); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to initialize the shader program", e); + return; } program.setBufferAttribute( "aFramePosition", @@ -119,7 +124,11 @@ public void draw(int frameTexture, long frameTimestampUs, float[] transformMatri GLES20.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]); GLUtils.texSubImage2D( GL10.GL_TEXTURE_2D, /* level= */ 0, /* xoffset= */ 0, /* yoffset= */ 0, overlayBitmap); - GlUtil.checkGlError(); + try { + GlUtil.checkGlError(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to populate the texture", e); + } // Run the shader program. GlProgram program = checkNotNull(this.program); @@ -128,16 +137,28 @@ public void draw(int frameTexture, long frameTimestampUs, float[] transformMatri program.setFloatUniform("uScaleX", bitmapScaleX); program.setFloatUniform("uScaleY", bitmapScaleY); program.setFloatsUniform("uTexTransform", transformMatrix); - program.bindAttributesAndUniforms(); + try { + program.bindAttributesAndUniforms(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to update the shader program", e); + } GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); - GlUtil.checkGlError(); + try { + GlUtil.checkGlError(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to draw a frame", e); + } } @Override public void release() { if (program != null) { - program.delete(); + try { + program.delete(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to delete the shader program", e); + } } } } diff --git a/demos/gl/src/main/java/androidx/media3/demo/gl/VideoProcessingGLSurfaceView.java b/demos/gl/src/main/java/androidx/media3/demo/gl/VideoProcessingGLSurfaceView.java index 9c95122d4b6..c7c0aba58a9 100644 --- a/demos/gl/src/main/java/androidx/media3/demo/gl/VideoProcessingGLSurfaceView.java +++ b/demos/gl/src/main/java/androidx/media3/demo/gl/VideoProcessingGLSurfaceView.java @@ -28,6 +28,7 @@ import androidx.media3.common.Format; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.GlUtil; +import androidx.media3.common.util.Log; import androidx.media3.common.util.TimedValueQueue; import androidx.media3.exoplayer.ExoPlayer; import androidx.media3.exoplayer.video.VideoFrameMetadataListener; @@ -70,6 +71,7 @@ public interface VideoProcessor { } private static final int EGL_PROTECTED_CONTENT_EXT = 0x32C0; + private static final String TAG = "VPGlSurfaceView"; private final VideoRenderer renderer; private final Handler mainHandler; @@ -239,7 +241,11 @@ public VideoRenderer(VideoProcessor videoProcessor) { @Override public synchronized void onSurfaceCreated(GL10 gl, EGLConfig config) { - texture = GlUtil.createExternalTexture(); + try { + texture = GlUtil.createExternalTexture(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to create an external texture", e); + } surfaceTexture = new SurfaceTexture(texture); surfaceTexture.setOnFrameAvailableListener( surfaceTexture -> { diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayProcessor.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayProcessor.java index b9c0efac373..7e0b0f5112e 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayProcessor.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/BitmapOverlayProcessor.java @@ -45,9 +45,6 @@ // TODO(b/227625365): Delete this class and use a texture processor from the Transformer library, // once overlaying a bitmap and text is supported in Transformer. /* package */ final class BitmapOverlayProcessor extends SingleFrameGlTextureProcessor { - static { - GlUtil.glAssertionsEnabled = true; - } private static final String VERTEX_SHADER_PATH = "vertex_shader_copy_es2.glsl"; private static final String FRAGMENT_SHADER_PATH = "fragment_shader_bitmap_overlay_es2.glsl"; @@ -67,9 +64,9 @@ /** * Creates a new instance. * - * @throws IOException If a problem occurs while reading shader files. + * @throws FrameProcessingException If a problem occurs while reading shader files. */ - public BitmapOverlayProcessor(Context context) throws IOException { + public BitmapOverlayProcessor(Context context) throws FrameProcessingException { paint = new Paint(); paint.setTextSize(64); paint.setAntiAlias(true); @@ -87,10 +84,14 @@ public BitmapOverlayProcessor(Context context) throws IOException { } catch (PackageManager.NameNotFoundException e) { throw new IllegalStateException(e); } - bitmapTexId = GlUtil.createTexture(BITMAP_WIDTH_HEIGHT, BITMAP_WIDTH_HEIGHT); - GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, /* level= */ 0, overlayBitmap, /* border= */ 0); + try { + bitmapTexId = GlUtil.createTexture(BITMAP_WIDTH_HEIGHT, BITMAP_WIDTH_HEIGHT); + GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, /* level= */ 0, overlayBitmap, /* border= */ 0); - glProgram = new GlProgram(context, VERTEX_SHADER_PATH, FRAGMENT_SHADER_PATH); + glProgram = new GlProgram(context, VERTEX_SHADER_PATH, FRAGMENT_SHADER_PATH); + } catch (GlUtil.GlException | IOException e) { + throw new FrameProcessingException(e); + } // Draw the frame on the entire normalized device coordinate space, from -1 to 1, for x and y. glProgram.setBufferAttribute( "aFramePosition", @@ -141,15 +142,19 @@ public void drawFrame(int inputTexId, long presentationTimeUs) throws FrameProce GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); GlUtil.checkGlError(); } catch (GlUtil.GlException e) { - throw new FrameProcessingException(e); + throw new FrameProcessingException(e, presentationTimeUs); } } @Override - public void release() { + public void release() throws FrameProcessingException { super.release(); if (glProgram != null) { - glProgram.delete(); + try { + glProgram.delete(); + } catch (GlUtil.GlException e) { + throw new FrameProcessingException(e); + } } } diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteProcessor.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteProcessor.java index fb00e5f888c..9ae281b37b2 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteProcessor.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/PeriodicVignetteProcessor.java @@ -31,9 +31,6 @@ * darker the further they are away from the frame center. */ /* package */ final class PeriodicVignetteProcessor extends SingleFrameGlTextureProcessor { - static { - GlUtil.glAssertionsEnabled = true; - } private static final String VERTEX_SHADER_PATH = "vertex_shader_copy_es2.glsl"; private static final String FRAGMENT_SHADER_PATH = "fragment_shader_vignette_es2.glsl"; @@ -60,7 +57,7 @@ * @param minInnerRadius The lower bound of the radius that is unaffected by the effect. * @param maxInnerRadius The upper bound of the radius that is unaffected by the effect. * @param outerRadius The radius after which all pixels are black. - * @throws IOException If a problem occurs while reading shader files. + * @throws FrameProcessingException If a problem occurs while reading shader files. */ public PeriodicVignetteProcessor( Context context, @@ -69,12 +66,16 @@ public PeriodicVignetteProcessor( float minInnerRadius, float maxInnerRadius, float outerRadius) - throws IOException { + throws FrameProcessingException { checkArgument(minInnerRadius <= maxInnerRadius); checkArgument(maxInnerRadius <= outerRadius); this.minInnerRadius = minInnerRadius; this.deltaInnerRadius = maxInnerRadius - minInnerRadius; - glProgram = new GlProgram(context, VERTEX_SHADER_PATH, FRAGMENT_SHADER_PATH); + try { + glProgram = new GlProgram(context, VERTEX_SHADER_PATH, FRAGMENT_SHADER_PATH); + } catch (IOException | GlUtil.GlException e) { + throw new FrameProcessingException(e); + } glProgram.setFloatsUniform("uCenter", new float[] {centerX, centerY}); glProgram.setFloatsUniform("uOuterRadius", new float[] {outerRadius}); // Draw the frame on the entire normalized device coordinate space, from -1 to 1, for x and y. @@ -102,15 +103,19 @@ public void drawFrame(int inputTexId, long presentationTimeUs) throws FrameProce // The four-vertex triangle strip forms a quad. GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); } catch (GlUtil.GlException e) { - throw new FrameProcessingException(e); + throw new FrameProcessingException(e, presentationTimeUs); } } @Override - public void release() { + public void release() throws FrameProcessingException { super.release(); if (glProgram != null) { - glProgram.delete(); + try { + glProgram.delete(); + } catch (GlUtil.GlException e) { + throw new FrameProcessingException(e); + } } } } diff --git a/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeProcessor.java b/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeProcessor.java index 7d6ddfae5b3..2ceb8cf12f2 100644 --- a/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeProcessor.java +++ b/demos/transformer/src/withMediaPipe/java/androidx/media3/demo/transformer/MediaPipeProcessor.java @@ -79,12 +79,12 @@ protected void loadLibrary(String name) { * @param graphName Name of a MediaPipe graph asset to load. * @param inputStreamName Name of the input video stream in the graph. * @param outputStreamName Name of the input video stream in the graph. - * @throws IOException If a problem occurs while reading shader files or initializing MediaPipe - * resources. + * @throws FrameProcessingException If a problem occurs while reading shader files or initializing + * MediaPipe resources. */ public MediaPipeProcessor( Context context, String graphName, String inputStreamName, String outputStreamName) - throws IOException { + throws FrameProcessingException { checkState(LOADER.isAvailable()); frameProcessorConditionVariable = new ConditionVariable(); @@ -104,7 +104,11 @@ public MediaPipeProcessor( frameProcessorPendingError = error; frameProcessorConditionVariable.open(); }); - glProgram = new GlProgram(context, COPY_VERTEX_SHADER_NAME, COPY_FRAGMENT_SHADER_NAME); + try { + glProgram = new GlProgram(context, COPY_VERTEX_SHADER_NAME, COPY_FRAGMENT_SHADER_NAME); + } catch (IOException | GlUtil.GlException e) { + throw new FrameProcessingException(e); + } } @Override @@ -152,14 +156,14 @@ public void drawFrame(int inputTexId, long presentationTimeUs) throws FrameProce GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); GlUtil.checkGlError(); } catch (GlUtil.GlException e) { - throw new FrameProcessingException(e); + throw new FrameProcessingException(e, presentationTimeUs); } finally { checkStateNotNull(outputFrame).release(); } } @Override - public void release() { + public void release() throws FrameProcessingException { super.release(); checkStateNotNull(frameProcessor).close(); } diff --git a/libraries/common/src/main/java/androidx/media3/common/util/EGLSurfaceTexture.java b/libraries/common/src/main/java/androidx/media3/common/util/EGLSurfaceTexture.java index ee76ed476b2..d764882e2e6 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/EGLSurfaceTexture.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/EGLSurfaceTexture.java @@ -79,13 +79,6 @@ public interface TextureImageListener { private static final int EGL_PROTECTED_CONTENT_EXT = 0x32C0; - /** A runtime exception to be thrown if some EGL operations failed. */ - public static final class GlException extends RuntimeException { - private GlException(String msg) { - super(msg); - } - } - private final Handler handler; private final int[] textureIdHolder; @Nullable private final TextureImageListener callback; @@ -125,7 +118,7 @@ public EGLSurfaceTexture(Handler handler, @Nullable TextureImageListener callbac * * @param secureMode The {@link SecureMode} to be used for EGL surface. */ - public void init(@SecureMode int secureMode) { + public void init(@SecureMode int secureMode) throws GlUtil.GlException { display = getDefaultDisplay(); EGLConfig config = chooseEGLConfig(display); context = createEGLContext(display, config, secureMode); @@ -206,22 +199,18 @@ private void dispatchOnFrameAvailable() { } } - private static EGLDisplay getDefaultDisplay() { + private static EGLDisplay getDefaultDisplay() throws GlUtil.GlException { EGLDisplay display = EGL14.eglGetDisplay(EGL14.EGL_DEFAULT_DISPLAY); - if (display == null) { - throw new GlException("eglGetDisplay failed"); - } + GlUtil.checkGlException(display != null, "eglGetDisplay failed"); int[] version = new int[2]; boolean eglInitialized = EGL14.eglInitialize(display, version, /* majorOffset= */ 0, version, /* minorOffset= */ 1); - if (!eglInitialized) { - throw new GlException("eglInitialize failed"); - } + GlUtil.checkGlException(eglInitialized, "eglInitialize failed"); return display; } - private static EGLConfig chooseEGLConfig(EGLDisplay display) { + private static EGLConfig chooseEGLConfig(EGLDisplay display) throws GlUtil.GlException { EGLConfig[] configs = new EGLConfig[1]; int[] numConfigs = new int[1]; boolean success = @@ -234,18 +223,17 @@ private static EGLConfig chooseEGLConfig(EGLDisplay display) { /* config_size= */ 1, numConfigs, /* num_configOffset= */ 0); - if (!success || numConfigs[0] <= 0 || configs[0] == null) { - throw new GlException( - Util.formatInvariant( - /* format= */ "eglChooseConfig failed: success=%b, numConfigs[0]=%d, configs[0]=%s", - success, numConfigs[0], configs[0])); - } + GlUtil.checkGlException( + success && numConfigs[0] > 0 && configs[0] != null, + Util.formatInvariant( + /* format= */ "eglChooseConfig failed: success=%b, numConfigs[0]=%d, configs[0]=%s", + success, numConfigs[0], configs[0])); return configs[0]; } private static EGLContext createEGLContext( - EGLDisplay display, EGLConfig config, @SecureMode int secureMode) { + EGLDisplay display, EGLConfig config, @SecureMode int secureMode) throws GlUtil.GlException { int[] glAttributes; if (secureMode == SECURE_MODE_NONE) { glAttributes = new int[] {EGL14.EGL_CONTEXT_CLIENT_VERSION, 2, EGL14.EGL_NONE}; @@ -262,14 +250,13 @@ private static EGLContext createEGLContext( EGLContext context = EGL14.eglCreateContext( display, config, android.opengl.EGL14.EGL_NO_CONTEXT, glAttributes, 0); - if (context == null) { - throw new GlException("eglCreateContext failed"); - } + GlUtil.checkGlException(context != null, "eglCreateContext failed"); return context; } private static EGLSurface createEGLSurface( - EGLDisplay display, EGLConfig config, EGLContext context, @SecureMode int secureMode) { + EGLDisplay display, EGLConfig config, EGLContext context, @SecureMode int secureMode) + throws GlUtil.GlException { EGLSurface surface; if (secureMode == SECURE_MODE_SURFACELESS_CONTEXT) { surface = EGL14.EGL_NO_SURFACE; @@ -297,20 +284,16 @@ private static EGLSurface createEGLSurface( }; } surface = EGL14.eglCreatePbufferSurface(display, config, pbufferAttributes, /* offset= */ 0); - if (surface == null) { - throw new GlException("eglCreatePbufferSurface failed"); - } + GlUtil.checkGlException(surface != null, "eglCreatePbufferSurface failed"); } boolean eglMadeCurrent = EGL14.eglMakeCurrent(display, /* draw= */ surface, /* read= */ surface, context); - if (!eglMadeCurrent) { - throw new GlException("eglMakeCurrent failed"); - } + GlUtil.checkGlException(eglMadeCurrent, "eglMakeCurrent failed"); return surface; } - private static void generateTextureIds(int[] textureIdHolder) { + private static void generateTextureIds(int[] textureIdHolder) throws GlUtil.GlException { GLES20.glGenTextures(/* n= */ 1, textureIdHolder, /* offset= */ 0); GlUtil.checkGlError(); } diff --git a/libraries/common/src/main/java/androidx/media3/common/util/GlProgram.java b/libraries/common/src/main/java/androidx/media3/common/util/GlProgram.java index da410f921ed..63976b776d1 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/GlProgram.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/GlProgram.java @@ -54,7 +54,7 @@ public final class GlProgram { * @throws IOException When failing to read shader files. */ public GlProgram(Context context, String vertexShaderFilePath, String fragmentShaderFilePath) - throws IOException { + throws IOException, GlUtil.GlException { this( GlUtil.loadAsset(context, vertexShaderFilePath), GlUtil.loadAsset(context, fragmentShaderFilePath)); @@ -69,7 +69,7 @@ public GlProgram(Context context, String vertexShaderFilePath, String fragmentSh * @param vertexShaderGlsl The vertex shader program. * @param fragmentShaderGlsl The fragment shader program. */ - public GlProgram(String vertexShaderGlsl, String fragmentShaderGlsl) { + public GlProgram(String vertexShaderGlsl, String fragmentShaderGlsl) throws GlUtil.GlException { programId = GLES20.glCreateProgram(); GlUtil.checkGlError(); @@ -81,10 +81,9 @@ public GlProgram(String vertexShaderGlsl, String fragmentShaderGlsl) { GLES20.glLinkProgram(programId); int[] linkStatus = new int[] {GLES20.GL_FALSE}; GLES20.glGetProgramiv(programId, GLES20.GL_LINK_STATUS, linkStatus, /* offset= */ 0); - if (linkStatus[0] != GLES20.GL_TRUE) { - GlUtil.throwGlException( - "Unable to link shader program: \n" + GLES20.glGetProgramInfoLog(programId)); - } + GlUtil.checkGlException( + linkStatus[0] == GLES20.GL_TRUE, + "Unable to link shader program: \n" + GLES20.glGetProgramInfoLog(programId)); GLES20.glUseProgram(programId); attributeByName = new HashMap<>(); int[] attributeCount = new int[1]; @@ -107,16 +106,15 @@ public GlProgram(String vertexShaderGlsl, String fragmentShaderGlsl) { GlUtil.checkGlError(); } - private static void addShader(int programId, int type, String glsl) { + private static void addShader(int programId, int type, String glsl) throws GlUtil.GlException { int shader = GLES20.glCreateShader(type); GLES20.glShaderSource(shader, glsl); GLES20.glCompileShader(shader); int[] result = new int[] {GLES20.GL_FALSE}; GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, result, /* offset= */ 0); - if (result[0] != GLES20.GL_TRUE) { - GlUtil.throwGlException(GLES20.glGetShaderInfoLog(shader) + ", source: " + glsl); - } + GlUtil.checkGlException( + result[0] == GLES20.GL_TRUE, GLES20.glGetShaderInfoLog(shader) + ", source: " + glsl); GLES20.glAttachShader(programId, shader); GLES20.glDeleteShader(shader); @@ -146,13 +144,13 @@ public int getUniformLocation(String uniformName) { * *

    Call this in the rendering loop to switch between different programs. */ - public void use() { + public void use() throws GlUtil.GlException { GLES20.glUseProgram(programId); GlUtil.checkGlError(); } /** Deletes the program. Deleted programs cannot be used again. */ - public void delete() { + public void delete() throws GlUtil.GlException { GLES20.glDeleteProgram(programId); GlUtil.checkGlError(); } @@ -161,7 +159,7 @@ public void delete() { * Returns the location of an {@link Attribute}, which has been enabled as a vertex attribute * array. */ - public int getAttributeArrayLocationAndEnable(String attributeName) { + public int getAttributeArrayLocationAndEnable(String attributeName) throws GlUtil.GlException { int location = getAttributeLocation(attributeName); GLES20.glEnableVertexAttribArray(location); GlUtil.checkGlError(); @@ -196,7 +194,7 @@ public void setFloatsUniform(String name, float[] value) { } /** Binds all attributes and uniforms in the program. */ - public void bindAttributesAndUniforms() { + public void bindAttributesAndUniforms() throws GlUtil.GlException { for (Attribute attribute : attributes) { attribute.bind(); } @@ -277,7 +275,7 @@ public void setBuffer(float[] buffer, int size) { * *

    Should be called before each drawing call. */ - public void bind() { + public void bind() throws GlUtil.GlException { Buffer buffer = checkNotNull(this.buffer, "call setBuffer before bind"); GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, /* buffer= */ 0); GLES20.glVertexAttribPointer( @@ -363,7 +361,7 @@ public void setFloats(float[] value) { * *

    Should be called before each drawing call. */ - public void bind() { + public void bind() throws GlUtil.GlException { switch (type) { case GLES20.GL_FLOAT: GLES20.glUniform1fv(location, /* count= */ 1, value, /* offset= */ 0); diff --git a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java index 485f2db986b..44f4e648fab 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java @@ -43,19 +43,14 @@ @UnstableApi public final class GlUtil { - /** Thrown when an OpenGL error occurs and {@link #glAssertionsEnabled} is {@code true}. */ - public static final class GlException extends RuntimeException { + /** Thrown when an OpenGL error occurs. */ + public static final class GlException extends Exception { /** Creates an instance with the specified error message. */ public GlException(String message) { super(message); } } - // TODO(b/231937416): Consider removing this flag, enabling assertions by default, and making - // GlException checked. - /** Whether to throw a {@link GlException} in case of an OpenGL error. */ - public static boolean glAssertionsEnabled = false; - /** Number of elements in a 3d homogeneous coordinate vector describing a vertex. */ public static final int HOMOGENEOUS_COORDINATE_VECTOR_SIZE = 4; @@ -184,13 +179,13 @@ public static boolean isSurfacelessContextExtensionSupported() { /** Returns an initialized default {@link EGLDisplay}. */ @RequiresApi(17) - public static EGLDisplay createEglDisplay() { + public static EGLDisplay createEglDisplay() throws GlException { return Api17.createEglDisplay(); } /** Returns a new {@link EGLContext} for the specified {@link EGLDisplay}. */ @RequiresApi(17) - public static EGLContext createEglContext(EGLDisplay eglDisplay) { + public static EGLContext createEglContext(EGLDisplay eglDisplay) throws GlException { return Api17.createEglContext(eglDisplay, /* version= */ 2, EGL_CONFIG_ATTRIBUTES_RGBA_8888); } @@ -199,7 +194,8 @@ public static EGLContext createEglContext(EGLDisplay eglDisplay) { * RGBA 1010102 config. */ @RequiresApi(17) - public static EGLContext createEglContextEs3Rgba1010102(EGLDisplay eglDisplay) { + public static EGLContext createEglContextEs3Rgba1010102(EGLDisplay eglDisplay) + throws GlException { return Api17.createEglContext(eglDisplay, /* version= */ 3, EGL_CONFIG_ATTRIBUTES_RGBA_1010102); } @@ -210,7 +206,7 @@ public static EGLContext createEglContextEs3Rgba1010102(EGLDisplay eglDisplay) { * @param surface The surface to wrap; must be a surface, surface texture or surface holder. */ @RequiresApi(17) - public static EGLSurface getEglSurface(EGLDisplay eglDisplay, Object surface) { + public static EGLSurface getEglSurface(EGLDisplay eglDisplay, Object surface) throws GlException { return Api17.getEglSurface( eglDisplay, surface, EGL_CONFIG_ATTRIBUTES_RGBA_8888, EGL_WINDOW_SURFACE_ATTRIBUTES_NONE); } @@ -223,7 +219,8 @@ public static EGLSurface getEglSurface(EGLDisplay eglDisplay, Object surface) { * @param surface The surface to wrap; must be a surface, surface texture or surface holder. */ @RequiresApi(17) - public static EGLSurface getEglSurfaceBt2020Pq(EGLDisplay eglDisplay, Object surface) { + public static EGLSurface getEglSurfaceBt2020Pq(EGLDisplay eglDisplay, Object surface) + throws GlException { return Api17.getEglSurface( eglDisplay, surface, @@ -239,7 +236,8 @@ public static EGLSurface getEglSurfaceBt2020Pq(EGLDisplay eglDisplay, Object sur * @param height The height of the pixel buffer. */ @RequiresApi(17) - private static EGLSurface createPbufferSurface(EGLDisplay eglDisplay, int width, int height) { + private static EGLSurface createPbufferSurface(EGLDisplay eglDisplay, int width, int height) + throws GlException { int[] pbufferAttributes = new int[] { EGL14.EGL_WIDTH, width, @@ -258,7 +256,7 @@ private static EGLSurface createPbufferSurface(EGLDisplay eglDisplay, int width, * @return {@link EGL14#EGL_NO_SURFACE} if supported and a 1x1 pixel buffer surface otherwise. */ @RequiresApi(17) - public static EGLSurface createPlaceholderEglSurface(EGLDisplay eglDisplay) { + public static EGLSurface createPlaceholderEglSurface(EGLDisplay eglDisplay) throws GlException { return isSurfacelessContextExtensionSupported() ? EGL14.EGL_NO_SURFACE : createPbufferSurface(eglDisplay, /* width= */ 1, /* height= */ 1); @@ -271,7 +269,8 @@ public static EGLSurface createPlaceholderEglSurface(EGLDisplay eglDisplay) { * @param eglDisplay The {@link EGLDisplay} to attach the surface to. */ @RequiresApi(17) - public static void focusPlaceholderEglSurface(EGLContext eglContext, EGLDisplay eglDisplay) { + public static void focusPlaceholderEglSurface(EGLContext eglContext, EGLDisplay eglDisplay) + throws GlException { EGLSurface eglSurface = createPbufferSurface(eglDisplay, /* width= */ 1, /* height= */ 1); focusEglSurface(eglDisplay, eglContext, eglSurface, /* width= */ 1, /* height= */ 1); } @@ -285,7 +284,7 @@ public static void focusPlaceholderEglSurface(EGLContext eglContext, EGLDisplay */ @RequiresApi(17) public static void focusPlaceholderEglSurfaceBt2020Pq( - EGLContext eglContext, EGLDisplay eglDisplay) { + EGLContext eglContext, EGLDisplay eglDisplay) throws GlException { int[] pbufferAttributes = new int[] { EGL14.EGL_WIDTH, @@ -303,10 +302,10 @@ public static void focusPlaceholderEglSurfaceBt2020Pq( } /** - * If there is an OpenGl error, logs the error and if {@link #glAssertionsEnabled} is true throws - * a {@link GlException}. + * Logs all OpenGL errors that occurred since this method was last called and throws a {@link + * GlException} for the last error. */ - public static void checkGlError() { + public static void checkGlError() throws GlException { int lastError = GLES20.GL_NO_ERROR; int error; while ((error = GLES20.glGetError()) != GLES20.GL_NO_ERROR) { @@ -314,7 +313,7 @@ public static void checkGlError() { lastError = error; } if (lastError != GLES20.GL_NO_ERROR) { - throwGlException("glError: " + gluErrorString(lastError)); + throw new GlException("glError: " + gluErrorString(lastError)); } } @@ -325,7 +324,7 @@ public static void checkGlError() { * @param height The height for a texture. * @throws GlException If the texture width or height is invalid. */ - public static void assertValidTextureSize(int width, int height) { + public static void assertValidTextureSize(int width, int height) throws GlException { // TODO(b/201293185): Consider handling adjustments for sizes > GL_MAX_TEXTURE_SIZE // (ex. downscaling appropriately) in a texture processor instead of asserting incorrect // values. @@ -336,15 +335,16 @@ public static void assertValidTextureSize(int width, int height) { GLES20.glGetIntegerv(GLES20.GL_MAX_TEXTURE_SIZE, maxTextureSizeBuffer, 0); int maxTextureSize = maxTextureSizeBuffer[0]; if (width < 0 || height < 0) { - throwGlException("width or height is less than 0"); + throw new GlException("width or height is less than 0"); } if (width > maxTextureSize || height > maxTextureSize) { - throwGlException("width or height is greater than GL_MAX_TEXTURE_SIZE " + maxTextureSize); + throw new GlException( + "width or height is greater than GL_MAX_TEXTURE_SIZE " + maxTextureSize); } } /** Fills the pixels in the current output render target with (r=0, g=0, b=0, a=0). */ - public static void clearOutputFrame() { + public static void clearOutputFrame() throws GlException { GLES20.glClearColor(/* red= */ 0, /* green= */ 0, /* blue= */ 0, /* alpha= */ 0); GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); GlUtil.checkGlError(); @@ -356,7 +356,8 @@ public static void clearOutputFrame() { */ @RequiresApi(17) public static void focusEglSurface( - EGLDisplay eglDisplay, EGLContext eglContext, EGLSurface eglSurface, int width, int height) { + EGLDisplay eglDisplay, EGLContext eglContext, EGLSurface eglSurface, int width, int height) + throws GlException { Api17.focusRenderTarget( eglDisplay, eglContext, eglSurface, /* framebuffer= */ 0, width, height); } @@ -372,7 +373,8 @@ public static void focusFramebuffer( EGLSurface eglSurface, int framebuffer, int width, - int height) { + int height) + throws GlException { Api17.focusRenderTarget(eglDisplay, eglContext, eglSurface, framebuffer, width, height); } @@ -388,7 +390,8 @@ public static void focusFramebuffer( * @param height The viewport height, in pixels. */ @RequiresApi(17) - public static void focusFramebufferUsingCurrentContext(int framebuffer, int width, int height) { + public static void focusFramebufferUsingCurrentContext(int framebuffer, int width, int height) + throws GlException { Api17.focusFramebufferUsingCurrentContext(framebuffer, width, height); } @@ -397,7 +400,7 @@ public static void focusFramebufferUsingCurrentContext(int framebuffer, int widt * * @param textureId The ID of the texture to delete. */ - public static void deleteTexture(int textureId) { + public static void deleteTexture(int textureId) throws GlException { GLES20.glDeleteTextures(/* n= */ 1, new int[] {textureId}, /* offset= */ 0); checkGlError(); } @@ -408,7 +411,7 @@ public static void deleteTexture(int textureId) { */ @RequiresApi(17) public static void destroyEglContext( - @Nullable EGLDisplay eglDisplay, @Nullable EGLContext eglContext) { + @Nullable EGLDisplay eglDisplay, @Nullable EGLContext eglContext) throws GlException { Api17.destroyEglContext(eglDisplay, eglContext); } @@ -453,7 +456,7 @@ public static String loadAsset(Context context, String assetPath) throws IOExcep * Creates a GL_TEXTURE_EXTERNAL_OES with default configuration of GL_LINEAR filtering and * GL_CLAMP_TO_EDGE wrapping. */ - public static int createExternalTexture() { + public static int createExternalTexture() throws GlException { int texId = generateTexture(); bindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, texId); return texId; @@ -465,7 +468,7 @@ public static int createExternalTexture() { * @param width of the new texture in pixels * @param height of the new texture in pixels */ - public static int createTexture(int width, int height) { + public static int createTexture(int width, int height) throws GlException { assertValidTextureSize(width, height); int texId = generateTexture(); bindTexture(GLES20.GL_TEXTURE_2D, texId); @@ -485,8 +488,8 @@ public static int createTexture(int width, int height) { } /** Returns a new GL texture identifier. */ - private static int generateTexture() { - checkEglException( + private static int generateTexture() throws GlException { + checkGlException( !Util.areEqual(EGL14.eglGetCurrentContext(), EGL14.EGL_NO_CONTEXT), "No current context"); int[] texId = new int[1]; @@ -504,7 +507,7 @@ private static int generateTexture() { * GLES20#GL_TEXTURE_2D} for a two-dimensional texture or {@link * GLES11Ext#GL_TEXTURE_EXTERNAL_OES} for an external texture. */ - public static void bindTexture(int textureTarget, int texId) { + public static void bindTexture(int textureTarget, int texId) throws GlException { GLES20.glBindTexture(textureTarget, texId); checkGlError(); GLES20.glTexParameteri(textureTarget, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); @@ -522,8 +525,8 @@ public static void bindTexture(int textureTarget, int texId) { * * @param texId The identifier of the texture to attach to the framebuffer. */ - public static int createFboForTexture(int texId) { - checkEglException( + public static int createFboForTexture(int texId) throws GlException { + checkGlException( !Util.areEqual(EGL14.eglGetCurrentContext(), EGL14.EGL_NO_CONTEXT), "No current context"); int[] fboId = new int[1]; @@ -537,23 +540,19 @@ public static int createFboForTexture(int texId) { return fboId[0]; } - /* package */ static void throwGlException(String errorMsg) { - if (glAssertionsEnabled) { - throw new GlException(errorMsg); - } else { - Log.e(TAG, errorMsg); - } - } - - private static void checkEglException(boolean expression, String errorMessage) { + /** + * Throws a {@link GlException} with the given message if {@code expression} evaluates to {@code + * false}. + */ + public static void checkGlException(boolean expression, String errorMessage) throws GlException { if (!expression) { - throwGlException(errorMessage); + throw new GlException(errorMessage); } } - private static void checkEglException(String errorMessage) { + private static void checkEglException(String errorMessage) throws GlException { int error = EGL14.eglGetError(); - checkEglException(error == EGL14.EGL_SUCCESS, errorMessage + ", error code: " + error); + checkGlException(error == EGL14.EGL_SUCCESS, errorMessage + ", error code: " + error); } @RequiresApi(17) @@ -561,24 +560,24 @@ private static final class Api17 { private Api17() {} @DoNotInline - public static EGLDisplay createEglDisplay() { + public static EGLDisplay createEglDisplay() throws GlException { EGLDisplay eglDisplay = EGL14.eglGetDisplay(EGL14.EGL_DEFAULT_DISPLAY); - checkEglException(!eglDisplay.equals(EGL14.EGL_NO_DISPLAY), "No EGL display."); - if (!EGL14.eglInitialize( - eglDisplay, - /* unusedMajor */ new int[1], - /* majorOffset= */ 0, - /* unusedMinor */ new int[1], - /* minorOffset= */ 0)) { - throwGlException("Error in eglInitialize."); - } + checkGlException(!eglDisplay.equals(EGL14.EGL_NO_DISPLAY), "No EGL display."); + checkGlException( + EGL14.eglInitialize( + eglDisplay, + /* unusedMajor */ new int[1], + /* majorOffset= */ 0, + /* unusedMinor */ new int[1], + /* minorOffset= */ 0), + "Error in eglInitialize."); checkGlError(); return eglDisplay; } @DoNotInline public static EGLContext createEglContext( - EGLDisplay eglDisplay, int version, int[] configAttributes) { + EGLDisplay eglDisplay, int version, int[] configAttributes) throws GlException { int[] contextAttributes = {EGL14.EGL_CONTEXT_CLIENT_VERSION, version, EGL14.EGL_NONE}; EGLContext eglContext = EGL14.eglCreateContext( @@ -589,7 +588,7 @@ public static EGLContext createEglContext( /* offset= */ 0); if (eglContext == null) { EGL14.eglTerminate(eglDisplay); - throwGlException( + throw new GlException( "eglCreateContext() failed to create a valid context. The device may not support EGL" + " version " + version); @@ -603,7 +602,8 @@ public static EGLSurface getEglSurface( EGLDisplay eglDisplay, Object surface, int[] configAttributes, - int[] windowSurfaceAttributes) { + int[] windowSurfaceAttributes) + throws GlException { EGLSurface eglSurface = EGL14.eglCreateWindowSurface( eglDisplay, @@ -617,7 +617,7 @@ public static EGLSurface getEglSurface( @DoNotInline public static EGLSurface createEglPbufferSurface( - EGLDisplay eglDisplay, int[] configAttributes, int[] pbufferAttributes) { + EGLDisplay eglDisplay, int[] configAttributes, int[] pbufferAttributes) throws GlException { EGLSurface eglSurface = EGL14.eglCreatePbufferSurface( eglDisplay, @@ -635,15 +635,17 @@ public static void focusRenderTarget( EGLSurface eglSurface, int framebuffer, int width, - int height) { + int height) + throws GlException { EGL14.eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext); checkEglException("Error making context current"); focusFramebufferUsingCurrentContext(framebuffer, width, height); } @DoNotInline - public static void focusFramebufferUsingCurrentContext(int framebuffer, int width, int height) { - checkEglException( + public static void focusFramebufferUsingCurrentContext(int framebuffer, int width, int height) + throws GlException { + checkGlException( !Util.areEqual(EGL14.eglGetCurrentContext(), EGL14.EGL_NO_CONTEXT), "No current context"); int[] boundFramebuffer = new int[1]; @@ -658,7 +660,7 @@ public static void focusFramebufferUsingCurrentContext(int framebuffer, int widt @DoNotInline public static void destroyEglContext( - @Nullable EGLDisplay eglDisplay, @Nullable EGLContext eglContext) { + @Nullable EGLDisplay eglDisplay, @Nullable EGLContext eglContext) throws GlException { if (eglDisplay == null) { return; } @@ -676,7 +678,8 @@ public static void destroyEglContext( } @DoNotInline - private static EGLConfig getEglConfig(EGLDisplay eglDisplay, int[] attributes) { + private static EGLConfig getEglConfig(EGLDisplay eglDisplay, int[] attributes) + throws GlException { EGLConfig[] eglConfigs = new EGLConfig[1]; if (!EGL14.eglChooseConfig( eglDisplay, @@ -687,7 +690,7 @@ private static EGLConfig getEglConfig(EGLDisplay eglDisplay, int[] attributes) { /* config_size= */ 1, /* unusedNumConfig */ new int[1], /* num_configOffset= */ 0)) { - throwGlException("eglChooseConfig failed."); + throw new GlException("eglChooseConfig failed."); } return eglConfigs[0]; } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaceholderSurface.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaceholderSurface.java index e9d19554357..5ee73d52f64 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaceholderSurface.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaceholderSurface.java @@ -179,6 +179,9 @@ public boolean handleMessage(Message msg) { } catch (RuntimeException e) { Log.e(TAG, "Failed to initialize placeholder surface", e); initException = e; + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to initialize placeholder surface", e); + initException = new IllegalStateException(e); } catch (Error e) { Log.e(TAG, "Failed to initialize placeholder surface", e); initError = e; @@ -202,7 +205,7 @@ public boolean handleMessage(Message msg) { } } - private void initInternal(@SecureMode int secureMode) { + private void initInternal(@SecureMode int secureMode) throws GlUtil.GlException { Assertions.checkNotNull(eglSurfaceTexture); eglSurfaceTexture.init(secureMode); this.surface = diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoDecoderGLSurfaceView.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoDecoderGLSurfaceView.java index 66e5ad93fba..9ffbf37ae43 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoDecoderGLSurfaceView.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoDecoderGLSurfaceView.java @@ -21,6 +21,7 @@ import android.opengl.GLES20; import android.opengl.GLSurfaceView; import android.util.AttributeSet; +import android.util.Log; import androidx.annotation.Nullable; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.GlProgram; @@ -48,6 +49,8 @@ public final class VideoDecoderGLSurfaceView extends GLSurfaceView implements VideoDecoderOutputBufferRenderer { + private static final String TAG = "VideoDecoderGLSV"; + private final Renderer renderer; /** @@ -172,22 +175,26 @@ public Renderer(GLSurfaceView surfaceView) { @Override public void onSurfaceCreated(GL10 unused, EGLConfig config) { - program = new GlProgram(VERTEX_SHADER, FRAGMENT_SHADER); - int posLocation = program.getAttributeArrayLocationAndEnable("in_pos"); - GLES20.glVertexAttribPointer( - posLocation, - 2, - GLES20.GL_FLOAT, - /* normalized= */ false, - /* stride= */ 0, - TEXTURE_VERTICES); - texLocations[0] = program.getAttributeArrayLocationAndEnable("in_tc_y"); - texLocations[1] = program.getAttributeArrayLocationAndEnable("in_tc_u"); - texLocations[2] = program.getAttributeArrayLocationAndEnable("in_tc_v"); - colorMatrixLocation = program.getUniformLocation("mColorConversion"); - GlUtil.checkGlError(); - setupTextures(); - GlUtil.checkGlError(); + try { + program = new GlProgram(VERTEX_SHADER, FRAGMENT_SHADER); + int posLocation = program.getAttributeArrayLocationAndEnable("in_pos"); + GLES20.glVertexAttribPointer( + posLocation, + 2, + GLES20.GL_FLOAT, + /* normalized= */ false, + /* stride= */ 0, + TEXTURE_VERTICES); + texLocations[0] = program.getAttributeArrayLocationAndEnable("in_tc_y"); + texLocations[1] = program.getAttributeArrayLocationAndEnable("in_tc_u"); + texLocations[2] = program.getAttributeArrayLocationAndEnable("in_tc_v"); + colorMatrixLocation = program.getUniformLocation("mColorConversion"); + GlUtil.checkGlError(); + setupTextures(); + GlUtil.checkGlError(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to set up the textures and program", e); + } } @Override @@ -284,7 +291,11 @@ public void onDrawFrame(GL10 unused) { GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); - GlUtil.checkGlError(); + try { + GlUtil.checkGlError(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to draw a frame", e); + } } public void setOutputBuffer(VideoDecoderOutputBuffer outputBuffer) { @@ -300,13 +311,17 @@ public void setOutputBuffer(VideoDecoderOutputBuffer outputBuffer) { @RequiresNonNull("program") private void setupTextures() { - GLES20.glGenTextures(/* n= */ 3, yuvTextures, /* offset= */ 0); - for (int i = 0; i < 3; i++) { - GLES20.glUniform1i(program.getUniformLocation(TEXTURE_UNIFORMS[i]), i); - GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + i); - GlUtil.bindTexture(GLES20.GL_TEXTURE_2D, yuvTextures[i]); + try { + GLES20.glGenTextures(/* n= */ 3, yuvTextures, /* offset= */ 0); + for (int i = 0; i < 3; i++) { + GLES20.glUniform1i(program.getUniformLocation(TEXTURE_UNIFORMS[i]), i); + GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + i); + GlUtil.bindTexture(GLES20.GL_TEXTURE_2D, yuvTextures[i]); + } + GlUtil.checkGlError(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to set up the textures", e); } - GlUtil.checkGlError(); } } } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/spherical/ProjectionRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/spherical/ProjectionRenderer.java index 2503733f36f..5c808a88900 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/spherical/ProjectionRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/spherical/ProjectionRenderer.java @@ -19,6 +19,7 @@ import android.opengl.GLES11Ext; import android.opengl.GLES20; +import android.util.Log; import androidx.annotation.Nullable; import androidx.media3.common.C; import androidx.media3.common.util.GlProgram; @@ -45,6 +46,8 @@ public static boolean isSupported(Projection projection) { && rightMesh.getSubMesh(0).textureId == Projection.SubMesh.VIDEO_TEXTURE_ID; } + private static final String TAG = "ProjectionRenderer"; + // Basic vertex & fragment shaders to render a mesh with 3D position & 2D texture data. private static final String VERTEX_SHADER = "uniform mat4 uMvpMatrix;\n" @@ -115,12 +118,16 @@ public void setProjection(Projection projection) { /** Initializes of the GL components. */ public void init() { - program = new GlProgram(VERTEX_SHADER, FRAGMENT_SHADER); - mvpMatrixHandle = program.getUniformLocation("uMvpMatrix"); - uTexMatrixHandle = program.getUniformLocation("uTexMatrix"); - positionHandle = program.getAttributeArrayLocationAndEnable("aPosition"); - texCoordsHandle = program.getAttributeArrayLocationAndEnable("aTexCoords"); - textureHandle = program.getUniformLocation("uTexture"); + try { + program = new GlProgram(VERTEX_SHADER, FRAGMENT_SHADER); + mvpMatrixHandle = program.getUniformLocation("uMvpMatrix"); + uTexMatrixHandle = program.getUniformLocation("uTexMatrix"); + positionHandle = program.getAttributeArrayLocationAndEnable("aPosition"); + texCoordsHandle = program.getAttributeArrayLocationAndEnable("aTexCoords"); + textureHandle = program.getUniformLocation("uTexture"); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to initialize the program", e); + } } /** @@ -154,7 +161,11 @@ public void draw(int textureId, float[] mvpMatrix, boolean rightEye) { GLES20.glActiveTexture(GLES20.GL_TEXTURE0); GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, textureId); GLES20.glUniform1i(textureHandle, 0); - checkGlError(); + try { + checkGlError(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to bind uniforms", e); + } // Load position data. GLES20.glVertexAttribPointer( @@ -164,7 +175,11 @@ public void draw(int textureId, float[] mvpMatrix, boolean rightEye) { false, Projection.POSITION_COORDS_PER_VERTEX * C.BYTES_PER_FLOAT, meshData.vertexBuffer); - checkGlError(); + try { + checkGlError(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to load position data", e); + } // Load texture data. GLES20.glVertexAttribPointer( @@ -174,17 +189,29 @@ public void draw(int textureId, float[] mvpMatrix, boolean rightEye) { false, Projection.TEXTURE_COORDS_PER_VERTEX * C.BYTES_PER_FLOAT, meshData.textureBuffer); - checkGlError(); + try { + checkGlError(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to load texture data", e); + } // Render. GLES20.glDrawArrays(meshData.drawMode, /* first= */ 0, meshData.vertexCount); - checkGlError(); + try { + checkGlError(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to render", e); + } } /** Cleans up GL resources. */ public void shutdown() { if (program != null) { - program.delete(); + try { + program.delete(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to delete the shader program", e); + } } } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/spherical/SceneRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/spherical/SceneRenderer.java index b2828a465e2..5d262acd3e4 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/spherical/SceneRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/spherical/SceneRenderer.java @@ -26,6 +26,7 @@ import androidx.media3.common.Format; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.GlUtil; +import androidx.media3.common.util.Log; import androidx.media3.common.util.TimedValueQueue; import androidx.media3.exoplayer.video.VideoFrameMetadataListener; import java.util.Arrays; @@ -36,6 +37,8 @@ /* package */ final class SceneRenderer implements VideoFrameMetadataListener, CameraMotionListener { + private static final String TAG = "SceneRenderer"; + private final AtomicBoolean frameAvailable; private final AtomicBoolean resetRotationAtNextFrame; private final ProjectionRenderer projectionRenderer; @@ -83,14 +86,19 @@ public void setDefaultStereoMode(@C.StereoMode int stereoMode) { /** Initializes the renderer. */ public SurfaceTexture init() { - // Set the background frame color. This is only visible if the display mesh isn't a full sphere. - GLES20.glClearColor(0.5f, 0.5f, 0.5f, 1.0f); - checkGlError(); + try { + // Set the background frame color. This is only visible if the display mesh isn't a full + // sphere. + GLES20.glClearColor(0.5f, 0.5f, 0.5f, 1.0f); + checkGlError(); - projectionRenderer.init(); - checkGlError(); + projectionRenderer.init(); + checkGlError(); - textureId = GlUtil.createExternalTexture(); + textureId = GlUtil.createExternalTexture(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to initialize the renderer", e); + } surfaceTexture = new SurfaceTexture(textureId); surfaceTexture.setOnFrameAvailableListener(surfaceTexture -> frameAvailable.set(true)); return surfaceTexture; @@ -107,11 +115,19 @@ public void drawFrame(float[] viewProjectionMatrix, boolean rightEye) { // glClear isn't strictly necessary when rendering fully spherical panoramas, but it can improve // performance on tiled renderers by causing the GPU to discard previous data. GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); - checkGlError(); + try { + checkGlError(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to draw a frame", e); + } if (frameAvailable.compareAndSet(true, false)) { Assertions.checkNotNull(surfaceTexture).updateTexImage(); - checkGlError(); + try { + checkGlError(); + } catch (GlUtil.GlException e) { + Log.e(TAG, "Failed to draw a frame", e); + } if (resetRotationAtNextFrame.compareAndSet(true, false)) { Matrix.setIdentityM(rotationMatrix, 0); } diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/BitmapTestUtil.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/BitmapTestUtil.java index fda61200d11..2f38910bd89 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/BitmapTestUtil.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/BitmapTestUtil.java @@ -186,7 +186,8 @@ public static void maybeSaveTestBitmapToCacheDirectory( * @param height The height of the pixel rectangle to read. * @return A {@link Bitmap} with the framebuffer's values. */ - public static Bitmap createArgb8888BitmapFromCurrentGlFramebuffer(int width, int height) { + public static Bitmap createArgb8888BitmapFromCurrentGlFramebuffer(int width, int height) + throws GlUtil.GlException { ByteBuffer rgba8888Buffer = ByteBuffer.allocateDirect(width * height * 4); GLES20.glReadPixels( 0, 0, width, height, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, rgba8888Buffer); @@ -206,7 +207,7 @@ public static Bitmap createArgb8888BitmapFromCurrentGlFramebuffer(int width, int * @param bitmap A {@link Bitmap}. * @return The identifier of the newly created texture. */ - public static int createGlTextureFromBitmap(Bitmap bitmap) { + public static int createGlTextureFromBitmap(Bitmap bitmap) throws GlUtil.GlException { int texId = GlUtil.createTexture(bitmap.getWidth(), bitmap.getHeight()); // Put the flipped bitmap in the OpenGL texture as the bitmap's positive y-axis points down // while OpenGL's positive y-axis points up. diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/CropPixelTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/CropPixelTest.java index f4830f1ab1a..b0de6571fb5 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/CropPixelTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/CropPixelTest.java @@ -52,13 +52,9 @@ public final class CropPixelTest { public static final String CROP_LARGER_PNG_ASSET_PATH = "media/bitmap/sample_mp4_first_frame/crop_larger.png"; - static { - GlUtil.glAssertionsEnabled = true; - } - - private final Context context = getApplicationContext(); - private final EGLDisplay eglDisplay = GlUtil.createEglDisplay(); - private final EGLContext eglContext = GlUtil.createEglContext(eglDisplay); + private Context context = getApplicationContext(); + private @MonotonicNonNull EGLDisplay eglDisplay; + private @MonotonicNonNull EGLContext eglContext; private @MonotonicNonNull SingleFrameGlTextureProcessor cropTextureProcessor; private @MonotonicNonNull EGLSurface placeholderEglSurface; private int inputTexId; @@ -67,7 +63,9 @@ public final class CropPixelTest { private int inputHeight; @Before - public void createTextures() throws IOException { + public void createGlObjects() throws IOException, GlUtil.GlException { + eglDisplay = GlUtil.createEglDisplay(); + eglContext = GlUtil.createEglContext(eglDisplay); Bitmap inputBitmap = BitmapTestUtil.readBitmap(ORIGINAL_PNG_ASSET_PATH); inputWidth = inputBitmap.getWidth(); inputHeight = inputBitmap.getHeight(); @@ -77,11 +75,13 @@ public void createTextures() throws IOException { } @After - public void release() { + public void release() throws GlUtil.GlException, FrameProcessingException { if (cropTextureProcessor != null) { cropTextureProcessor.release(); } - GlUtil.destroyEglContext(eglDisplay, eglContext); + if (eglContext != null && eglDisplay != null) { + GlUtil.destroyEglContext(eglDisplay, eglContext); + } } @Test @@ -156,12 +156,12 @@ public void drawFrame_cropLarger_producesExpectedOutput() throws Exception { assertThat(averagePixelAbsoluteDifference).isAtMost(MAXIMUM_AVERAGE_PIXEL_ABSOLUTE_DIFFERENCE); } - private void setupOutputTexture(int outputWidth, int outputHeight) { + private void setupOutputTexture(int outputWidth, int outputHeight) throws GlUtil.GlException { outputTexId = GlUtil.createTexture(outputWidth, outputHeight); int frameBuffer = GlUtil.createFboForTexture(outputTexId); GlUtil.focusFramebuffer( - eglDisplay, - eglContext, + checkNotNull(eglDisplay), + checkNotNull(eglContext), checkNotNull(placeholderEglSurface), frameBuffer, outputWidth, diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/MatrixTransformationProcessorPixelTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/MatrixTransformationProcessorPixelTest.java index f25c09a16bc..3255c093cb5 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/MatrixTransformationProcessorPixelTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/MatrixTransformationProcessorPixelTest.java @@ -53,13 +53,9 @@ public final class MatrixTransformationProcessorPixelTest { public static final String ROTATE_90_PNG_ASSET_PATH = "media/bitmap/sample_mp4_first_frame/rotate90.png"; - static { - GlUtil.glAssertionsEnabled = true; - } - private final Context context = getApplicationContext(); - private final EGLDisplay eglDisplay = GlUtil.createEglDisplay(); - private final EGLContext eglContext = GlUtil.createEglContext(eglDisplay); + private @MonotonicNonNull EGLDisplay eglDisplay; + private @MonotonicNonNull EGLContext eglContext; private @MonotonicNonNull SingleFrameGlTextureProcessor matrixTransformationFrameProcessor; private int inputTexId; private int outputTexId; @@ -67,7 +63,9 @@ public final class MatrixTransformationProcessorPixelTest { private int height; @Before - public void createTextures() throws IOException { + public void createGlObjects() throws IOException, GlUtil.GlException { + eglDisplay = GlUtil.createEglDisplay(); + eglContext = GlUtil.createEglContext(eglDisplay); Bitmap inputBitmap = BitmapTestUtil.readBitmap(ORIGINAL_PNG_ASSET_PATH); width = inputBitmap.getWidth(); height = inputBitmap.getHeight(); @@ -81,11 +79,13 @@ public void createTextures() throws IOException { } @After - public void release() { + public void release() throws GlUtil.GlException, FrameProcessingException { if (matrixTransformationFrameProcessor != null) { matrixTransformationFrameProcessor.release(); } - GlUtil.destroyEglContext(eglDisplay, eglContext); + if (eglContext != null && eglDisplay != null) { + GlUtil.destroyEglContext(eglDisplay, eglContext); + } } @Test diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/PresentationPixelTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/PresentationPixelTest.java index 9465cd631c6..867aed28ff5 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/PresentationPixelTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/PresentationPixelTest.java @@ -60,13 +60,9 @@ public final class PresentationPixelTest { public static final String ASPECT_RATIO_STRETCH_TO_FIT_WIDE_PNG_ASSET_PATH = "media/bitmap/sample_mp4_first_frame/aspect_ratio_stretch_to_fit_wide.png"; - static { - GlUtil.glAssertionsEnabled = true; - } - - private final Context context = getApplicationContext(); - private final EGLDisplay eglDisplay = GlUtil.createEglDisplay(); - private final EGLContext eglContext = GlUtil.createEglContext(eglDisplay); + private Context context = getApplicationContext(); + private @MonotonicNonNull EGLDisplay eglDisplay; + private @MonotonicNonNull EGLContext eglContext; private @MonotonicNonNull SingleFrameGlTextureProcessor presentationTextureProcessor; private @MonotonicNonNull EGLSurface placeholderEglSurface; private int inputTexId; @@ -75,7 +71,9 @@ public final class PresentationPixelTest { private int inputHeight; @Before - public void createTextures() throws IOException { + public void createGlObjects() throws IOException, GlUtil.GlException { + eglDisplay = GlUtil.createEglDisplay(); + eglContext = GlUtil.createEglContext(eglDisplay); Bitmap inputBitmap = BitmapTestUtil.readBitmap(ORIGINAL_PNG_ASSET_PATH); inputWidth = inputBitmap.getWidth(); inputHeight = inputBitmap.getHeight(); @@ -85,11 +83,13 @@ public void createTextures() throws IOException { } @After - public void release() { + public void release() throws GlUtil.GlException, FrameProcessingException { if (presentationTextureProcessor != null) { presentationTextureProcessor.release(); } - GlUtil.destroyEglContext(eglDisplay, eglContext); + if (eglContext != null && eglDisplay != null) { + GlUtil.destroyEglContext(eglDisplay, eglContext); + } } @Test @@ -282,12 +282,12 @@ public void drawFrame_changeAspectRatio_stretchToFit_wide_producesExpectedOutput assertThat(averagePixelAbsoluteDifference).isAtMost(MAXIMUM_AVERAGE_PIXEL_ABSOLUTE_DIFFERENCE); } - private void setupOutputTexture(int outputWidth, int outputHeight) { + private void setupOutputTexture(int outputWidth, int outputHeight) throws GlUtil.GlException { outputTexId = GlUtil.createTexture(outputWidth, outputHeight); int frameBuffer = GlUtil.createFboForTexture(outputTexId); GlUtil.focusFramebuffer( - eglDisplay, - eglContext, + checkNotNull(eglDisplay), + checkNotNull(eglContext), checkNotNull(placeholderEglSurface), frameBuffer, outputWidth, diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Crop.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Crop.java index 511a5cf8c91..20f83f105a0 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Crop.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Crop.java @@ -32,10 +32,6 @@ @UnstableApi public final class Crop implements MatrixTransformation { - static { - GlUtil.glAssertionsEnabled = true; - } - private final float left; private final float right; private final float bottom; diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/EncoderCompatibilityTransformation.java b/libraries/transformer/src/main/java/androidx/media3/transformer/EncoderCompatibilityTransformation.java index d12e1b5f820..05ff98fe0a5 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/EncoderCompatibilityTransformation.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/EncoderCompatibilityTransformation.java @@ -23,7 +23,6 @@ import android.util.Size; import androidx.media3.common.C; import androidx.media3.common.Format; -import androidx.media3.common.util.GlUtil; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** @@ -38,10 +37,6 @@ // TODO(b/218488308): Allow reconfiguration of the output size, as encoders may not support the // requested output resolution. - static { - GlUtil.glAssertionsEnabled = true; - } - private int outputRotationDegrees; private @MonotonicNonNull Matrix transformationMatrix; diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalTextureProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalTextureProcessor.java index 823b883668a..693f5533bcb 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalTextureProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/ExternalTextureProcessor.java @@ -28,10 +28,6 @@ /** Copies frames from an external texture and applies color transformations for HDR if needed. */ /* package */ class ExternalTextureProcessor extends SingleFrameGlTextureProcessor { - static { - GlUtil.glAssertionsEnabled = true; - } - private static final String VERTEX_SHADER_TEX_TRANSFORM_PATH = "shaders/vertex_shader_tex_transform_es2.glsl"; private static final String VERTEX_SHADER_TEX_TRANSFORM_ES3_PATH = @@ -54,10 +50,10 @@ * Creates a new instance. * * @param enableExperimentalHdrEditing Whether to attempt to process the input as an HDR signal. - * @throws IOException If a problem occurs while reading shader files. + * @throws FrameProcessingException If a problem occurs while reading shader files. */ public ExternalTextureProcessor(Context context, boolean enableExperimentalHdrEditing) - throws IOException { + throws FrameProcessingException { String vertexShaderFilePath = enableExperimentalHdrEditing ? VERTEX_SHADER_TEX_TRANSFORM_ES3_PATH @@ -66,7 +62,11 @@ public ExternalTextureProcessor(Context context, boolean enableExperimentalHdrEd enableExperimentalHdrEditing ? FRAGMENT_SHADER_COPY_EXTERNAL_YUV_ES3_PATH : FRAGMENT_SHADER_COPY_EXTERNAL_PATH; - glProgram = new GlProgram(context, vertexShaderFilePath, fragmentShaderFilePath); + try { + glProgram = new GlProgram(context, vertexShaderFilePath, fragmentShaderFilePath); + } catch (IOException | GlUtil.GlException e) { + throw new FrameProcessingException(e); + } // Draw the frame on the entire normalized device coordinate space, from -1 to 1, for x and y. glProgram.setBufferAttribute( "aFramePosition", @@ -109,15 +109,19 @@ public void drawFrame(int inputTexId, long presentationTimeUs) throws FrameProce GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); GlUtil.checkGlError(); } catch (GlUtil.GlException e) { - throw new FrameProcessingException(e); + throw new FrameProcessingException(e, presentationTimeUs); } } @Override - public void release() { + public void release() throws FrameProcessingException { super.release(); if (glProgram != null) { - glProgram.delete(); + try { + glProgram.delete(); + } catch (GlUtil.GlException e) { + throw new FrameProcessingException(e); + } } } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessingException.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessingException.java index 6d413fd38ad..1d1d5d47ed2 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessingException.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessingException.java @@ -22,6 +22,26 @@ @UnstableApi public final class FrameProcessingException extends Exception { + /** + * Wraps the given exception in a {@code FrameProcessingException} if it is not already a {@code + * FrameProcessingException} and returns the exception otherwise. + */ + public static FrameProcessingException from(Exception exception) { + return from(exception, /* presentationTimeUs= */ C.TIME_UNSET); + } + + /** + * Wraps the given exception in a {@code FrameProcessingException} with the given timestamp if it + * is not already a {@code FrameProcessingException} and returns the exception otherwise. + */ + public static FrameProcessingException from(Exception exception, long presentationTimeUs) { + if (exception instanceof FrameProcessingException) { + return (FrameProcessingException) exception; + } else { + return new FrameProcessingException(exception, presentationTimeUs); + } + } + /** * The microsecond timestamp of the frame being processed while the exception occurred or {@link * C#TIME_UNSET} if unknown. diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java index c4ded83fd9b..0b2bea5a346 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java @@ -41,7 +41,6 @@ import androidx.media3.common.util.Log; import androidx.media3.common.util.Util; import com.google.common.collect.ImmutableList; -import java.io.IOException; import java.util.List; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ExecutionException; @@ -65,10 +64,6 @@ // TODO(b/227625423): Factor out FrameProcessor interface and rename this class to GlFrameProcessor. /* package */ final class FrameProcessorChain { - static { - GlUtil.glAssertionsEnabled = true; - } - /** * Listener for asynchronous frame processing events. * @@ -150,7 +145,7 @@ private static FrameProcessorChain createOpenGlObjectsAndFrameProcessorChain( List effects, boolean enableExperimentalHdrEditing, ExecutorService singleThreadExecutorService) - throws IOException { + throws GlUtil.GlException, FrameProcessingException { checkState(Thread.currentThread().getName().equals(THREAD_NAME)); EGLDisplay eglDisplay = GlUtil.createEglDisplay(); @@ -204,7 +199,7 @@ private static ImmutableList getTextureProcessors ExternalTextureProcessor externalTextureProcessor, float pixelWidthHeightRatio, List effects) - throws IOException { + throws FrameProcessingException { ImmutableList.Builder textureProcessors = new ImmutableList.Builder().add(externalTextureProcessor); @@ -532,22 +527,19 @@ private void processFrame() { int finalInputTexId = inputTexId; debugSurfaceViewWrapper.maybeRenderToSurfaceView( () -> { - GlUtil.clearOutputFrame(); try { + GlUtil.clearOutputFrame(); getLast(textureProcessors).drawFrame(finalInputTexId, finalPresentationTimeUs); - } catch (FrameProcessingException e) { + } catch (GlUtil.GlException | FrameProcessingException e) { Log.d(TAG, "Error rendering to debug preview", e); } }); } checkState(pendingFrameCount.getAndDecrement() > 0); - } catch (FrameProcessingException | RuntimeException e) { + } catch (FrameProcessingException | GlUtil.GlException | RuntimeException e) { if (!stopProcessing.getAndSet(true)) { - listener.onFrameProcessingError( - e instanceof FrameProcessingException - ? (FrameProcessingException) e - : new FrameProcessingException(e, presentationTimeUs)); + listener.onFrameProcessingError(FrameProcessingException.from(e, presentationTimeUs)); } } } @@ -565,8 +557,8 @@ private void releaseTextureProcessorsAndDestroyGlContext() { textureProcessors.get(i).release(); } GlUtil.destroyEglContext(eglDisplay, eglContext); - } catch (RuntimeException e) { - listener.onFrameProcessingError(new FrameProcessingException(e)); + } catch (FrameProcessingException | GlUtil.GlException | RuntimeException e) { + listener.onFrameProcessingError(FrameProcessingException.from(e)); } } @@ -600,7 +592,8 @@ public SurfaceViewWrapper(SurfaceView surfaceView) { * otherwise. */ @WorkerThread - public synchronized void maybeRenderToSurfaceView(Runnable renderRunnable) { + public synchronized void maybeRenderToSurfaceView(Runnable renderRunnable) + throws GlUtil.GlException { if (surface == null) { return; } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/GlEffect.java b/libraries/transformer/src/main/java/androidx/media3/transformer/GlEffect.java index fa64cb780d7..10a587a0268 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/GlEffect.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/GlEffect.java @@ -17,7 +17,6 @@ import android.content.Context; import androidx.media3.common.util.UnstableApi; -import java.io.IOException; /** * Interface for a video frame effect with a {@link SingleFrameGlTextureProcessor} implementation. @@ -31,5 +30,6 @@ public interface GlEffect { /** Returns a {@link SingleFrameGlTextureProcessor} that applies the effect. */ // TODO(b/227625423): use GlTextureProcessor here once this interface exists. - SingleFrameGlTextureProcessor toGlTextureProcessor(Context context) throws IOException; + SingleFrameGlTextureProcessor toGlTextureProcessor(Context context) + throws FrameProcessingException; } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/GlMatrixTransformation.java b/libraries/transformer/src/main/java/androidx/media3/transformer/GlMatrixTransformation.java index b4b91e6087c..0ecdc482473 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/GlMatrixTransformation.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/GlMatrixTransformation.java @@ -19,7 +19,6 @@ import android.opengl.Matrix; import android.util.Size; import androidx.media3.common.util.UnstableApi; -import java.io.IOException; /** * Specifies a 4x4 transformation {@link Matrix} to apply in the vertex shader for each frame. @@ -52,7 +51,8 @@ default Size configure(int inputWidth, int inputHeight) { float[] getGlMatrixArray(long presentationTimeUs); @Override - default SingleFrameGlTextureProcessor toGlTextureProcessor(Context context) throws IOException { + default SingleFrameGlTextureProcessor toGlTextureProcessor(Context context) + throws FrameProcessingException { return new MatrixTransformationProcessor(context, this); } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/GlTextureProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/GlTextureProcessor.java index 3aae70d2805..6021ed1be4f 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/GlTextureProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/GlTextureProcessor.java @@ -113,6 +113,10 @@ interface Listener { /** Notifies the texture processor that no further input frames will become available. */ void signalEndOfInputStream(); - /** Releases all resources. */ - void release(); + /** + * Releases all resources. + * + * @throws FrameProcessingException If an error occurs while releasing resources. + */ + void release() throws FrameProcessingException; } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationProcessor.java index 8c40191dd9a..542f79c45e6 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/MatrixTransformationProcessor.java @@ -43,10 +43,6 @@ @SuppressWarnings("FunctionalInterfaceClash") // b/228192298 /* package */ final class MatrixTransformationProcessor extends SingleFrameGlTextureProcessor { - static { - GlUtil.glAssertionsEnabled = true; - } - private static final String VERTEX_SHADER_TRANSFORMATION_PATH = "shaders/vertex_shader_transformation_es2.glsl"; private static final String FRAGMENT_SHADER_PATH = "shaders/fragment_shader_copy_es2.glsl"; @@ -90,10 +86,10 @@ * @param context The {@link Context}. * @param matrixTransformation A {@link MatrixTransformation} that specifies the transformation * matrix to use for each frame. - * @throws IOException If a problem occurs while reading shader files. + * @throws FrameProcessingException If a problem occurs while reading shader files. */ public MatrixTransformationProcessor(Context context, MatrixTransformation matrixTransformation) - throws IOException { + throws FrameProcessingException { this(context, ImmutableList.of(matrixTransformation)); } @@ -103,10 +99,10 @@ public MatrixTransformationProcessor(Context context, MatrixTransformation matri * @param context The {@link Context}. * @param matrixTransformation A {@link GlMatrixTransformation} that specifies the transformation * matrix to use for each frame. - * @throws IOException If a problem occurs while reading shader files. + * @throws FrameProcessingException If a problem occurs while reading shader files. */ public MatrixTransformationProcessor(Context context, GlMatrixTransformation matrixTransformation) - throws IOException { + throws FrameProcessingException { this(context, ImmutableList.of(matrixTransformation)); } @@ -116,11 +112,11 @@ public MatrixTransformationProcessor(Context context, GlMatrixTransformation mat * @param context The {@link Context}. * @param matrixTransformations The {@link GlMatrixTransformation GlMatrixTransformations} to * apply to each frame in order. - * @throws IOException If a problem occurs while reading shader files. + * @throws FrameProcessingException If a problem occurs while reading shader files. */ public MatrixTransformationProcessor( Context context, ImmutableList matrixTransformations) - throws IOException { + throws FrameProcessingException { this.matrixTransformations = matrixTransformations; transformationMatrixCache = new float[matrixTransformations.size()][16]; @@ -128,7 +124,11 @@ public MatrixTransformationProcessor( tempResultMatrix = new float[16]; Matrix.setIdentityM(compositeTransformationMatrix, /* smOffset= */ 0); visiblePolygon = NDC_SQUARE; - glProgram = new GlProgram(context, VERTEX_SHADER_TRANSFORMATION_PATH, FRAGMENT_SHADER_PATH); + try { + glProgram = new GlProgram(context, VERTEX_SHADER_TRANSFORMATION_PATH, FRAGMENT_SHADER_PATH); + } catch (IOException | GlUtil.GlException e) { + throw new FrameProcessingException(e); + } } @Override @@ -170,9 +170,15 @@ public void drawFrame(int inputTexId, long presentationTimeUs) throws FrameProce } @Override - public void release() { + public void release() throws FrameProcessingException { super.release(); - glProgram.delete(); + if (glProgram != null) { + try { + glProgram.delete(); + } catch (GlUtil.GlException e) { + throw new FrameProcessingException(e); + } + } } /** diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Presentation.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Presentation.java index 102af6ac7c5..167e83bf0f2 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Presentation.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Presentation.java @@ -24,7 +24,6 @@ import android.util.Size; import androidx.annotation.IntDef; import androidx.media3.common.C; -import androidx.media3.common.util.GlUtil; import androidx.media3.common.util.UnstableApi; import java.lang.annotation.Documented; import java.lang.annotation.Retention; @@ -164,10 +163,6 @@ public Presentation build() { } } - static { - GlUtil.glAssertionsEnabled = true; - } - private final int requestedHeightPixels; private final float requestedAspectRatio; private final @Layout int layout; diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/ScaleToFitTransformation.java b/libraries/transformer/src/main/java/androidx/media3/transformer/ScaleToFitTransformation.java index 12fb0857272..cf69a25896e 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/ScaleToFitTransformation.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/ScaleToFitTransformation.java @@ -85,10 +85,6 @@ public ScaleToFitTransformation build() { } } - static { - GlUtil.glAssertionsEnabled = true; - } - private final Matrix transformationMatrix; private @MonotonicNonNull Matrix adjustedTransformationMatrix; diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/SingleFrameGlTextureProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/SingleFrameGlTextureProcessor.java index 5ec5522ddd3..84f05c815ba 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/SingleFrameGlTextureProcessor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/SingleFrameGlTextureProcessor.java @@ -96,7 +96,7 @@ public final boolean maybeQueueInputFrame(TextureInfo inputTexture, long present listener.onInputFrameProcessed(inputTexture); listener.onOutputFrameAvailable(outputTexture, presentationTimeUs); } - } catch (FrameProcessingException | RuntimeException e) { + } catch (FrameProcessingException | GlUtil.GlException | RuntimeException e) { if (listener != null) { listener.onFrameProcessingError( e instanceof FrameProcessingException @@ -108,7 +108,7 @@ public final boolean maybeQueueInputFrame(TextureInfo inputTexture, long present } @EnsuresNonNull("outputTexture") - private void configureOutputTexture(int inputWidth, int inputHeight) { + private void configureOutputTexture(int inputWidth, int inputHeight) throws GlUtil.GlException { this.inputWidth = inputWidth; this.inputHeight = inputHeight; Size outputSize = configure(inputWidth, inputHeight); @@ -139,9 +139,13 @@ public final void signalEndOfInputStream() { @Override @CallSuper - public void release() { + public void release() throws FrameProcessingException { if (outputTexture != null) { - GlUtil.deleteTexture(outputTexture.texId); + try { + GlUtil.deleteTexture(outputTexture.texId); + } catch (GlUtil.GlException e) { + throw new FrameProcessingException(e); + } } } } From a105d033a7d44b8c3afb0e8134ad65f624caf256 Mon Sep 17 00:00:00 2001 From: hschlueter Date: Thu, 9 Jun 2022 18:22:39 +0000 Subject: [PATCH 182/182] Check targetSdkVersion for frame dropping workaround. Based on https://developer.android.com/reference/android/media/MediaCodec#using-an-output-surface, frame dropping behaviour depends on the target SDK version. After this change transformer will only use MediaFormat#KEY_ALLOW_FRAME_DROP if both the target and system SDK version are at least 29 and default to its pre 29 behaviour where each decoder output frame must be processed before a new one is rendered to prevent frame dropping otherwise. Also remove deprecated Transformer.Builder constructor without a context and the context setter. PiperOrigin-RevId: 453971097 --- RELEASENOTES.md | 2 + .../demo/transformer/TransformerActivity.java | 1 + .../media3/transformer/AndroidTestUtil.java | 4 +- .../transformer/TransformerEndToEndTest.java | 6 ++- .../RepeatedTranscodeTransformationTest.java | 6 +-- .../transformer/mh/TranscodeQualityTest.java | 4 +- .../transformer/mh/TransformationTest.java | 17 ++++++--- .../mh/analysis/BitrateAnalysisTest.java | 1 + .../EncoderPerformanceAnalysisTest.java | 1 + .../androidx/media3/transformer/Codec.java | 6 --- .../media3/transformer/DefaultCodec.java | 26 +++++++++---- .../transformer/DefaultDecoderFactory.java | 30 ++++++++++++--- .../transformer/DefaultEncoderFactory.java | 22 ++++++++--- .../media3/transformer/Transformer.java | 38 +++---------------- .../DefaultEncoderFactoryTest.java | 12 ++++-- .../transformer/TransformerBuilderTest.java | 5 --- .../transformer/TransformerEndToEndTest.java | 3 +- 17 files changed, 104 insertions(+), 80 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index aef2c6fd92a..7d9ab1c3659 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -191,6 +191,8 @@ `DEFAULT_TRACK_SELECTOR_PARAMETERS_WITHOUT_CONTEXT` otherwise. * Remove constructor `DefaultTrackSelector(ExoTrackSelection.Factory)`. Use `DefaultTrackSelector(Context, ExoTrackSelection.Factory)` instead. + * Remove `Transformer.Builder.setContext`. The `Context` should be passed + to the `Transformer.Builder` constructor instead. ### 1.0.0-alpha03 (2022-03-14) diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java index 178cfc0098b..842769f13fc 100644 --- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java +++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java @@ -260,6 +260,7 @@ private Transformer createTransformer(@Nullable Bundle bundle, String filePath) .setRemoveVideo(bundle.getBoolean(ConfigurationActivity.SHOULD_REMOVE_VIDEO)) .setEncoderFactory( new DefaultEncoderFactory( + /* context= */ this, EncoderSelector.DEFAULT, /* enableFallback= */ bundle.getBoolean(ConfigurationActivity.ENABLE_FALLBACK))); diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java index 0906548e2ad..ea0c4985224 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java @@ -224,8 +224,8 @@ public static final class ForceEncodeEncoderFactory implements Codec.EncoderFact private final Codec.EncoderFactory encoderFactory; /** Creates an instance that wraps {@link DefaultEncoderFactory}. */ - public ForceEncodeEncoderFactory() { - encoderFactory = Codec.EncoderFactory.DEFAULT; + public ForceEncodeEncoderFactory(Context context) { + encoderFactory = new DefaultEncoderFactory(context); } /** diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java index c7844fd9e1a..1b6af6de707 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java @@ -42,7 +42,8 @@ public void videoEditing_completesWithConsistentFrameCount() throws Exception { .setTransformationRequest( new TransformationRequest.Builder().setResolution(480).build()) .setEncoderFactory( - new DefaultEncoderFactory(EncoderSelector.DEFAULT, /* enableFallback= */ false)) + new DefaultEncoderFactory( + context, EncoderSelector.DEFAULT, /* enableFallback= */ false)) .build(); // Result of the following command: // ffprobe -count_frames -select_streams v:0 -show_entries stream=nb_read_frames sample.mp4 @@ -67,7 +68,8 @@ public void videoOnly_completesWithConsistentDuration() throws Exception { .setTransformationRequest( new TransformationRequest.Builder().setResolution(480).build()) .setEncoderFactory( - new DefaultEncoderFactory(EncoderSelector.DEFAULT, /* enableFallback= */ false)) + new DefaultEncoderFactory( + context, EncoderSelector.DEFAULT, /* enableFallback= */ false)) .build(); long expectedDurationMs = 967; diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/RepeatedTranscodeTransformationTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/RepeatedTranscodeTransformationTest.java index 19b80a8aac3..0c275ad1efd 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/RepeatedTranscodeTransformationTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/RepeatedTranscodeTransformationTest.java @@ -48,7 +48,7 @@ public void repeatedTranscode_givesConsistentLengthOutput() throws Exception { new Transformer.Builder(context) .setTransformationRequest( new TransformationRequest.Builder().setRotationDegrees(45).build()) - .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory()) + .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory(context)) .build()) .build(); @@ -78,7 +78,7 @@ public void repeatedTranscodeNoAudio_givesConsistentLengthOutput() throws Except .setRemoveAudio(true) .setTransformationRequest( new TransformationRequest.Builder().setRotationDegrees(45).build()) - .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory()) + .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory(context)) .build()) .build(); @@ -107,7 +107,7 @@ public void repeatedTranscodeNoVideo_givesConsistentLengthOutput() throws Except new Transformer.Builder(context) .setRemoveVideo(true) .setTransformationRequest(new TransformationRequest.Builder().build()) - .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory()) + .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory(context)) .build()) .build(); diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TranscodeQualityTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TranscodeQualityTest.java index 9906cf98b19..ba8f173695a 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TranscodeQualityTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TranscodeQualityTest.java @@ -52,7 +52,7 @@ public void transformWithDecodeEncode_ssimIsGreaterThan90Percent() throws Except new Transformer.Builder(context) .setTransformationRequest( new TransformationRequest.Builder().setVideoMimeType(MimeTypes.VIDEO_H264).build()) - .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory()) + .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory(context)) .setRemoveAudio(true) .build(); @@ -119,7 +119,7 @@ public void transcodeAvcToAvc320x240_ssimIsGreaterThan90Percent() throws Excepti new Transformer.Builder(context) .setTransformationRequest( new TransformationRequest.Builder().setVideoMimeType(MimeTypes.VIDEO_H264).build()) - .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory()) + .setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory(context)) .setRemoveAudio(true) .build(); diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java index 5a82a7c0cc0..045961c1a1e 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformationTest.java @@ -52,7 +52,9 @@ public void transform() throws Exception { String testId = TAG + "_transform"; Context context = ApplicationProvider.getApplicationContext(); Transformer transformer = - new Transformer.Builder(context).setEncoderFactory(new ForceEncodeEncoderFactory()).build(); + new Transformer.Builder(context) + .setEncoderFactory(new ForceEncodeEncoderFactory(context)) + .build(); new TransformerAndroidTestRunner.Builder(context, transformer) .setMaybeCalculateSsim(true) .build() @@ -80,6 +82,7 @@ public void transformToSpecificBitrate() throws Exception { .setEncoderFactory( new ForceEncodeEncoderFactory( /* wrappedEncoderFactory= */ new DefaultEncoderFactory( + context, EncoderSelector.DEFAULT, new VideoEncoderSettings.Builder().setBitrate(5_000_000).build(), /* enableFallback= */ true))) @@ -104,7 +107,9 @@ public void transform4K60() throws Exception { } Transformer transformer = - new Transformer.Builder(context).setEncoderFactory(new ForceEncodeEncoderFactory()).build(); + new Transformer.Builder(context) + .setEncoderFactory(new ForceEncodeEncoderFactory(context)) + .build(); new TransformerAndroidTestRunner.Builder(context, transformer) .setMaybeCalculateSsim(true) .setTimeoutSeconds(180) @@ -125,7 +130,9 @@ public void transform8K24() throws Exception { return; } Transformer transformer = - new Transformer.Builder(context).setEncoderFactory(new ForceEncodeEncoderFactory()).build(); + new Transformer.Builder(context) + .setEncoderFactory(new ForceEncodeEncoderFactory(context)) + .build(); new TransformerAndroidTestRunner.Builder(context, transformer) .setMaybeCalculateSsim(true) .setTimeoutSeconds(180) @@ -139,7 +146,7 @@ public void transformNoAudio() throws Exception { Context context = ApplicationProvider.getApplicationContext(); Transformer transformer = new Transformer.Builder(context) - .setEncoderFactory(new ForceEncodeEncoderFactory()) + .setEncoderFactory(new ForceEncodeEncoderFactory(context)) .setRemoveAudio(true) .build(); new TransformerAndroidTestRunner.Builder(context, transformer) @@ -154,7 +161,7 @@ public void transformNoVideo() throws Exception { Context context = ApplicationProvider.getApplicationContext(); Transformer transformer = new Transformer.Builder(context) - .setEncoderFactory(new ForceEncodeEncoderFactory()) + .setEncoderFactory(new ForceEncodeEncoderFactory(context)) .setRemoveVideo(true) .build(); new TransformerAndroidTestRunner.Builder(context, transformer) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/BitrateAnalysisTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/BitrateAnalysisTest.java index efd973f5ff6..45e4cb60d6f 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/BitrateAnalysisTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/BitrateAnalysisTest.java @@ -118,6 +118,7 @@ public void analyzeBitrate() throws Exception { .setEncoderFactory( new AndroidTestUtil.ForceEncodeEncoderFactory( /* wrappedEncoderFactory= */ new DefaultEncoderFactory( + context, EncoderSelector.DEFAULT, new VideoEncoderSettings.Builder() .setBitrate(bitrate) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/EncoderPerformanceAnalysisTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/EncoderPerformanceAnalysisTest.java index 0692bc45c5a..f2e28184fc3 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/EncoderPerformanceAnalysisTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/analysis/EncoderPerformanceAnalysisTest.java @@ -128,6 +128,7 @@ public void analyzeEncoderPerformance() throws Exception { .setEncoderFactory( new AndroidTestUtil.ForceEncodeEncoderFactory( /* wrappedEncoderFactory= */ new DefaultEncoderFactory( + context, EncoderSelector.DEFAULT, new VideoEncoderSettings.Builder() .setEncoderPerformanceParameters(operatingRate, priority) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Codec.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Codec.java index d345aa63d68..d33157a683a 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Codec.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Codec.java @@ -41,9 +41,6 @@ public interface Codec { /** A factory for {@linkplain Codec decoder} instances. */ interface DecoderFactory { - /** A default {@code DecoderFactory} implementation. */ - DecoderFactory DEFAULT = new DefaultDecoderFactory(); - /** * Returns a {@link Codec} for audio decoding. * @@ -72,9 +69,6 @@ Codec createForVideoDecoding( /** A factory for {@linkplain Codec encoder} instances. */ interface EncoderFactory { - /** A default {@code EncoderFactory} implementation. */ - EncoderFactory DEFAULT = new DefaultEncoderFactory(); - /** * Returns a {@link Codec} for audio encoding. * diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultCodec.java b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultCodec.java index 5c723705b8a..07475aa410b 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultCodec.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultCodec.java @@ -21,6 +21,7 @@ import static androidx.media3.common.util.Assertions.checkStateNotNull; import static androidx.media3.common.util.Util.SDK_INT; +import android.content.Context; import android.media.MediaCodec; import android.media.MediaCodec.BufferInfo; import android.media.MediaFormat; @@ -54,6 +55,8 @@ public final class DefaultCodec implements Codec { private final MediaCodec mediaCodec; @Nullable private final Surface inputSurface; + private final boolean decoderNeedsFrameDroppingWorkaround; + private @MonotonicNonNull Format outputFormat; @Nullable private ByteBuffer outputBuffer; @@ -65,6 +68,7 @@ public final class DefaultCodec implements Codec { /** * Creates a {@code DefaultCodec}. * + * @param context The {@link Context}. * @param configurationFormat The {@link Format} to configure the {@code DefaultCodec}. See {@link * #getConfigurationFormat()}. The {@link Format#sampleMimeType sampleMimeType} must not be * {@code null}. @@ -75,6 +79,7 @@ public final class DefaultCodec implements Codec { * @param outputSurface The output {@link Surface} if the {@link MediaCodec} outputs to a surface. */ public DefaultCodec( + Context context, Format configurationFormat, MediaFormat configurationMediaFormat, String mediaCodecName, @@ -110,6 +115,7 @@ public DefaultCodec( } this.mediaCodec = mediaCodec; this.inputSurface = inputSurface; + decoderNeedsFrameDroppingWorkaround = decoderNeedsFrameDroppingWorkaround(context); } @Override @@ -124,15 +130,12 @@ public Surface getInputSurface() { @Override public int getMaxPendingFrameCount() { - if (SDK_INT < 29) { - // Prior to API 29, decoders may drop frames to keep their output surface from growing out of - // bounds. From API 29, the {@link MediaFormat#KEY_ALLOW_FRAME_DROP} key prevents frame - // dropping even when the surface is full. Frame dropping is never desired, so allow a maximum - // of one frame to be pending at a time. + if (decoderNeedsFrameDroppingWorkaround) { + // Allow a maximum of one frame to be pending at a time to prevent frame dropping. // TODO(b/226330223): Investigate increasing this limit. return 1; } - if (Ascii.toUpperCase(mediaCodec.getCodecInfo().getCanonicalName()).startsWith("OMX.")) { + if (Ascii.toUpperCase(getName()).startsWith("OMX.")) { // Some OMX decoders don't correctly track their number of output buffers available, and get // stuck if too many frames are rendered without being processed, so limit the number of // pending frames to avoid getting stuck. This value is experimentally determined. See also @@ -261,7 +264,7 @@ public void release() { * {@inheritDoc} * *

    This name is of the actual codec, which may not be the same as the {@code mediaCodecName} - * passed to {@link #DefaultCodec(Format, MediaFormat, String, boolean, Surface)}. + * passed to {@link #DefaultCodec(Context, Format, MediaFormat, String, boolean, Surface)}. * * @see MediaCodec#getCanonicalName() */ @@ -424,4 +427,13 @@ private static void startCodec(MediaCodec codec) { codec.start(); TraceUtil.endSection(); } + + private static boolean decoderNeedsFrameDroppingWorkaround(Context context) { + // Prior to API 29, decoders may drop frames to keep their output surface from growing out of + // bounds. From API 29, if the app targets API 29 or later, the {@link + // MediaFormat#KEY_ALLOW_FRAME_DROP} key prevents frame dropping even when the surface is full. + // Frame dropping is never desired, so a workaround is needed for older API levels. + return SDK_INT < 29 + || context.getApplicationContext().getApplicationInfo().targetSdkVersion < 29; + } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultDecoderFactory.java b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultDecoderFactory.java index 7b525416a32..dcdcd6b927c 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultDecoderFactory.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultDecoderFactory.java @@ -19,6 +19,8 @@ import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.common.util.Util.SDK_INT; +import android.annotation.SuppressLint; +import android.content.Context; import android.media.MediaFormat; import android.view.Surface; import androidx.annotation.Nullable; @@ -30,6 +32,18 @@ /** A default implementation of {@link Codec.DecoderFactory}. */ /* package */ final class DefaultDecoderFactory implements Codec.DecoderFactory { + private final Context context; + + private final boolean decoderSupportsKeyAllowFrameDrop; + + public DefaultDecoderFactory(Context context) { + this.context = context; + + decoderSupportsKeyAllowFrameDrop = + SDK_INT >= 29 + && context.getApplicationContext().getApplicationInfo().targetSdkVersion >= 29; + } + @Override public Codec createForAudioDecoding(Format format) throws TransformationException { MediaFormat mediaFormat = @@ -45,9 +59,15 @@ public Codec createForAudioDecoding(Format format) throws TransformationExceptio throw createTransformationException(format); } return new DefaultCodec( - format, mediaFormat, mediaCodecName, /* isDecoder= */ true, /* outputSurface= */ null); + context, + format, + mediaFormat, + mediaCodecName, + /* isDecoder= */ true, + /* outputSurface= */ null); } + @SuppressLint("InlinedApi") @Override public Codec createForVideoDecoding( Format format, Surface outputSurface, boolean enableRequestSdrToneMapping) @@ -59,9 +79,9 @@ public Codec createForVideoDecoding( MediaFormatUtil.maybeSetInteger( mediaFormat, MediaFormat.KEY_MAX_INPUT_SIZE, format.maxInputSize); MediaFormatUtil.setCsdBuffers(mediaFormat, format.initializationData); - if (SDK_INT >= 29) { - // On API levels over 29, Transformer decodes as many frames as possible in one render - // cycle. This key ensures no frame dropping when the decoder's output surface is full. + if (decoderSupportsKeyAllowFrameDrop) { + // This key ensures no frame dropping when the decoder's output surface is full. This allows + // transformer to decode as many frames as possible in one render cycle. mediaFormat.setInteger(MediaFormat.KEY_ALLOW_FRAME_DROP, 0); } if (SDK_INT >= 31 && enableRequestSdrToneMapping) { @@ -75,7 +95,7 @@ public Codec createForVideoDecoding( throw createTransformationException(format); } return new DefaultCodec( - format, mediaFormat, mediaCodecName, /* isDecoder= */ true, outputSurface); + context, format, mediaFormat, mediaCodecName, /* isDecoder= */ true, outputSurface); } @RequiresNonNull("#1.sampleMimeType") diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultEncoderFactory.java b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultEncoderFactory.java index ff638e8eb8b..4303463b18f 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultEncoderFactory.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultEncoderFactory.java @@ -24,6 +24,7 @@ import static java.lang.Math.abs; import static java.lang.Math.floor; +import android.content.Context; import android.media.MediaCodecInfo; import android.media.MediaFormat; import android.util.Pair; @@ -46,6 +47,7 @@ public final class DefaultEncoderFactory implements Codec.EncoderFactory { private static final int DEFAULT_FRAME_RATE = 30; private static final String TAG = "DefaultEncoderFactory"; + private final Context context; private final EncoderSelector videoEncoderSelector; private final VideoEncoderSettings requestedVideoEncoderSettings; private final boolean enableFallback; @@ -54,13 +56,14 @@ public final class DefaultEncoderFactory implements Codec.EncoderFactory { * Creates a new instance using the {@link EncoderSelector#DEFAULT default encoder selector}, a * default {@link VideoEncoderSettings}, and with format fallback enabled. */ - public DefaultEncoderFactory() { - this(EncoderSelector.DEFAULT, /* enableFallback= */ true); + public DefaultEncoderFactory(Context context) { + this(context, EncoderSelector.DEFAULT, /* enableFallback= */ true); } /** Creates a new instance using a default {@link VideoEncoderSettings}. */ - public DefaultEncoderFactory(EncoderSelector videoEncoderSelector, boolean enableFallback) { - this(videoEncoderSelector, VideoEncoderSettings.DEFAULT, enableFallback); + public DefaultEncoderFactory( + Context context, EncoderSelector videoEncoderSelector, boolean enableFallback) { + this(context, videoEncoderSelector, VideoEncoderSettings.DEFAULT, enableFallback); } /** @@ -81,14 +84,17 @@ public DefaultEncoderFactory(EncoderSelector videoEncoderSelector, boolean enabl * and {@link VideoEncoderSettings#level} can cause codec configuration failure. Setting an * unsupported {@link VideoEncoderSettings#bitrateMode} may cause encoder instantiation failure. * + * @param context The {@link Context}. * @param videoEncoderSelector The {@link EncoderSelector}. * @param requestedVideoEncoderSettings The {@link VideoEncoderSettings}. * @param enableFallback Whether to enable fallback. */ public DefaultEncoderFactory( + Context context, EncoderSelector videoEncoderSelector, VideoEncoderSettings requestedVideoEncoderSettings, boolean enableFallback) { + this.context = context; this.videoEncoderSelector = videoEncoderSelector; this.requestedVideoEncoderSettings = requestedVideoEncoderSettings; this.enableFallback = enableFallback; @@ -120,7 +126,12 @@ public Codec createForAudioEncoding(Format format, List allowedMimeTypes throw createTransformationException(format); } return new DefaultCodec( - format, mediaFormat, mediaCodecName, /* isDecoder= */ false, /* outputSurface= */ null); + context, + format, + mediaFormat, + mediaCodecName, + /* isDecoder= */ false, + /* outputSurface= */ null); } @Override @@ -210,6 +221,7 @@ public Codec createForVideoEncoding(Format format, List allowedMimeTypes } return new DefaultCodec( + context, format, mediaFormat, encoderInfo.getName(), diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java index db03b0e0ee6..e8af343ce73 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java @@ -94,9 +94,7 @@ public final class Transformer { public static final class Builder { // Mandatory field. - // TODO(huangdarwin): Update @MonotonicNonNull to final after deprecated {@link - // #setContext(Context)} is removed. - private @MonotonicNonNull Context context; + private final Context context; // Optional fields. private MediaSource.@MonotonicNonNull Factory mediaSourceFactory; @@ -113,23 +111,6 @@ public static final class Builder { private Codec.EncoderFactory encoderFactory; private Codec.DecoderFactory decoderFactory; - /** - * @deprecated Use {@link #Builder(Context)} instead. - */ - @Deprecated - public Builder() { - muxerFactory = new FrameworkMuxer.Factory(); - looper = Util.getCurrentOrMainLooper(); - clock = Clock.DEFAULT; - listeners = new ListenerSet<>(looper, clock, (listener, flags) -> {}); - encoderFactory = Codec.EncoderFactory.DEFAULT; - decoderFactory = Codec.DecoderFactory.DEFAULT; - debugViewProvider = DebugViewProvider.NONE; - containerMimeType = MimeTypes.VIDEO_MP4; - transformationRequest = new TransformationRequest.Builder().build(); - videoFrameEffects = ImmutableList.of(); - } - /** * Creates a builder with default values. * @@ -141,8 +122,8 @@ public Builder(Context context) { looper = Util.getCurrentOrMainLooper(); clock = Clock.DEFAULT; listeners = new ListenerSet<>(looper, clock, (listener, flags) -> {}); - encoderFactory = Codec.EncoderFactory.DEFAULT; - decoderFactory = Codec.DecoderFactory.DEFAULT; + encoderFactory = new DefaultEncoderFactory(this.context); + decoderFactory = new DefaultDecoderFactory(this.context); debugViewProvider = DebugViewProvider.NONE; containerMimeType = MimeTypes.VIDEO_MP4; transformationRequest = new TransformationRequest.Builder().build(); @@ -167,15 +148,6 @@ private Builder(Transformer transformer) { this.clock = transformer.clock; } - /** - * @deprecated Use {@link #Builder(Context)} instead. - */ - @Deprecated - public Builder setContext(Context context) { - this.context = context.getApplicationContext(); - return this; - } - /** * Sets the {@link TransformationRequest} which configures the editing and transcoding options. * @@ -344,7 +316,7 @@ public Builder setLooper(Looper looper) { /** * Sets the {@link Codec.EncoderFactory} that will be used by the transformer. * - *

    The default value is {@link Codec.EncoderFactory#DEFAULT}. + *

    The default value is a {@link DefaultEncoderFactory} instance. * * @param encoderFactory The {@link Codec.EncoderFactory} instance. * @return This builder. @@ -357,7 +329,7 @@ public Builder setEncoderFactory(Codec.EncoderFactory encoderFactory) { /** * Sets the {@link Codec.DecoderFactory} that will be used by the transformer. * - *

    The default value is {@link Codec.DecoderFactory#DEFAULT}. + *

    The default value is a {@link DefaultDecoderFactory} instance. * * @param decoderFactory The {@link Codec.DecoderFactory} instance. * @return This builder. diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/DefaultEncoderFactoryTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/DefaultEncoderFactoryTest.java index 4078e3eeb41..6272ff90362 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/DefaultEncoderFactoryTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/DefaultEncoderFactoryTest.java @@ -16,9 +16,11 @@ package androidx.media3.transformer; +import static androidx.test.core.app.ApplicationProvider.getApplicationContext; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertThrows; +import android.content.Context; import android.media.MediaCodecInfo; import android.media.MediaFormat; import androidx.media3.common.Format; @@ -34,6 +36,7 @@ /** Unit test for {@link DefaultEncoderFactory}. */ @RunWith(AndroidJUnit4.class) public class DefaultEncoderFactoryTest { + private final Context context = getApplicationContext(); @Before public void setUp() { @@ -65,7 +68,7 @@ public void createForVideoEncoding_withFallbackOnAndSupportedInputFormat_configu throws Exception { Format requestedVideoFormat = createVideoFormat(MimeTypes.VIDEO_H264, 1920, 1080, 30); Format actualVideoFormat = - new DefaultEncoderFactory() + new DefaultEncoderFactory(context) .createForVideoEncoding( requestedVideoFormat, /* allowedMimeTypes= */ ImmutableList.of(MimeTypes.VIDEO_H264)) @@ -83,7 +86,7 @@ public void createForVideoEncoding_withFallbackOnAndUnsupportedMimeType_configur throws Exception { Format requestedVideoFormat = createVideoFormat(MimeTypes.VIDEO_H265, 1920, 1080, 30); Format actualVideoFormat = - new DefaultEncoderFactory() + new DefaultEncoderFactory(context) .createForVideoEncoding( requestedVideoFormat, /* allowedMimeTypes= */ ImmutableList.of(MimeTypes.VIDEO_H264)) @@ -101,7 +104,7 @@ public void createForVideoEncoding_withFallbackOnAndUnsupportedResolution_config throws Exception { Format requestedVideoFormat = createVideoFormat(MimeTypes.VIDEO_H264, 3840, 2160, 60); Format actualVideoFormat = - new DefaultEncoderFactory() + new DefaultEncoderFactory(context) .createForVideoEncoding( requestedVideoFormat, /* allowedMimeTypes= */ ImmutableList.of(MimeTypes.VIDEO_H264)) @@ -119,7 +122,7 @@ public void createForVideoEncoding_withNoSupportedEncoder_throws() { assertThrows( TransformationException.class, () -> - new DefaultEncoderFactory() + new DefaultEncoderFactory(context) .createForVideoEncoding( requestedVideoFormat, /* allowedMimeTypes= */ ImmutableList.of(MimeTypes.VIDEO_H265))); @@ -136,6 +139,7 @@ public void createForVideoEncoding_withNoAvailableEncoderFromEncoderSelector_thr TransformationException.class, () -> new DefaultEncoderFactory( + context, /* videoEncoderSelector= */ mimeType -> ImmutableList.of(), /* enableFallback= */ true) .createForVideoEncoding( diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerBuilderTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerBuilderTest.java index 8513d46d2b8..9d492e38e7d 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerBuilderTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerBuilderTest.java @@ -38,11 +38,6 @@ public void setOutputMimeType_unsupportedMimeType_throws() { () -> new Transformer.Builder(context).setOutputMimeType(MimeTypes.VIDEO_UNKNOWN).build()); } - @Test - public void build_withoutContext_throws() { - assertThrows(NullPointerException.class, () -> new Transformer.Builder().build()); - } - @Test public void build_removeAudioAndVideo_throws() { Context context = ApplicationProvider.getApplicationContext(); diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerEndToEndTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerEndToEndTest.java index ebd9a0287b2..33952703730 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerEndToEndTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerEndToEndTest.java @@ -750,7 +750,8 @@ private Transformer.Builder createTransformerBuilder(boolean enableFallback) { return new Transformer.Builder(context) .setClock(clock) .setMuxerFactory(new TestMuxerFactory()) - .setEncoderFactory(new DefaultEncoderFactory(EncoderSelector.DEFAULT, enableFallback)); + .setEncoderFactory( + new DefaultEncoderFactory(context, EncoderSelector.DEFAULT, enableFallback)); } private static void createEncodersAndDecoders() {

    FpVEFS>oeVDfL~&GGFkXD$@~w@}U(CU#u?^(Ll7p7a^@4vtI2UU0TusF~L;_q(^wJuT~$9HA6w~QpxgYwnfXVeNz(_FN0u$ z&uj8N4x6eq=5uE&N8Z!_#Vs}K)M3k`^w;%skxSp%a(?F4$HtBOg`Jhbe}&T+5>O`X}KAxzT-(hR<@&>_`jQ=G-*3>@oov zj~#@B<=<2O;a=yc9Ix4eaafo_vz>?dwFYA|bgTg(u&L)!r&JKqyi9w%_?UWh^LfO_ z+_S4n>HUwQ%td2I+aRRww{`=LmzB4^Y~JUXHmW^$<7`327>7kkYe%;Ir(T-UR_JWg zbKxvQE7}L_ciz_9-`P!3e->r96z%5aiuK!9BhKQKa(UmgZqV0o^tUN68cyUW0D=Q6)@r> z#qaYfpys?=$VsXRwWhv;y;rq5<}t0!KbH&QbAE`HA3@D02agxE9N z%y>+?$a?c~LR>K{YHW1S-X}!BbTeK1Uk%EyRLVW7sAp>tAv4n__Npu<8l>AC-N$J0 zfmgwL9b~Y=WFj}$9pa9T`gedjdx@_Y{>w0TzBeZ;o4-{#f6L$%TsDyUvxW7{Qd8#5 zsn;i!&**rsKnmNfmN2h`t=oObpmy!>B=wR~dJFjWV@7LdG?pI=8yxsHp|AK0NF%nCm*|7!2(9$UOLicd}{XvcfThpCGRpgIPlA0H!b-Whe0ovgnQ1DVIjv? zk?61#rabiP3a*p~R5@V_Es=3*PQJWRip+zS7WIrziLH2Zo(wI^x0B>xyNrz-_6_#A zET&F+XLScU*k6__R`y#K2FRq5iw;XJ57xmQ7ox866xWVhH}nxOnG3wlE9uZi-EMk93EUtbsH`J^_? zmA&jyH=qoveAAdi#O+S^O7!{NYEwZuc)w_TuAygDRCyDwvJm$uT1@H9p}uJ<`i`8! zNs6XzP}91GjZUuJbsE}f;KBaZzp znRJ@B?3(-7reg+*kyNQ{-E37WYu4vu#U-kuwbYCzv%IFbeqRUmhnfi{?5$@9%S zqa`E?F2i8S`R@CE1xaX0vYX(cAHZdL-F^#fK+WR-A($)^A?h4rTv)~b$Viuu|888p z&T`U8DeFRLO>_mO#crW@hdeA}3LY+ysT6XZ^K@+6v@IvA&L-&Rx_T5-!l-Yb*~Rcx zJybjHNFJ?Ew^CQ(KrE;}^?7|9z|M zVPIw$*LnJ1fCuFVLDB;0`}{lu{+gkBB7p~8?RT^IlKSuU?xr|@A^7U(>S-FoOsTad z?Ph-8J%1O@!2$}oWnXE1#P{IXC=Dz`)D}c$^M)@-yS7|I$Ac!jNSHi9xLBBwka%NS zo5z>yk#2DAbsAFj6`R2HmV(Ol6te}bO!;&dhIY5RpC{Wj7IG<{#EkvQG(aw*<#oQP z{cQ82e0PF+=3VF1BHaGmGi=qaV>J(gOG`*gvux&G+ltt7PuWlJkHI>v3-bFKf1>K_ zvcClu+q0H8Dh=JsYvz|J<1gP6nL9z7xlM!T4=#?@pvos_Tcwn*WZ?dTj|~b%b!-0n z9Be{ceNb5MpBLk@{on5#-mBl6DlD#HkCA-M!B>9JGW!^hcZ~_p1%G*(gb}k;et6_e zW5yz)YaXuy$twTyefm@$lJ)JbhM|dmUWMp?Tnb6I$dx9cDcj-&HLAwx^TPynW83D@ zBIy?&yA|AC7wQw#k}r1Z|F4BfCig$N^nficQhmG<`M)%;Wx?x2_jk9qOC&YtsdY6c zJT>3Wv8?-wX*PcTp6GFJG=Z#nHUA;2bKs;A4VRw9q2`Z#b}cU_=*Iorj`JI;K2>_e z4fU-vHV3y>VvSmRa%d$7GMbF*`q_W#OYnf;hBAV(jGr;;&YjwS!ST227@X$$(G7n# zdV4KvEfYFFVFMlV_zk_mT;rh^eIzi0yZ@x#LUP8x&|&ZKu0iW)H9TV$qcx_i6NfLl zGokD6H2XB}JZp_L6AQx%LeI0^y0Q7gzeTqCf!4&zyT)#5T9OdlCr7O&bG$rAUW@1X z|3vkuE)q~=e283xt`;v6b3GV(KdTPdtNyydLN_-w57R+TBx0ql&uZZ2nUYa1(zktF z-vz{cu=%I4TE>Q3H{9{sz!}G?pubq3m@zn}jg|2puZBh`tCoHDPrYAEIif3DS!A#Vpmdp0GVOekSfE0}BjwK{2AQ-?_(40iaDDlH5+0)shy z!1`CO_~)k+yG%BIY$o>&K;DCp=0o!Kh+&Qtn$siFgPGXDWO2#5Q1CP7fRcX z6alE2!fWBtW#5M zI5N(#zMhr~y)C(N9cWSDui%$&RRQ^&VQyqNT@L;0Jv?eu!Q>^} z2x@~(kc;^7Ik5!V32=HCtDzgB$P)st*jy~>VeVnrH`ogd$ucpfO;KClr?FEXDsC5T{_2)Q>lPsGTc^?8Z4h75NUbMY2`uAQ|R< zNv$FB7c=N_j91=NFKL8K{(zLJ?UUP5Psi_-Uyj?p0#u>%(aSKN`SD-BM(*(9Dr z&-|P<3gY3-N)B{iP#5kA-jRcWN`>dgX`GVkeEfk#f5=f~`i}&l>XPwE!K|7CP9v&=9{&~C8cHo4Sa;3Uedrw|>3wzIne!HB^OfohhG23E_isIY=#}J1Y8t z%jLoOY$&akp$W9cH}3J5Ir-`7^K(8RM#VgRK$NZm7NqkRr1M@$PdsdR0f&=o)&5XO z`wxwrpCLvdK6-kVcOU3OE$Gzw5i31I#y6)KnP-1Ay<97rlrMN)3r0uqDe~`c=($O} z*S{ywNM}n>_dPt5WhZ_z828DkH;pLfz^}4$QLX=?9;249O}v7C7Bupf9W+ zC0$`Et5nos`TSSId&3D2JO0uYM*J@QfGFxiuUNew>`ai$=gBRnfJ!3{5N+Vpiv$-% zbIX71JxQfM!-D_1^LNg4S1`hRU1u=SVI!GM(T>ccN_MzxW_IQPOgm#xeb|?_=TPFq zL^J{ddwj&El}$=#izBgU$D^E$zHymWA_-5D z%QgRRwMA5oH7Jr$_?@c$f4CG@EsKQ>Z`~Y5urdKpg2LNN$uHj>E*Nw1^|2miJ~y{w z@D`b5=#V9JR&^dLEEm3iANPD5w*K=Y!1DAz;=UlaZr9~*y7v!=9XJB!W&8R@{_;rs zKeXV5^dWM`YHiA^2&8$vYIpq}JZXFROlpYE5d z$nhgA_+@9ZhDnZoo(}ukN6frSedK@aP7JBH^o!7^_@c<`GHoby6F$<%3Y`S`>fF%7 zF!*rI?ay~Z##m9<8G+G$Ql1$SlQDmf+kWnS*@1>tty{^<4KMZC56543$?^?UhK6jNGrgyg6KZ_dmrH|(&V)NWfeN?Lks1u~%?5nSe}(>TWQN5F)i zcWb;G*G414Z!ovwfsKw2LqLTicpB4xvQaE-l0zZfIKSmNA8|yXOTN85g^DSRe~w$N8(0=`L4MW zvcMxUz#m;9&A~CQ-&;0oSWn`75otfXQG32# zcedihx?FMePj3Xwr<8e8I^?bi{X4z~N-qyloVT~~C|ew**Jej{>#KD@j1ySRzeJXC zIlFUUkz3anTA)~vpY4Q|`Cv|{?c`HDb8t&Yj)QK@pSTY`n6p~$RZbf{ne7L}KSulm zp+R*KXvg6HVO(&xJ%CR5WxOU7mIeWd@k6D%JEf!>R6ugT2>luv#9)RMz78Y{jgJ z;n6V73Z40uT{RFdGZK>-1{vz7X9 zkc5AU4xtZAm&@%-!$!5#-V68mPqi(p2K+dFb#nyeH!jQdv+HDfJOZSf3*D6x5uttK z^0_hDklz31n3S#o*>^HhOIbnP-IUgXv6(pozD5Ap>zCOWTJAU0qk|`tjHcT3M{6}f z|G;fgB6{)vWvYCjZDe<~+p%@qo+y~&wdBHKH1@I!-=0{J7Y?=q{3w+*@IocH~4@3;y`VY z7`F3j-5j)z+w#+~7Nw$u@es*AK(#l(bey!y2Up2S@` z@wu=fg8>bOF7n92bn5lOJm2AY&}occY;e-V%q|D#eHTxr>(X;dIOF!OEYsadh1gq; z?;&v%_CxZM3OAAnr1O_=)bEOaM2bIh95gsblP& z*Nguw__SVgOF@I1AIB1w%n!6u>*L5s=ssQUHgq%n*N=~HYIwuAYv)z`2HEk4Ot@iZ zs=TLSnuSz>0g+Mu7w&uEG2Tca{++@6R>gs%G{5kNS?JkYDp}{lFWh1`xgt zN)a5qOPK6>(yCo^nWxrQu{=-7QSTan(4+8|MfM2DebC$EJ({BiT~DY1%S~RxPj{TW z#G=F4_}Yoi)a_0+-V{!<2yb*>L|YaN)Fz+bmT3g>GZazwJQk9>o=I!zY9;!&R=XA= zS;$tZ$b{Q%#PD_hgGS3_>M#@bUL~`@a)J@D$}bVHgP3F0)D%(kb-%}y>*=UJi&x80 z#ktO`((e=Z^{B2;bFwjpiFlHcYgCDUApNwn`G&_-!c;KKZ84mSYFkPc?=7643Kdmc z_k=Dsn2V7R*{is_%o;nPZD{PL69_PYf5ZLt)uhYzCxq)Chil({`|KGF3K_zpnSVlyUQ#Hk5g~n@@QS4XD9MbLoiNqsd zpo&V%<}bB!Qi82#C5a;I#VnEto1O=a{vhtblaP#$4NkKqiz;@%M;>EPoxsRAQS^rl zv>gY0r}Rh^c8Y;-k@kzQ&w4X4zJa5>QA^WZ-=2X*pi zu*LAl2H4CO?Y<)CpE3RLwZO8&7f8_`I#?2fYV4aE=*DCoV)frzm?#{ZqxOyM;(xFF z_ZJ!$20Kf!L(%9XKuE7bDCd@J93lt>>O-a)>53eofh!$i6?ar!z2KrSN>e*Y+@ntf zjf=9G+KVaLLm%freE8Gouu9eshv8Y|3dP5jrI_Yi12cwtF|(8!vNlN4>)YH;BeOmg zD*DTim(I~|869)YW#%5+eMfHzYdT^h$6}v_Isz4w~y>r|U?}_$NmS9c<|Je;-h)la528gwTw49FdS3UX5K2PtDbZ znErxSdD_+YjN)G5Z+C6JFE^DdhwmzWx7pp(eaU$PFHY@YM*~5S3uYcQ&tE&<39VmVm7$=_#gHM*j zkiW?tzKTLp(f%|JLBGpnyD{zRFuv3g1#ZzJ*vaXK^FAydp?wG&=>?KkefLI6N+-Uu ztvbRNMG8S6u`3Fr0LOsgbi`D=f~=>%b~}5V_vWyWI?0_ zCtj8TDtS2iGq9glhrda^3Aa+a!#oo{j(PBRQu4fq{?lfRg|EA7?g%0Q(*e|+<+0kV zLz?Hn7^mJ4l&~Adp_lEu#` z0yfJ%&tiG2tCp+$?uA5*`k-?UdGZi1aIs8Yb>wJF%P@e#TsRk-YVYlD>oUO_HHKy= zvqa$+5G_|EriN~gldorW>!C8cn{*EE>gpXYW8@Ujr4K$n5p+UpNk~+Bp9nsg zEW`bn%|*g0CMOz)9UZ}2rXPD7@RYL|I?69 zB!eItcA2WR>6tv}ncBA`N#Vlj?0+4?=Nbnwx1n^vVaVR=tiB8i}J36!LfrYP{$d{&zT&w&1fM zxS53`iS7X&jZYn^^e~{0a=J`T&{1A?oW)UCyb}!3WrCKaxZJygU$R77kA@uoMtHv> z2~tBahlTGM1Lv+(6qv~CPxDh8Fu9|yIBgpx@zikCC&*cL*6{-G77JEo_FC9()EJJZnewx)sm{jK%Ucyjph>{XI z0682L-X87m3}6@^%FXn?EY1bJpS)o0gxm_4uCMc8I9%$%K5?s%^c&PK=1wda8oNfN z!9SK(pMNg&+Yrje2L{_ao__OFCvIVi(f4NaB5uB}Iqb`(oC<@?G3^qBi*eKsV&+wbwtoKA1NW14As`BYjUZ z>c4lx4wJ^bj<$|ivCAWLX{a~4v9ZG%jtpz}0&hvL0R9u|=SU37^g6n=62-Dhn3>+v zY5~e~Q<^(cT0cTj;jxXLb~~qc2-Qh(OVzt(kOn2v^100o24R#WGH7FHz5%xSV5!1` z4mQ$YCPaMC0G4$BYA*WgBhi9 z5K<^K19|!oq%{TGE%}K?V9A-9Jt)FHdto*K1c4!MlAa<_ zSJ>zVhM&t8;kjNT=E&^P2}FgSruHHHhd%zr;=J+czGGb0B5I>>KG7gtxWbLmRT7e(zg^p5|b8|+1a1|=Ni?*F=GAS*lpn%U+nwn8EOh$69;gVwA&}%5ov!{ zz;A~CV(rSXF;yPrjl|lYnI;*xo+@2124Veh7+61(699<@WmJoxp<}kRKWSjB*ebyd z;=ALkB=HTZx}!!$zfJicy2t7zh#4EcJx9cG#>;KUa4~Sf9S6|sjRh416vNQ?K$(=j zHGxv6dngt595;J2YJDEU)^7el2YHH8{p=xp_Zi&ZH3e}+e!oX9$Fuqy9u)NER)|W_ z0ldgzko0rg9_4SM_7-9EGfM}~#n1HmMfzWRkAbkpo4;_B1AML9@4<6+I7ekkt0n}@-syzixE?69PVNPG+I9`KAoq%+ro4Iet#T|T{y8T1^P|>12jI7^@`8HifC2`e3gr44qyZC_dkPzIaITKR|L!v9D3Md}`iD z&pMZR%F!6Y?dIx+F02gB#==Q0Xo>D_&=*K3*-N55`*zt_hlgbBTzql!FVyf_pdpolU+9&q6`BFd7oF_OM6uqFAr}S>OTtjq? zZMV%z(Kdf_6L70$k-Oy9oPlw$gM)78-EAH?^RDP#slcYB{(r^cA4c0@uq`P~)v%ad zgX_a>RU_<7_X7Pug(GC)q_nK|)OGs6>T8aq`1gR!G!sF5;+(qiPat=*h@lJk@cB#c zvFmYJQ&eDsyoKUrqm&u+eJ}TEQ5DP57nKSEt4GsCu3Ec`N@s3?T+5yG-Sf*GAl}OM zXcPU~p#=T`I=Oi!Bl9es-LL-+N7O!&xytwKpK6egt0AxcdNcg{RWH+@#u+phKBW9C zx*$qyYqVp|*;KzS)#Jmd3+KgdywQq!y)NOUtL+-&=sb)fkj$9(s31_c z+Jfozj!c8wNJ~e=tg%vVSfklsI-4b4%oDfVY4M5pSUoa!qH1h&scR@J9XJEjs+QJ@ zpS3<(q%L!$mwhH3moI9P<@i{&3#RjWX@Zh7`Ui8-zT0`VMw9mz4v&#r>8N4o>E6$l z1~;#Q94BpVt4BDN?CTcq3F;pAr5w!^S3qBOzPnSEJ`N#o#8K~f*W%w^=vDjj{itSz z$er1O^CTHmKVN@l+9ltAyaFg{Ivrns;~{#@Pn5`981p9(>bZaSpey*I4j7;<)&8jx z_2PS_^KD!!MulwVq?`99# z&Wr7_bqI@frIUez(h_bY5Y=>`lln1dQh@Lw2h%IlLb!S;(m z`Vr~QGV1n{x-L37UL-x9&Yjt<%?M8wS$@i)twAgHZTs#B4a5dcuq#Mjc1;ojrRIuvAZ-Bh zr^-V0*onjnA?y3)6KDv$*XDE)4IDJe+J!)J4}Me!jtE|Oj1fT~J1nN|zshPGV-r)r zbjFT^&k~zB52}DaQUvU193Ns7c)962W(3ZQewZcV4BO1ivR4@^SqnzWl5y=WsyclYAcDeR=eQD?`l zD5$YJLQ{-qXOGP^THX6f?C4d*0YgoqaJ5Y4XpwN`o_LYpg5STkO*eQ5cS6 z;VcZ=g;_e4s82c^FjE)DhPLXA43c%MZ%vUCn zS79n}CpJPEnvtm{Rv7yy9tl@@)y5;Zu_zgJIf-WTFA9*Z>l?p&;O$DppgTlOtSgdZ zSl-t19CFYTz*KnM=1pnBVxBVs!8YoTX);zyXEKWLY&bHSA~1`_x94|6Xb|Ko13M{j za4HaeFy2`zC)-ZHbMrzM`aAWry}~g{re`I^`}=(mSh2 zrD&1{#0Jm08!`VRm0EN_I(Q<{9i$|_7VBhF=;EtbD6&grXW#U0IqXo|Ol>&0<3q5k z;R68vE0>$FDH-=q;fY2vT8iVul%k$XH%5gi&}YQY*I_Yv6-+?k6gV5>``?Mf3H6D? zeX$cBB!f*Jy^zh(Kg3KqrJXRN2^N?l*!cGgvDJ0#*%D`9QK4&%^4_|CjSewL@MQ!h z!46DIEZFdpA|nQ^R1faEcn3A&HqO~1@e0@8P;HD<2OA1lCX`&PCkM_T>UW|;NYg(I zcaJAyWIQ^4sK%%Q;Jt!VN@tRccl82h5u>GLHxXkadt|2>LZ!Gu-==#y z^=q?qN%19OK`pkt^z0XqiZ|xq4$cpeAEFv2dXo`v61k@*mXZ}gT>})bi(*^{3b59U z(WJho{~eim^wkd!hze0gkQ#1SlAKs@)KWG}c2-{SpvqpzNQ?h|YTE#QoTx;OmeoKLkK$|p7R zWZh^%(~juBdj+xEdb>bT|D0e=+gK?{V&AdC-r_^&AA(!Jx6>_}>OSfXEjKr})TG^7LY9|*h>a0( zRG|=g^q1Ko^&*q*@zBT(wFsrnYCtnu4^L~`GCWY3qd%PCaPM zqlK`?jefTG8x_|}J)qxRsqE4gvOuqj@_Weq>Jw`Mwv?Ek3K{b~7SYng?B5HI>gY7v zfq&OpXU{SG|It#{`O}IzV7o#d?jAni@ae_Bz|%wNY^C<>n(INni&pBi=x~3cUWFj1 z&5)OQERj=<0sqo5v6pYY1&OzQ_|cvQ0wCYEgcK-L{Z7=Xe;N4wW!dC*HyiYIm~q=H zUTtEQ;MH|u{WHy1uf}=P*zp5G-`1(px=d7zWr{a{5v=(oDo~{hYW8WDu#G(fNxqbo z)`p(89W=fa>;7ACQqS6cVePGMU<|>OZ&1(mD~JOf4?Kkqv%h_t)aJAcAKEcDG_(s~ z*AT6dP@dd;oNP|@lFRd{0p( z_$h?Qq~&KrtHMX2Ji+9l__s7Yaanv(bn!gybT4t9Qz^_M?8jvtNiKRv;v{G$R7jY+ z>he8{zNd?8CGl!MGSXg~+%VeT5K52w_G20YwgIoUJiptrJgfgKm)?BHKKn~9-XavD z^p=77Gfm7piYr1X1lsOSPGf3KOjlCJ?GcTs=~Jqr7XpfBUx43F0)>%!|AqWJl}P?kyuvr67VzP1p36f; z^4}C4azeH#-z_F%W(-;)>YE$%S2t}_w9JY8^vl)oKLeW;8XO{9kOFbCq+8+%E)c21P^^ zc`XGf+1eBwu@e6px03N{U2IgOwkf{p8&HS5#6-c}B2Z`nOqIm!Y$NKU;L;QGO~F79L~G2M6x8@2@!8D>(htYU685Z&bp#W zcOt%v#R=eO8hCCBmrqL^jB(f)N~K+Yw;Z0sP>a2feH$3h!K^OZ#^&%pD>O-*a-jnv znwk*^?8jGptU_zK_5$t9OWFMT*jSkM>M6(W!^6?rxLckL!vr?i3G-R(AS3XbUfp1# z00epGB%VD`F`~eu!>92FcdS&ICh2wR?<@PE(1|`Pav+8{Vg3d&=wtqt*!=&0-TTZ5u%|4zN^$&!YnI*+lB`LjS;%GDQ zJ(0D4!c}^GddEThC9$88n{bLmaiof5NCJ{W8?!$MbG)72;W@3}qQp7jz)%LcFSUO!dMH&d-w;S%Gc1!&-{BT$h4W1C6lzg5Y%pwrk8!nNr=`+zEPzgxWs zD}z*?cQ58CxH#%H98*t?FH@A>k*ios$DahiurSSL0JBaBc$)xz>smHWdO0WV*3TSo zdTaZYr3}7mGGY30jNvD%Dq64dYY{zc%}Y#9$gq0WnwVbsM@Kpe;>#x!&oA}n$lK6( zOEMf4k}C#yoqp?v070F0k_@<@zGUjcS`Xxfk1pN92T>>Kid909&f)2tp{gl`Sa zwV^|JMuzgekX6)uMQPXyMFuRUS^0G1FZ{gqv28ao5Er_%asNjkT3+`VIeIZ)^nQaB zI=B`&$~QI@XCojoyd`{D%ujk16fVN|{)jy$GL=r4rDX%RW4137sm#Isj-zu6S=rR& zE#3C~OAzbp8_AF_nM`Y35kP_&WlHE@n4}N%5IBF+sLIDtdX~kmF?^JLnLycs9DgnP zeKBR8*<^`grdZ4k;U&6$E|ID0HTBYVI_Ums{hXJ~yydXHS)Aga8IoaCN236-TGc7!F6L zYt58K(b=KJ@F>?2uxu7ip{=rfZGkJY0>b?FuW=sHJy?7WW7xr$xo#{5kCM@u^W)1Z zx8^fvAHnY)z+;*FKc?-sxfkOq0jnf*WI(2GG2w#pAv%xm5Ri=p0TJN`$1@Lz$t<>$ zcih*p>bOxzWc?qKF5Bi+i%1a$1Zv-auZhL3Pt|>J-FM{B?S%9dv41<3+-YgHjlHcF zU{4>-UrV|0b$gJ6MU+X9K|5|C{ zJ4AwWLR0_o-IIFg+cSGOu-!eL?}gI(S{##ZbT?n$_YF^IIXvftTXuziaIBKE_vAc= zr=G1aGE-=dpVCtRSQrdX=2HxnJD-wm+v{~n z(ClDtM|8IBwdji;ro2ajwiWx!3PF9RTgX>H$e_Cq5K;kb*dS56h(L+3ZFw;+4V9Jr zF~APJVQb!I`SAaGkhYXBgnDS#V!>BCI{Q#@it-^_cL| z6(8=c!5twxA=Daf_;Z;x=D^r@jTF4o>l>8YK3o3A4}evKvxoxPIUa@TEP*u82pEo^ z%UvlwH420BmixqNRZ7<3&R~hxS%YflGFR$|ki*a5ll-;;O>uK~uDRVaYJL4r+2<;= zJ{)ZO^A<}c*yYh7Aby3APDh2a@OOtOuk!M?sz!eD^IYgO^D=0ErH8?5M)OyGBz=T1 zGb1Om2|uUo{NxQ^(DtW~uMzb}Eh9 z5>>9tE}!khw&#Sf0y^uWQ|4R8VB=b5C%pOYv5mlkI;i)j7Wy@f;DZGQrjatCadl;+1TS8)x~= z`HhxJj|b(SjaX70zaM}O&csE_v|u9RkWXb3XLfJd&M-viaG#u)f={zkzz;$UUOY5i2Nn#gM=4w03BP2V2LDmZPZl%a zaon>TTN59ba2%|aIxxXWhaX5tfo!32VML7K*YB^$QJ@hCiSH}ll%jr-vvhkrfDm>< zkkd^oCI|u;P@qR!j28LKQvI-BK{oJj7fjHW)*YPNq`TB#rZtvsN)C_a3x0YP&gZi*mlCOY<4YU$ z#;_Hig02VqjPz|PAWv`lU`(@+_*^9i+u%}G64gi2F7ViEx;A?O69w+FEMm$e>kOB4 zZTDf=sB&^l=mxF>Qac6+L*`hXZp7W8AuGSGP9#AH@~LQ0KT!^Be{&nzMBI+q`|%Jl zZi}73!!M%*YWm;B!xH+PB1U3(wfPn8^nP=xk7tU3l&W{jc*pSYG| z0PJsR0RI|K3Jkj<3@joXx(T~1fA2#`=tvY#&-X1&%us?gO$Qydik)=1_MJM>1%my$ zBC0uqt3=CpbybaMpN0yO%a}x=1V=R1!ZW-NDR~;Guy3*%i68GD+tRRO?*we!9uL3e z@BInPMvd4Z(GWCO$}LtI^q2s$v0b9qe#-2TgZIIz%$qIhp>geVE28|g zNQRLUjjYDLiJlG79frQ|L*X-$&0Y6c(y_|V;Z1K6a;mEfjfmh1FAN z3@Q^x$Rt**RCth7{LQmnI~STpyG7`4XG`& ze`U0m&T1%RUf3A9oltYrcFa4vgr4JLY8!f+w&G#3=6GzSp<+d!>{$0Us?YoG8Gh0K z)I30RuoYuM>GCVJ0=3`cS04{(3lGy@iy{Ty34smvRBHjru5U!kn$iX?i(|GM6#{%m z4kh3I1Tt3_X|_cb%zm}Xe5}lqXI%t}Cf$-$W@Jf6X8 zeC+eZc&tejp?@OT2WzBF{zsFHZ4!0fJZ{Wx8YKh&F4gVB7Dbw_e*$Cu|3%bEy;>IuG;M;KojbkUYRp$Og_9IRtA5Gr)Y)27>wnj~3R%IH^DS%co^_ z2fqRM#K$GS(0fUjIMt~4r)-mev&io=$JUi7XH(AZ>m9>}DPZd7nrPg&Vr951-A9;1 zP8Hc37BO{+>`&2z@4772+JCeu1lgft2~*)%4;QBIhOL|UMff>uTfggt&RMNAIbHwQ z*OaOBrfvbJW9kpf1hLX0$RS>R#J0fHGA{~_M6bCiL?`*NA}@{Kf^Gv8W`lrh8y(S- zz(coecd$xiUkr|w^+oz#ilSWQx(+FRXvxrJ zMgZATA7-yLM}?&$M)zOILW%N*T-n+E*0gqjpqR@cK5k^JIf1tcZV$7vXbLB;_SV>{G$PmXsnJZ#RgUI9QR_Fu*A1o!?#ZGYSfYFn+lW zhbv!sHT&QG0rYQ?Vns%>-2+fsui{{IWkK!wBO*=``#&yPrY5>GJd6$n?0pcs|ME|P zBj7b!RTH*GwznPxV-t!a5&IompS*t5aFnlkgmMg3EhF#v(zW`oiIeN~?5wNq-E9b! z>i*(z@PP;nejaPC$h8_Z-6qH#1_hfEC3t?#waC9=b)I`l8NkCMBIp5%8#rpy-3Bi; zN~AHKb7=Q6__*1mN;bX)3F2QkXJV-@tAy!{H-Pm|+3Vj1w(9k?LF!Fe?s;XT6Pk*~ zA1ijSNuwx)N8gHq9D;b;mi`NvX6NqK(Qw9K>P6S8M%kD2lHM2j=&VZ#nxCJ?l*gWu z`)zlK;@+c*DEx@$?g)fKgRJAj!UxwrG-o;a(b;f~t*~1FCpb7fJORv^kgve^x26Xj zzkae!QD$U%bM(RcyN82t(+Rfidi-!oCREp}2e+Uh7NF4yg}pHj|60W+J0*S)V$}9_ zV0?r&@fY6X^wf9U=Jn(!Mmf3XEkipe9<~;5HXHH@m#nw=<^d1sAKt;>w#{x}xGt#U z;WL`rGvKf@BJjPD=<$tJRA$q~wYiurl=^vp*S@8F&NJ)`C-oyP+qqBl>Yy|u5ZIUm zouG^QN8>KH891wQ$RQ-#MGBIX|BbUv)+7tpW`y_pPBv{kyy7jZLiJ7HK^TTI!zc}C zyM7!3@tLl1@At@h)Sl2PO&(b>QdIIooND=tysTwU?4eiDP4V?oK=8uM5T8P&BRFYe z;_JJ2VpX~vQ#Y5-rLH2M%Q=~`PR3_{RXwuz;l7s=%W{Z$ea_QqwbY!-RI5PpjBM21 zew?)aZmp?$-Xp!L+wlHvzI#8104->EaVUH$g1TSK48e(k5uSX^@WNJsQdWePgv>B# zawMV|l^VCw9b6$@`$mxQ1YFs{+*zOWChbszI9k@~_paR$Hh8R(^Cxn|e>UQmC^9jJ zqiFOGg@cw6Roe~z(y>V`FT%pGYQD|#>H?w}NkNOpBRqQ?y=`oSmqH+4s>%bbe4W+k z10V6?X`n)`gOdqts(kzka2d!f6D{6Hftq5_s+|gs2v^KRMy~yk$!cG0qV5T^Hp6Xr zxedz(O;Yp^)n?fVzMf4!qia)-t@AETzuFlkb<8?Jn-VW zWDCB5{M#gR(%>DOb#CUK_2KLVCnd*}UMDeu*K4;C;ua1gJjheZ#^?q12m9zuKT3GJ>HU8>?t~IYViSoISIEja( zw}W@8SlvYP))D+<~%TvB~zA@Xm(usGpOqvCn4@W*-=afYnMN#$JEq=m5)Zz@KC4a z6r_wJy$j~tW)#&I9jy6a7@Cm~UN@28*(>Wshc%}*di)Ua&vNfMuC!J>Be9C>>JlSC zxZMwp@f|WZa^yynTdz5LpEPB|O`b|$(UCkav>V`E%Z)tSC|V2l)yH3r5-X#z5v$I{ zh(4<6S%o>W%bIKbbpPjQFRbugRwSw6&rUPB6sDr|DdW1HfS$5&Y#)5UGx1&XzkUGh zdn}m_*d`!m%rVV4?6Ys-$kb}wBI6oMKY?q_5n%$gil0R8$e#kS{JUV}(i+>5cwKM^ zX7!0KWaIMnB$V2}sK0ZIuh090qhB7QH;9D@F1sG#JuN2ZTZ7`$U!@Sz=d@c-Wna*}Rv1kigAo1XQTmPoL;f6W>_6MQZNQ*SM0Lgc z`$1ASeKyU{y|s}e@@%aH!PZpIjJuWL6f{SF-xlc7p;&@*dy1Ufp8WNz;iI<1cAu)- z&#ct7?(y@Lx^&oA6Vs0r$6b>@V0EQ-e;4;Z%DZw$4ddwFT4|NPb2s$WWD`xV}1CzAv3v-jrQRIkv# zeG9%aeaU(;m7B-NU5;1m-{Bk}z$irT6cHV{UsFH>Ijl!R(;F_5Yh&EM zSAstK(BJsDJ7CIq(zu#r^2&q}0kSZcDP8|EON{4UyJUeYdcRknbsP zQ@;S|Tn<6YtMOD-t$r^vMQFCyTXK~q`NF|P9&}3iqEl-u7QM5jkJhmQ?gk5uw4fz< z)aVAPzK>bCn%T4cFJ9p{lWhpb z@Zii28M1flv^~9=KEmriK$Cqx{lMejIz2Le{c(>PDAx4T#GrM1gEaHw<5HAZq?lS@ zsReD3lTw7z;(A>yPt=ssU;bEhQPMb~O(-^mnBckX1S4|q1NOeZKYLim5wwUAFBN#| z?MWX5KcD~RgYA>LubsFy^#7% zAkiZ;@Tfh)&ht_pS7d$Tb92t`zYfb1b?(tCn|v-}!ez(bz+}_hYs9v{Pwm;)#klsy8gEumc?|@08xU0X=h2C>Ws>j%i+5D;! z3H%mw-sBCf$-zidQ{`4Z9h=nR>+JP%!DjDxJ3wl{SJ9n@ZENrMdpLyl^W4|6nhE($ zo&EGfwJp`gT_0VoDqH?+^bc2ES~Ta@TR#5PD!gyNQ{v}&rJX}hvkbi^UV3JBEKfZI zq5sokUzzMuL=?+V%CGcgPT4hXh;8n1suu0A%nwm)n2o4exo}-`Jyw0ByJQ0y%+<2m za12!Ue*88yQ-Q}ns^$TY2sJQ5jT$rS(hKE}9BGWa3pV_w@X$q7{$K64)8kif`)R>E z^t{PDBeiDd2EppCqu^GiLa1FuJBsanlM)Qxj{o&-mI$RR(bph+&_)(8XAjtd21jHBG z{1IJJ(W-VR@J2~kRq&xk2~jojy!4U?^TDZYwXk#e355n7_b8p(wogpdKq`;F4_uJx zpG+OgE?xnwJ%-C^#2bYNVt+U&KT{ikC91fd5e<-yx_$re*rUt9RS+ofj5h5VSqF9v z58~1<6x1MduZPWwiv-vU)+GG!^G4-a>WbtgaEkBoCAys;98PY-4(`==ANOx3Cn2T= zv$P?{E~bV)S3j{XNq<8Bb&M)PMNWrB+m8c`aUC%xTTJhJ9$-UHOoR@|`KKLBUk(HY zDq?4ulV8%K{+bbtG?~P}rrYT_EXL?KBg7fkk;*?vN%%@Cn^tw|Lau$6700c|hlW=V zpT&pEjDFexibcS7ii5n3hfLhXvPX+-jCz%T+-g{U%10;-xgNXAaV`n@^QbLh>>+Z{3de*m zk+1?*+n~=#w^8$VTd5cKSHh>M)Npzd* zM?B_z`-`A+-`5tI6{=4jKnA^6EDBt*mO1Cem$~Ps5bO5%&*5PRKfbj7wT*O$=Pt=l zyl{U;PJ!A6J+P>)n&@2Y8=|mC_1`wH6sD{POPE}CFnvQVg4~p6G|-0IF`ADoq~M1U zeQ%!M{TafQ_8%tok5J(KXNDwfR{x;U|SQ=wym@E zU>zcra&<#GB1g4n@ASn)f8xFJ7mnFpXm>>04{WDg@wa^F9Z3>RX#;EsO+I+=#SYWJy$>%<_v;KNz%-7A^0iYNL$KCiU zPQfNjB9+mW5jBLjWs)vu+J3|N_zyM0MtF~u{(`Rb21fX2_W)l;>|##BdtGNM^Kf$niOdc3u}mXy(aHEY9x zawwM=L(>yHqqqYfrhR=8YrjAT%L9sJv{}9PU_hgi;JQBHf0Ig`k%rKVO%jFu(1duP z_9^CGIMysLl7#}1JWPW?kK@Yq+ij5sD&jq8Avy-C?^2O_6n=9!(lMX{k13TqQiN%Y zk=)K_{G#E(>l^qhnw`TiJ%v0Bt+ehJ@R%E~AAiN6d3&t~w0Oeq_u)43TX@-aCz1Zu zK_?B@W!(zb}SKG(W)3Ox7qpD)+M?xFj z0*AZ-K7TtDjn#sW-B(yLY6d<3`qAmI5OqtQV)}S#Ij2*y(3v1lO9K=`v2x}I1;{ka zhOp{M)aPm&{mBBlR+h$Re?tvbsb+N|TUKZ$NyU7I-j>|wHvru+%*vm5-!$9sI z>8*U_(sbPD3iv;g&N{5g$7|y%-QC^I2&FqD1w@ceN%_(-a5N~=9nzgrB00vS5tMG& zMuP$yC8K%wyWU;b{#`uR6ZbjiKKG{sk|eG*qLKg~eHw)!waE+58iN5rgOY zjHOn!gGAKGz)fs^-U35Bt7&cw1c~8AKsWfr6@M&6*-B+WWq<`M$*TA2CVEbF# z0{DG(%rIQ5Z$>^`o(Gb~0Cx{dp#rD=mvZ%R|NRy`8ziQ7wzAu|{=-agSE%rkbs+5d zOwC*LQ7*!k0#5dmobLHAIuYEmuQ}|KTCLfQp1z^&?J>aAmQ1yurzRA}{9jr2*Y*bV z**XeXl3)Dr6ndJAD@-p_uDbBNSALpmnnqiWC{QU`H>S_j0d80Ia#e`WDwGw_?_E9hR!=p2`rax>(kvs9=fe9FeZN6gsg&q+y) zUb#4>Ee_|YSbQt=Lyf3@ufD5Lf;tQ3xb|o^TM#Pj&?Y!$hD6u*%a5pKWwP-9c!!@p zwcAdhJVXzM!Nz0-T$BhdH!B}mvLc{E8P9Ei$?2?$dwV+ot5}H~SzMMFv0mvcB{kDc zrsLTzp0n_h@6nm_F4|9RL9XUcM1CZn4sveHFal`(xXv-Jne!~!GKF}2$3*p^a#Cx#>&>)zag zTGL7j@+Z#}U%JAttIS*wACPU?p<1A0nU_U;b+RXz$NqVnMTD}Zt7w&MVZV7|38OCd zgcVbMkzk>Bz@Jb{wrNV>(VeGpVLd^LAikovf#&4TWDjxe2Ip@LKSs`u-f0vxw$oJl z;XW}C0hx7HXGYgGJWGvHVK0M-hLDZ~HKDaec;n_xcQwO?-j++699T}MIs7{Hp_~v) zN|S}02XCpEhM_m-+qh@-UZ+OY!p}6{76-&q(!@~w*b{HktsI%r#1ivRV|`ug{>97X z-7_c0Xqi3@@}LB3WW@6>x8}>s4pjc`qn?-qgtlfgy13{XzK9xC!{FJnnyP|TD6{qg za6UzG*LwtIn|#%MZ_N2hhnt3&igYP&=CS|;6JNcKuQK{niPX=9K4cxi(tMyl_ z*~mmjw{_{l6Q`b97Olq|13}>4-kFR+Ito$g#HBWJhTOYZA#zf{`gP-LqK@F(}_|HL(yYCgNxCb=nQm)Sq_Wb^UiI$J;6!O8tnvgt_cuMK&zwS(duQn|-)$FikY%0|T*; zE#t}GQR#!Cy$gIW#N$~U;A*qHnjHC%z=P@wBcLQq!z^w8T8asY7}<#I?2eLgex`(6 zr_+ON$pv$hI~X06Am_!gG13$i-bF!HsuYIhmAp0(Wk5}cE#D`J$>yJ=ru-W6_fvG4 zN{6@Hzw;Bm4->~RzKf$_T>1DUWEJe_E9o^Y)A#?tdfM` z$9_&FQT=+=x)fSz=M6gbLT^NxH^4scd!N#U#A_z5>z6>zu7~64>i%Pz+0wi!i7j`? zg$x@EV;D_792=~ex=H>>Y0iWiYBq~Pwa#P3n$_T`k6)71+$${*!O+Z*lQZk)Z z#o<^oYw)So1i3dL7mRDGBS_XTrks>Jm6{gX$=~v=D1nq-ql@!NbJw!#DYk&%g%A29 zN}KiUW1hmL{ZT*g&Uz?G`=T0rCA!POPwN9&U$8F_YsytoKg;Ft)_0^hRuO8s}?`!fC>-nA)~7*pSp>y1QpjibvK6)XGY@jw`? zdOwFr9wtEpOag-kiMGaqVSMXef;s!BU2^0jt8tBtJ4%0}DQMy@-o65C>Df6z$1l4C zAstCm{o5xoX=n8qtu_WZyAt}klZ4khk#tcC@_DGIpg5yeBjgT=KqIN>jozHseTkrB z3up#@xE9B&7Kpxc;ZEUTA)%hk5gnoB6>l*V*6dP#(u|rvatM+Jmn(yTYX>e!Cuu*{ zFXviHY;q0w(|kadNSl#Ow$oe?X7Lw=;b?;k!v*WF{g}e~PM9 z=E^OOsF769Z^7%A#>SNXn|d%L($Rps{{-Q`ExOOXhIk5_RFws6Nw=lkY}v|>tAYw+ zo~}oR+a3OdA?F=-=v=#fxDZITiQ0#w$ya+&BddY8gd!&vnd}Z*tt4s!^X&iW*GY{@?!5k>TnmEl*sfjTh8>eUG z_YYR6T}V9g(r67Eeah>0|F^fYmq%2V=q#fU8Y>U3@LhtVBJlND{EIE)z3Id_;Hn>H zxVcrlxAt*ZKQrMW$wLdFcJByL`~>el8b z=bedLDgDlt#D)12dbUT$!59=`9NxJ0#rK4(C_2o>fAIgJbp95Ib&u{61xe4iH@}LoqRA(#Jkg6l{Ysct;Np6vS%rUx@ec4!!JK!=uZ=2R#%D0TWCT{ z4YeN(eu&SCAs2&l6*&JZ^UMBP(a84RI_6IZ2>Onj3tTm<9U=M|==kzvfLngH>n;ll zk(ufmG1wi>SM7Cgte)(zzH0k(_ugn#$&zfu>#$F0+LCmD&GxgNn(f9_x=*-7dxZ#Y zKX}I$`Hby;vV&*sXArx_#7wsi@r%gY=jP8zZ{P9m@wn}%Ldu4vBV=)(FBUvYAV~MH z8)3XX9c7qu2rW@X5d^;9&P7W@~lBi&sn7YOiNp3H^C`I{Ko+ERDrX0S22v1JS# zxc7$7j=ZTGGNM4KE2dU9JM>e zhOxx__g0WNEK4D*;b)kJ*|&!9-3uOqZ(h!K?4bO=j4ingoDl<7FDAGj@o6_N$X}K3 zW33FP1;!zix6oQIF3!bXx!iN6evh#u@K2PDXLp6)aZQR@^4|=4wD#{tugHn(Gt z-CJPm0KeB;msi(jv)*jhF4LlNY64umvqzlL(#wYZncgj_9GsLRaI4N35qV$^1;^)< z@8KS~Zfp)@it<$ z{O7GjFss@k6I_$?*(r`5gy*yG9jhT~+EfHPOJX#YjIUE7E(8g$<3fHeNCkqMc7L#% zhN|80h2l7NxI1?=Q8muC3zU7yV@=Y~#yRzuhM&(m3gFk5p(!T#~W8X3G9tfAMg#W*!a6}l>230$=zn)@Sq{e4;91d$Bg z(^p;>ZzH?rquV+jx{roiN+w(K7D2X3{Y8A43men0wUcY80eSn z>%YEzx_d1HcLI;+s}v{f*B-Bg{phtXnieMJlMo*?&37}iyRye(;8V3NTscns4d2 z?35|hRfXdNO`KKnMmV@+T?hY_dB+G4={!(2>@vbv5QwnO`u}d(h}ups!%U^i-=|SZ z1iH;1mD>HVrQ9x|&9RKj9|>4|F74uAuSt2w6C0UKe*q!7$#!p2tyONK_PqGK<_R9C zckJp&?kuKvZqYd+cBu)62uP*SP#e@Ys45c1N+b-9Y`?Xf( zKYdH0E;Kq1Ki~YjjKb6$QxVT#Vtvi$H zS0u`|A&Qe<@w{xSGT{K{mDQ|HJ<5x?lMl4sqS8s@;9*LB6m2fCET!jGzM5mlVcnu} zIa_FQUOck}-=t)5*peQJqRp8o)~E5UTjxoqkR^0+`dbeqktRo2+g8PcoU1-yE}RQz z3BR8Au4jzL{$MK#}EYm)*EL4f)g z+G-(TpaErU%tP}uctZ~eyMhBAh?Nn8(2cl${w9(JnCTs*5PCbRufl%DAa4pzZ+l{r zxNPtDO`iY=mA@n}Z~64fy2=@G{v4+V|5 zj`mV}s!l~WI*<{BlB0nelg)$Rp-k|yFfBc1Vjv9Ty4@G|LT!{|;+N2yPwmrk<+Jpb{a*^ml!*?Y0D3oSx)hhorE)hqU5~vdNpw zSM2z9?*=BtG(}rF_Al^X$!FMKyD13AFnz3qUo=;sZHQY`hQC|*e~?b?WV9ab(YssJ zew3A*3>iyfsocg_Te9C8<74ln`xg1ri`Xiss(-~}TPn%9{<5vpq0|kgxn9qT+0Vix z7ox2xVXzs<)>X!sD2gozYs~Icf|7$dvQ+(F(6QkF4-l!M4($0D>n5fu4P>!B({=@h zsq*53mC+JROha-pd!5FC~I z2knRT&mVu>{Fy;Ru3fA@URq*&0*{UEkQrh5b1rl(XOCUZ-<#|9zY?0xURcRLW1i{k znuarH17Gbj-eqn`ZZ`b&E&h@Ihwd_E8~b`0++E_{9Suv$j*5L%^jr2|;=g_Ws$~jd z&ZVr^QBD$HsCPR{bvTeu8crVHtGj}JCbO`yc;)&AX}Bo^J%c2ynDAo^BvKY)HNWe> z_KI4GBXbo4OM+=89+xXzG?3_1I?P;837LroW40l7{V@SX$UUAbEnsLjD1v3Q9F^DJ z2NqUJ{C*tM%APy1hqDH4r-}y8xM4G>Q><^pL!rg7!bfwFI?jVe`AKR2%}N>Pw?Bne?=GA`wyrg_Rf!X3|DJ@1M(=55_xEs zmKRD~2#MNmLM9)q611#;XX}I?hZ=m4^sizCoup$-_E#?*YQUS>-&1?AFxl1p+)<;? z7rI!xgprN~y?e-uyCFrnJqV(o7ZbLm!LqcmZ+);b5w0ZP!lqN=rqL0Jj$mUGn8~61 z#2obHAWs(yhGu9D3r#{>({hM|yS2FNJBplDZ%ny`AX*h7;K<8` ze9I4K6o;4GcRPRd9!14Q)cObilrBE3`r~mK1}+=bV0nY!Xyu-@5Q6%EE90aNzr~%H z<@HqVYCpIhqEGTux;ub#cR1Es0U&W`-b(ePjU)Vqh=GXza-iyLFr z;?~%H6&Bff=KRwrp&TJW4Zv_c{h_Ho_vTeGPw~2ACTP zbW?J8F+ev-`(II1MaH)Fcc_Law0(VxVIGr~YyNHl z%o-H6#&(;)db1F$d zM_eI-K-H|!M;g5FZGjo=ln0~Dfdj;UM~_vbG)KPitcjw)K9r}~qorx65--X^-!P#M0J9)XXd>I%oOT6;qBl}Z%1C{C0uK}vr&=l_!I#bYieLMknB+gUY zeXzffRN}%F94!erv^2vh!rH&;Qd(;afu?v)7GOHzY6`uHJO;rMj;1==kO8)?Ab`2E zfmraMfURtDZOztIJobOW((nOa$&a9VHls`HC5`hrZR&o5^{?4+^&1uH`ET9ruI0IG z=PY=dc&41Yvd*+{9D3Su~oRUq<=WZ zn_Bd1nybBs1dFO$x(k3BG>Vg6^E% z9$m#*Z?SpprPPe){nc9AjO_Knc8hBXeeSO<#xhlzx_SgOH{$HN@`DR?7)l!2J~CZ9 zOS?A>?am!8thFk~-zrN7*{1K>9uZob+~y$WKU#x#>iOK=GrFGTJXu_<;<0O zS8uaqnRfCm>2Th!t9d9G1o?$&An!1R)JF^`%Z${K(|>SAc0+xT!D*}8n{c9H8#Rn9 z5)s}pP?j;9(D2h&PTKhrv3t6xvB|t$&V}?f?5_RqV0*MrR`T;G=W){TC+F) z3^*>94!o1rbQ2jz74N$7hN6@bbi#SE42=3JSxWSoIzUjAY!dP#n!@%5;NQ=Hd}JIP z+Rsym#_h>NZIjpKMNmGS18e}`>!|0pn?5zT57?jB1 za9biH5pV_M=YSlALJ-M2l$K`UzXyAuMIW^3_D1TS=JCxa{HT=CPI81K*EIkS41-JL z(3!Dv&kQ$`w30VW`cSbrNfgO{Hg`!fbI`y6O$JP^;7^buC2C?zRS|ih1w!TiqQGXO zf~*hKTz^b~V-zj>BhJ7}I}o^guFo3O@00chqjxY_uRr1$FwIUhrd}{c${+4l)r%r8 zkvF;c+P}p?UFTJ|A?{JCgj|sI-B7}3M4%H)s@*A`unEJM;uaw%YS->FzXlSysZn@t zDVHzuBUma{N9=Zo5DL3<>aQ~kTTgC)KM3a(^uSHo@8I1nNf}cj0HX5ZELZ6d#EUAL^)>pH!XDTo>>+hyzCefkoLBN(Y@v8oa}h~-NT4P zG5%ko*Fg4(1G#k<7&`pevENNWZG|;hkt$XqgUxBcrmQZm+E(KVK?9jOVWXe6f4>8m z0tW1?mfSw3@IT~wW5O$k*3Upd)CjARB@`1t4oBmpKZe1PyRW^idA0h^YBoxy&P4C^ z`gwh|PRbuvH*!>5ROHeA@uz*{8Uoe5W}s050{krMr?jY0KHy++X=Fwk$1XMKR}jmW z1SS0Ew~C}9u{uK>HKY`v+Q9mcI;`gL!?&%&3<34dG*n}5-wjF3V;js;z(s-qjdJ0X zw5Sl(#eY;IHJ6V`;7=K9FoNq`{swdR1S-EfZVt?KW8I19m-Pyg)v6j%B2QMn|3!p! z*c!B^&?m`>lVAN>7?XO4ip8uA!*9pAv-V5)(-kUtBrk4 zyc+j@Hj*h%hrPrW=v1X8k-KKyHaK;$3QbCp%bcw$w_R=&v!F6z6N0CKMNGDnn{7LBr|;co41lT9pdvC**HUXuR6@{CwM}+6 z!*(JNYG}Xb`mdcwcr*?OjHsqM(~8vrU=FgSBCPAKW&(*pYRz+jP#}bm@F+lJjnI`Q zMf15=f1;af$R9dOAfZau(uFdAm9rZ&=DWV6ei@8urLzd6Lomc7^={TQxlY!KFMmV_ zpWAi)j%_64F{C&h;i;9i;u(J%`42@^;5gQHnDAEeGp+$!&DeT!zrl6n+k_eFT!vkek0XbR=I)OqG zqKbGGB3A4mNkTi!o$HaeFx0wE83sob;p+^B?b-R#{SSV1e-!Xsseui1i$Q5EtLIAX zR)NzJ2`;Uq;kP(ul$%2~u7hx6E!>s(&f!iW?8?-u%AVAh5n%-W8!hv#fuG7z(+2jA zRJoF85%B!3L~yoBtMkw&z1UrpR{q(|nSEBx6cFtb1rQ28^njjzoc!^@W}hJYRlgmn zcc*N`##hWFcIdqNwu&OeJsL^ehNx8^6w~=meA4G5=1!X#?8r+oA9jwy3xr=sED?CS zp#G{ma?~5x4ZKuff;3!Ze%(GPw(OirV$33|&(a}~H|~})8bmGef8*%=3=l)Vd*KP# zoP@+H=plD(R;Aj@e$+)6eC64kPh+5@{qoFiG~@EBmBOz!S`fYWTeA6zug}3~o^CF& zi}lgNM~eXTCYCw3@$W8sZHaYdO8WtHp)0e{*!7GOUSwOPj7)?Ln63ZN;e)~NZ=(}? zv_xP3Wxl+I`lVk`UFiWw--!Ov`vc92v4%WWKenR`EB+uc~9gM#6bkzbcFTlgb7@B`FHK7 zv4K^iD0PDIfWCD;LP4vW#&w!+tluO%^W{(Xekbb{oCPzJ)i#pgJL17@oPna&WpxHI+IfYf3$zWHkApW3hi406OUW(K%#OGjG9nmhNkFL6yH>BkHUBxNyFf&9|5{iR7hn>F4~Px*~q)Q|3lo$SB! zj%1F}CI6af3u>YTb-wLo0vYO>FklV@w;C)kr}1>yKWDEiJCMgfbk>GP(+GOmr1~wC z^t8JAE7}bZRr2asUgg9)H-|0o)4oKTyq0W4&%5}vNd@<`Me3KVXwUR_eO4lT>}$D; zj|K>on*|5UFY}b3pMqkmLDBIm?C^Mn6TambO}*loF9PGFe7clKF<@eL&U}{sxRdUL zxW$LH+g)myI&E&HMs2|hxj+1doewZC>yy3LN<3cT9pH;G_!qr;o6ob4MS&FBIjhgU z$&Fo_?S->HT_p%IWmHCW5roL_n?py1b_Y!>U-DJj6yb`$=9>=sz_Xds!~Czv&TFxN zyIq)X{&0S&A%=poXN%Hhp$H;#8;8+>uP|I0Gm>|r(zt0_MN?C}`e`;JPEW;x(CfRv ztmubVu*n=wziZ_sirp&d)ZP7MvjPEr4p_8LNiM~*^uLJMYh5K&m)dQi>#!9P7awz~ zVM>g&r;4r>gY-tUoH)@RDI~7)vjL`KCVG|8y4eEMSly%BHftoj4$~{0L}~A=m)dwM zUt0CINfmjBStWIywDeas5DS?!v$Rk-q-Vx>wi;g9RhjpPAp(wsvc`5_5L=RYYiSbv zv&osyC(v$4MLQ}`Cs^w8+4OvPFWt;u!YJXH|M^>JUKKS6O>y=o-e>ScT02nBNtg5_ zmkX7a65#7s!&glj$Vn8PDEWI!YC=U%D0sbTJ|S6`YFHqRuw%{h-G3}m_0MJ68;pyD z3V&FX*@4bDFLgcYw3g(Q#K%vqhMRqtu!SA}zR}Y*Uqt!Ej`8M-k*VUL#7pU8Gd8(3Uc;ia%B?H}%9>}Q4ce>rL_&CcN?X5dzP2vt@$@?qn@|{v+<)bn(`oLDI zPe}+2L&TtneJnDuUmH1abcTk;K~6Y-F9fSl*j$4MF=I-zT=P7`|T6^7ps&>)1jyiBc zM)ou{pw^B1pPJhpE`;4A4=6e^E?yIfpQil=_N%JDq-hfnC3)i)bD0X~OniLc`dG$c zMgCrwOs8!!SakQ{N9(g4nDl-af|f71EjI+`mQE2JK`cr?d+<^o_F(i0ya6(G!ju|stbl6y zl&+WO@?E5|PT_x;+eAOf`q;z7y=fxH7&t9Ki`Ib;4^s!Q=PoxnoRRgZ@d$0#GFq)A zx|;&DCT$)+R~aoU7pCQ1U8NkQT#v$r(4i)5BQ!CJ(h!kr?^fv$+#Bg5O}IoJ5E?DP z93c(JPkWV$-nu>oym9s--ycm64I;aZtw^!c-ULHv9W2yqXhXS0;HW0Up)Y9m$?J%L zmjqPmn|(1FJ}JRhpS$&H`>76u^?9`s$r>RMR17{P_MaHx4}^y-&aqSJB&Y<_>)x1H z+xx{^O0~@|qi9SrBfm!Cdc~pIBdjpiV1U+?byJVRH_@MFxiAoi{LtFm{#_iKDnU~$ z`OTHGON#G(XS5P_^>&1v!$F;?)JBEd#PXc+G_4>hz#BN%QlrUXO_mpi&QRzlyMK3X zi|JQLeT?%>QgfUt4xsm*Q&+sG6txTZ&CRLnd{|4hiRt?t84{;n+2w}O#p=X=`usNb z14{_U&50p5%OyCPq5)OVaESJmhJA|)8y;uoY{n#phG}yF+qDadOES)DCmybh40e_{ zYT(DEYbu{X(zk6|ar=h{K8e9D_sIYxTcRccWA{}$`3W6x)|x+Q?*0DZT<_JNlj1oP zXp9PfkUS`~)Mr5NRxlB6N3HBE-R&Kb%7YLe`4&~hMp}M(^~;HqN4VO8l47<|Fz{@M z9$(8J3Xyg7#gkEcM}0?fr4MhKU&ic^#n6Oa{_ipFXm^<9ga?DA3B= z)uOSbr|I!M=4$M)v{mnWbf_EzL3SBECPUn%5USB7>z6(HQnPH!M9@}l`cAGR$(rqs z+)-lVUmujsF^Bcrw5QE8Q!V;*N8+8sK69?fmjQiiA1qy2T@AMO6L77@6(}F~PXnJ6 zYj!K`msrLkheOC@g;|>?`0sHft1AT@Doe_MH|wDn&nBX(!nU`c7MA+t!M;}5KGHD( z*0u5fLLOQ9q}~9f{cWyETFar++WWbrow0PME)Y~$zk{}BCG&+CFbzCnA%4Ke@rG=? z&zMKVv(_N=dUP<}QkjqK-!;G&5v(?IcGQhdOHC}!BX$^4`d+NOj#vB5I=YB~wAp#% ztHmqRhm!mC)gflru%;;c6mcb=ipXOua?)w2YYpwjkT`Gy@6-hQ5{H7S1IsPK4w{du z^s<6(@88AxTrf!^a~%{)C2%t}J->{Q2#jo!5VDY)rH65Av6>)Wn~`vClGl!xtqSYg zjQ~UblE8}X*(j&OvnNWj(ymfceLlrhY9=?h8MDdY)51aC#Qa_>VlaxC4pfKcPv3)%&9K>WF}a1Ky{ozT<`xd5 zJ1i8_G*M+XGU{KLw5CcRdCPic^|X8KuZA^~T4`pZY2!Mjl#HX`hzAo!f!+ zgg8#xKbOQw{xrq_RlA0$QiMcw%%*Zh9+q>|bX=5>BJQ^zJ~+8dkX4X}wk}K8>)T9y zYE$z0kCn_1-ftHxJCPnjZ6eEE`Ryfj%7XE2ps3h4oX>Qy^m%kp(a6vvKV6xfU?MR5 zm#SkTRg>YwpKSBfS2Q7JOR-K~=X0)pJJ8GsU#HD#E8~g2 z(cQ_NE^jG&jL?EUU@QiT#vi|tJ94d}>)WORF)T?AK@}XMz_rE)P>A<2xCrmN(i>0P zKLvv3zAtasLg(9mjrP8+PbSGKQ@5Pe1c<(B(YKBE><2+jFuDMq+otY z&dh3%q1;Bd8z&*-8S~*NDx6JvVRQP{D6r?FVdtc7XS(d#{ZdI=Py0OJ#hrrVnE3(s zhPZ)>tBjvo4ewqJv~wkKu(HtJzqEVvb(agn#!>k>}hl#^TH~7hd-+BUo|m) z3i~z|L+GOu#+SNsiAVDuxML4!M*)NJNR8)C~&*VVte?lad*!qLc@ciGR$F=zBPAt59Fm^iWwGkh+%<|P%;e(eyT2UX$x0)W>wZt$O&!2; z_M?}gO2g1c)2o$BRYg+5yAhA-n+yRxe4y^a*9tC**Xtz5;MWu;;Hd4RyrH6alfT7^ zHIC;TA6{eT>^8CSoqt62-sB`b2sLTzGTnqiSFd*L8u>qFhS0?jPPf(hN9mlMa%y}D zzxuBM(K__Z5aLGEbzHuaZ=97OCV(@cp-n7E{blh#Q(l6|`Qjp8LuM~_F79_G7Ij}W zud&pH-#$6bdSYMSI4O_CH^RsmqGOw-(?mmK(R|di1o7m)j4cuk)n^De!x3-k+pyV5tG?8R&Ib{ zk>=b_!SBVgt-t&@C&YRE_?gMGhTQXytQxF(Vztk7>k#sq>rw&@Ob!cfN5vhx#qoQL z&L@_9M+1M5)P5%Qf&OK#p0kMz%j+wG&x$8h1T%%}3%y4O3Z6X{7J8Y8R6|h|?s01R zY3;Kb)F~?;p3e~vST1Ey3TRJf)WSdjqyG^zt}(=nl6ba|GcfW>zg&Qd&Gp`wX~PIl zfsj2<69K%3-QkOA+rWAi`|T0U5r>EktH&tyiA}=?LQxb5{*4wLO8vlz2EnC+PSW~N zz~GN;ryIJ>UG7)eUd$&=Ez=xaeQ?nw)>x1 z_4+Se-a2j_+i9575ff`bgmM39ihw3=)-XYqU&LMRzXL;`H+{E#s_dmkyyZP%2Ddh2 zfP7Dc>VPvCycfpI0Yftpy`+oCz(?L5u>WT#bDNq)=RIzrogJ~sx~sBB$xPNm>pv0B zTZdS#wrOU0K5>(YL&yFI#@Nb!SMebS^|=a5|2p}4d}DArnbiZ`Js0inBYp4Ph5vcFlEX`?{nzUky*yVcrR0c8+2cOA{7467CjbH}4=)EW zJZK;~NB2qP&31|V7;NwkY)yA` z@$pZF7Ka3OC3{f#TqajQQd)#*|>jK-suya$Sqy(%Lfeg8k*|S^y zYAS*N4mgYRkEJ0ZxTol83!3pWFjM;-*2qp)pjuvCRM>>xKf01K=}({DSTmW>+lY87 z&}250hOw7cThVRfEPaLABKluzGg6WGNAG4GhtubdWPt~mE4Cv8m-H#Z?j$!(6y(>z z5CE$c;wj(=H39`s>_j*cFh7JpN;@e%B(UT>1NfImpf7Mdvd8}2|GUzU!|I}jDg-S| zcVa1>EvhA*<`|9>v1Bm>$*QSu`*GgVFUKm`j2IU$<`&yYnyho`Qkxf=3>#^vf9}RI zut8UIH^x0qJfQ2dYVqptu zUV_EMlaWK~p!b&|rYMM--)W~F9nmH8S5JfLq(?Ka&q`e`#X1|ppe|>Sy=*d(9mFpc zaWr%9byXXa+HQGR?ZE(kdr;0Ch+{KzEYy`gSe{OyqwuyRXUk>ky~52Bo&CDGM4A(~ zAJN#0O{SUkiw??PIuD65Kk**owmoyxe@Qr8l6l>K?u$ide>gS9Th9Q!a~_~e?6a#` z>Y8*wvnrRj#l()D0PP%$!^vf_nw@m%HADNhIn|MGd>-ro3<(JYaSLrmf7?4wek+EB z9tQ(gk#G6oYT6s=4kNbCf?lI*TBakfSHpby%Old4uvB3=dm!h;-9qEC!$Y}Wn zKLEA1DWMs%p}Ku5PH|T{Md>r7EX=o55)9j*6+jJjffeaerTwrw!#@NI$pn$m{@^!+ zC*?D>A2UV{oB>Wg`LwN@KX>7#kA6RJT(jNUk+OOJ+na+;oL<4(kgkyK)%EBqo9G9{ zi9ffwvAc}u=cOt_!2oBXzR`cAs)wQ?@O_@E-w1vU=0MJ)e=b%&fuEAsGx~ZcERn+^ zpdGngn+$FNU$X!=raPKJdMFqkiaK8Vf(P6_&yFIz^LEj*ukqyhRMG77=2v&ZJnFjw zsSfH?8bL!h5^BPNXC$9tdn;p$rnFqT`uWkb%tTDfYUL+abZQ_TdfcZgKyD#jweB?I zqjWk;pt2v?uUU>utLhtob8oaDsh!P_4wdu{M(2E8HGQT8I1VLMsC{jjm>a<%W>O|g zf6JBrPk<_YKD3!(ua9hk2=BX}%&qA$P#j;QGEItdojv5BVCl>Nt0%oPa8LBz9rRz) zs9LLL1h;~s6ZlDfk@NZB&U_r`U?Bt_it;b;nJgz&y*T@RNkR5ac_r4B1k#vk18<5m zFN})WOljW?C^^kVsN=EdEKarZyOouU*!gS`QexR_MmO6cHRa9hZ6(<}=BlW|?*XAt zVwk&0rEcBmnEhU9VVq?X=i)7@oX&>6(wxa*qCw=mp_H6E5s|-@K}kqGQIf4R`>R~? z&3KSyldfMl!&BvP=Nab6Cun}6dCSil-d zA+$U0p>r2~6UPIABq{D*N*sTn0hb($h*6&+$ahizmIJacV z$yx&>I9I)*lJe4hm=fo<@rBPd=bL3SqdUBKqi$2$Z%FN#2HxNuG}FI6Ws*~Vd26k! zUEU?A{N+G3>an)mlRk5e&Zi^?74hE}9qR1kOoJ?pny-E!elZ`y`t&e@iWT%6u?98 z#rm$Jr9GM?ZNuQTe1cA@`O+BA$Z`3?50ZEeO6ZFc0o=u&Bm{nicWBOV^nItHPiF7G z<&_?@kix(j3HI5MA8G`SEI&3CDT3=i(^NAXWT`m@Eor(uG1unMdy~>O`n}Or+=8)E zw;Vt%owSfwOmMLH&@zi72#ljPVm zS@{dB=W;%4xXT0w)bUi3M#?f|hRVM73RNQcakAX8xb{nVtY!92^W^2527;=u9Df1w*ZyrW@j?wq z6D;&nQ#LHFca;F*cNqqw4CqtA7#SV6+QH=>j$?=Wq>>zlT&F%Q`sMU_tM+$0!@SN-flk=c{=5H2(Rqfm z`L=QRU#0fmwfEjto7zgv7Og$1rD~5LMiG0D8ns7hX(?4J5~X$&ZOxJdv1%k@1wr1t zUz1PIaa_rBUH5(c&U0nWTA2r>e&l?`MoHQggUm?2W5;JVBTStj#Nu8|9=1)B&vPg+ zQ)Q-SL;*kkvi3{T`J*$okdKDnIzfWHvt{3lKqLQ^9l|x}uT40U+{AV7vHD~WssMAf z&o*8h?5Y{UuTIqbSY8sZyj}26Nf*q6MB-DRKHfj&rg>eYObN&5wBadCtGmmeme*{z zs~zlBTW+?uj`9YKDg-BI8j?0}_AWV3AtDvP!P*;E{+B%Wc}{t6mTUfmG7{zAXq(m+ z`HmM#KGvby2n>JZCYhn(8t0!_Jvq$|)rlS7KBmn5>G}D6C9DOX zME7!(#zV`@g}5~Zz5?)s`Um-@q{ZRD=lNQbGyqq>JD1n^hboaJEIS;Q3%aBlx>_-O0X_9|2SRuqQ?R(m(0D4}{8 zVl6<5!G&?yAPQM*1JwHR(4J@SVw@ueo`{j%9(?=FIl);6iYZtj?xH=Ud^`lyoBmq!iUu;!I;r4}1GQLA~3X2%rl3W2l# zK4q=!bN}2i%f=3Ha_zhKYW)QG2R#}T`6NWvP~Js4SHt_B#a-mUeas5#8kpbYy7=cf{Qk8vAt>2t}pDx23@8K=Ki{c2kSH+4LRyF%y|71eaqH5 z$VukFr!>Xfq_S@O3rbFHSHt_DjlP2EOVU8n-r96KUCibhvuV5Erc*{!Xh#OSz6>?B zrqF81r{XH); zvrJUiE9Pe>tw#a@U2=zM{y4>HKtp$}p>BzZxHk8BpgIA2oELn}Z1C5#!>SZWTYUbg z<{ysa+4)qLSlpPMx|8D-(~%bSYaOTt0Db&phi&rqfB3d^TK20)#;)%9N<`xVs5kcX zU&_sW}YI-3skF!o>|rA6j-9<0FMS8hoPgPw)PNxcxjJH zGyXY%$8(KxT@}L8@kDnh3;jMzLq@>1#T3>`iNpf5G{v3a=!+fNVA0j?Qc;aeG^Q&! zH*7M;cuLnqsgeE*#D$?)V`mj@l00pg1fw|9%#H^37;g$={*W$AKPcTgrmG|{_l>64 zQtsv37_t8gS{Q}Rm>-}0V!7*_^5;G20h!!ty%}fTjpCkffdCYecjMM7--gE*4|;G_ zh0|=>4X`3VvtGC907v0fPS16vZlxxdn*g2JX!3{sCMAPaTD^M6VP`k$P9CXWt_u9Y zh9`MgLRYT`r;R!-xlaZx)LXa05ch@m)BeHJZsh#e8FIpg zAKfM6A&k-3s|1F-^=F=Xk>$r3>?J0#c@G45>|I4t>7+cxM|~w3vk$o)?LI00EKc0t zdK5SYKOJNbkA!_~OfMae&^H!`lC=6hf819)XQ4#&M%z%Q`SJHJ8d18+Da)dDw;01| zK~D`=Lc zq(83^y2WuP!siWu95TKx;-^A7W2)Wi9+CR^i`3bX2`Lxi>Whsd936y<*+5+>rj(y! zLn&3|pA9UII`l%R!uOUqgC-Mgvd<^EEyd}d?=25x9a<*W9$15ik}sd2kbk&hNHg`U zbytecaBFncPiZ5=KEGPG_pI%4jITb8KWb)GW6t{kdfLII)EaL{Ge@IZKp0?;dB>M# z`BojQ8eZL008JmZ@9 zu5n!m%YJD7j`vr`lLN?YS_9YPH41;uMmz3CX%hbj!g~{U?01FRQRL{L>%CNs+_+43 zLe09222phGVrGEF8OtpMXUnk0UkO3p0Ihc3BlK6E-iE>nkufsJ+-1HekS`66lP;rP z^0UvnAHu`MxZ16pNRkj4Bg#*hmC>u$5vjhfqo2x08-LBas@v!Kh7uE&r2TKAhw?$B z@rSWH_4H}-G1kCUEAi=nUg~M>E{htJW!!mN z>d6>s8qH<_YpN?sWW6&x1evB_G900%t84%Q_Yys}a_siul%0KrH4W)|BAiNsfd(}gy9c!cZ> zVr+;`_rS}T($VeqoKP13frkk^p5-DBnhwrkD8&ig#XtL@`PGeK3a>W{CAbrfePA~e zi{mMk&krZ8VuUa-%>31|2d5JXny}3lfV3dJWZXxW-S}BkGb>&$9M(N@oQ{wJ^ z7LmS5WcoZ#Qe^ND%XtOu`UozA|6+J(U;G~nhpgqPWQ+S{3ssfn%vJ06i>-r&PPxQ0 z=cvTV;{Ahr!^r@u+T6HwdQ%0u6Fl>tj#i=5AO=EKh zfZiJIGEGzRTw;t_y^K7_hHjiceop)>viqqD z8;SDup%u{>@F?O~v{(hvM;$7%JnuLj;w_aJ`ONy__*dxqM?*_P+$Zq+-lF*%iw_!Gx}HXFEkPX$4%>=FP(}h80++i?em$D ziibh2K2@>OqhF5Wb!EmS<=#|_6?wfCcIG7uPQMj{{9C>9*J29s?Uf;IK9M4kHX-}} zs=}1GmESlckcMoZw(6gJW2Z1T-8VQ~Qs#wjc-Z$juRN)K!J?2MMCmoBmH)uP5?HY1 z^tXsseVf6kiA!vzIQwDgLU&=NG|8>H3ik(cN}<25?pUu7w`u+hCF(O)lv9&~6uua( zVn8N*57$?6;1hgXPE0}e3Su99qs4ksE=JLJeTTYkOoHk8Uh74^j61B1=L{om3$UJ> zT7AU{aF;V3*T;;J?rwg2)g$CjpR-k{y-7dMK>W)X4Z<_JmQzDsq(YfW1SBK|L)udK ziQ^xkitvEQJq0Pu=m}N%?S>30d9mf!+UAmccmm0A*wH$>8)tcN!Q&}525|Wqm$Vj3 z;F?!|0c`kN(z;L2;gA{m@!w`mnW8#1Ľ-f}FV=uotESFlCEL;wA!cUDUAVzu`u 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�d@~JA~C0b6~Od%eFTpemh(<$X^ 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ℜx@3)!ToVVaJ=6 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