From 545d37c104e24b2b7daf3f5978c7a3cdb9d9701f Mon Sep 17 00:00:00 2001 From: ybai001 Date: Mon, 14 Oct 2024 17:25:36 +0800 Subject: [PATCH] Fix two bugs in the updated code If we handle the "codecs" in HlsPlaylistParser.java rather than in HlsMediaPeriod.java, since the "codecs" property includes both audio and video codec names here, we can't update it directly. Only video part should be updated by Dolby codec string. --- .../main/java/androidx/media3/common/Format.java | 2 +- .../hls/playlist/HlsPlaylistParser.java | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 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 72c9f47b2d..8797f764a1 100644 --- a/libraries/common/src/main/java/androidx/media3/common/Format.java +++ b/libraries/common/src/main/java/androidx/media3/common/Format.java @@ -1191,7 +1191,7 @@ public final class Format { } } if (MimeTypes.VIDEO_DOLBY_VISION.equals(sampleMimeType)) { - codecs = manifestFormat.codecs; + codecs = Util.getCodecsOfType(manifestFormat.codecs, C.TRACK_TYPE_VIDEO); } @Nullable diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/playlist/HlsPlaylistParser.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/playlist/HlsPlaylistParser.java index 7b8e29384e..22142445bd 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/playlist/HlsPlaylistParser.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/playlist/HlsPlaylistParser.java @@ -428,8 +428,20 @@ public final class HlsPlaylistParser implements ParsingLoadable.Parser 0) { + builder.append(","); + } + builder.append(MimeTypes.getTrackTypeOfCodec(codec) == C.TRACK_TYPE_VIDEO + ? videoCodecs + : codec); + } + codecs = builder.length() > 0 ? builder.toString() : codecs; } String resolutionString =