MetadataUtil.smali
.class final Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;
.super Ljava/lang/Object;
.source "MetadataUtil.java"
# static fields
.field private static final LANGUAGE_UNDEFINED:Ljava/lang/String; = "und"
.field private static final SHORT_TYPE_ALBUM:I
.field private static final SHORT_TYPE_ARTIST:I
.field private static final SHORT_TYPE_COMMENT:I
.field private static final SHORT_TYPE_COMPOSER_1:I
.field private static final SHORT_TYPE_COMPOSER_2:I
.field private static final SHORT_TYPE_ENCODER:I
.field private static final SHORT_TYPE_GENRE:I
.field private static final SHORT_TYPE_LYRICS:I
.field private static final SHORT_TYPE_NAME_1:I
.field private static final SHORT_TYPE_NAME_2:I
.field private static final SHORT_TYPE_YEAR:I
.field private static final STANDARD_GENRES:[Ljava/lang/String;
.field private static final TAG:Ljava/lang/String; = "MetadataUtil"
.field private static final TYPE_ALBUM_ARTIST:I
.field private static final TYPE_COMPILATION:I
.field private static final TYPE_COVER_ART:I
.field private static final TYPE_DISK_NUMBER:I
.field private static final TYPE_GAPLESS_ALBUM:I
.field private static final TYPE_GENRE:I
.field private static final TYPE_GROUPING:I
.field private static final TYPE_INTERNAL:I
.field private static final TYPE_RATING:I
.field private static final TYPE_SORT_ALBUM:I
.field private static final TYPE_SORT_ALBUM_ARTIST:I
.field private static final TYPE_SORT_ARTIST:I
.field private static final TYPE_SORT_COMPOSER:I
.field private static final TYPE_SORT_TRACK_NAME:I
.field private static final TYPE_TEMPO:I
.field private static final TYPE_TRACK_NUMBER:I
.field private static final TYPE_TV_SHOW:I
.field private static final TYPE_TV_SORT_SHOW:I
# direct methods
.method static constructor <clinit>()V
.registers 149
const-string v0, "nam"
.line 35
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_NAME_1:I
const-string/jumbo v0, "trk"
.line 36
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_NAME_2:I
const-string v0, "cmt"
.line 37
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_COMMENT:I
const-string v0, "day"
.line 38
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_YEAR:I
const-string v0, "ART"
.line 39
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_ARTIST:I
const-string/jumbo v0, "too"
.line 40
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_ENCODER:I
const-string v0, "alb"
.line 41
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_ALBUM:I
const-string v0, "com"
.line 42
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_COMPOSER_1:I
const-string/jumbo v0, "wrt"
.line 43
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_COMPOSER_2:I
const-string v0, "lyr"
.line 44
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_LYRICS:I
const-string v0, "gen"
.line 45
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_GENRE:I
const-string v0, "covr"
.line 48
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_COVER_ART:I
const-string v0, "gnre"
.line 49
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_GENRE:I
const-string v0, "grp"
.line 50
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_GROUPING:I
const-string v0, "disk"
.line 51
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_DISK_NUMBER:I
const-string/jumbo v0, "trkn"
.line 52
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_TRACK_NUMBER:I
const-string v0, "tmpo"
.line 53
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_TEMPO:I
const-string v0, "cpil"
.line 54
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_COMPILATION:I
const-string v0, "aART"
.line 55
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_ALBUM_ARTIST:I
const-string v0, "sonm"
.line 56
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_SORT_TRACK_NAME:I
const-string v0, "soal"
.line 57
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_SORT_ALBUM:I
const-string v0, "soar"
.line 58
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_SORT_ARTIST:I
const-string v0, "soaa"
.line 59
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_SORT_ALBUM_ARTIST:I
const-string v0, "soco"
.line 60
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_SORT_COMPOSER:I
const-string v0, "rtng"
.line 63
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_RATING:I
const-string v0, "pgap"
.line 64
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_GAPLESS_ALBUM:I
const-string v0, "sosn"
.line 65
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_TV_SORT_SHOW:I
const-string/jumbo v0, "tvsh"
.line 66
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_TV_SHOW:I
const-string v0, "----"
.line 69
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_INTERNAL:I
const-string v1, "Blues"
const-string v2, "Classic Rock"
const-string v3, "Country"
const-string v4, "Dance"
const-string v5, "Disco"
const-string v6, "Funk"
const-string v7, "Grunge"
const-string v8, "Hip-Hop"
const-string v9, "Jazz"
const-string v10, "Metal"
const-string v11, "New Age"
const-string v12, "Oldies"
const-string v13, "Other"
const-string v14, "Pop"
const-string v15, "R&B"
const-string v16, "Rap"
const-string v17, "Reggae"
const-string v18, "Rock"
const-string v19, "Techno"
const-string v20, "Industrial"
const-string v21, "Alternative"
const-string v22, "Ska"
const-string v23, "Death Metal"
const-string v24, "Pranks"
const-string v25, "Soundtrack"
const-string v26, "Euro-Techno"
const-string v27, "Ambient"
const-string v28, "Trip-Hop"
const-string v29, "Vocal"
const-string v30, "Jazz+Funk"
const-string v31, "Fusion"
const-string v32, "Trance"
const-string v33, "Classical"
const-string v34, "Instrumental"
const-string v35, "Acid"
const-string v36, "House"
const-string v37, "Game"
const-string v38, "Sound Clip"
const-string v39, "Gospel"
const-string v40, "Noise"
const-string v41, "AlternRock"
const-string v42, "Bass"
const-string v43, "Soul"
const-string v44, "Punk"
const-string v45, "Space"
const-string v46, "Meditative"
const-string v47, "Instrumental Pop"
const-string v48, "Instrumental Rock"
const-string v49, "Ethnic"
const-string v50, "Gothic"
const-string v51, "Darkwave"
const-string v52, "Techno-Industrial"
const-string v53, "Electronic"
const-string v54, "Pop-Folk"
const-string v55, "Eurodance"
const-string v56, "Dream"
const-string v57, "Southern Rock"
const-string v58, "Comedy"
const-string v59, "Cult"
const-string v60, "Gangsta"
const-string v61, "Top 40"
const-string v62, "Christian Rap"
const-string v63, "Pop/Funk"
const-string v64, "Jungle"
const-string v65, "Native American"
const-string v66, "Cabaret"
const-string v67, "New Wave"
const-string v68, "Psychadelic"
const-string v69, "Rave"
const-string v70, "Showtunes"
const-string v71, "Trailer"
const-string v72, "Lo-Fi"
const-string v73, "Tribal"
const-string v74, "Acid Punk"
const-string v75, "Acid Jazz"
const-string v76, "Polka"
const-string v77, "Retro"
const-string v78, "Musical"
const-string v79, "Rock & Roll"
const-string v80, "Hard Rock"
const-string v81, "Folk"
const-string v82, "Folk-Rock"
const-string v83, "National Folk"
const-string v84, "Swing"
const-string v85, "Fast Fusion"
const-string v86, "Bebob"
const-string v87, "Latin"
const-string v88, "Revival"
const-string v89, "Celtic"
const-string v90, "Bluegrass"
const-string v91, "Avantgarde"
const-string v92, "Gothic Rock"
const-string v93, "Progressive Rock"
const-string v94, "Psychedelic Rock"
const-string v95, "Symphonic Rock"
const-string v96, "Slow Rock"
const-string v97, "Big Band"
const-string v98, "Chorus"
const-string v99, "Easy Listening"
const-string v100, "Acoustic"
const-string v101, "Humour"
const-string v102, "Speech"
const-string v103, "Chanson"
const-string v104, "Opera"
const-string v105, "Chamber Music"
const-string v106, "Sonata"
const-string v107, "Symphony"
const-string v108, "Booty Bass"
const-string v109, "Primus"
const-string v110, "Porn Groove"
const-string v111, "Satire"
const-string v112, "Slow Jam"
const-string v113, "Club"
const-string v114, "Tango"
const-string v115, "Samba"
const-string v116, "Folklore"
const-string v117, "Ballad"
const-string v118, "Power Ballad"
const-string v119, "Rhythmic Soul"
const-string v120, "Freestyle"
const-string v121, "Duet"
const-string v122, "Punk Rock"
const-string v123, "Drum Solo"
const-string v124, "A capella"
const-string v125, "Euro-House"
const-string v126, "Dance Hall"
const-string v127, "Goa"
const-string v128, "Drum & Bass"
const-string v129, "Club-House"
const-string v130, "Hardcore"
const-string v131, "Terror"
const-string v132, "Indie"
const-string v133, "BritPop"
const-string v134, "Negerpunk"
const-string v135, "Polsk Punk"
const-string v136, "Beat"
const-string v137, "Christian Gangsta Rap"
const-string v138, "Heavy Metal"
const-string v139, "Black Metal"
const-string v140, "Crossover"
const-string v141, "Contemporary Christian"
const-string v142, "Christian Rock"
const-string v143, "Merengue"
const-string v144, "Salsa"
const-string v145, "Thrash Metal"
const-string v146, "Anime"
const-string v147, "Jpop"
const-string v148, "Synthpop"
.line 72
filled-new-array/range {v1 .. v148}, [Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->STANDARD_GENRES:[Ljava/lang/String;
return-void
.end method
.method private constructor <init>()V
.registers 1
.line 102
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static parseCommentAttribute(ILcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/CommentFrame;
.registers 5
.line 198
invoke-virtual {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v0
.line 199
invoke-virtual {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 200
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_data:I
if-ne v1, v2, :cond_20
const/16 p0, 0x8
.line 201
invoke-virtual {p1, p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
add-int/lit8 v0, v0, -0x10
.line 202
invoke-virtual {p1, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readNullTerminatedString(I)Ljava/lang/String;
move-result-object p0
.line 203
new-instance p1, Lcom/google/android/exoplayer2/metadata/id3/CommentFrame;
const-string/jumbo v0, "und"
invoke-direct {p1, v0, p0, p0}, Lcom/google/android/exoplayer2/metadata/id3/CommentFrame;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
return-object p1
.line 205
:cond_20
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "Failed to parse comment attribute: "
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {p0}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->getAtomTypeString(I)Ljava/lang/String;
move-result-object p0
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
const-string p1, "MetadataUtil"
invoke-static {p1, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const/4 p0, 0x0
return-object p0
.end method
.method private static parseCoverArt(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/ApicFrame;
.registers 6
.line 255
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v0
.line 256
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 257
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_data:I
const-string v3, "MetadataUtil"
const/4 v4, 0x0
if-ne v1, v2, :cond_50
.line 258
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 259
invoke-static {v1}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->parseFullAtomFlags(I)I
move-result v1
const/16 v2, 0xd
if-ne v1, v2, :cond_1e
const-string v2, "image/jpeg"
goto :goto_26
:cond_1e
const/16 v2, 0xe
if-ne v1, v2, :cond_25
const-string v2, "image/png"
goto :goto_26
:cond_25
move-object v2, v4
:goto_26
if-nez v2, :cond_3d
.line 262
new-instance p0, Ljava/lang/StringBuilder;
invoke-direct {p0}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "Unrecognized cover art flags: "
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v3, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
return-object v4
:cond_3d
const/4 v1, 0x4
.line 265
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
add-int/lit8 v0, v0, -0x10
.line 266
new-array v1, v0, [B
const/4 v3, 0x0
.line 267
invoke-virtual {p0, v1, v3, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
.line 268
new-instance p0, Lcom/google/android/exoplayer2/metadata/id3/ApicFrame;
const/4 v0, 0x3
invoke-direct {p0, v2, v4, v0, v1}, Lcom/google/android/exoplayer2/metadata/id3/ApicFrame;-><init>(Ljava/lang/String;Ljava/lang/String;I[B)V
return-object p0
:cond_50
const-string p0, "Failed to parse cover art attribute"
.line 270
invoke-static {v3, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
return-object v4
.end method
.method public static parseIlstElement(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/Metadata$Entry;
.registers 6
.line 113
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v0
.line 114
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
add-int/2addr v0, v1
.line 115
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
shr-int/lit8 v2, v1, 0x18
and-int/lit16 v2, v2, 0xff
const/16 v3, 0xa9
if-eq v2, v3, :cond_106
const v3, 0xfffd
if-ne v2, v3, :cond_1c
goto/16 :goto_106
.line 142
:cond_1c
:try_start_1c
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_GENRE:I
if-ne v1, v2, :cond_28
.line 143
invoke-static {p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseStandardGenreAttribute(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_24
.catchall {:try_start_1c .. :try_end_24} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 144
:cond_28
:try_start_28
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_DISK_NUMBER:I
if-ne v1, v2, :cond_36
const-string v2, "TPOS"
.line 145
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseIndexAndCountAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_32
.catchall {:try_start_28 .. :try_end_32} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 146
:cond_36
:try_start_36
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_TRACK_NUMBER:I
if-ne v1, v2, :cond_44
const-string v2, "TRCK"
.line 147
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseIndexAndCountAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_40
.catchall {:try_start_36 .. :try_end_40} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 148
:cond_44
:try_start_44
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_TEMPO:I
const/4 v3, 0x0
const/4 v4, 0x1
if-ne v1, v2, :cond_54
const-string v2, "TBPM"
.line 149
invoke-static {v1, v2, p0, v4, v3}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseUint8Attribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;ZZ)Lcom/google/android/exoplayer2/metadata/id3/Id3Frame;
move-result-object v1
:try_end_50
.catchall {:try_start_44 .. :try_end_50} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 150
:cond_54
:try_start_54
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_COMPILATION:I
if-ne v1, v2, :cond_62
const-string v2, "TCMP"
.line 151
invoke-static {v1, v2, p0, v4, v4}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseUint8Attribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;ZZ)Lcom/google/android/exoplayer2/metadata/id3/Id3Frame;
move-result-object v1
:try_end_5e
.catchall {:try_start_54 .. :try_end_5e} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 152
:cond_62
:try_start_62
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_COVER_ART:I
if-ne v1, v2, :cond_6e
.line 153
invoke-static {p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseCoverArt(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/ApicFrame;
move-result-object v1
:try_end_6a
.catchall {:try_start_62 .. :try_end_6a} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 154
:cond_6e
:try_start_6e
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_ALBUM_ARTIST:I
if-ne v1, v2, :cond_7c
const-string v2, "TPE2"
.line 155
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_78
.catchall {:try_start_6e .. :try_end_78} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 156
:cond_7c
:try_start_7c
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_SORT_TRACK_NAME:I
if-ne v1, v2, :cond_8a
const-string v2, "TSOT"
.line 157
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_86
.catchall {:try_start_7c .. :try_end_86} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 158
:cond_8a
:try_start_8a
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_SORT_ALBUM:I
if-ne v1, v2, :cond_98
const-string v2, "TSO2"
.line 159
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_94
.catchall {:try_start_8a .. :try_end_94} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 160
:cond_98
:try_start_98
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_SORT_ARTIST:I
if-ne v1, v2, :cond_a6
const-string v2, "TSOA"
.line 161
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_a2
.catchall {:try_start_98 .. :try_end_a2} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 162
:cond_a6
:try_start_a6
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_SORT_ALBUM_ARTIST:I
if-ne v1, v2, :cond_b4
const-string v2, "TSOP"
.line 163
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_b0
.catchall {:try_start_a6 .. :try_end_b0} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 164
:cond_b4
:try_start_b4
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_SORT_COMPOSER:I
if-ne v1, v2, :cond_c2
const-string v2, "TSOC"
.line 165
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_be
.catchall {:try_start_b4 .. :try_end_be} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 166
:cond_c2
:try_start_c2
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_RATING:I
if-ne v1, v2, :cond_d0
const-string v2, "ITUNESADVISORY"
.line 167
invoke-static {v1, v2, p0, v3, v3}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseUint8Attribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;ZZ)Lcom/google/android/exoplayer2/metadata/id3/Id3Frame;
move-result-object v1
:try_end_cc
.catchall {:try_start_c2 .. :try_end_cc} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 168
:cond_d0
:try_start_d0
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_GAPLESS_ALBUM:I
if-ne v1, v2, :cond_de
const-string v2, "ITUNESGAPLESS"
.line 169
invoke-static {v1, v2, p0, v3, v4}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseUint8Attribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;ZZ)Lcom/google/android/exoplayer2/metadata/id3/Id3Frame;
move-result-object v1
:try_end_da
.catchall {:try_start_d0 .. :try_end_da} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 170
:cond_de
:try_start_de
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_TV_SORT_SHOW:I
if-ne v1, v2, :cond_ec
const-string v2, "TVSHOWSORT"
.line 171
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_e8
.catchall {:try_start_de .. :try_end_e8} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 172
:cond_ec
:try_start_ec
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_TV_SHOW:I
if-ne v1, v2, :cond_fa
const-string v2, "TVSHOW"
.line 173
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_f6
.catchall {:try_start_ec .. :try_end_f6} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 174
:cond_fa
:try_start_fa
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_INTERNAL:I
if-ne v1, v2, :cond_18c
.line 175
invoke-static {p0, v0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseInternalAttribute(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Lcom/google/android/exoplayer2/metadata/id3/Id3Frame;
move-result-object v1
:try_end_102
.catchall {:try_start_fa .. :try_end_102} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
:cond_106
:goto_106
const v2, 0xffffff
and-int/2addr v2, v1
.line 121
:try_start_10a
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_COMMENT:I
if-ne v2, v3, :cond_116
.line 122
invoke-static {v1, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseCommentAttribute(ILcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/CommentFrame;
move-result-object v1
:try_end_112
.catchall {:try_start_10a .. :try_end_112} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 123
:cond_116
:try_start_116
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_NAME_1:I
if-eq v2, v3, :cond_1b5
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_NAME_2:I
if-ne v2, v3, :cond_120
goto/16 :goto_1b5
.line 125
:cond_120
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_COMPOSER_1:I
if-eq v2, v3, :cond_1ab
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_COMPOSER_2:I
if-ne v2, v3, :cond_12a
goto/16 :goto_1ab
.line 127
:cond_12a
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_YEAR:I
if-ne v2, v3, :cond_138
const-string v2, "TDRC"
.line 128
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_134
.catchall {:try_start_116 .. :try_end_134} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 129
:cond_138
:try_start_138
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_ARTIST:I
if-ne v2, v3, :cond_146
const-string v2, "TPE1"
.line 130
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_142
.catchall {:try_start_138 .. :try_end_142} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 131
:cond_146
:try_start_146
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_ENCODER:I
if-ne v2, v3, :cond_154
const-string v2, "TSSE"
.line 132
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_150
.catchall {:try_start_146 .. :try_end_150} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 133
:cond_154
:try_start_154
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_ALBUM:I
if-ne v2, v3, :cond_162
const-string v2, "TALB"
.line 134
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_15e
.catchall {:try_start_154 .. :try_end_15e} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 135
:cond_162
:try_start_162
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_LYRICS:I
if-ne v2, v3, :cond_170
const-string v2, "USLT"
.line 136
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_16c
.catchall {:try_start_162 .. :try_end_16c} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 137
:cond_170
:try_start_170
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_GENRE:I
if-ne v2, v3, :cond_17e
const-string v2, "TCON"
.line 138
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_17a
.catchall {:try_start_170 .. :try_end_17a} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
.line 139
:cond_17e
:try_start_17e
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_GROUPING:I
if-ne v2, v3, :cond_18c
const-string v2, "TIT1"
.line 140
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_188
.catchall {:try_start_17e .. :try_end_188} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
:cond_18c
:try_start_18c
const-string v2, "MetadataUtil"
.line 177
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Skipped unknown metadata entry: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {v1}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->getAtomTypeString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
:try_end_1a6
.catchall {:try_start_18c .. :try_end_1a6} :catchall_1bf
const/4 v1, 0x0
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
:cond_1ab
:goto_1ab
:try_start_1ab
const-string v2, "TCOM"
.line 126
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_1b1
.catchall {:try_start_1ab .. :try_end_1b1} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
:cond_1b5
:goto_1b5
:try_start_1b5
const-string v2, "TIT2"
.line 124
invoke-static {v1, v2, p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
move-result-object v1
:try_end_1bb
.catchall {:try_start_1b5 .. :try_end_1bb} :catchall_1bf
.line 180
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return-object v1
:catchall_1bf
move-exception v1
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
throw v1
.end method
.method private static parseIndexAndCountAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
.registers 7
.line 225
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v0
.line 226
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 227
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_data:I
const/4 v3, 0x0
if-ne v1, v2, :cond_4d
const/16 v1, 0x16
if-lt v0, v1, :cond_4d
const/16 v0, 0xa
.line 228
invoke-virtual {p2, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 229
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v0
if-lez v0, :cond_4d
.line 231
new-instance p0, Ljava/lang/StringBuilder;
invoke-direct {p0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, ""
invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
.line 232
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result p2
if-lez p2, :cond_47
.line 234
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "/"
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
.line 236
:cond_47
new-instance p2, Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
invoke-direct {p2, p1, v3, p0}, Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
return-object p2
.line 239
:cond_4d
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string p2, "Failed to parse index/count attribute: "
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {p0}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->getAtomTypeString(I)Ljava/lang/String;
move-result-object p0
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
const-string p1, "MetadataUtil"
invoke-static {p1, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
return-object v3
.end method
.method private static parseInternalAttribute(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Lcom/google/android/exoplayer2/metadata/id3/Id3Frame;
.registers 12
const/4 v0, -0x1
const/4 v1, 0x0
move-object v2, v1
move-object v3, v2
const/4 v4, -0x1
const/4 v5, -0x1
.line 279
:goto_6
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v6
if-ge v6, p1, :cond_3e
.line 280
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v6
.line 281
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v7
.line 282
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v8
const/4 v9, 0x4
.line 283
invoke-virtual {p0, v9}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 284
sget v9, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_mean:I
if-ne v8, v9, :cond_27
add-int/lit8 v7, v7, -0xc
.line 285
invoke-virtual {p0, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readNullTerminatedString(I)Ljava/lang/String;
move-result-object v2
goto :goto_6
.line 286
:cond_27
sget v9, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_name:I
if-ne v8, v9, :cond_32
add-int/lit8 v7, v7, -0xc
.line 287
invoke-virtual {p0, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readNullTerminatedString(I)Ljava/lang/String;
move-result-object v3
goto :goto_6
.line 289
:cond_32
sget v9, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_data:I
if-ne v8, v9, :cond_38
move v4, v6
move v5, v7
:cond_38
add-int/lit8 v7, v7, -0xc
.line 293
invoke-virtual {p0, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
goto :goto_6
:cond_3e
const-string p1, "com.apple.iTunes"
.line 296
invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_67
const-string p1, "iTunSMPB"
invoke-virtual {p1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_67
if-ne v4, v0, :cond_51
goto :goto_67
.line 300
:cond_51
invoke-virtual {p0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
const/16 p1, 0x10
.line 301
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
sub-int/2addr v5, p1
.line 302
invoke-virtual {p0, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readNullTerminatedString(I)Ljava/lang/String;
move-result-object p0
.line 303
new-instance p1, Lcom/google/android/exoplayer2/metadata/id3/CommentFrame;
const-string/jumbo v0, "und"
invoke-direct {p1, v0, v3, p0}, Lcom/google/android/exoplayer2/metadata/id3/CommentFrame;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
return-object p1
:cond_67
:goto_67
return-object v1
.end method
.method private static parseStandardGenreAttribute(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
.registers 4
.line 244
invoke-static {p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseUint8AttributeValue(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
move-result p0
const/4 v0, 0x0
if-lez p0, :cond_11
.line 245
sget-object v1, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->STANDARD_GENRES:[Ljava/lang/String;
array-length v2, v1
if-gt p0, v2, :cond_11
add-int/lit8 p0, p0, -0x1
aget-object p0, v1, p0
goto :goto_12
:cond_11
move-object p0, v0
:goto_12
if-eqz p0, :cond_1c
.line 248
new-instance v1, Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
const-string v2, "TCON"
invoke-direct {v1, v2, v0, p0}, Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
return-object v1
:cond_1c
const-string p0, "MetadataUtil"
const-string v1, "Failed to parse standard genre code"
.line 250
invoke-static {p0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
return-object v0
.end method
.method private static parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
.registers 7
.line 186
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v0
.line 187
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 188
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_data:I
const/4 v3, 0x0
if-ne v1, v2, :cond_1e
const/16 p0, 0x8
.line 189
invoke-virtual {p2, p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
add-int/lit8 v0, v0, -0x10
.line 190
invoke-virtual {p2, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readNullTerminatedString(I)Ljava/lang/String;
move-result-object p0
.line 191
new-instance p2, Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
invoke-direct {p2, p1, v3, p0}, Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
return-object p2
.line 193
:cond_1e
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string p2, "Failed to parse text attribute: "
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {p0}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->getAtomTypeString(I)Ljava/lang/String;
move-result-object p0
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
const-string p1, "MetadataUtil"
invoke-static {p1, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
return-object v3
.end method
.method private static parseUint8Attribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;ZZ)Lcom/google/android/exoplayer2/metadata/id3/Id3Frame;
.registers 5
.line 211
invoke-static {p2}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseUint8AttributeValue(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
move-result p2
if-eqz p4, :cond_b
const/4 p4, 0x1
.line 213
invoke-static {p4, p2}, Ljava/lang/Math;->min(II)I
move-result p2
:cond_b
const/4 p4, 0x0
if-ltz p2, :cond_27
if-eqz p3, :cond_1a
.line 216
new-instance p0, Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
invoke-static {p2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object p2
invoke-direct {p0, p1, p4, p2}, Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
goto :goto_26
:cond_1a
new-instance p0, Lcom/google/android/exoplayer2/metadata/id3/CommentFrame;
.line 217
invoke-static {p2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object p2
const-string/jumbo p3, "und"
invoke-direct {p0, p3, p1, p2}, Lcom/google/android/exoplayer2/metadata/id3/CommentFrame;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
:goto_26
return-object p0
.line 219
:cond_27
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string p2, "Failed to parse uint8 attribute: "
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {p0}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->getAtomTypeString(I)Ljava/lang/String;
move-result-object p0
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
const-string p1, "MetadataUtil"
invoke-static {p1, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
return-object p4
.end method
.method private static parseUint8AttributeValue(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
.registers 3
const/4 v0, 0x4
.line 307
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 308
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v0
.line 309
sget v1, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_data:I
if-ne v0, v1, :cond_16
const/16 v0, 0x8
.line 310
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 311
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result p0
return p0
:cond_16
const-string p0, "MetadataUtil"
const-string v0, "Failed to parse uint8 attribute value"
.line 313
invoke-static {p0, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const/4 p0, -0x1
return p0
.end method