package c.i.a.c.c2.k; import android.util.Log; import androidx.annotation.Nullable; import c.i.a.c.c2.d; import c.i.a.c.c2.g; import c.i.a.c.i2.f0; import c.i.a.c.i2.v; import c.i.a.c.i2.w; import com.google.android.exoplayer2.metadata.Metadata; import com.google.android.exoplayer2.metadata.id3.ApicFrame; import com.google.android.exoplayer2.metadata.id3.BinaryFrame; import com.google.android.exoplayer2.metadata.id3.ChapterFrame; import com.google.android.exoplayer2.metadata.id3.ChapterTocFrame; import com.google.android.exoplayer2.metadata.id3.CommentFrame; import com.google.android.exoplayer2.metadata.id3.GeobFrame; import com.google.android.exoplayer2.metadata.id3.Id3Frame; import com.google.android.exoplayer2.metadata.id3.MlltFrame; import com.google.android.exoplayer2.metadata.id3.PrivFrame; import com.google.android.exoplayer2.metadata.id3.TextInformationFrame; import com.google.android.exoplayer2.metadata.id3.UrlLinkFrame; import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; import java.util.Locale; /* compiled from: Id3Decoder */ public final class b extends g { public static final /* synthetic */ int a = 0; @Nullable public final a b; /* compiled from: Id3Decoder */ public interface a { boolean a(int i, int i2, int i3, int i4, int i5); } /* compiled from: Id3Decoder */ /* renamed from: c.i.a.c.c2.k.b$b reason: collision with other inner class name */ public static final class C0085b { public final int a; public final boolean b; /* renamed from: c reason: collision with root package name */ public final int f779c; public C0085b(int i, boolean z2, int i2) { this.a = i; this.b = z2; this.f779c = i2; } } public b() { this.b = null; } public b(@Nullable a aVar) { this.b = aVar; } public static byte[] c(byte[] bArr, int i, int i2) { return i2 <= i ? f0.f : Arrays.copyOfRange(bArr, i, i2); } public static ApicFrame e(w wVar, int i, int i2) throws UnsupportedEncodingException { String str; int i3; int s2 = wVar.s(); String t = t(s2); int i4 = i - 1; byte[] bArr = new byte[i4]; System.arraycopy(wVar.a, wVar.b, bArr, 0, i4); wVar.b += i4; if (i2 == 2) { StringBuilder K = c.d.b.a.a.K("image/"); K.append(f0.K(new String(bArr, 0, 3, "ISO-8859-1"))); str = K.toString(); if ("image/jpg".equals(str)) { str = "image/jpeg"; } i3 = 2; } else { int w = w(bArr, 0); String K2 = f0.K(new String(bArr, 0, w, "ISO-8859-1")); if (K2.indexOf(47) == -1) { i3 = w; str = c.d.b.a.a.s("image/", K2); } else { i3 = w; str = K2; } } int i5 = i3 + 2; int v = v(bArr, i5, s2); return new ApicFrame(str, new String(bArr, i5, v - i5, t), bArr[i3 + 1] & 255, c(bArr, s(s2) + v, i4)); } public static BinaryFrame f(w wVar, int i, String str) { byte[] bArr = new byte[i]; System.arraycopy(wVar.a, wVar.b, bArr, 0, i); wVar.b += i; return new BinaryFrame(str, bArr); } public static ChapterFrame g(w wVar, int i, int i2, boolean z2, int i3, @Nullable a aVar) throws UnsupportedEncodingException { int i4 = wVar.b; int w = w(wVar.a, i4); String str = new String(wVar.a, i4, w - i4, "ISO-8859-1"); wVar.D(w + 1); int f = wVar.f(); int f2 = wVar.f(); long t = wVar.t(); long j = t == 4294967295L ? -1 : t; long t2 = wVar.t(); long j2 = t2 == 4294967295L ? -1 : t2; ArrayList arrayList = new ArrayList(); int i5 = i4 + i; while (wVar.b < i5) { Id3Frame j3 = j(i2, wVar, z2, i3, aVar); if (j3 != null) { arrayList.add(j3); } } return new ChapterFrame(str, f, f2, j, j2, (Id3Frame[]) arrayList.toArray(new Id3Frame[0])); } public static ChapterTocFrame h(w wVar, int i, int i2, boolean z2, int i3, @Nullable a aVar) throws UnsupportedEncodingException { int i4 = wVar.b; int w = w(wVar.a, i4); String str = new String(wVar.a, i4, w - i4, "ISO-8859-1"); wVar.D(w + 1); int s2 = wVar.s(); boolean z3 = (s2 & 2) != 0; boolean z4 = (s2 & 1) != 0; int s3 = wVar.s(); String[] strArr = new String[s3]; for (int i5 = 0; i5 < s3; i5++) { int i6 = wVar.b; int w2 = w(wVar.a, i6); strArr[i5] = new String(wVar.a, i6, w2 - i6, "ISO-8859-1"); wVar.D(w2 + 1); } ArrayList arrayList = new ArrayList(); int i7 = i4 + i; while (wVar.b < i7) { Id3Frame j = j(i2, wVar, z2, i3, aVar); if (j != null) { arrayList.add(j); } } return new ChapterTocFrame(str, z3, z4, strArr, (Id3Frame[]) arrayList.toArray(new Id3Frame[0])); } @Nullable public static CommentFrame i(w wVar, int i) throws UnsupportedEncodingException { if (i < 4) { return null; } int s2 = wVar.s(); String t = t(s2); byte[] bArr = new byte[3]; System.arraycopy(wVar.a, wVar.b, bArr, 0, 3); wVar.b += 3; String str = new String(bArr, 0, 3); int i2 = i - 4; byte[] bArr2 = new byte[i2]; System.arraycopy(wVar.a, wVar.b, bArr2, 0, i2); wVar.b += i2; int v = v(bArr2, 0, s2); String str2 = new String(bArr2, 0, v, t); int s3 = s(s2) + v; return new CommentFrame(str, str2, n(bArr2, s3, v(bArr2, s3, s2), t)); } /* JADX WARNING: Code restructure failed: missing block: B:129:0x0188, code lost: if (r13 == 67) goto L_0x018a; */ @Nullable public static Id3Frame j(int i, w wVar, boolean z2, int i2, @Nullable a aVar) { int v; int i3; int i4; String str; boolean z3; boolean z4; boolean z5; boolean z6; boolean z7; Id3Frame id3Frame; int s2 = wVar.s(); int s3 = wVar.s(); int s4 = wVar.s(); int s5 = i >= 3 ? wVar.s() : 0; if (i == 4) { v = wVar.v(); if (!z2) { v = (((v >> 24) & 255) << 21) | (v & 255) | (((v >> 8) & 255) << 7) | (((v >> 16) & 255) << 14); } } else { v = i == 3 ? wVar.v() : wVar.u(); } int i5 = v; int x2 = i >= 3 ? wVar.x() : 0; if (s2 == 0 && s3 == 0 && s4 == 0 && s5 == 0 && i5 == 0 && x2 == 0) { wVar.D(wVar.f913c); return null; } int i6 = wVar.b + i5; if (i6 > wVar.f913c) { Log.w("Id3Decoder", "Frame size exceeds remaining tag data"); wVar.D(wVar.f913c); return null; } if (aVar != null) { str = "Id3Decoder"; i4 = i6; i3 = x2; if (!aVar.a(i, s2, s3, s4, s5)) { wVar.D(i4); return null; } } else { str = "Id3Decoder"; i4 = i6; i3 = x2; } if (i == 3) { z6 = (i3 & 128) != 0; z5 = (i3 & 64) != 0; z7 = (i3 & 32) != 0; z3 = z6; z4 = false; } else if (i == 4) { boolean z8 = (i3 & 64) != 0; boolean z9 = (i3 & 8) != 0; boolean z10 = (i3 & 4) != 0; z4 = (i3 & 2) != 0; z7 = z8; z6 = (i3 & 1) != 0; z3 = z9; z5 = z10; } else { z7 = false; z6 = false; z5 = false; z4 = false; z3 = false; } if (z3 || z5) { Log.w(str, "Skipping unsupported compressed or encrypted frame"); wVar.D(i4); return null; } if (z7) { i5--; wVar.E(1); } if (z6) { i5 -= 4; wVar.E(4); } if (z4) { i5 = x(wVar, i5); } if (s2 == 84 && s3 == 88 && s4 == 88 && (i == 2 || s5 == 88)) { try { id3Frame = p(wVar, i5); } catch (UnsupportedEncodingException unused) { Log.w(str, "Unsupported character encoding"); wVar.D(i4); return null; } catch (Throwable th) { wVar.D(i4); throw th; } } else if (s2 == 84) { id3Frame = o(wVar, i5, u(i, s2, s3, s4, s5)); } else if (s2 == 87 && s3 == 88 && s4 == 88 && (i == 2 || s5 == 88)) { id3Frame = r(wVar, i5); } else if (s2 == 87) { id3Frame = q(wVar, i5, u(i, s2, s3, s4, s5)); } else if (s2 == 80 && s3 == 82 && s4 == 73 && s5 == 86) { id3Frame = m(wVar, i5); } else if (s2 == 71 && s3 == 69 && s4 == 79 && (s5 == 66 || i == 2)) { id3Frame = k(wVar, i5); } else { if (i == 2) { if (s2 == 80 && s3 == 73 && s4 == 67) { } id3Frame = (s2 != 67 && s3 == 79 && s4 == 77 && (s5 == 77 || i == 2)) ? i(wVar, i5) : (s2 != 67 && s3 == 72 && s4 == 65 && s5 == 80) ? g(wVar, i5, i, z2, i2, aVar) : (s2 != 67 && s3 == 84 && s4 == 79 && s5 == 67) ? h(wVar, i5, i, z2, i2, aVar) : (s2 != 77 && s3 == 76 && s4 == 76 && s5 == 84) ? l(wVar, i5) : f(wVar, i5, u(i, s2, s3, s4, s5)); } else { if (s2 == 65) { if (s3 == 80) { if (s4 == 73) { } } } if (s2 != 67) { } } id3Frame = e(wVar, i5, i); } if (id3Frame == null) { Log.w(str, "Failed to decode frame: id=" + u(i, s2, s3, s4, s5) + ", frameSize=" + i5); } wVar.D(i4); return id3Frame; } public static GeobFrame k(w wVar, int i) throws UnsupportedEncodingException { int s2 = wVar.s(); String t = t(s2); int i2 = i - 1; byte[] bArr = new byte[i2]; System.arraycopy(wVar.a, wVar.b, bArr, 0, i2); wVar.b += i2; int w = w(bArr, 0); String str = new String(bArr, 0, w, "ISO-8859-1"); int i3 = w + 1; int v = v(bArr, i3, s2); String n = n(bArr, i3, v, t); int s3 = s(s2) + v; int v2 = v(bArr, s3, s2); return new GeobFrame(str, n, n(bArr, s3, v2, t), c(bArr, s(s2) + v2, i2)); } public static MlltFrame l(w wVar, int i) { int x2 = wVar.x(); int u = wVar.u(); int u2 = wVar.u(); int s2 = wVar.s(); int s3 = wVar.s(); v vVar = new v(); vVar.j(wVar.a, wVar.f913c); vVar.k(wVar.b * 8); int i2 = ((i - 10) * 8) / (s2 + s3); int[] iArr = new int[i2]; int[] iArr2 = new int[i2]; for (int i3 = 0; i3 < i2; i3++) { int g = vVar.g(s2); int g2 = vVar.g(s3); iArr[i3] = g; iArr2[i3] = g2; } return new MlltFrame(x2, u, u2, iArr, iArr2); } public static PrivFrame m(w wVar, int i) throws UnsupportedEncodingException { byte[] bArr = new byte[i]; System.arraycopy(wVar.a, wVar.b, bArr, 0, i); wVar.b += i; int w = w(bArr, 0); return new PrivFrame(new String(bArr, 0, w, "ISO-8859-1"), c(bArr, w + 1, i)); } public static String n(byte[] bArr, int i, int i2, String str) throws UnsupportedEncodingException { return (i2 <= i || i2 > bArr.length) ? "" : new String(bArr, i, i2 - i, str); } @Nullable public static TextInformationFrame o(w wVar, int i, String str) throws UnsupportedEncodingException { if (i < 1) { return null; } int s2 = wVar.s(); String t = t(s2); int i2 = i - 1; byte[] bArr = new byte[i2]; System.arraycopy(wVar.a, wVar.b, bArr, 0, i2); wVar.b += i2; return new TextInformationFrame(str, null, new String(bArr, 0, v(bArr, 0, s2), t)); } @Nullable public static TextInformationFrame p(w wVar, int i) throws UnsupportedEncodingException { if (i < 1) { return null; } int s2 = wVar.s(); String t = t(s2); int i2 = i - 1; byte[] bArr = new byte[i2]; System.arraycopy(wVar.a, wVar.b, bArr, 0, i2); wVar.b += i2; int v = v(bArr, 0, s2); String str = new String(bArr, 0, v, t); int s3 = s(s2) + v; return new TextInformationFrame("TXXX", str, n(bArr, s3, v(bArr, s3, s2), t)); } public static UrlLinkFrame q(w wVar, int i, String str) throws UnsupportedEncodingException { byte[] bArr = new byte[i]; System.arraycopy(wVar.a, wVar.b, bArr, 0, i); wVar.b += i; return new UrlLinkFrame(str, null, new String(bArr, 0, w(bArr, 0), "ISO-8859-1")); } @Nullable public static UrlLinkFrame r(w wVar, int i) throws UnsupportedEncodingException { if (i < 1) { return null; } int s2 = wVar.s(); String t = t(s2); int i2 = i - 1; byte[] bArr = new byte[i2]; System.arraycopy(wVar.a, wVar.b, bArr, 0, i2); wVar.b += i2; int v = v(bArr, 0, s2); String str = new String(bArr, 0, v, t); int s3 = s(s2) + v; return new UrlLinkFrame("WXXX", str, n(bArr, s3, w(bArr, s3), "ISO-8859-1")); } public static int s(int i) { return (i == 0 || i == 3) ? 1 : 2; } public static String t(int i) { return i != 1 ? i != 2 ? i != 3 ? "ISO-8859-1" : "UTF-8" : "UTF-16BE" : "UTF-16"; } public static String u(int i, int i2, int i3, int i4, int i5) { return i == 2 ? String.format(Locale.US, "%c%c%c", Integer.valueOf(i2), Integer.valueOf(i3), Integer.valueOf(i4)) : String.format(Locale.US, "%c%c%c%c", Integer.valueOf(i2), Integer.valueOf(i3), Integer.valueOf(i4), Integer.valueOf(i5)); } public static int v(byte[] bArr, int i, int i2) { int w = w(bArr, i); if (i2 == 0 || i2 == 3) { return w; } while (w < bArr.length - 1) { if (w % 2 == 0 && bArr[w + 1] == 0) { return w; } w = w(bArr, w + 1); } return bArr.length; } public static int w(byte[] bArr, int i) { while (i < bArr.length) { if (bArr[i] == 0) { return i; } i++; } return bArr.length; } public static int x(w wVar, int i) { byte[] bArr = wVar.a; int i2 = wVar.b; int i3 = i2; while (true) { int i4 = i3 + 1; if (i4 >= i2 + i) { return i; } if ((bArr[i3] & 255) == 255 && bArr[i4] == 0) { System.arraycopy(bArr, i3 + 2, bArr, i4, (i - (i3 - i2)) - 2); i--; } i3 = i4; } } /* JADX WARNING: Code restructure failed: missing block: B:30:0x0074, code lost: if ((r10 & 1) != 0) goto L_0x0087; */ /* JADX WARNING: Code restructure failed: missing block: B:37:0x0082, code lost: if ((r10 & 128) != 0) goto L_0x0087; */ public static boolean y(w wVar, int i, int i2, boolean z2) { int i3; long j; int i4; int i5; int i6 = wVar.b; while (true) { try { boolean z3 = true; if (wVar.a() >= i2) { if (i >= 3) { i4 = wVar.f(); j = wVar.t(); i3 = wVar.x(); } else { i4 = wVar.u(); j = (long) wVar.u(); i3 = 0; } if (i4 == 0 && j == 0 && i3 == 0) { wVar.D(i6); return true; } if (i == 4 && !z2) { if ((8421504 & j) != 0) { wVar.D(i6); return false; } j = (((j >> 24) & 255) << 21) | (j & 255) | (((j >> 8) & 255) << 7) | (((j >> 16) & 255) << 14); } if (i == 4) { i5 = (i3 & 64) != 0 ? 1 : 0; } else if (i == 3) { i5 = (i3 & 32) != 0 ? 1 : 0; } else { i5 = 0; } z3 = false; if (z3) { i5 += 4; } if (j < ((long) i5)) { wVar.D(i6); return false; } else if (((long) wVar.a()) < j) { return false; } else { wVar.E((int) j); } } else { wVar.D(i6); return true; } } finally { wVar.D(i6); } } } @Override // c.i.a.c.c2.g @Nullable public Metadata b(d dVar, ByteBuffer byteBuffer) { return d(byteBuffer.array(), byteBuffer.limit()); } /* JADX WARNING: Removed duplicated region for block: B:44:0x00b6 A[RETURN] */ /* JADX WARNING: Removed duplicated region for block: B:45:0x00b7 */ @Nullable public Metadata d(byte[] bArr, int i) { C0085b bVar; ArrayList arrayList = new ArrayList(); w wVar = new w(bArr, i); boolean z2 = false; int i2 = 10; if (wVar.a() < 10) { Log.w("Id3Decoder", "Data too short to be an ID3 tag"); } else { int u = wVar.u(); if (u != 4801587) { StringBuilder K = c.d.b.a.a.K("Unexpected first three bytes of ID3 tag header: 0x"); K.append(String.format("%06X", Integer.valueOf(u))); Log.w("Id3Decoder", K.toString()); } else { int s2 = wVar.s(); wVar.E(1); int s3 = wVar.s(); int r = wVar.r(); if (s2 == 2) { if ((s3 & 64) != 0) { Log.w("Id3Decoder", "Skipped ID3 tag with majorVersion=2 and undefined compression scheme"); } } else if (s2 == 3) { if ((s3 & 64) != 0) { int f = wVar.f(); wVar.E(f); r -= f + 4; } } else if (s2 == 4) { if ((s3 & 64) != 0) { int r2 = wVar.r(); wVar.E(r2 - 4); r -= r2; } if ((s3 & 16) != 0) { r -= 10; } } else { c.d.b.a.a.d0("Skipped ID3 tag with unsupported majorVersion=", s2, "Id3Decoder"); } bVar = new C0085b(s2, s2 < 4 && (s3 & 128) != 0, r); if (bVar != null) { return null; } int i3 = wVar.b; if (bVar.a == 2) { i2 = 6; } int i4 = bVar.f779c; if (bVar.b) { i4 = x(wVar, i4); } wVar.C(i3 + i4); if (!y(wVar, bVar.a, i2, false)) { if (bVar.a != 4 || !y(wVar, 4, i2, true)) { StringBuilder K2 = c.d.b.a.a.K("Failed to validate ID3 tag with majorVersion="); K2.append(bVar.a); Log.w("Id3Decoder", K2.toString()); return null; } z2 = true; } while (wVar.a() >= i2) { Id3Frame j = j(bVar.a, wVar, z2, i2, this.b); if (j != null) { arrayList.add(j); } } return new Metadata(arrayList); } } bVar = null; if (bVar != null) { } } }