mirror of
https://github.com/androidx/media.git
synced 2025-05-05 14:40:50 +08:00
Fix decoder selection for E-AC3 JOC streams
Issue: #6398 PiperOrigin-RevId: 267563795
This commit is contained in:
parent
72aa150f02
commit
b9ffea6831
@ -17,6 +17,8 @@
|
||||
([#6396](https://github.com/google/ExoPlayer/issues/6396)).
|
||||
* Fix audio selection issue where languages are compared by bit rate
|
||||
([#6335](https://github.com/google/ExoPlayer/issues/6335)).
|
||||
* Fix decoder selection for E-AC3 JOC streams
|
||||
([#6398](https://github.com/google/ExoPlayer/issues/6398)).
|
||||
* Fix `PlayerNotificationManager` to show play icon rather than pause icon when
|
||||
playback is ended ([#6324](https://github.com/google/ExoPlayer/issues/6324)).
|
||||
* Upgrade LibRtmp-Client-for-Android to fix RTMP playback issues
|
||||
|
@ -45,6 +45,7 @@ import com.google.android.exoplayer2.util.MediaClock;
|
||||
import com.google.android.exoplayer2.util.MimeTypes;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@ -369,10 +370,11 @@ public class MediaCodecAudioRenderer extends MediaCodecRenderer implements Media
|
||||
format.sampleMimeType, requiresSecureDecoder, /* requiresTunnelingDecoder= */ false);
|
||||
if (MimeTypes.AUDIO_E_AC3_JOC.equals(format.sampleMimeType)) {
|
||||
// E-AC3 decoders can decode JOC streams, but in 2-D rather than 3-D.
|
||||
List<MediaCodecInfo> eac3DecoderInfos =
|
||||
List<MediaCodecInfo> decoderInfosWithEac3 = new ArrayList<>(decoderInfos);
|
||||
decoderInfosWithEac3.addAll(
|
||||
mediaCodecSelector.getDecoderInfos(
|
||||
MimeTypes.AUDIO_E_AC3, requiresSecureDecoder, /* requiresTunnelingDecoder= */ false);
|
||||
decoderInfos.addAll(eac3DecoderInfos);
|
||||
MimeTypes.AUDIO_E_AC3, requiresSecureDecoder, /* requiresTunnelingDecoder= */ false));
|
||||
decoderInfos = decoderInfosWithEac3;
|
||||
}
|
||||
return Collections.unmodifiableList(decoderInfos);
|
||||
}
|
||||
|
@ -51,7 +51,8 @@ public interface MediaCodecSelector {
|
||||
* @param mimeType The MIME type for which a decoder is required.
|
||||
* @param requiresSecureDecoder Whether a secure decoder is required.
|
||||
* @param requiresTunnelingDecoder Whether a tunneling decoder is required.
|
||||
* @return A list of {@link MediaCodecInfo}s corresponding to decoders. May be empty.
|
||||
* @return An unmodifiable list of {@link MediaCodecInfo}s corresponding to decoders. May be
|
||||
* empty.
|
||||
* @throws DecoderQueryException Thrown if there was an error querying decoders.
|
||||
*/
|
||||
List<MediaCodecInfo> getDecoderInfos(
|
||||
|
@ -146,8 +146,8 @@ public final class MediaCodecUtil {
|
||||
* unless secure decryption really is required.
|
||||
* @param tunneling Whether the decoder is required to support tunneling. Always pass false unless
|
||||
* tunneling really is required.
|
||||
* @return A list of all {@link MediaCodecInfo}s for the given mime type, in the order given by
|
||||
* {@link MediaCodecList}.
|
||||
* @return An unmodifiable list of all {@link MediaCodecInfo}s for the given mime type, in the
|
||||
* order given by {@link MediaCodecList}.
|
||||
* @throws DecoderQueryException If there was an error querying the available decoders.
|
||||
*/
|
||||
public static synchronized List<MediaCodecInfo> getDecoderInfos(
|
||||
|
Loading…
x
Reference in New Issue
Block a user