176 lines
6.5 KiB
Java
176 lines
6.5 KiB
Java
package c.i.a.c.e2.t;
|
|
|
|
import android.text.SpannableStringBuilder;
|
|
import android.text.style.ForegroundColorSpan;
|
|
import android.text.style.StyleSpan;
|
|
import android.text.style.TypefaceSpan;
|
|
import android.text.style.UnderlineSpan;
|
|
import android.util.Log;
|
|
import c.i.a.c.e2.d;
|
|
import c.i.a.c.e2.f;
|
|
import c.i.a.c.i2.f0;
|
|
import c.i.a.c.i2.w;
|
|
import c.i.b.a.c;
|
|
import com.google.android.exoplayer2.text.SubtitleDecoderException;
|
|
import java.util.List;
|
|
/* compiled from: Tx3gDecoder */
|
|
public final class a extends d {
|
|
public final w n = new w();
|
|
public final boolean o;
|
|
public final int p;
|
|
public final int q;
|
|
public final String r;
|
|
|
|
/* renamed from: s reason: collision with root package name */
|
|
public final float f852s;
|
|
public final int t;
|
|
|
|
public a(List<byte[]> list) {
|
|
super("Tx3gDecoder");
|
|
String str = "sans-serif";
|
|
boolean z2 = true;
|
|
if (list.size() == 1 && (list.get(0).length == 48 || list.get(0).length == 53)) {
|
|
byte[] bArr = list.get(0);
|
|
this.p = bArr[24];
|
|
this.q = ((bArr[26] & 255) << 24) | ((bArr[27] & 255) << 16) | ((bArr[28] & 255) << 8) | (bArr[29] & 255);
|
|
this.r = "Serif".equals(f0.m(bArr, 43, bArr.length - 43)) ? "serif" : str;
|
|
int i = bArr[25] * 20;
|
|
this.t = i;
|
|
z2 = (bArr[0] & 32) == 0 ? false : z2;
|
|
this.o = z2;
|
|
if (z2) {
|
|
this.f852s = f0.g(((float) ((bArr[11] & 255) | ((bArr[10] & 255) << 8))) / ((float) i), 0.0f, 0.95f);
|
|
} else {
|
|
this.f852s = 0.85f;
|
|
}
|
|
} else {
|
|
this.p = 0;
|
|
this.q = -1;
|
|
this.r = str;
|
|
this.o = false;
|
|
this.f852s = 0.85f;
|
|
this.t = -1;
|
|
}
|
|
}
|
|
|
|
public static void k(boolean z2) throws SubtitleDecoderException {
|
|
if (!z2) {
|
|
throw new SubtitleDecoderException("Unexpected subtitle format.");
|
|
}
|
|
}
|
|
|
|
public static void l(SpannableStringBuilder spannableStringBuilder, int i, int i2, int i3, int i4, int i5) {
|
|
if (i != i2) {
|
|
int i6 = i5 | 33;
|
|
boolean z2 = true;
|
|
boolean z3 = (i & 1) != 0;
|
|
boolean z4 = (i & 2) != 0;
|
|
if (z3) {
|
|
if (z4) {
|
|
spannableStringBuilder.setSpan(new StyleSpan(3), i3, i4, i6);
|
|
} else {
|
|
spannableStringBuilder.setSpan(new StyleSpan(1), i3, i4, i6);
|
|
}
|
|
} else if (z4) {
|
|
spannableStringBuilder.setSpan(new StyleSpan(2), i3, i4, i6);
|
|
}
|
|
if ((i & 4) == 0) {
|
|
z2 = false;
|
|
}
|
|
if (z2) {
|
|
spannableStringBuilder.setSpan(new UnderlineSpan(), i3, i4, i6);
|
|
}
|
|
if (!z2 && !z3 && !z4) {
|
|
spannableStringBuilder.setSpan(new StyleSpan(0), i3, i4, i6);
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // c.i.a.c.e2.d
|
|
public f j(byte[] bArr, int i, boolean z2) throws SubtitleDecoderException {
|
|
String str;
|
|
w wVar = this.n;
|
|
wVar.a = bArr;
|
|
wVar.f913c = i;
|
|
wVar.b = 0;
|
|
int i2 = 2;
|
|
int i3 = 1;
|
|
k(wVar.a() >= 2);
|
|
int x2 = wVar.x();
|
|
if (x2 == 0) {
|
|
str = "";
|
|
} else {
|
|
if (wVar.a() >= 2) {
|
|
byte[] bArr2 = wVar.a;
|
|
int i4 = wVar.b;
|
|
char c2 = (char) ((bArr2[i4 + 1] & 255) | ((bArr2[i4] & 255) << 8));
|
|
if (c2 == 65279 || c2 == 65534) {
|
|
str = wVar.q(x2, c.e);
|
|
}
|
|
}
|
|
str = wVar.q(x2, c.f1266c);
|
|
}
|
|
if (str.isEmpty()) {
|
|
return b.i;
|
|
}
|
|
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(str);
|
|
l(spannableStringBuilder, this.p, 0, 0, spannableStringBuilder.length(), 16711680);
|
|
int i5 = this.q;
|
|
int length = spannableStringBuilder.length();
|
|
if (i5 != -1) {
|
|
spannableStringBuilder.setSpan(new ForegroundColorSpan((i5 >>> 8) | ((i5 & 255) << 24)), 0, length, 16711713);
|
|
}
|
|
String str2 = this.r;
|
|
int length2 = spannableStringBuilder.length();
|
|
if (str2 != "sans-serif") {
|
|
spannableStringBuilder.setSpan(new TypefaceSpan(str2), 0, length2, 16711713);
|
|
}
|
|
float f = this.f852s;
|
|
for (int i6 = 8; this.n.a() >= i6; i6 = 8) {
|
|
w wVar2 = this.n;
|
|
int i7 = wVar2.b;
|
|
int f2 = wVar2.f();
|
|
int f3 = this.n.f();
|
|
if (f3 == 1937013100) {
|
|
k(this.n.a() >= i2);
|
|
int x3 = this.n.x();
|
|
int i8 = 0;
|
|
while (i8 < x3) {
|
|
w wVar3 = this.n;
|
|
k(wVar3.a() >= 12);
|
|
int x4 = wVar3.x();
|
|
int x5 = wVar3.x();
|
|
wVar3.E(i2);
|
|
int s2 = wVar3.s();
|
|
wVar3.E(i3);
|
|
int f4 = wVar3.f();
|
|
if (x5 > spannableStringBuilder.length()) {
|
|
StringBuilder L = c.d.b.a.a.L("Truncating styl end (", x5, ") to cueText.length() (");
|
|
L.append(spannableStringBuilder.length());
|
|
L.append(").");
|
|
Log.w("Tx3gDecoder", L.toString());
|
|
x5 = spannableStringBuilder.length();
|
|
}
|
|
if (x4 >= x5) {
|
|
Log.w("Tx3gDecoder", c.d.b.a.a.n("Ignoring styl with start (", x4, ") >= end (", x5, ")."));
|
|
} else {
|
|
l(spannableStringBuilder, s2, this.p, x4, x5, 0);
|
|
if (f4 != this.q) {
|
|
spannableStringBuilder.setSpan(new ForegroundColorSpan(((f4 & 255) << 24) | (f4 >>> 8)), x4, x5, 33);
|
|
}
|
|
}
|
|
i8++;
|
|
i2 = 2;
|
|
i3 = 1;
|
|
}
|
|
} else if (f3 == 1952608120 && this.o) {
|
|
k(this.n.a() >= 2);
|
|
f = f0.g(((float) this.n.x()) / ((float) this.t), 0.0f, 0.95f);
|
|
}
|
|
this.n.D(i7 + f2);
|
|
i2 = 2;
|
|
i3 = 1;
|
|
}
|
|
return new b(new c.i.a.c.e2.c(spannableStringBuilder, null, null, f, 0, 0, -3.4028235E38f, Integer.MIN_VALUE, Integer.MIN_VALUE, -3.4028235E38f, -3.4028235E38f, -3.4028235E38f, false, -16777216, Integer.MIN_VALUE, 0.0f, null));
|
|
}
|
|
}
|