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 MDTA_KEY_ANDROID_CAPTURE_FPS:Ljava/lang/String; = "com.android.capture.fps"
.field private static final MDTA_TYPE_INDICATOR_FLOAT:I = 0x17
.field private static final PICTURE_TYPE_FRONT_COVER:I = 0x3
.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_TOP_BYTE_COPYRIGHT:I = 0xa9
.field private static final TYPE_TOP_BYTE_REPLACEMENT:I = 0xfd
.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
.line 39
const-string v0, "nam"
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
.line 40
const-string/jumbo v0, "trk"
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
.line 41
const-string v0, "cmt"
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
.line 42
const-string v0, "day"
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
.line 43
const-string v0, "ART"
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
.line 44
const-string/jumbo v0, "too"
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
.line 45
const-string v0, "alb"
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
.line 46
const-string v0, "com"
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
.line 47
const-string/jumbo v0, "wrt"
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
.line 48
const-string v0, "lyr"
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
.line 49
const-string v0, "gen"
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
.line 52
const-string v0, "covr"
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
.line 53
const-string v0, "gnre"
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
.line 54
const-string v0, "grp"
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
.line 55
const-string v0, "disk"
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
.line 56
const-string/jumbo v0, "trkn"
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
.line 57
const-string/jumbo v0, "tmpo"
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
.line 58
const-string v0, "cpil"
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
.line 59
const-string v0, "aART"
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
.line 60
const-string/jumbo v0, "sonm"
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
.line 61
const-string/jumbo v0, "soal"
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
.line 62
const-string/jumbo v0, "soar"
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
.line 63
const-string/jumbo v0, "soaa"
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
.line 64
const-string/jumbo v0, "soco"
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
.line 67
const-string v0, "rtng"
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
.line 68
const-string v0, "pgap"
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
.line 69
const-string/jumbo v0, "sosn"
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
.line 70
const-string/jumbo v0, "tvsh"
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
.line 73
const-string v0, "----"
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
.line 78
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"
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 114
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static getFormatWithMetadata(ILcom/google/android/exoplayer2/Format;Lcom/google/android/exoplayer2/metadata/Metadata;Lcom/google/android/exoplayer2/metadata/Metadata;Lcom/google/android/exoplayer2/extractor/GaplessInfoHolder;)Lcom/google/android/exoplayer2/Format;
.registers 13
.param p0, "trackType" # I
.param p1, "format" # Lcom/google/android/exoplayer2/Format;
.param p2, "udtaMetadata" # Lcom/google/android/exoplayer2/metadata/Metadata;
.param p3, "mdtaMetadata" # Lcom/google/android/exoplayer2/metadata/Metadata;
.param p4, "gaplessInfoHolder" # Lcom/google/android/exoplayer2/extractor/GaplessInfoHolder;
.line 126
const/4 v0, 0x1
if-ne p0, v0, :cond_18
.line 127
invoke-virtual {p4}, Lcom/google/android/exoplayer2/extractor/GaplessInfoHolder;->hasGaplessInfo()Z
move-result v0
if-eqz v0, :cond_11
.line 128
iget v0, p4, Lcom/google/android/exoplayer2/extractor/GaplessInfoHolder;->encoderDelay:I
iget v1, p4, Lcom/google/android/exoplayer2/extractor/GaplessInfoHolder;->encoderPadding:I
.line 129
invoke-virtual {p1, v0, v1}, Lcom/google/android/exoplayer2/Format;->copyWithGaplessInfo(II)Lcom/google/android/exoplayer2/Format;
move-result-object p1
.line 133
:cond_11
if-eqz p2, :cond_6d
.line 134
invoke-virtual {p1, p2}, Lcom/google/android/exoplayer2/Format;->copyWithMetadata(Lcom/google/android/exoplayer2/metadata/Metadata;)Lcom/google/android/exoplayer2/Format;
move-result-object p1
goto :goto_6d
.line 136
:cond_18
const/4 v1, 0x2
if-ne p0, v1, :cond_6d
if-eqz p3, :cond_6d
.line 138
const/4 v1, 0x0
.local v1, "i":I
:goto_1e
invoke-virtual {p3}, Lcom/google/android/exoplayer2/metadata/Metadata;->length()I
move-result v2
if-ge v1, v2, :cond_6d
.line 139
invoke-virtual {p3, v1}, Lcom/google/android/exoplayer2/metadata/Metadata;->get(I)Lcom/google/android/exoplayer2/metadata/Metadata$Entry;
move-result-object v2
.line 140
.local v2, "entry":Lcom/google/android/exoplayer2/metadata/Metadata$Entry;
instance-of v3, v2, Lcom/google/android/exoplayer2/extractor/mp4/MdtaMetadataEntry;
if-eqz v3, :cond_6a
.line 141
move-object v3, v2
check-cast v3, Lcom/google/android/exoplayer2/extractor/mp4/MdtaMetadataEntry;
.line 142
.local v3, "mdtaMetadataEntry":Lcom/google/android/exoplayer2/extractor/mp4/MdtaMetadataEntry;
iget-object v4, v3, Lcom/google/android/exoplayer2/extractor/mp4/MdtaMetadataEntry;->key:Ljava/lang/String;
const-string v5, "com.android.capture.fps"
invoke-virtual {v5, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_6a
iget v4, v3, Lcom/google/android/exoplayer2/extractor/mp4/MdtaMetadataEntry;->typeIndicator:I
const/16 v5, 0x17
if-ne v4, v5, :cond_6a
.line 145
:try_start_3f
iget-object v4, v3, Lcom/google/android/exoplayer2/extractor/mp4/MdtaMetadataEntry;->value:[B
invoke-static {v4}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;
move-result-object v4
invoke-virtual {v4}, Ljava/nio/ByteBuffer;->asFloatBuffer()Ljava/nio/FloatBuffer;
move-result-object v4
invoke-virtual {v4}, Ljava/nio/FloatBuffer;->get()F
move-result v4
.line 146
.local v4, "fps":F
invoke-virtual {p1, v4}, Lcom/google/android/exoplayer2/Format;->copyWithFrameRate(F)Lcom/google/android/exoplayer2/Format;
move-result-object v5
move-object p1, v5
.line 147
new-instance v5, Lcom/google/android/exoplayer2/metadata/Metadata;
new-array v6, v0, [Lcom/google/android/exoplayer2/metadata/Metadata$Entry;
const/4 v7, 0x0
aput-object v3, v6, v7
invoke-direct {v5, v6}, Lcom/google/android/exoplayer2/metadata/Metadata;-><init>([Lcom/google/android/exoplayer2/metadata/Metadata$Entry;)V
invoke-virtual {p1, v5}, Lcom/google/android/exoplayer2/Format;->copyWithMetadata(Lcom/google/android/exoplayer2/metadata/Metadata;)Lcom/google/android/exoplayer2/Format;
move-result-object v5
:try_end_60
.catch Ljava/lang/NumberFormatException; {:try_start_3f .. :try_end_60} :catch_62
move-object p1, v5
.line 150
.end local v4 # "fps":F
goto :goto_6a
.line 148
:catch_62
move-exception v4
.line 149
.local v4, "e":Ljava/lang/NumberFormatException;
const-string v5, "MetadataUtil"
const-string v6, "Ignoring invalid framerate"
invoke-static {v5, v6}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 138
.end local v2 # "entry":Lcom/google/android/exoplayer2/metadata/Metadata$Entry;
.end local v3 # "mdtaMetadataEntry":Lcom/google/android/exoplayer2/extractor/mp4/MdtaMetadataEntry;
.end local v4 # "e":Ljava/lang/NumberFormatException;
:cond_6a
:goto_6a
add-int/lit8 v1, v1, 0x1
goto :goto_1e
.line 155
.end local v1 # "i":I
:cond_6d
:goto_6d
return-object p1
.end method
.method private static parseCommentAttribute(ILcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/CommentFrame;
.registers 7
.param p0, "type" # I
.param p1, "data" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 283
invoke-virtual {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v0
.line 284
.local v0, "atomSize":I
invoke-virtual {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 285
.local v1, "atomType":I
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_data:I
if-ne v1, v2, :cond_20
.line 286
const/16 v2, 0x8
invoke-virtual {p1, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 287
add-int/lit8 v2, v0, -0x10
invoke-virtual {p1, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readNullTerminatedString(I)Ljava/lang/String;
move-result-object v2
.line 288
.local v2, "value":Ljava/lang/String;
new-instance v3, Lcom/google/android/exoplayer2/metadata/id3/CommentFrame;
const-string/jumbo v4, "und"
invoke-direct {v3, v4, v2, v2}, Lcom/google/android/exoplayer2/metadata/id3/CommentFrame;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
return-object v3
.line 290
.end local v2 # "value":Ljava/lang/String;
:cond_20
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Failed to parse comment attribute: "
invoke-virtual {v2, v3}, 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 v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
const-string v3, "MetadataUtil"
invoke-static {v3, v2}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 291
const/4 v2, 0x0
return-object v2
.end method
.method private static parseCoverArt(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/ApicFrame;
.registers 10
.param p0, "data" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 349
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v0
.line 350
.local v0, "atomSize":I
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 351
.local v1, "atomType":I
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_51
.line 352
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 353
.local v2, "fullVersionInt":I
invoke-static {v2}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->parseFullAtomFlags(I)I
move-result v5
.line 354
.local v5, "flags":I
const/16 v6, 0xd
if-ne v5, v6, :cond_1e
const-string v6, "image/jpeg"
goto :goto_26
:cond_1e
const/16 v6, 0xe
if-ne v5, v6, :cond_25
const-string v6, "image/png"
goto :goto_26
:cond_25
move-object v6, v4
.line 355
.local v6, "mimeType":Ljava/lang/String;
:goto_26
if-nez v6, :cond_3d
.line 356
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "Unrecognized cover art flags: "
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
invoke-static {v3, v7}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 357
return-object v4
.line 359
:cond_3d
const/4 v3, 0x4
invoke-virtual {p0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 360
add-int/lit8 v3, v0, -0x10
new-array v3, v3, [B
.line 361
.local v3, "pictureData":[B
const/4 v7, 0x0
array-length v8, v3
invoke-virtual {p0, v3, v7, v8}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
.line 362
new-instance v7, Lcom/google/android/exoplayer2/metadata/id3/ApicFrame;
const/4 v8, 0x3
invoke-direct {v7, v6, v4, v8, v3}, Lcom/google/android/exoplayer2/metadata/id3/ApicFrame;-><init>(Ljava/lang/String;Ljava/lang/String;I[B)V
return-object v7
.line 368
.end local v2 # "fullVersionInt":I
.end local v3 # "pictureData":[B
.end local v5 # "flags":I
.end local v6 # "mimeType":Ljava/lang/String;
:cond_51
const-string v2, "Failed to parse cover art attribute"
invoke-static {v3, v2}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 369
return-object v4
.end method
.method public static parseIlstElement(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/Metadata$Entry;
.registers 8
.param p0, "ilst" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 169
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v0
.line 170
.local v0, "position":I
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
add-int/2addr v1, v0
.line 171
.local v1, "endPosition":I
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 172
.local v2, "type":I
shr-int/lit8 v3, v2, 0x18
and-int/lit16 v3, v3, 0xff
.line 174
.local v3, "typeTopByte":I
const/16 v4, 0xa9
if-eq v3, v4, :cond_105
const/16 v4, 0xfd
if-ne v3, v4, :cond_1b
goto/16 :goto_105
.line 197
:cond_1b
:try_start_1b
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_GENRE:I
if-ne v2, v4, :cond_27
.line 198
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 v4
:try_end_23
.catchall {:try_start_1b .. :try_end_23} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 198
return-object v4
.line 199
:cond_27
:try_start_27
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_DISK_NUMBER:I
if-ne v2, v4, :cond_35
.line 200
const-string v4, "TPOS"
invoke-static {v2, v4, 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 v4
:try_end_31
.catchall {:try_start_27 .. :try_end_31} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 200
return-object v4
.line 201
:cond_35
:try_start_35
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_TRACK_NUMBER:I
if-ne v2, v4, :cond_43
.line 202
const-string v4, "TRCK"
invoke-static {v2, v4, 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 v4
:try_end_3f
.catchall {:try_start_35 .. :try_end_3f} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 202
return-object v4
.line 203
:cond_43
:try_start_43
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_TEMPO:I
const/4 v5, 0x0
const/4 v6, 0x1
if-ne v2, v4, :cond_53
.line 204
const-string v4, "TBPM"
invoke-static {v2, v4, p0, v6, v5}, 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 v4
:try_end_4f
.catchall {:try_start_43 .. :try_end_4f} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 204
return-object v4
.line 205
:cond_53
:try_start_53
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_COMPILATION:I
if-ne v2, v4, :cond_61
.line 206
const-string v4, "TCMP"
invoke-static {v2, v4, p0, v6, v6}, 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 v4
:try_end_5d
.catchall {:try_start_53 .. :try_end_5d} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 206
return-object v4
.line 207
:cond_61
:try_start_61
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_COVER_ART:I
if-ne v2, v4, :cond_6d
.line 208
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 v4
:try_end_69
.catchall {:try_start_61 .. :try_end_69} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 208
return-object v4
.line 209
:cond_6d
:try_start_6d
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_ALBUM_ARTIST:I
if-ne v2, v4, :cond_7b
.line 210
const-string v4, "TPE2"
invoke-static {v2, v4, 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 v4
:try_end_77
.catchall {:try_start_6d .. :try_end_77} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 210
return-object v4
.line 211
:cond_7b
:try_start_7b
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_SORT_TRACK_NAME:I
if-ne v2, v4, :cond_89
.line 212
const-string v4, "TSOT"
invoke-static {v2, v4, 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 v4
:try_end_85
.catchall {:try_start_7b .. :try_end_85} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 212
return-object v4
.line 213
:cond_89
:try_start_89
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_SORT_ALBUM:I
if-ne v2, v4, :cond_97
.line 214
const-string v4, "TSO2"
invoke-static {v2, v4, 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 v4
:try_end_93
.catchall {:try_start_89 .. :try_end_93} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 214
return-object v4
.line 215
:cond_97
:try_start_97
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_SORT_ARTIST:I
if-ne v2, v4, :cond_a5
.line 216
const-string v4, "TSOA"
invoke-static {v2, v4, 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 v4
:try_end_a1
.catchall {:try_start_97 .. :try_end_a1} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 216
return-object v4
.line 217
:cond_a5
:try_start_a5
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_SORT_ALBUM_ARTIST:I
if-ne v2, v4, :cond_b3
.line 218
const-string v4, "TSOP"
invoke-static {v2, v4, 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 v4
:try_end_af
.catchall {:try_start_a5 .. :try_end_af} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 218
return-object v4
.line 219
:cond_b3
:try_start_b3
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_SORT_COMPOSER:I
if-ne v2, v4, :cond_c1
.line 220
const-string v4, "TSOC"
invoke-static {v2, v4, 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 v4
:try_end_bd
.catchall {:try_start_b3 .. :try_end_bd} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 220
return-object v4
.line 221
:cond_c1
:try_start_c1
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_RATING:I
if-ne v2, v4, :cond_cf
.line 222
const-string v4, "ITUNESADVISORY"
invoke-static {v2, v4, p0, v5, v5}, 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 v4
:try_end_cb
.catchall {:try_start_c1 .. :try_end_cb} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 222
return-object v4
.line 223
:cond_cf
:try_start_cf
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_GAPLESS_ALBUM:I
if-ne v2, v4, :cond_dd
.line 224
const-string v4, "ITUNESGAPLESS"
invoke-static {v2, v4, p0, v5, v6}, 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 v4
:try_end_d9
.catchall {:try_start_cf .. :try_end_d9} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 224
return-object v4
.line 225
:cond_dd
:try_start_dd
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_TV_SORT_SHOW:I
if-ne v2, v4, :cond_eb
.line 226
const-string v4, "TVSHOWSORT"
invoke-static {v2, v4, 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 v4
:try_end_e7
.catchall {:try_start_dd .. :try_end_e7} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 226
return-object v4
.line 227
:cond_eb
:try_start_eb
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_TV_SHOW:I
if-ne v2, v4, :cond_f9
.line 228
const-string v4, "TVSHOW"
invoke-static {v2, v4, 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 v4
:try_end_f5
.catchall {:try_start_eb .. :try_end_f5} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 228
return-object v4
.line 229
:cond_f9
:try_start_f9
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_INTERNAL:I
if-ne v2, v4, :cond_18c
.line 230
invoke-static {p0, v1}, 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 v4
:try_end_101
.catchall {:try_start_f9 .. :try_end_101} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 230
return-object v4
.line 175
:cond_105
:goto_105
const v4, 0xffffff
and-int/2addr v4, v2
.line 176
.local v4, "shortType":I
:try_start_109
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_COMMENT:I
if-ne v4, v5, :cond_115
.line 177
invoke-static {v2, 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 v5
:try_end_111
.catchall {:try_start_109 .. :try_end_111} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 177
return-object v5
.line 178
:cond_115
:try_start_115
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_NAME_1:I
if-eq v4, v5, :cond_1b5
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_NAME_2:I
if-ne v4, v5, :cond_11f
goto/16 :goto_1b5
.line 180
:cond_11f
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_COMPOSER_1:I
if-eq v4, v5, :cond_1ab
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_COMPOSER_2:I
if-ne v4, v5, :cond_129
goto/16 :goto_1ab
.line 182
:cond_129
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_YEAR:I
if-ne v4, v5, :cond_137
.line 183
const-string v5, "TDRC"
invoke-static {v2, v5, 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 v5
:try_end_133
.catchall {:try_start_115 .. :try_end_133} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 183
return-object v5
.line 184
:cond_137
:try_start_137
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_ARTIST:I
if-ne v4, v5, :cond_145
.line 185
const-string v5, "TPE1"
invoke-static {v2, v5, 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 v5
:try_end_141
.catchall {:try_start_137 .. :try_end_141} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 185
return-object v5
.line 186
:cond_145
:try_start_145
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_ENCODER:I
if-ne v4, v5, :cond_153
.line 187
const-string v5, "TSSE"
invoke-static {v2, v5, 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 v5
:try_end_14f
.catchall {:try_start_145 .. :try_end_14f} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 187
return-object v5
.line 188
:cond_153
:try_start_153
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_ALBUM:I
if-ne v4, v5, :cond_161
.line 189
const-string v5, "TALB"
invoke-static {v2, v5, 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 v5
:try_end_15d
.catchall {:try_start_153 .. :try_end_15d} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 189
return-object v5
.line 190
:cond_161
:try_start_161
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_LYRICS:I
if-ne v4, v5, :cond_16f
.line 191
const-string v5, "USLT"
invoke-static {v2, v5, 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 v5
:try_end_16b
.catchall {:try_start_161 .. :try_end_16b} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 191
return-object v5
.line 192
:cond_16f
:try_start_16f
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->SHORT_TYPE_GENRE:I
if-ne v4, v5, :cond_17d
.line 193
const-string v5, "TCON"
invoke-static {v2, v5, 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 v5
:try_end_179
.catchall {:try_start_16f .. :try_end_179} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 193
return-object v5
.line 194
:cond_17d
:try_start_17d
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->TYPE_GROUPING:I
if-ne v4, v5, :cond_18b
.line 195
const-string v5, "TIT1"
invoke-static {v2, v5, 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 v5
:try_end_187
.catchall {:try_start_17d .. :try_end_187} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 195
return-object v5
.line 197
.end local v4 # "shortType":I
:cond_18b
nop
.line 232
:cond_18c
:try_start_18c
const-string v4, "MetadataUtil"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Skipped unknown metadata entry: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {v2}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->getAtomTypeString(I)Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v4, v5}, Lcom/google/android/exoplayer2/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)V
:try_end_1a6
.catchall {:try_start_18c .. :try_end_1a6} :catchall_1bf
.line 233
const/4 v4, 0x0
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 233
return-object v4
.line 181
.restart local v4 # "shortType":I
:cond_1ab
:goto_1ab
:try_start_1ab
const-string v5, "TCOM"
invoke-static {v2, v5, 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 v5
:try_end_1b1
.catchall {:try_start_1ab .. :try_end_1b1} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 181
return-object v5
.line 179
:cond_1b5
:goto_1b5
:try_start_1b5
const-string v5, "TIT2"
invoke-static {v2, v5, 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 v5
:try_end_1bb
.catchall {:try_start_1b5 .. :try_end_1bb} :catchall_1bf
.line 235
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 179
return-object v5
.line 235
.end local v4 # "shortType":I
:catchall_1bf
move-exception v4
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 236
throw v4
.end method
.method private static parseIndexAndCountAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
.registers 11
.param p0, "type" # I
.param p1, "attributeName" # Ljava/lang/String;
.param p2, "data" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 317
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v0
.line 318
.local v0, "atomSize":I
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 319
.local v1, "atomType":I
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_data:I
const/4 v3, 0x0
if-ne v1, v2, :cond_4d
const/16 v2, 0x16
if-lt v0, v2, :cond_4d
.line 320
const/16 v2, 0xa
invoke-virtual {p2, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 321
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v2
.line 322
.local v2, "index":I
if-lez v2, :cond_4d
.line 323
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, ""
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
.line 324
.local v4, "value":Ljava/lang/String;
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v5
.line 325
.local v5, "count":I
if-lez v5, :cond_47
.line 326
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v7, "/"
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
.line 328
:cond_47
new-instance v6, Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
invoke-direct {v6, p1, v3, v4}, Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
return-object v6
.line 331
.end local v2 # "index":I
.end local v4 # "value":Ljava/lang/String;
.end local v5 # "count":I
:cond_4d
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Failed to parse index/count attribute: "
invoke-virtual {v2, v4}, 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 v4
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
const-string v4, "MetadataUtil"
invoke-static {v4, v2}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 332
return-object v3
.end method
.method private static parseInternalAttribute(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Lcom/google/android/exoplayer2/metadata/id3/Id3Frame;
.registers 10
.param p0, "data" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "endPosition" # I
.line 374
const/4 v0, 0x0
.line 375
.local v0, "domain":Ljava/lang/String;
const/4 v1, 0x0
.line 376
.local v1, "name":Ljava/lang/String;
const/4 v2, -0x1
.line 377
.local v2, "dataAtomPosition":I
const/4 v3, -0x1
.line 378
.local v3, "dataAtomSize":I
:goto_4
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v4
if-ge v4, p1, :cond_3c
.line 379
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v4
.line 380
.local v4, "atomPosition":I
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v5
.line 381
.local v5, "atomSize":I
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v6
.line 382
.local v6, "atomType":I
const/4 v7, 0x4
invoke-virtual {p0, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 383
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_mean:I
if-ne v6, v7, :cond_25
.line 384
add-int/lit8 v7, v5, -0xc
invoke-virtual {p0, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readNullTerminatedString(I)Ljava/lang/String;
move-result-object v0
goto :goto_3b
.line 385
:cond_25
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_name:I
if-ne v6, v7, :cond_30
.line 386
add-int/lit8 v7, v5, -0xc
invoke-virtual {p0, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readNullTerminatedString(I)Ljava/lang/String;
move-result-object v1
goto :goto_3b
.line 388
:cond_30
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_data:I
if-ne v6, v7, :cond_36
.line 389
move v2, v4
.line 390
move v3, v5
.line 392
:cond_36
add-int/lit8 v7, v5, -0xc
invoke-virtual {p0, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 394
.end local v4 # "atomPosition":I
.end local v5 # "atomSize":I
.end local v6 # "atomType":I
:goto_3b
goto :goto_4
.line 395
:cond_3c
if-eqz v0, :cond_58
if-eqz v1, :cond_58
const/4 v4, -0x1
if-ne v2, v4, :cond_44
goto :goto_58
.line 398
:cond_44
invoke-virtual {p0, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 399
const/16 v4, 0x10
invoke-virtual {p0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 400
add-int/lit8 v4, v3, -0x10
invoke-virtual {p0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readNullTerminatedString(I)Ljava/lang/String;
move-result-object v4
.line 401
.local v4, "value":Ljava/lang/String;
new-instance v5, Lcom/google/android/exoplayer2/metadata/id3/InternalFrame;
invoke-direct {v5, v0, v1, v4}, Lcom/google/android/exoplayer2/metadata/id3/InternalFrame;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
return-object v5
.line 396
.end local v4 # "value":Ljava/lang/String;
:cond_58
:goto_58
const/4 v4, 0x0
return-object v4
.end method
.method public static parseMdtaMetadataEntryFromIlst(Lcom/google/android/exoplayer2/util/ParsableByteArray;ILjava/lang/String;)Lcom/google/android/exoplayer2/extractor/mp4/MdtaMetadataEntry;
.registers 11
.param p0, "ilst" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "endPosition" # I
.param p2, "key" # Ljava/lang/String;
.line 251
:goto_0
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v0
move v1, v0
.local v1, "atomPosition":I
if-ge v0, p1, :cond_2f
.line 252
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v0
.line 253
.local v0, "atomSize":I
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 254
.local v2, "atomType":I
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_data:I
if-ne v2, v3, :cond_29
.line 255
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v3
.line 256
.local v3, "typeIndicator":I
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v4
.line 257
.local v4, "localeIndicator":I
add-int/lit8 v5, v0, -0x10
.line 258
.local v5, "dataSize":I
new-array v6, v5, [B
.line 259
.local v6, "value":[B
const/4 v7, 0x0
invoke-virtual {p0, v6, v7, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
.line 260
new-instance v7, Lcom/google/android/exoplayer2/extractor/mp4/MdtaMetadataEntry;
invoke-direct {v7, p2, v6, v4, v3}, Lcom/google/android/exoplayer2/extractor/mp4/MdtaMetadataEntry;-><init>(Ljava/lang/String;[BII)V
return-object v7
.line 262
.end local v3 # "typeIndicator":I
.end local v4 # "localeIndicator":I
.end local v5 # "dataSize":I
.end local v6 # "value":[B
:cond_29
add-int v3, v1, v0
invoke-virtual {p0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 263
.end local v0 # "atomSize":I
.end local v2 # "atomType":I
goto :goto_0
.line 264
:cond_2f
const/4 v0, 0x0
return-object v0
.end method
.method private static parseStandardGenreAttribute(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
.registers 6
.param p0, "data" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 337
invoke-static {p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseUint8AttributeValue(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
move-result v0
.line 338
.local v0, "genreCode":I
const/4 v1, 0x0
if-lez v0, :cond_11
sget-object v2, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->STANDARD_GENRES:[Ljava/lang/String;
array-length v3, v2
if-gt v0, v3, :cond_11
add-int/lit8 v3, v0, -0x1
aget-object v2, v2, v3
goto :goto_12
:cond_11
move-object v2, v1
.line 340
.local v2, "genreString":Ljava/lang/String;
:goto_12
if-eqz v2, :cond_1c
.line 341
new-instance v3, Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
const-string v4, "TCON"
invoke-direct {v3, v4, v1, v2}, Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
return-object v3
.line 343
:cond_1c
const-string v3, "MetadataUtil"
const-string v4, "Failed to parse standard genre code"
invoke-static {v3, v4}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 344
return-object v1
.end method
.method private static parseTextAttribute(ILjava/lang/String;Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
.registers 8
.param p0, "type" # I
.param p1, "id" # Ljava/lang/String;
.param p2, "data" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 270
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v0
.line 271
.local v0, "atomSize":I
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 272
.local v1, "atomType":I
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_data:I
const/4 v3, 0x0
if-ne v1, v2, :cond_1e
.line 273
const/16 v2, 0x8
invoke-virtual {p2, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 274
add-int/lit8 v2, v0, -0x10
invoke-virtual {p2, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readNullTerminatedString(I)Ljava/lang/String;
move-result-object v2
.line 275
.local v2, "value":Ljava/lang/String;
new-instance v4, Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
invoke-direct {v4, p1, v3, v2}, Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
return-object v4
.line 277
.end local v2 # "value":Ljava/lang/String;
:cond_1e
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Failed to parse text attribute: "
invoke-virtual {v2, v4}, 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 v4
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
const-string v4, "MetadataUtil"
invoke-static {v4, v2}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 278
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 9
.param p0, "type" # I
.param p1, "id" # Ljava/lang/String;
.param p2, "data" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p3, "isTextInformationFrame" # Z
.param p4, "isBoolean" # Z
.line 301
invoke-static {p2}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseUint8AttributeValue(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
move-result v0
.line 302
.local v0, "value":I
if-eqz p4, :cond_b
.line 303
const/4 v1, 0x1
invoke-static {v1, v0}, Ljava/lang/Math;->min(II)I
move-result v0
.line 305
:cond_b
const/4 v1, 0x0
if-ltz v0, :cond_27
.line 306
if-eqz p3, :cond_1a
new-instance v2, Lcom/google/android/exoplayer2/metadata/id3/TextInformationFrame;
.line 307
invoke-static {v0}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v3
invoke-direct {v2, p1, v1, v3}, 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 v2, Lcom/google/android/exoplayer2/metadata/id3/CommentFrame;
.line 308
invoke-static {v0}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v1
const-string/jumbo v3, "und"
invoke-direct {v2, v3, p1, v1}, Lcom/google/android/exoplayer2/metadata/id3/CommentFrame;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
.line 306
:goto_26
return-object v2
.line 310
:cond_27
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Failed to parse uint8 attribute: "
invoke-virtual {v2, v3}, 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 v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
const-string v3, "MetadataUtil"
invoke-static {v3, v2}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 311
return-object v1
.end method
.method private static parseUint8AttributeValue(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
.registers 4
.param p0, "data" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 405
const/4 v0, 0x4
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 406
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v0
.line 407
.local v0, "atomType":I
sget v1, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_data:I
if-ne v0, v1, :cond_16
.line 408
const/16 v1, 0x8
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 409
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v1
return v1
.line 411
:cond_16
const-string v1, "MetadataUtil"
const-string v2, "Failed to parse uint8 attribute value"
invoke-static {v1, v2}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 412
const/4 v1, -0x1
return v1
.end method