From 10f3be6d509428c4bc9f4a1610dda0271dbdcdd8 Mon Sep 17 00:00:00 2001 From: Rik Heijdens Date: Tue, 20 Oct 2015 15:01:44 -0400 Subject: [PATCH] Hls NAME parsing changes - NAME is optionial now in the Hls Manifest - Use the id field in Format to store the NAME instead of a field in Variant to mimic DASH's behaviour (see the DASH Id PR, which is not merged yet at this time). --- .../android/exoplayer/hls/HlsPlaylistParser.java | 2 +- .../com/google/android/exoplayer/hls/Variant.java | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/library/src/main/java/com/google/android/exoplayer/hls/HlsPlaylistParser.java b/library/src/main/java/com/google/android/exoplayer/hls/HlsPlaylistParser.java index 6fd4ca8f16..8e517d9469 100644 --- a/library/src/main/java/com/google/android/exoplayer/hls/HlsPlaylistParser.java +++ b/library/src/main/java/com/google/android/exoplayer/hls/HlsPlaylistParser.java @@ -166,7 +166,7 @@ public final class HlsPlaylistParser implements UriLoadable.Parser } else if (line.startsWith(STREAM_INF_TAG)) { bitrate = HlsParserUtil.parseIntAttr(line, BANDWIDTH_ATTR_REGEX, BANDWIDTH_ATTR); codecs = HlsParserUtil.parseOptionalStringAttr(line, CODECS_ATTR_REGEX); - name = HlsParserUtil.parseStringAttr(line, NAME_ATTR_REGEX, NAME_ATTR); + name = HlsParserUtil.parseOptionalStringAttr(line, NAME_ATTR_REGEX); String resolutionString = HlsParserUtil.parseOptionalStringAttr(line, RESOLUTION_ATTR_REGEX); if (resolutionString != null) { diff --git a/library/src/main/java/com/google/android/exoplayer/hls/Variant.java b/library/src/main/java/com/google/android/exoplayer/hls/Variant.java index b80553b679..665d1fbf57 100644 --- a/library/src/main/java/com/google/android/exoplayer/hls/Variant.java +++ b/library/src/main/java/com/google/android/exoplayer/hls/Variant.java @@ -26,13 +26,16 @@ public final class Variant implements FormatWrapper { public final String url; public final Format format; - public final String name; public Variant(int index, String name, String url, int bitrate, String codecs, int width, int height) { this.url = url; - this.name = name; - format = new Format(Integer.toString(index), MimeTypes.APPLICATION_M3U8, width, height, -1, -1, - -1, bitrate, null, codecs); + if (name != null) { + format = new Format(name, MimeTypes.APPLICATION_M3U8, width, height, -1, -1, + -1, bitrate, null, codecs); + } else { + format = new Format(Integer.toString(index), MimeTypes.APPLICATION_M3U8, width, height, -1, -1, + -1, bitrate, null, codecs); + } } @Override