From 29df73e2681e1dcab2227e08dfd2c949ebece942 Mon Sep 17 00:00:00 2001 From: ibaker Date: Mon, 6 Jan 2020 11:48:54 +0000 Subject: [PATCH] Fix MatroskaExtractor to use blockDurationUs not durationUs This typo was introduced in https://github.com/google/ExoPlayer/commit/ddb70d96ad99f07fe10f53a76ce3262fe625be70 when migrating a static method with parameter `durationUs` to an instance method where the correct field to use was `blockDurationUs` (but `durationUs` also exists). The test that catches this was only added in https://github.com/google/ExoPlayer/commit/45013ece1e3fe054ff8960355a89559241eeb288 (and therefore configured with the wrong expected output data). issue:#6833 PiperOrigin-RevId: 288274197 --- RELEASENOTES.md | 2 ++ .../android/exoplayer2/extractor/mkv/MatroskaExtractor.java | 4 ++-- library/core/src/test/assets/mkv/full_blocks.mkv.0.dump | 6 +++--- library/core/src/test/assets/mkv/full_blocks.mkv.1.dump | 6 +++--- library/core/src/test/assets/mkv/full_blocks.mkv.2.dump | 6 +++--- library/core/src/test/assets/mkv/full_blocks.mkv.3.dump | 6 +++--- 6 files changed, 16 insertions(+), 14 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 9b2f0e7cbc..8df1b1f698 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -43,6 +43,8 @@ * WAV: * Support IMA ADPCM encoded data. * Improve support for G.711 A-law and mu-law encoded data. +* Fix MKV subtitles to disappear when intended instead of lasting until the + next cue ([#6833](https://github.com/google/ExoPlayer/issues/6833)). ### 2.11.1 (2019-12-20) ### diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java index ed2acc5898..ee57bbec90 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java @@ -1250,10 +1250,10 @@ public class MatroskaExtractor implements Extractor { if (CODEC_ID_SUBRIP.equals(track.codecId) || CODEC_ID_ASS.equals(track.codecId)) { if (blockSampleCount > 1) { Log.w(TAG, "Skipping subtitle sample in laced block."); - } else if (durationUs == C.TIME_UNSET) { + } else if (blockDurationUs == C.TIME_UNSET) { Log.w(TAG, "Skipping subtitle sample with no duration."); } else { - setSubtitleEndTime(track.codecId, durationUs, subtitleSample.data); + setSubtitleEndTime(track.codecId, blockDurationUs, subtitleSample.data); // Note: If we ever want to support DRM protected subtitles then we'll need to output the // appropriate encryption data here. track.output.sampleData(subtitleSample, subtitleSample.limit()); diff --git a/library/core/src/test/assets/mkv/full_blocks.mkv.0.dump b/library/core/src/test/assets/mkv/full_blocks.mkv.0.dump index ac111d0c62..70b22f16aa 100644 --- a/library/core/src/test/assets/mkv/full_blocks.mkv.0.dump +++ b/library/core/src/test/assets/mkv/full_blocks.mkv.0.dump @@ -31,13 +31,13 @@ track 1: sample 0: time = 0 flags = 1 - data = length 59, hash A0217393 + data = length 59, hash 1AD38625 sample 1: time = 2345000 flags = 1 - data = length 95, hash 4904F2 + data = length 95, hash F331C282 sample 2: time = 4567000 flags = 1 - data = length 59, hash EFAB6D8A + data = length 59, hash F8CD7C60 tracksEnded = true diff --git a/library/core/src/test/assets/mkv/full_blocks.mkv.1.dump b/library/core/src/test/assets/mkv/full_blocks.mkv.1.dump index ac111d0c62..70b22f16aa 100644 --- a/library/core/src/test/assets/mkv/full_blocks.mkv.1.dump +++ b/library/core/src/test/assets/mkv/full_blocks.mkv.1.dump @@ -31,13 +31,13 @@ track 1: sample 0: time = 0 flags = 1 - data = length 59, hash A0217393 + data = length 59, hash 1AD38625 sample 1: time = 2345000 flags = 1 - data = length 95, hash 4904F2 + data = length 95, hash F331C282 sample 2: time = 4567000 flags = 1 - data = length 59, hash EFAB6D8A + data = length 59, hash F8CD7C60 tracksEnded = true diff --git a/library/core/src/test/assets/mkv/full_blocks.mkv.2.dump b/library/core/src/test/assets/mkv/full_blocks.mkv.2.dump index ac111d0c62..70b22f16aa 100644 --- a/library/core/src/test/assets/mkv/full_blocks.mkv.2.dump +++ b/library/core/src/test/assets/mkv/full_blocks.mkv.2.dump @@ -31,13 +31,13 @@ track 1: sample 0: time = 0 flags = 1 - data = length 59, hash A0217393 + data = length 59, hash 1AD38625 sample 1: time = 2345000 flags = 1 - data = length 95, hash 4904F2 + data = length 95, hash F331C282 sample 2: time = 4567000 flags = 1 - data = length 59, hash EFAB6D8A + data = length 59, hash F8CD7C60 tracksEnded = true diff --git a/library/core/src/test/assets/mkv/full_blocks.mkv.3.dump b/library/core/src/test/assets/mkv/full_blocks.mkv.3.dump index ac111d0c62..70b22f16aa 100644 --- a/library/core/src/test/assets/mkv/full_blocks.mkv.3.dump +++ b/library/core/src/test/assets/mkv/full_blocks.mkv.3.dump @@ -31,13 +31,13 @@ track 1: sample 0: time = 0 flags = 1 - data = length 59, hash A0217393 + data = length 59, hash 1AD38625 sample 1: time = 2345000 flags = 1 - data = length 95, hash 4904F2 + data = length 95, hash F331C282 sample 2: time = 4567000 flags = 1 - data = length 59, hash EFAB6D8A + data = length 59, hash F8CD7C60 tracksEnded = true