From b6f15a17e0f0a260f6e3a81040d227142da4e191 Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Tue, 15 Sep 2015 13:44:52 +0100 Subject: [PATCH] TTML improvements. - do not denormalize styles at parsing time but only put normalized style info into TtmlNode tree. Resolve styles on demand when Cues are requested for a given timeUs. - create TtmlRenderUtil to have static render functions separate - added unit test for TtmlRenderUtil - adjusted testing strategy for unit test to check resolved style on Spannables after rendering --- .../assets/ttml/chain_multiple_styles.xml | 3 + .../assets/ttml/inherit_multiple_styles.xml | 10 +- .../assets/ttml/instance_creation.xml | 24 -- .../ttml/non_inheritable_properties.xml | 19 -- .../exoplayer/text/ttml/TtmlParserTest.java | 263 +++++++----------- .../text/ttml/TtmlRenderUtilTest.java | 111 ++++++++ .../android/exoplayer/text/ttml/TtmlNode.java | 122 +++----- .../exoplayer/text/ttml/TtmlParser.java | 55 +--- .../exoplayer/text/ttml/TtmlRenderUtil.java | 143 ++++++++++ .../exoplayer/text/ttml/TtmlSubtitle.java | 12 +- 10 files changed, 421 insertions(+), 341 deletions(-) delete mode 100644 library/src/androidTest/assets/ttml/instance_creation.xml delete mode 100644 library/src/androidTest/assets/ttml/non_inheritable_properties.xml create mode 100644 library/src/androidTest/java/com/google/android/exoplayer/text/ttml/TtmlRenderUtilTest.java create mode 100644 library/src/main/java/com/google/android/exoplayer/text/ttml/TtmlRenderUtil.java diff --git a/library/src/androidTest/assets/ttml/chain_multiple_styles.xml b/library/src/androidTest/assets/ttml/chain_multiple_styles.xml index d4de3c8ef9..7bcce6527d 100644 --- a/library/src/androidTest/assets/ttml/chain_multiple_styles.xml +++ b/library/src/androidTest/assets/ttml/chain_multiple_styles.xml @@ -18,6 +18,9 @@