package tv.danmaku.ijk.media.player.ui.subtitleconverter.subtitleFile;

import androidx.media3.exoplayer.rtsp.SessionDescription;
import com.google.android.gms.measurement.internal.u1;
import defpackage.e;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.ArrayList;
import u.a;

/* JADX INFO: loaded from: classes3.dex */
public class FormatASS implements TimedTextFileFormat {
    private int getAlignForASS(boolean z10, String str) {
        if (z10) {
            if ("bottom-left".equals(str)) {
                return 1;
            }
            if (!"bottom-center".equals(str)) {
                if ("bottom-right".equals(str)) {
                    return 3;
                }
                if ("mid-left".equals(str)) {
                    return 4;
                }
                if ("mid-center".equals(str)) {
                    return 5;
                }
                if ("mid-right".equals(str)) {
                    return 6;
                }
                if ("top-left".equals(str)) {
                    return 7;
                }
                if ("top-center".equals(str)) {
                    return 8;
                }
                if ("top-right".equals(str)) {
                    return 9;
                }
            }
            return 2;
        }
        if ("bottom-left".equals(str)) {
            return 9;
        }
        if (!"bottom-center".equals(str)) {
            if ("bottom-right".equals(str)) {
                return 11;
            }
            if ("mid-left".equals(str)) {
                return 1;
            }
            if ("mid-center".equals(str)) {
                return 2;
            }
            if ("mid-right".equals(str)) {
                return 3;
            }
            if ("top-left".equals(str)) {
                return 5;
            }
            if ("top-center".equals(str)) {
                return 6;
            }
            if ("top-right".equals(str)) {
                return 7;
            }
        }
        return 10;
    }

    private String getColorsForASS(boolean z10, Style style) {
        if (z10) {
            StringBuilder sb = new StringBuilder();
            sb.append(Integer.parseInt("00" + style.color.substring(4, 6) + style.color.substring(2, 4) + style.color.substring(0, 2), 16));
            sb.append(",16777215,0,");
            return e.m(sb, Long.parseLong("80" + style.backgroundColor.substring(4, 6) + style.backgroundColor.substring(2, 4) + style.backgroundColor.substring(0, 2), 16), ",");
        }
        return Long.parseLong(style.color.substring(4, 6) + style.color.substring(2, 4) + style.color.substring(0, 2), 16) + ",16777215,0," + Long.parseLong(style.backgroundColor.substring(4, 6) + style.backgroundColor.substring(2, 4) + style.backgroundColor.substring(0, 2), 16) + ",";
    }

    private String getOptionsForASS(boolean z10, Style style) {
        String str = style.bold ? "-1," : "0,";
        String strConcat = style.italic ? str.concat("-1,") : str.concat("0,");
        if (z10) {
            return u1.j(style.underline ? u1.j(strConcat, "-1,") : u1.j(strConcat, "0,"), "0,100,100,0,0,");
        }
        return strConcat;
    }

    private Caption parseDialogueForASS(String[] strArr, String[] strArr2, float f10, TimedTextObject timedTextObject) {
        Caption caption = new Caption();
        for (int i10 = 0; i10 < strArr2.length; i10++) {
            String strTrim = strArr2[i10].trim();
            if (strTrim.equalsIgnoreCase("Style")) {
                Style style = timedTextObject.styling.get(strArr[i10].trim());
                if (style != null) {
                    caption.style = style;
                } else {
                    timedTextObject.warnings += "undefined style: " + strArr[i10].trim() + "\n\n";
                }
            } else if (strTrim.equalsIgnoreCase("Start")) {
                caption.start = new Time("h:mm:ss.cs", strArr[i10].trim());
            } else if (strTrim.equalsIgnoreCase("End")) {
                caption.end = new Time("h:mm:ss.cs", strArr[i10].trim());
            } else if (strTrim.equalsIgnoreCase("Text")) {
                String str = strArr[i10];
                caption.rawContent = str;
                caption.content = str.replaceAll("\\{.*?\\}", "").replace("\n", "<br />").replace("\\N", "<br />");
            }
        }
        if (f10 != 100.0f) {
            float f11 = f10 / 100.0f;
            caption.start.mseconds = (int) (r7.mseconds / f11);
            caption.end.mseconds = (int) (r6.mseconds / f11);
        }
        return caption;
    }

    private Style parseStyleForASS(String[] strArr, String[] strArr2, int i10, boolean z10, String str) {
        String str2;
        String[] strArr3 = strArr;
        String[] strArr4 = strArr2;
        Style style = new Style(Style.defaultID());
        if (strArr3.length == strArr4.length) {
            int i11 = 0;
            String str3 = str;
            while (i11 < strArr4.length) {
                String strTrim = strArr4[i11].trim();
                if (strTrim.equalsIgnoreCase("Name")) {
                    style.iD = strArr3[i11].trim();
                } else if (strTrim.equalsIgnoreCase("Fontname")) {
                    style.font = strArr3[i11].trim();
                } else if (strTrim.equalsIgnoreCase("Fontsize")) {
                    style.fontSize = strArr3[i11].trim();
                } else if (strTrim.equalsIgnoreCase("PrimaryColour")) {
                    String strTrim2 = strArr3[i11].trim();
                    if (z10) {
                        if (strTrim2.startsWith("&H")) {
                            style.color = Style.getRGBValue("&HAABBGGRR", strTrim2);
                        } else {
                            style.color = Style.getRGBValue("decimalCodedAABBGGRR", strTrim2);
                        }
                    } else if (strTrim2.startsWith("&H")) {
                        style.color = Style.getRGBValue("&HBBGGRR", strTrim2);
                    } else {
                        style.color = Style.getRGBValue("decimalCodedBBGGRR", strTrim2);
                    }
                } else if (strTrim.equalsIgnoreCase("BackColour")) {
                    String strTrim3 = strArr3[i11].trim();
                    if (z10) {
                        if (strTrim3.startsWith("&H")) {
                            style.backgroundColor = Style.getRGBValue("&HAABBGGRR", strTrim3);
                        } else {
                            style.backgroundColor = Style.getRGBValue("decimalCodedAABBGGRR", strTrim3);
                        }
                    } else if (strTrim3.startsWith("&H")) {
                        style.backgroundColor = Style.getRGBValue("&HBBGGRR", strTrim3);
                    } else {
                        style.backgroundColor = Style.getRGBValue("decimalCodedBBGGRR", strTrim3);
                    }
                } else if (strTrim.equalsIgnoreCase("Bold")) {
                    style.bold = Boolean.parseBoolean(strArr3[i11].trim());
                } else if (strTrim.equalsIgnoreCase("Italic")) {
                    style.italic = Boolean.parseBoolean(strArr3[i11].trim());
                } else if (strTrim.equalsIgnoreCase("Underline")) {
                    style.underline = Boolean.parseBoolean(strArr3[i11].trim());
                } else if (strTrim.equalsIgnoreCase("Alignment")) {
                    int i12 = Integer.parseInt(strArr3[i11].trim());
                    if (z10) {
                        switch (i12) {
                            case 1:
                                style.textAlign = "bottom-left";
                                continue;
                            case 2:
                                style.textAlign = "bottom-center";
                                continue;
                            case 3:
                                style.textAlign = "bottom-right";
                                continue;
                            case 4:
                                style.textAlign = "mid-left";
                                continue;
                            case 5:
                                style.textAlign = "mid-center";
                                continue;
                            case 6:
                                style.textAlign = "mid-right";
                                continue;
                            case 7:
                                style.textAlign = "top-left";
                                continue;
                            case 8:
                                style.textAlign = "top-center";
                                continue;
                            case 9:
                                style.textAlign = "top-right";
                                continue;
                            default:
                                str2 = str3 + "undefined alignment for style at line " + i10 + "\n\n";
                                break;
                        }
                        str3 = str2;
                    } else {
                        switch (i12) {
                            case 1:
                                style.textAlign = "mid-left";
                                continue;
                            case 2:
                                style.textAlign = "mid-center";
                                continue;
                            case 3:
                                style.textAlign = "mid-right";
                                continue;
                            case 4:
                            case 8:
                            default:
                                str2 = str3 + "undefined alignment for style at line " + i10 + "\n\n";
                                break;
                            case 5:
                                style.textAlign = "top-left";
                                continue;
                            case 6:
                                style.textAlign = "top-center";
                                continue;
                            case 7:
                                style.textAlign = "top-right";
                                continue;
                            case 9:
                                style.textAlign = "bottom-left";
                                continue;
                            case 10:
                                style.textAlign = "bottom-center";
                                continue;
                            case 11:
                                style.textAlign = "bottom-right";
                                continue;
                        }
                        str3 = str2;
                    }
                }
                i11++;
                strArr3 = strArr;
                strArr4 = strArr2;
            }
        }
        return style;
    }

    @Override // tv.danmaku.ijk.media.player.ui.subtitleconverter.subtitleFile.TimedTextFileFormat
    public TimedTextObject parseFile(String str, InputStream inputStream) throws IOException {
        return parseFile(str, inputStream, Charset.defaultCharset());
    }

    @Override // tv.danmaku.ijk.media.player.ui.subtitleconverter.subtitleFile.TimedTextFileFormat
    public TimedTextObject parseFile(String str, InputStream inputStream, Charset charset) throws Throwable {
        String strTrim;
        TimedTextObject timedTextObject = new TimedTextObject();
        timedTextObject.fileName = str;
        new Caption();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, charset));
        try {
            try {
                String line = bufferedReader.readLine();
                float f10 = 100.0f;
                boolean z10 = false;
                int i10 = 1;
                while (line != null) {
                    String strTrim2 = line.trim();
                    if (!strTrim2.startsWith("[")) {
                        line = bufferedReader.readLine();
                        i10++;
                    } else if (strTrim2.equalsIgnoreCase("[Script info]")) {
                        i10++;
                        line = bufferedReader.readLine().trim();
                        while (!line.startsWith("[")) {
                            if (line.startsWith("Title:")) {
                                timedTextObject.title = line.split(":")[1].trim();
                            } else if (line.startsWith("Original Script:")) {
                                timedTextObject.author = line.split(":")[1].trim();
                            } else if (line.startsWith("Script Type:")) {
                                if (line.split(":")[1].trim().equalsIgnoreCase("v4.00+")) {
                                    z10 = true;
                                } else if (!line.split(":")[1].trim().equalsIgnoreCase("v4.00")) {
                                    timedTextObject.warnings += "Script version is older than 4.00, it may produce parsing errors.";
                                }
                            } else if (line.startsWith("Timer:")) {
                                f10 = Float.parseFloat(line.split(":")[1].trim().replace(',', '.'));
                            }
                            i10++;
                            line = bufferedReader.readLine().trim();
                        }
                    } else {
                        if (!strTrim2.equalsIgnoreCase("[v4 Styles]")) {
                            try {
                                if (!strTrim2.equalsIgnoreCase("[v4 Styles+]") && !strTrim2.equalsIgnoreCase("[v4+ Styles]")) {
                                    if (strTrim2.trim().equalsIgnoreCase("[Events]")) {
                                        int i11 = i10 + 1;
                                        String strTrim3 = bufferedReader.readLine().trim();
                                        timedTextObject.warnings += "Only dialogue events are considered, all other events are ignored.\n\n";
                                        if (!strTrim3.startsWith("Format:")) {
                                            timedTextObject.warnings += "Format: (format definition) expected at line " + strTrim3 + " for the events section\n\n";
                                            while (!strTrim3.startsWith("Format:")) {
                                                i11++;
                                                strTrim3 = bufferedReader.readLine().trim();
                                            }
                                        }
                                        String[] strArrSplit = strTrim3.split(":")[1].trim().split(",");
                                        i10 = i11 + 1;
                                        strTrim = bufferedReader.readLine().trim();
                                        while (!strTrim.startsWith("[")) {
                                            if (strTrim.startsWith("Dialogue:")) {
                                                Caption dialogueForASS = parseDialogueForASS(strTrim.split(":", 2)[1].trim().split(",", strArrSplit.length), strArrSplit, f10, timedTextObject);
                                                int i12 = dialogueForASS.start.mseconds;
                                                while (timedTextObject.captions.containsKey(Integer.valueOf(i12))) {
                                                    i12++;
                                                }
                                                timedTextObject.captions.put(Integer.valueOf(i12), dialogueForASS);
                                            }
                                            i10++;
                                            strTrim = bufferedReader.readLine().trim();
                                        }
                                        line = strTrim;
                                    } else if (strTrim2.trim().equalsIgnoreCase("[Fonts]") || strTrim2.trim().equalsIgnoreCase("[Graphics]")) {
                                        timedTextObject.warnings += "The section " + strTrim2.trim() + " is not supported for conversion, all information there will be lost.\n\n";
                                        line = bufferedReader.readLine().trim();
                                    } else {
                                        timedTextObject.warnings += "Unrecognized section: " + strTrim2.trim() + " all information there is ignored.";
                                        line = bufferedReader.readLine().trim();
                                    }
                                }
                            } catch (NullPointerException unused) {
                                timedTextObject.warnings += "unexpected end of file, maybe last caption is not complete.\n\n";
                                inputStream.close();
                                timedTextObject.built = true;
                                return timedTextObject;
                            } catch (Throwable th) {
                                th = th;
                                inputStream.close();
                                throw th;
                            }
                        }
                        if (strTrim2.contains("+") && !z10) {
                            timedTextObject.warnings += "ScriptType should be set to v4:00+ in the [Script Info] section.\n\n";
                            z10 = true;
                        }
                        int i13 = i10 + 1;
                        String strTrim4 = bufferedReader.readLine().trim();
                        if (!strTrim4.startsWith("Format:")) {
                            timedTextObject.warnings += "Format: (format definition) expected at line " + strTrim4 + " for the styles section\n\n";
                            while (!strTrim4.startsWith("Format:")) {
                                i13++;
                                strTrim4 = bufferedReader.readLine().trim();
                            }
                        }
                        String[] strArrSplit2 = strTrim4.split(":")[1].trim().split(",");
                        i10 = i13 + 1;
                        strTrim = bufferedReader.readLine().trim();
                        while (!strTrim.startsWith("[")) {
                            if (strTrim.startsWith("Style:")) {
                                Style styleForASS = parseStyleForASS(strTrim.split(":")[1].trim().split(","), strArrSplit2, i10, z10, timedTextObject.warnings);
                                timedTextObject.styling.put(styleForASS.iD, styleForASS);
                            }
                            i10++;
                            strTrim = bufferedReader.readLine().trim();
                        }
                        line = strTrim;
                    }
                }
                timedTextObject.cleanUnusedStyles();
            } catch (NullPointerException unused2) {
            }
            inputStream.close();
            timedTextObject.built = true;
            return timedTextObject;
        } catch (Throwable th2) {
            th = th2;
        }
    }

    @Override // tv.danmaku.ijk.media.player.ui.subtitleconverter.subtitleFile.TimedTextFileFormat
    public String[] toFile(TimedTextObject timedTextObject) {
        int i10;
        int i11;
        int i12;
        int i13;
        int i14;
        String strJ;
        if (!timedTextObject.built) {
            return null;
        }
        ArrayList arrayList = new ArrayList(timedTextObject.captions.size() + timedTextObject.styling.size() + 30);
        arrayList.add(0, "[Script Info]");
        String str = timedTextObject.title;
        arrayList.add(1, (str == null || str.isEmpty()) ? "Title: " + timedTextObject.fileName : "Title: " + timedTextObject.title);
        String str2 = timedTextObject.author;
        arrayList.add(2, (str2 == null || str2.isEmpty()) ? "Original Script: Unknown" : "Original Script: " + timedTextObject.author);
        String str3 = timedTextObject.copyrigth;
        if (str3 == null || str3.isEmpty()) {
            i10 = 3;
        } else {
            arrayList.add(3, "; " + timedTextObject.copyrigth);
            i10 = 4;
        }
        String str4 = timedTextObject.description;
        if (str4 != null && !str4.isEmpty()) {
            arrayList.add(i10, "; " + timedTextObject.description);
            i10++;
        }
        int i15 = i10 + 1;
        arrayList.add(i10, "; Converted by the Online Subtitle Converter developed by J. David Requejo");
        if (timedTextObject.useASSInsteadOfSSA) {
            i11 = i10 + 2;
            arrayList.add(i15, "Script Type: V4.00+");
        } else {
            i11 = i10 + 2;
            arrayList.add(i15, "Script Type: V4.00");
        }
        arrayList.add(i11, "Collisions: Normal");
        int i16 = i11 + 2;
        arrayList.add(i11 + 1, "Timer: 100,0000");
        if (timedTextObject.useASSInsteadOfSSA) {
            arrayList.add(i16, "WrapStyle: 1");
            i16 = i11 + 3;
        }
        int i17 = i16 + 1;
        arrayList.add(i16, "");
        if (timedTextObject.useASSInsteadOfSSA) {
            i12 = i16 + 2;
            arrayList.add(i17, "[V4+ Styles]");
        } else {
            i12 = i16 + 2;
            arrayList.add(i17, "[V4 Styles]");
        }
        if (timedTextObject.useASSInsteadOfSSA) {
            i13 = i12 + 1;
            arrayList.add(i12, "Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding");
        } else {
            i13 = i12 + 1;
            arrayList.add(i12, "Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding");
        }
        for (Style style : timedTextObject.styling.values()) {
            StringBuilder sbC = a.c(e.o(a.c(e.o(a.c(e.o(new StringBuilder("Style: "), style.iD, ",")), style.font, ",")), style.fontSize, ","));
            sbC.append(getColorsForASS(timedTextObject.useASSInsteadOfSSA, style));
            StringBuilder sbC2 = a.c(sbC.toString());
            sbC2.append(getOptionsForASS(timedTextObject.useASSInsteadOfSSA, style));
            StringBuilder sbC3 = a.c(u1.j(sbC2.toString(), "1,2,2,"));
            sbC3.append(getAlignForASS(timedTextObject.useASSInsteadOfSSA, style.textAlign));
            String strJ2 = u1.j(sbC3.toString(), ",0,0,0,");
            if (!timedTextObject.useASSInsteadOfSSA) {
                strJ2 = u1.j(strJ2, "0,");
            }
            arrayList.add(i13, u1.j(strJ2, SessionDescription.SUPPORTED_SDP_VERSION));
            i13++;
        }
        arrayList.add(i13, "");
        int i18 = i13 + 2;
        arrayList.add(i13 + 1, "[Events]");
        if (timedTextObject.useASSInsteadOfSSA) {
            i14 = i13 + 3;
            arrayList.add(i18, "Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text");
        } else {
            i14 = i13 + 3;
            arrayList.add(i18, "Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text");
        }
        for (Caption caption : timedTextObject.captions.values()) {
            int i19 = timedTextObject.offset;
            if (i19 != 0) {
                caption.start.mseconds += i19;
                caption.end.mseconds += i19;
            }
            StringBuilder sbC4 = a.c("Dialogue: 0," + caption.start.getTime("h:mm:ss.cs") + ",");
            sbC4.append(caption.end.getTime("h:mm:ss.cs"));
            sbC4.append(",");
            String string = sbC4.toString();
            int i20 = timedTextObject.offset;
            if (i20 != 0) {
                caption.start.mseconds -= i20;
                caption.end.mseconds -= i20;
            }
            if (caption.style != null) {
                StringBuilder sbC5 = a.c(string);
                sbC5.append(caption.style.iD);
                strJ = sbC5.toString();
            } else {
                strJ = u1.j(string, "Default");
            }
            StringBuilder sbC6 = a.c(u1.j(strJ, ",,0000,0000,0000,,"));
            sbC6.append(caption.content.replaceAll("<br />", "\\\\N").replaceAll("\\<.*?\\>", ""));
            arrayList.add(i14, sbC6.toString());
            i14++;
        }
        arrayList.add(i14, "");
        int size = arrayList.size();
        String[] strArr = new String[size];
        for (int i21 = 0; i21 < size; i21++) {
            strArr[i21] = (String) arrayList.get(i21);
        }
        return strArr;
    }
}
