From b750ad50f99eb7f26c1e61fd77acb56d2ed22e6c Mon Sep 17 00:00:00 2001 From: jbibik Date: Wed, 15 Nov 2023 09:57:21 -0800 Subject: [PATCH] Add subtitle parsing support in HLS for TS files PiperOrigin-RevId: 582714493 --- RELEASENOTES.md | 2 -- .../hls/DefaultHlsExtractorFactory.java | 16 ++++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index f4021c29a0..2b4433eb10 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -72,8 +72,6 @@ * Add experimental support for parsing subtitles during extraction. You can enable this using `HlsMediaSource.Factory.experimentalParseSubtitlesDuringExtraction()`. - This works for standalone WebVTT subtitles and IMSC1 subtitles muxed - into MP4. * DASH Extension: * Extend experimental support for parsing subtitles during extraction to work with standalone text files (previously it only worked with diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/DefaultHlsExtractorFactory.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/DefaultHlsExtractorFactory.java index fc88fd3021..9522197ff8 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/DefaultHlsExtractorFactory.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/DefaultHlsExtractorFactory.java @@ -207,12 +207,16 @@ public final class DefaultHlsExtractorFactory implements HlsExtractorFactory { ? new SubtitleTranscodingExtractor(mp4Extractor, subtitleParserFactory) : mp4Extractor; case FileTypes.TS: - return createTsExtractor( - payloadReaderFactoryFlags, - exposeCea608WhenMissingDeclarations, - format, - muxedCaptionFormats, - timestampAdjuster); + Extractor tsExtractor = + createTsExtractor( + payloadReaderFactoryFlags, + exposeCea608WhenMissingDeclarations, + format, + muxedCaptionFormats, + timestampAdjuster); + return subtitleParserFactory != null + ? new SubtitleTranscodingExtractor(tsExtractor, subtitleParserFactory) + : tsExtractor; default: return null; }