From 8a7e32e111fbab76e5989a7df8ea8efc00955eb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Velad=20Galv=C3=A1n?= Date: Tue, 12 Sep 2023 12:19:04 +0200 Subject: [PATCH] fix(WebVTT): Fix wrong writing-mode in nested cues (#5641) Fixes https://github.com/shaka-project/shaka-player/issues/4765 --- lib/text/vtt_text_parser.js | 4 ++-- test/text/vtt_text_parser_unit.js | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/lib/text/vtt_text_parser.js b/lib/text/vtt_text_parser.js index c92cd1068a..3e980d35af 100644 --- a/lib/text/vtt_text_parser.js +++ b/lib/text/vtt_text_parser.js @@ -401,8 +401,6 @@ shaka.text.VttTextParser = class { cue = new shaka.text.Cue(start, end, ''); } - VttTextParser.parseCueStyles(payload, cue, styles); - // Parse optional settings. parser.skipWhitespace(); let word = parser.readWord(); @@ -416,6 +414,8 @@ shaka.text.VttTextParser = class { word = parser.readWord(); } + VttTextParser.parseCueStyles(payload, cue, styles); + if (id != null) { cue.id = id; } diff --git a/test/text/vtt_text_parser_unit.js b/test/text/vtt_text_parser_unit.js index 6f9fd9b9e8..a5587198b9 100644 --- a/test/text/vtt_text_parser_unit.js +++ b/test/text/vtt_text_parser_unit.js @@ -198,15 +198,30 @@ describe('VttTextParser', () => { { startTime: 40, endTime: 50, - payload: 'Test2', + payload: '', writingMode: Cue.writingMode.VERTICAL_LEFT_TO_RIGHT, + nestedCues: [ + { + startTime: 40, + endTime: 50, + payload: 'Test', + writingMode: Cue.writingMode.VERTICAL_LEFT_TO_RIGHT, + }, + { + startTime: 40, + endTime: 50, + payload: '2', + fontWeight: Cue.fontWeight.BOLD, + writingMode: Cue.writingMode.VERTICAL_LEFT_TO_RIGHT, + }, + ], }, ], 'WEBVTT\n\n' + '00:00:20.000 --> 00:00:40.000 vertical:rl\n' + 'Test\n\n' + '00:00:40.000 --> 00:00:50.000 vertical:lr\n' + - 'Test2', + 'Test2', {periodStart: 0, segmentStart: 0, segmentEnd: 0, vttOffset: 0}); });