diff --git a/lib/hls/hls_parser.js b/lib/hls/hls_parser.js index 90dac24902..c686c7c0ad 100644 --- a/lib/hls/hls_parser.js +++ b/lib/hls/hls_parser.js @@ -1165,7 +1165,8 @@ shaka.hls.HlsParser = class { if (shaka.util.TsParser.probe( shaka.util.BufferUtils.toUint8(data))) { const basicInfo = shaka.media.SegmentUtils.getBasicInfoFromTs( - data, this.config_.disableAudio, this.config_.disableVideo); + data, this.config_.disableAudio, this.config_.disableVideo, + this.config_.disableText); if (basicInfo) { return basicInfo; } @@ -1173,7 +1174,7 @@ shaka.hls.HlsParser = class { validMp4MimeType.includes(contentMimeType) || (initMimeType && validMp4MimeType.includes(initMimeType))) { const basicInfo = shaka.media.SegmentUtils.getBasicInfoFromMp4( - initData, data); + initData, data, this.config_.disableText); if (basicInfo) { return basicInfo; } diff --git a/lib/media/segment_utils.js b/lib/media/segment_utils.js index 058b661af3..e0687e2d30 100644 --- a/lib/media/segment_utils.js +++ b/lib/media/segment_utils.js @@ -48,11 +48,12 @@ shaka.media.SegmentUtils = class { /** * @param {!BufferSource} data - * @param {boolean=} disableAudio - * @param {boolean=} disableVideo + * @param {boolean} disableAudio + * @param {boolean} disableVideo + * @param {boolean} disableText * @return {?shaka.media.SegmentUtils.BasicInfo} */ - static getBasicInfoFromTs(data, disableAudio = false, disableVideo = false) { + static getBasicInfoFromTs(data, disableAudio, disableVideo, disableText) { const uint8ArrayData = shaka.util.BufferUtils.toUint8(data); const tsParser = new shaka.util.TsParser().parse(uint8ArrayData); const tsCodecs = tsParser.getCodecs(); @@ -124,7 +125,7 @@ shaka.media.SegmentUtils = class { } const onlyAudio = hasAudio && !hasVideo; const closedCaptions = new Map(); - if (hasVideo) { + if (hasVideo && !disableText) { const captionParser = new shaka.media.ClosedCaptionParser('video/mp2t'); captionParser.parseFrom(data); for (const stream of captionParser.getStreams()) { @@ -151,9 +152,10 @@ shaka.media.SegmentUtils = class { /** * @param {?BufferSource} initData * @param {!BufferSource} data + * @param {boolean} disableText * @return {?shaka.media.SegmentUtils.BasicInfo} */ - static getBasicInfoFromMp4(initData, data) { + static getBasicInfoFromMp4(initData, data, disableText) { const Mp4Parser = shaka.util.Mp4Parser; const SegmentUtils = shaka.media.SegmentUtils; @@ -428,7 +430,7 @@ shaka.media.SegmentUtils = class { } const onlyAudio = hasAudio && !hasVideo; const closedCaptions = new Map(); - if (hasVideo) { + if (hasVideo && !disableText) { const captionParser = new shaka.media.ClosedCaptionParser('video/mp4'); if (initData) { captionParser.init(initData);