package com.mbridge.msdk.playercommon.exoplayer2.text.ttml; import android.text.Layout; import android.util.Log; import com.kuaishou.weapon.p0.u; import com.mbridge.msdk.playercommon.exoplayer2.C; import com.mbridge.msdk.playercommon.exoplayer2.text.SimpleSubtitleDecoder; import com.mbridge.msdk.playercommon.exoplayer2.text.SubtitleDecoderException; import com.mbridge.msdk.playercommon.exoplayer2.util.ColorParser; import com.mbridge.msdk.playercommon.exoplayer2.util.Util; import com.mbridge.msdk.playercommon.exoplayer2.util.XmlPullParserUtil; import com.umeng.analytics.pro.am; import java.io.ByteArrayInputStream; import java.io.IOException; import java.util.ArrayDeque; import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; public final class TtmlDecoder extends SimpleSubtitleDecoder { private static final String ATTR_BEGIN = "begin"; private static final String ATTR_DURATION = "dur"; private static final String ATTR_END = "end"; private static final String ATTR_REGION = "region"; private static final String ATTR_STYLE = "style"; private static final Pattern CELL_RESOLUTION = Pattern.compile("^(\\d+) (\\d+)$"); private static final Pattern CLOCK_TIME = Pattern.compile("^([0-9][0-9]+):([0-9][0-9]):([0-9][0-9])(?:(\\.[0-9]+)|:([0-9][0-9])(?:\\.([0-9]+))?)?$"); private static final CellResolution DEFAULT_CELL_RESOLUTION = new CellResolution(32, 15); private static final FrameAndTickRate DEFAULT_FRAME_AND_TICK_RATE = new FrameAndTickRate(30.0f, 1, 1); private static final int DEFAULT_FRAME_RATE = 30; private static final Pattern FONT_SIZE = Pattern.compile("^(([0-9]*.)?[0-9]+)(px|em|%)$"); private static final Pattern OFFSET_TIME = Pattern.compile("^([0-9]+(?:\\.[0-9]+)?)(h|m|s|ms|f|t)$"); private static final Pattern PERCENTAGE_COORDINATES = Pattern.compile("^(\\d+\\.?\\d*?)% (\\d+\\.?\\d*?)%$"); private static final String TAG = "TtmlDecoder"; private static final String TTP = "http://www.w3.org/ns/ttml#parameter"; private final XmlPullParserFactory xmlParserFactory; public TtmlDecoder() { super(TAG); try { XmlPullParserFactory newInstance = XmlPullParserFactory.newInstance(); this.xmlParserFactory = newInstance; newInstance.setNamespaceAware(true); } catch (XmlPullParserException e) { throw new RuntimeException("Couldn't create XmlPullParserFactory instance", e); } } /* access modifiers changed from: protected */ @Override // com.mbridge.msdk.playercommon.exoplayer2.text.SimpleSubtitleDecoder public final TtmlSubtitle decode(byte[] bArr, int i, boolean z) throws SubtitleDecoderException { try { XmlPullParser newPullParser = this.xmlParserFactory.newPullParser(); HashMap hashMap = new HashMap(); HashMap hashMap2 = new HashMap(); TtmlSubtitle ttmlSubtitle = null; hashMap2.put("", new TtmlRegion(null)); int i2 = 0; newPullParser.setInput(new ByteArrayInputStream(bArr, 0, i), null); ArrayDeque arrayDeque = new ArrayDeque(); FrameAndTickRate frameAndTickRate = DEFAULT_FRAME_AND_TICK_RATE; CellResolution cellResolution = DEFAULT_CELL_RESOLUTION; for (int eventType = newPullParser.getEventType(); eventType != 1; eventType = newPullParser.getEventType()) { TtmlNode ttmlNode = (TtmlNode) arrayDeque.peek(); if (i2 == 0) { String name = newPullParser.getName(); if (eventType == 2) { if (TtmlNode.TAG_TT.equals(name)) { frameAndTickRate = parseFrameAndTickRates(newPullParser); cellResolution = parseCellResolution(newPullParser, DEFAULT_CELL_RESOLUTION); } if (!isSupportedTag(name)) { Log.i(TAG, "Ignoring unsupported tag: " + newPullParser.getName()); } else if (TtmlNode.TAG_HEAD.equals(name)) { parseHeader(newPullParser, hashMap, hashMap2, cellResolution); } else { try { TtmlNode parseNode = parseNode(newPullParser, ttmlNode, hashMap2, frameAndTickRate); arrayDeque.push(parseNode); if (ttmlNode != null) { ttmlNode.addChild(parseNode); } } catch (SubtitleDecoderException e) { Log.w(TAG, "Suppressing parser error", e); } } } else if (eventType == 4) { ttmlNode.addChild(TtmlNode.buildTextNode(newPullParser.getText())); } else if (eventType == 3) { if (newPullParser.getName().equals(TtmlNode.TAG_TT)) { ttmlSubtitle = new TtmlSubtitle((TtmlNode) arrayDeque.peek(), hashMap, hashMap2); } arrayDeque.pop(); } newPullParser.next(); } else if (eventType != 2) { if (eventType == 3) { i2--; } newPullParser.next(); } i2++; newPullParser.next(); } return ttmlSubtitle; } catch (XmlPullParserException e2) { throw new SubtitleDecoderException("Unable to decode source", e2); } catch (IOException e3) { throw new IllegalStateException("Unexpected error when reading input.", e3); } } private FrameAndTickRate parseFrameAndTickRates(XmlPullParser xmlPullParser) throws SubtitleDecoderException { String attributeValue = xmlPullParser.getAttributeValue(TTP, "frameRate"); int parseInt = attributeValue != null ? Integer.parseInt(attributeValue) : 30; float f = 1.0f; String attributeValue2 = xmlPullParser.getAttributeValue(TTP, "frameRateMultiplier"); if (attributeValue2 != null) { String[] split = Util.split(attributeValue2, " "); if (split.length == 2) { f = ((float) Integer.parseInt(split[0])) / ((float) Integer.parseInt(split[1])); } else { throw new SubtitleDecoderException("frameRateMultiplier doesn't have 2 parts"); } } FrameAndTickRate frameAndTickRate = DEFAULT_FRAME_AND_TICK_RATE; int i = frameAndTickRate.subFrameRate; String attributeValue3 = xmlPullParser.getAttributeValue(TTP, "subFrameRate"); if (attributeValue3 != null) { i = Integer.parseInt(attributeValue3); } int i2 = frameAndTickRate.tickRate; String attributeValue4 = xmlPullParser.getAttributeValue(TTP, "tickRate"); if (attributeValue4 != null) { i2 = Integer.parseInt(attributeValue4); } return new FrameAndTickRate(((float) parseInt) * f, i, i2); } private CellResolution parseCellResolution(XmlPullParser xmlPullParser, CellResolution cellResolution) throws SubtitleDecoderException { String attributeValue = xmlPullParser.getAttributeValue(TTP, "cellResolution"); if (attributeValue == null) { return cellResolution; } Matcher matcher = CELL_RESOLUTION.matcher(attributeValue); if (!matcher.matches()) { Log.w(TAG, "Ignoring malformed cell resolution: " + attributeValue); return cellResolution; } try { int parseInt = Integer.parseInt(matcher.group(1)); int parseInt2 = Integer.parseInt(matcher.group(2)); if (parseInt != 0 && parseInt2 != 0) { return new CellResolution(parseInt, parseInt2); } throw new SubtitleDecoderException("Invalid cell resolution " + parseInt + " " + parseInt2); } catch (NumberFormatException unused) { Log.w(TAG, "Ignoring malformed cell resolution: " + attributeValue); return cellResolution; } } private Map<String, TtmlStyle> parseHeader(XmlPullParser xmlPullParser, Map<String, TtmlStyle> map, Map<String, TtmlRegion> map2, CellResolution cellResolution) throws IOException, XmlPullParserException { TtmlRegion parseRegionAttributes; do { xmlPullParser.next(); if (XmlPullParserUtil.isStartTag(xmlPullParser, "style")) { String attributeValue = XmlPullParserUtil.getAttributeValue(xmlPullParser, "style"); TtmlStyle parseStyleAttributes = parseStyleAttributes(xmlPullParser, new TtmlStyle()); if (attributeValue != null) { for (String str : parseStyleIds(attributeValue)) { parseStyleAttributes.chain(map.get(str)); } } if (parseStyleAttributes.getId() != null) { map.put(parseStyleAttributes.getId(), parseStyleAttributes); } } else if (XmlPullParserUtil.isStartTag(xmlPullParser, "region") && (parseRegionAttributes = parseRegionAttributes(xmlPullParser, cellResolution)) != null) { map2.put(parseRegionAttributes.id, parseRegionAttributes); } } while (!XmlPullParserUtil.isEndTag(xmlPullParser, TtmlNode.TAG_HEAD)); return map; } private TtmlRegion parseRegionAttributes(XmlPullParser xmlPullParser, CellResolution cellResolution) { float f; String attributeValue = XmlPullParserUtil.getAttributeValue(xmlPullParser, "id"); if (attributeValue == null) { return null; } String attributeValue2 = XmlPullParserUtil.getAttributeValue(xmlPullParser, TtmlNode.ATTR_TTS_ORIGIN); if (attributeValue2 != null) { Pattern pattern = PERCENTAGE_COORDINATES; Matcher matcher = pattern.matcher(attributeValue2); if (matcher.matches()) { int i = 1; try { float parseFloat = Float.parseFloat(matcher.group(1)) / 100.0f; float parseFloat2 = Float.parseFloat(matcher.group(2)) / 100.0f; String attributeValue3 = XmlPullParserUtil.getAttributeValue(xmlPullParser, TtmlNode.ATTR_TTS_EXTENT); if (attributeValue3 != null) { Matcher matcher2 = pattern.matcher(attributeValue3); if (matcher2.matches()) { try { float parseFloat3 = Float.parseFloat(matcher2.group(1)) / 100.0f; float parseFloat4 = Float.parseFloat(matcher2.group(2)) / 100.0f; String attributeValue4 = XmlPullParserUtil.getAttributeValue(xmlPullParser, TtmlNode.ATTR_TTS_DISPLAY_ALIGN); if (attributeValue4 != null) { String lowerInvariant = Util.toLowerInvariant(attributeValue4); lowerInvariant.hashCode(); if (lowerInvariant.equals(TtmlNode.CENTER)) { f = parseFloat2 + (parseFloat4 / 2.0f); } else if (lowerInvariant.equals("after")) { f = parseFloat2 + parseFloat4; i = 2; } return new TtmlRegion(attributeValue, parseFloat, f, 0, i, parseFloat3, 1, 1.0f / ((float) cellResolution.rows)); } f = parseFloat2; i = 0; return new TtmlRegion(attributeValue, parseFloat, f, 0, i, parseFloat3, 1, 1.0f / ((float) cellResolution.rows)); } catch (NumberFormatException unused) { Log.w(TAG, "Ignoring region with malformed extent: " + attributeValue2); return null; } } else { Log.w(TAG, "Ignoring region with unsupported extent: " + attributeValue2); return null; } } else { Log.w(TAG, "Ignoring region without an extent"); return null; } } catch (NumberFormatException unused2) { Log.w(TAG, "Ignoring region with malformed origin: " + attributeValue2); return null; } } else { Log.w(TAG, "Ignoring region with unsupported origin: " + attributeValue2); return null; } } else { Log.w(TAG, "Ignoring region without an origin"); return null; } } private String[] parseStyleIds(String str) { String trim = str.trim(); return trim.isEmpty() ? new String[0] : Util.split(trim, "\\s+"); } /* JADX INFO: Can't fix incorrect switch cases order, some code will duplicate */ /* JADX WARNING: Code restructure failed: missing block: B:56:0x012e, code lost: if (r3.equals(com.mbridge.msdk.playercommon.exoplayer2.text.ttml.TtmlNode.LINETHROUGH) == false) goto L_0x0126; */ /* JADX WARNING: Code restructure failed: missing block: B:75:0x0194, code lost: if (r3.equals("start") == false) goto L_0x018c; */ private TtmlStyle parseStyleAttributes(XmlPullParser xmlPullParser, TtmlStyle ttmlStyle) { char c; int attributeCount = xmlPullParser.getAttributeCount(); for (int i = 0; i < attributeCount; i++) { String attributeValue = xmlPullParser.getAttributeValue(i); String attributeName = xmlPullParser.getAttributeName(i); attributeName.hashCode(); char c2 = 4; char c3 = 3; switch (attributeName.hashCode()) { case -1550943582: if (attributeName.equals(TtmlNode.ATTR_TTS_FONT_STYLE)) { c = 0; break; } c = 65535; break; case -1224696685: if (attributeName.equals(TtmlNode.ATTR_TTS_FONT_FAMILY)) { c = 1; break; } c = 65535; break; case -1065511464: if (attributeName.equals(TtmlNode.ATTR_TTS_TEXT_ALIGN)) { c = 2; break; } c = 65535; break; case -879295043: if (attributeName.equals(TtmlNode.ATTR_TTS_TEXT_DECORATION)) { c = 3; break; } c = 65535; break; case -734428249: if (attributeName.equals(TtmlNode.ATTR_TTS_FONT_WEIGHT)) { c = 4; break; } c = 65535; break; case 3355: if (attributeName.equals("id")) { c = 5; break; } c = 65535; break; case 94842723: if (attributeName.equals("color")) { c = 6; break; } c = 65535; break; case 365601008: if (attributeName.equals(TtmlNode.ATTR_TTS_FONT_SIZE)) { c = 7; break; } c = 65535; break; case 1287124693: if (attributeName.equals(TtmlNode.ATTR_TTS_BACKGROUND_COLOR)) { c = '\b'; break; } c = 65535; break; default: c = 65535; break; } switch (c) { case 0: ttmlStyle = createIfNull(ttmlStyle).setItalic(TtmlNode.ITALIC.equalsIgnoreCase(attributeValue)); break; case 1: ttmlStyle = createIfNull(ttmlStyle).setFontFamily(attributeValue); break; case 2: String lowerInvariant = Util.toLowerInvariant(attributeValue); lowerInvariant.hashCode(); switch (lowerInvariant.hashCode()) { case -1364013995: if (lowerInvariant.equals(TtmlNode.CENTER)) { c2 = 0; break; } c2 = 65535; break; case 100571: if (lowerInvariant.equals("end")) { c2 = 1; break; } c2 = 65535; break; case 3317767: if (lowerInvariant.equals(TtmlNode.LEFT)) { c2 = 2; break; } c2 = 65535; break; case 108511772: if (lowerInvariant.equals(TtmlNode.RIGHT)) { c2 = 3; break; } c2 = 65535; break; case 109757538: break; default: c2 = 65535; break; } switch (c2) { case 0: ttmlStyle = createIfNull(ttmlStyle).setTextAlign(Layout.Alignment.ALIGN_CENTER); continue; case 1: ttmlStyle = createIfNull(ttmlStyle).setTextAlign(Layout.Alignment.ALIGN_OPPOSITE); continue; case 2: ttmlStyle = createIfNull(ttmlStyle).setTextAlign(Layout.Alignment.ALIGN_NORMAL); continue; case 3: ttmlStyle = createIfNull(ttmlStyle).setTextAlign(Layout.Alignment.ALIGN_OPPOSITE); continue; case 4: ttmlStyle = createIfNull(ttmlStyle).setTextAlign(Layout.Alignment.ALIGN_NORMAL); continue; } case 3: String lowerInvariant2 = Util.toLowerInvariant(attributeValue); lowerInvariant2.hashCode(); switch (lowerInvariant2.hashCode()) { case -1461280213: if (lowerInvariant2.equals(TtmlNode.NO_UNDERLINE)) { c3 = 0; break; } c3 = 65535; break; case -1026963764: if (lowerInvariant2.equals(TtmlNode.UNDERLINE)) { c3 = 1; break; } c3 = 65535; break; case 913457136: if (lowerInvariant2.equals(TtmlNode.NO_LINETHROUGH)) { c3 = 2; break; } c3 = 65535; break; case 1679736913: break; default: c3 = 65535; break; } switch (c3) { case 0: ttmlStyle = createIfNull(ttmlStyle).setUnderline(false); continue; case 1: ttmlStyle = createIfNull(ttmlStyle).setUnderline(true); continue; case 2: ttmlStyle = createIfNull(ttmlStyle).setLinethrough(false); continue; case 3: ttmlStyle = createIfNull(ttmlStyle).setLinethrough(true); continue; } case 4: ttmlStyle = createIfNull(ttmlStyle).setBold(TtmlNode.BOLD.equalsIgnoreCase(attributeValue)); break; case 5: if ("style".equals(xmlPullParser.getName())) { ttmlStyle = createIfNull(ttmlStyle).setId(attributeValue); break; } else { break; } case 6: ttmlStyle = createIfNull(ttmlStyle); try { ttmlStyle.setFontColor(ColorParser.parseTtmlColor(attributeValue)); break; } catch (IllegalArgumentException unused) { Log.w(TAG, "Failed parsing color value: " + attributeValue); break; } case 7: try { ttmlStyle = createIfNull(ttmlStyle); parseFontSize(attributeValue, ttmlStyle); break; } catch (SubtitleDecoderException unused2) { Log.w(TAG, "Failed parsing fontSize value: " + attributeValue); break; } case '\b': ttmlStyle = createIfNull(ttmlStyle); try { ttmlStyle.setBackgroundColor(ColorParser.parseTtmlColor(attributeValue)); break; } catch (IllegalArgumentException unused3) { Log.w(TAG, "Failed parsing background value: " + attributeValue); break; } } } return ttmlStyle; } private TtmlStyle createIfNull(TtmlStyle ttmlStyle) { return ttmlStyle == null ? new TtmlStyle() : ttmlStyle; } /* JADX INFO: Can't fix incorrect switch cases order, some code will duplicate */ private TtmlNode parseNode(XmlPullParser xmlPullParser, TtmlNode ttmlNode, Map<String, TtmlRegion> map, FrameAndTickRate frameAndTickRate) throws SubtitleDecoderException { long j; long j2; char c; int attributeCount = xmlPullParser.getAttributeCount(); TtmlStyle parseStyleAttributes = parseStyleAttributes(xmlPullParser, null); String[] strArr = null; String str = ""; long j3 = C.TIME_UNSET; long j4 = C.TIME_UNSET; long j5 = C.TIME_UNSET; for (int i = 0; i < attributeCount; i++) { String attributeName = xmlPullParser.getAttributeName(i); String attributeValue = xmlPullParser.getAttributeValue(i); attributeName.hashCode(); switch (attributeName.hashCode()) { case -934795532: if (attributeName.equals("region")) { c = 0; break; } c = 65535; break; case 99841: if (attributeName.equals(ATTR_DURATION)) { c = 1; break; } c = 65535; break; case 100571: if (attributeName.equals("end")) { c = 2; break; } c = 65535; break; case 93616297: if (attributeName.equals(ATTR_BEGIN)) { c = 3; break; } c = 65535; break; case 109780401: if (attributeName.equals("style")) { c = 4; break; } c = 65535; break; default: c = 65535; break; } switch (c) { case 0: if (map.containsKey(attributeValue)) { str = attributeValue; continue; } case 1: j5 = parseTimeExpression(attributeValue, frameAndTickRate); break; case 2: j4 = parseTimeExpression(attributeValue, frameAndTickRate); break; case 3: j3 = parseTimeExpression(attributeValue, frameAndTickRate); break; case 4: String[] parseStyleIds = parseStyleIds(attributeValue); if (parseStyleIds.length > 0) { strArr = parseStyleIds; break; } break; } } if (ttmlNode != null) { long j6 = ttmlNode.startTimeUs; j = C.TIME_UNSET; if (j6 != C.TIME_UNSET) { if (j3 != C.TIME_UNSET) { j3 += ttmlNode.startTimeUs; } if (j4 != C.TIME_UNSET) { j4 += ttmlNode.startTimeUs; } } } else { j = C.TIME_UNSET; } if (j4 == j) { if (j5 != j) { j2 = j3 + j5; } else if (!(ttmlNode == null || ttmlNode.endTimeUs == j)) { j2 = ttmlNode.endTimeUs; } return TtmlNode.buildNode(xmlPullParser.getName(), j3, j2, parseStyleAttributes, strArr, str); } j2 = j4; return TtmlNode.buildNode(xmlPullParser.getName(), j3, j2, parseStyleAttributes, strArr, str); } private static boolean isSupportedTag(String str) { return str.equals(TtmlNode.TAG_TT) || str.equals(TtmlNode.TAG_HEAD) || str.equals(TtmlNode.TAG_BODY) || str.equals(TtmlNode.TAG_DIV) || str.equals("p") || str.equals(TtmlNode.TAG_SPAN) || str.equals(TtmlNode.TAG_BR) || str.equals("style") || str.equals(TtmlNode.TAG_STYLING) || str.equals(TtmlNode.TAG_LAYOUT) || str.equals("region") || str.equals(TtmlNode.TAG_METADATA) || str.equals(TtmlNode.TAG_SMPTE_IMAGE) || str.equals(TtmlNode.TAG_SMPTE_DATA) || str.equals(TtmlNode.TAG_SMPTE_INFORMATION); } private static void parseFontSize(String str, TtmlStyle ttmlStyle) throws SubtitleDecoderException { Matcher matcher; String[] split = Util.split(str, "\\s+"); if (split.length == 1) { matcher = FONT_SIZE.matcher(str); } else if (split.length == 2) { matcher = FONT_SIZE.matcher(split[1]); Log.w(TAG, "Multiple values in fontSize attribute. Picking the second value for vertical font size and ignoring the first."); } else { throw new SubtitleDecoderException("Invalid number of entries for fontSize: " + split.length + "."); } if (matcher.matches()) { String group = matcher.group(3); group.hashCode(); char c = 65535; switch (group.hashCode()) { case 37: if (group.equals("%")) { c = 0; break; } break; case 3240: if (group.equals("em")) { c = 1; break; } break; case 3592: if (group.equals("px")) { c = 2; break; } break; } switch (c) { case 0: ttmlStyle.setFontSizeUnit(3); break; case 1: ttmlStyle.setFontSizeUnit(2); break; case 2: ttmlStyle.setFontSizeUnit(1); break; default: throw new SubtitleDecoderException("Invalid unit for fontSize: '" + group + "'."); } ttmlStyle.setFontSize(Float.valueOf(matcher.group(1)).floatValue()); return; } throw new SubtitleDecoderException("Invalid expression for fontSize: '" + str + "'."); } /* JADX INFO: Can't fix incorrect switch cases order, some code will duplicate */ /* JADX WARNING: Code restructure failed: missing block: B:21:0x00a1, code lost: if (r13.equals("ms") == false) goto L_0x0099; */ private static long parseTimeExpression(String str, FrameAndTickRate frameAndTickRate) throws SubtitleDecoderException { double d; double d2; Matcher matcher = CLOCK_TIME.matcher(str); char c = 4; if (matcher.matches()) { double parseLong = ((double) (Long.parseLong(matcher.group(1)) * 3600)) + ((double) (Long.parseLong(matcher.group(2)) * 60)) + ((double) Long.parseLong(matcher.group(3))); String group = matcher.group(4); double d3 = 0.0d; double parseDouble = parseLong + (group != null ? Double.parseDouble(group) : 0.0d); String group2 = matcher.group(5); double parseLong2 = parseDouble + (group2 != null ? (double) (((float) Long.parseLong(group2)) / frameAndTickRate.effectiveFrameRate) : 0.0d); String group3 = matcher.group(6); if (group3 != null) { d3 = (((double) Long.parseLong(group3)) / ((double) frameAndTickRate.subFrameRate)) / ((double) frameAndTickRate.effectiveFrameRate); } return (long) ((parseLong2 + d3) * 1000000.0d); } Matcher matcher2 = OFFSET_TIME.matcher(str); if (matcher2.matches()) { double parseDouble2 = Double.parseDouble(matcher2.group(1)); String group4 = matcher2.group(2); group4.hashCode(); switch (group4.hashCode()) { case 102: if (group4.equals("f")) { c = 0; break; } c = 65535; break; case 104: if (group4.equals("h")) { c = 1; break; } c = 65535; break; case 109: if (group4.equals(u.r)) { c = 2; break; } c = 65535; break; case 116: if (group4.equals(am.aI)) { c = 3; break; } c = 65535; break; case 3494: break; default: c = 65535; break; } switch (c) { case 0: d = (double) frameAndTickRate.effectiveFrameRate; parseDouble2 /= d; return (long) (parseDouble2 * 1000000.0d); case 1: d2 = 3600.0d; parseDouble2 *= d2; return (long) (parseDouble2 * 1000000.0d); case 2: d2 = 60.0d; parseDouble2 *= d2; return (long) (parseDouble2 * 1000000.0d); case 3: d = (double) frameAndTickRate.tickRate; parseDouble2 /= d; return (long) (parseDouble2 * 1000000.0d); case 4: d = 1000.0d; parseDouble2 /= d; return (long) (parseDouble2 * 1000000.0d); default: return (long) (parseDouble2 * 1000000.0d); } } else { throw new SubtitleDecoderException("Malformed time expression: " + str); } } /* access modifiers changed from: private */ public static final class FrameAndTickRate { final float effectiveFrameRate; final int subFrameRate; final int tickRate; FrameAndTickRate(float f, int i, int i2) { this.effectiveFrameRate = f; this.subFrameRate = i; this.tickRate = i2; } } /* access modifiers changed from: private */ public static final class CellResolution { final int columns; final int rows; CellResolution(int i, int i2) { this.columns = i; this.rows = i2; } } }