summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2014-04-16 20:47:40 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-04-16 20:47:40 +0000
commit2adb422928d35b34cfd8c52170e0df7ffc681816 (patch)
tree6f674c3b0c499e293b273cf6a9b72cae9fe76fe8 /media
parenta46ceb5881ba9d0efc422713455900f06dce4537 (diff)
parent72bbe6cca6470e86b56081c3fbe3cbb4360f5271 (diff)
downloadframeworks_base-2adb422928d35b34cfd8c52170e0df7ffc681816.zip
frameworks_base-2adb422928d35b34cfd8c52170e0df7ffc681816.tar.gz
frameworks_base-2adb422928d35b34cfd8c52170e0df7ffc681816.tar.bz2
Merge "media: don't rely on Java 6 parseInt error on leading '+' sign"
Diffstat (limited to 'media')
-rw-r--r--media/java/android/media/WebVttRenderer.java37
1 files changed, 19 insertions, 18 deletions
diff --git a/media/java/android/media/WebVttRenderer.java b/media/java/android/media/WebVttRenderer.java
index 58d3520..1c9730f 100644
--- a/media/java/android/media/WebVttRenderer.java
+++ b/media/java/android/media/WebVttRenderer.java
@@ -558,7 +558,11 @@ class TextTrackCue extends SubtitleTrack.Cue {
}
}
-/** @hide */
+/**
+ * Supporting July 10 2013 draft version
+ *
+ * @hide
+ */
class WebVttParser {
private static final String TAG = "WebVttParser";
private Phase mPhase;
@@ -726,15 +730,15 @@ class WebVttParser {
"has invalid value", e.getMessage(), value);
}
} else if (name.equals("lines")) {
- try {
- int lines = Integer.parseInt(value);
- if (lines >= 0) {
- region.mLines = lines;
- } else {
- log_warning("region setting", name, "is negative", value);
+ if (value.matches(".*[^0-9].*")) {
+ log_warning("lines", name, "contains an invalid character", value);
+ } else {
+ try {
+ region.mLines = Integer.parseInt(value);
+ assert(region.mLines >= 0); // lines contains only digits
+ } catch (NumberFormatException e) {
+ log_warning("region setting", name, "is not numeric", value);
}
- } catch (NumberFormatException e) {
- log_warning("region setting", name, "is not numeric", value);
}
} else if (name.equals("regionanchor") ||
name.equals("viewportanchor")) {
@@ -872,26 +876,23 @@ class WebVttParser {
}
} else if (name.equals("line")) {
try {
- int linePosition;
/* TRICKY: we know that there are no spaces in value */
assert(value.indexOf(' ') < 0);
if (value.endsWith("%")) {
- linePosition = Integer.parseInt(
- value.substring(0, value.length() - 1));
- if (linePosition < 0 || linePosition > 100) {
- log_warning("cue setting", name, "is out of range", value);
- continue;
- }
mCue.mSnapToLines = false;
- mCue.mLinePosition = linePosition;
+ mCue.mLinePosition = parseIntPercentage(value);
+ } else if (value.matches(".*[^0-9].*")) {
+ log_warning("cue setting", name,
+ "contains an invalid character", value);
} else {
mCue.mSnapToLines = true;
mCue.mLinePosition = Integer.parseInt(value);
}
} catch (NumberFormatException e) {
log_warning("cue setting", name,
- "is not numeric or percentage", value);
+ "is not numeric or percentage", value);
}
+ // TODO: add support for optional alignment value [,start|middle|end]
} else if (name.equals("position")) {
try {
mCue.mTextPosition = parseIntPercentage(value);