diff --git a/lib/hls/hls_parser.js b/lib/hls/hls_parser.js index 027ad33f1b..98c6f4f43b 100644 --- a/lib/hls/hls_parser.js +++ b/lib/hls/hls_parser.js @@ -447,6 +447,14 @@ shaka.hls.HlsParser.prototype.createVariantsForTag_ = function(tag, playlist) { height = resBlocks[1]; } + codecs = codecs.filter(function(codec) { + // mp4a.40.34 is a nonstandard codec string that is sometimes used in HLS + // for legacy reasons. It is not recognized by non-Apple MSE. + // See https://bugs.chromium.org/p/chromium/issues/detail?id=489520 + // Therefore, ignore this codec string. + return codec != 'mp4a.40.34'; + }); + // After filtering, this is a list of the media tags we will process to // combine with the variant tag (EXT-X-STREAM-INF) we are working on. var mediaTags = Utils.filterTagsByName(playlist.tags, 'EXT-X-MEDIA'); @@ -1293,6 +1301,10 @@ shaka.hls.HlsParser.prototype.getStartTime_ = return this.fetchPartialSegment_(segmentRef).then(function(response) { if (mimeType == 'video/mp4' || mimeType == 'audio/mp4') { return this.getStartTimeFromMp4Segment_(response.data); + } else if (mimeType == 'audio/mpeg') { + // There is no standard way to embed a timestamp in an mp3 file, so the + // start time is presumably 0. + return 0; } else if (mimeType == 'video/mp2t') { return this.getStartTimeFromTsSegment_(response.data); } else if (mimeType == 'application/mp4' ||