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