.class public final Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util; .super Ljava/lang/Object; .source "SourceFile" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util$SyncFrameInfo; } .end annotation # static fields .field private static final AC3_SYNCFRAME_AUDIO_SAMPLE_COUNT:I = 0x600 .field private static final AUDIO_SAMPLES_PER_AUDIO_BLOCK:I = 0x100 .field private static final BITRATE_BY_HALF_FRMSIZECOD:[I .field private static final BLOCKS_PER_SYNCFRAME_BY_NUMBLKSCOD:[I .field private static final CHANNEL_COUNT_BY_ACMOD:[I .field private static final SAMPLE_RATE_BY_FSCOD:[I .field private static final SAMPLE_RATE_BY_FSCOD2:[I .field private static final SYNCFRAME_SIZE_WORDS_BY_HALF_FRMSIZECOD_44_1:[I .field public static final TRUEHD_RECHUNK_SAMPLE_COUNT:I = 0x10 .field public static final TRUEHD_SYNCFRAME_PREFIX_LENGTH:I = 0xa # direct methods .method static constructor ()V .locals 4 const/4 v0, 0x3 const/4 v1, 0x6 const/4 v2, 0x1 const/4 v3, 0x2 filled-new-array {v2, v3, v0, v1}, [I move-result-object v0 sput-object v0, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->BLOCKS_PER_SYNCFRAME_BY_NUMBLKSCOD:[I const v0, 0xac44 const/16 v1, 0x7d00 const v2, 0xbb80 filled-new-array {v2, v0, v1}, [I move-result-object v0 sput-object v0, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->SAMPLE_RATE_BY_FSCOD:[I const/16 v0, 0x5622 const/16 v1, 0x3e80 const/16 v2, 0x5dc0 filled-new-array {v2, v0, v1}, [I move-result-object v0 sput-object v0, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->SAMPLE_RATE_BY_FSCOD2:[I const/16 v0, 0x8 new-array v0, v0, [I fill-array-data v0, :array_0 sput-object v0, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->CHANNEL_COUNT_BY_ACMOD:[I const/16 v0, 0x13 new-array v1, v0, [I fill-array-data v1, :array_1 sput-object v1, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->BITRATE_BY_HALF_FRMSIZECOD:[I new-array v0, v0, [I fill-array-data v0, :array_2 sput-object v0, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->SYNCFRAME_SIZE_WORDS_BY_HALF_FRMSIZECOD_44_1:[I return-void :array_0 .array-data 4 0x2 0x1 0x2 0x3 0x3 0x4 0x4 0x5 .end array-data :array_1 .array-data 4 0x20 0x28 0x30 0x38 0x40 0x50 0x60 0x70 0x80 0xa0 0xc0 0xe0 0x100 0x140 0x180 0x1c0 0x200 0x240 0x280 .end array-data :array_2 .array-data 4 0x45 0x57 0x68 0x79 0x8b 0xae 0xd0 0xf3 0x116 0x15c 0x1a1 0x1e7 0x22d 0x2b8 0x343 0x3cf 0x45a 0x4e5 0x571 .end array-data .end method .method private constructor ()V .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static findTrueHdSyncframeOffset(Ljava/nio/ByteBuffer;)I .locals 5 .line 381 invoke-virtual {p0}, Ljava/nio/Buffer;->position()I move-result v0 .line 382 invoke-virtual {p0}, Ljava/nio/Buffer;->limit()I move-result v1 add-int/lit8 v1, v1, -0xa move v2, v0 :goto_0 if-gt v2, v1, :cond_1 add-int/lit8 v3, v2, 0x4 .line 385 invoke-virtual {p0, v3}, Ljava/nio/ByteBuffer;->getInt(I)I move-result v3 const v4, -0x1000001 and-int/2addr v3, v4 const v4, -0x45908d08 if-ne v3, v4, :cond_0 sub-int/2addr v2, v0 return v2 :cond_0 add-int/lit8 v2, v2, 0x1 goto :goto_0 :cond_1 const/4 p0, -0x1 return p0 .end method .method public static getAc3SyncframeAudioSampleCount()I .locals 1 const/16 v0, 0x600 return v0 .end method .method private static getAc3SyncframeSize(II)I .locals 4 .line 414 div-int/lit8 v0, p1, 0x2 if-ltz p0, :cond_3 sget-object v1, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->SAMPLE_RATE_BY_FSCOD:[I .line 415 array-length v2, v1 if-ge p0, v2, :cond_3 if-ltz p1, :cond_3 sget-object v2, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->SYNCFRAME_SIZE_WORDS_BY_HALF_FRMSIZECOD_44_1:[I array-length v3, v2 if-lt v0, v3, :cond_0 goto :goto_0 .line 420 :cond_0 aget p0, v1, p0 const v1, 0xac44 if-ne p0, v1, :cond_1 .line 422 aget p0, v2, v0 rem-int/lit8 p1, p1, 0x2 add-int/2addr p0, p1 mul-int/lit8 p0, p0, 0x2 return p0 :cond_1 sget-object p1, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->BITRATE_BY_HALF_FRMSIZECOD:[I .line 424 aget p1, p1, v0 const/16 v0, 0x7d00 if-ne p0, v0, :cond_2 mul-int/lit8 p1, p1, 0x6 return p1 :cond_2 mul-int/lit8 p1, p1, 0x4 return p1 :cond_3 :goto_0 const/4 p0, -0x1 return p0 .end method .method public static parseAc3AnnexFFormat(Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableByteArray;Ljava/lang/String;Ljava/lang/String;Lcom/mbridge/msdk/playercommon/exoplayer2/drm/DrmInitData;)Lcom/mbridge/msdk/playercommon/exoplayer2/Format; .locals 13 .line 92 invoke-virtual {p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I move-result v0 and-int/lit16 v0, v0, 0xc0 shr-int/lit8 v0, v0, 0x6 sget-object v1, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->SAMPLE_RATE_BY_FSCOD:[I .line 93 aget v8, v1, v0 .line 94 invoke-virtual {p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I move-result v0 sget-object v1, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->CHANNEL_COUNT_BY_ACMOD:[I and-int/lit8 v2, v0, 0x38 shr-int/lit8 v2, v2, 0x3 .line 95 aget v1, v1, v2 and-int/lit8 v0, v0, 0x4 if-eqz v0, :cond_0 add-int/lit8 v1, v1, 0x1 :cond_0 move v7, v1 const-string v3, "audio/ac3" const/4 v4, 0x0 const/4 v5, -0x1 const/4 v6, -0x1 const/4 v9, 0x0 const/4 v11, 0x0 move-object v2, p1 move-object/from16 v10, p3 move-object v12, p2 .line 99 invoke-static/range {v2 .. v12}, Lcom/mbridge/msdk/playercommon/exoplayer2/Format;->createAudioSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIILjava/util/List;Lcom/mbridge/msdk/playercommon/exoplayer2/drm/DrmInitData;ILjava/lang/String;)Lcom/mbridge/msdk/playercommon/exoplayer2/Format; move-result-object v0 return-object v0 .end method .method public static parseAc3SyncframeInfo(Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;)Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util$SyncFrameInfo; .locals 18 move-object/from16 v0, p0 .line 141 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->getPosition()I move-result v1 const/16 v2, 0x28 .line 142 invoke-virtual {v0, v2}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V const/4 v2, 0x5 .line 143 invoke-virtual {v0, v2}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBits(I)I move-result v3 const/4 v5, 0x1 const/16 v6, 0x10 if-ne v3, v6, :cond_0 move v3, v5 goto :goto_0 :cond_0 const/4 v3, 0x0 .line 144 :goto_0 invoke-virtual {v0, v1}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->setPosition(I)V const/4 v1, -0x1 const/16 v7, 0x8 const/4 v8, 0x3 const/4 v9, 0x6 const/4 v10, 0x2 if-eqz v3, :cond_2b .line 155 invoke-virtual {v0, v6}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 156 invoke-virtual {v0, v10}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBits(I)I move-result v3 if-eqz v3, :cond_3 if-eq v3, v5, :cond_2 if-eq v3, v10, :cond_1 goto :goto_1 :cond_1 move v1, v10 goto :goto_1 :cond_2 move v1, v5 goto :goto_1 :cond_3 const/4 v1, 0x0 .line 170 :goto_1 invoke-virtual {v0, v8}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V const/16 v3, 0xb .line 171 invoke-virtual {v0, v3}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBits(I)I move-result v3 add-int/2addr v3, v5 mul-int/2addr v3, v10 .line 172 invoke-virtual {v0, v10}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBits(I)I move-result v11 if-ne v11, v8, :cond_4 sget-object v12, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->SAMPLE_RATE_BY_FSCOD2:[I .line 177 invoke-virtual {v0, v10}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBits(I)I move-result v13 aget v12, v12, v13 move v13, v9 move v14, v12 move v12, v8 goto :goto_2 .line 180 :cond_4 invoke-virtual {v0, v10}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBits(I)I move-result v12 sget-object v13, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->BLOCKS_PER_SYNCFRAME_BY_NUMBLKSCOD:[I .line 181 aget v13, v13, v12 sget-object v14, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->SAMPLE_RATE_BY_FSCOD:[I .line 182 aget v14, v14, v11 :goto_2 mul-int/lit16 v15, v13, 0x100 .line 185 invoke-virtual {v0, v8}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBits(I)I move-result v4 .line 186 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v16 sget-object v17, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->CHANNEL_COUNT_BY_ACMOD:[I .line 187 aget v17, v17, v4 add-int v17, v17, v16 const/16 v8, 0xa .line 188 invoke-virtual {v0, v8}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 189 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v8 if-eqz v8, :cond_5 .line 190 invoke-virtual {v0, v7}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_5 if-nez v4, :cond_6 .line 193 invoke-virtual {v0, v2}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 194 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v8 if-eqz v8, :cond_6 .line 195 invoke-virtual {v0, v7}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_6 if-ne v1, v5, :cond_7 .line 198 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v8 if-eqz v8, :cond_7 .line 199 invoke-virtual {v0, v6}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 201 :cond_7 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 const/4 v8, 0x4 if-eqz v6, :cond_20 if-le v4, v10, :cond_8 .line 203 invoke-virtual {v0, v10}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_8 and-int/lit8 v6, v4, 0x1 if-eqz v6, :cond_9 if-le v4, v10, :cond_9 .line 206 invoke-virtual {v0, v9}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_9 and-int/lit8 v6, v4, 0x4 if-eqz v6, :cond_a .line 209 invoke-virtual {v0, v9}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_a if-eqz v16, :cond_b .line 211 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_b .line 212 invoke-virtual {v0, v2}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_b if-nez v1, :cond_20 .line 215 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_c .line 216 invoke-virtual {v0, v9}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_c if-nez v4, :cond_d .line 218 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_d .line 219 invoke-virtual {v0, v9}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 221 :cond_d invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_e .line 222 invoke-virtual {v0, v9}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 224 :cond_e invoke-virtual {v0, v10}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBits(I)I move-result v6 if-ne v6, v5, :cond_f .line 226 invoke-virtual {v0, v2}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V goto/16 :goto_3 :cond_f if-ne v6, v10, :cond_10 const/16 v6, 0xc .line 228 invoke-virtual {v0, v6}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V goto/16 :goto_3 :cond_10 const/4 v5, 0x3 if-ne v6, v5, :cond_1b .line 230 invoke-virtual {v0, v2}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBits(I)I move-result v5 .line 231 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_19 .line 232 invoke-virtual {v0, v2}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 233 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_11 .line 234 invoke-virtual {v0, v8}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 236 :cond_11 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_12 .line 237 invoke-virtual {v0, v8}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 239 :cond_12 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_13 .line 240 invoke-virtual {v0, v8}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 242 :cond_13 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_14 .line 243 invoke-virtual {v0, v8}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 245 :cond_14 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_15 .line 246 invoke-virtual {v0, v8}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 248 :cond_15 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_16 .line 249 invoke-virtual {v0, v8}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 251 :cond_16 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_17 .line 252 invoke-virtual {v0, v8}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 254 :cond_17 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_19 .line 255 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_18 .line 256 invoke-virtual {v0, v8}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 258 :cond_18 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_19 .line 259 invoke-virtual {v0, v8}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 263 :cond_19 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_1a .line 264 invoke-virtual {v0, v2}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 265 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_1a const/4 v6, 0x7 .line 266 invoke-virtual {v0, v6}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 267 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_1a .line 268 invoke-virtual {v0, v7}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_1a add-int/2addr v5, v10 mul-int/2addr v5, v7 .line 272 invoke-virtual {v0, v5}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 273 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->byteAlign()V :cond_1b :goto_3 if-ge v4, v10, :cond_1d .line 276 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v5 const/16 v6, 0xe if-eqz v5, :cond_1c .line 277 invoke-virtual {v0, v6}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_1c if-nez v4, :cond_1d .line 280 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v5 if-eqz v5, :cond_1d .line 281 invoke-virtual {v0, v6}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 285 :cond_1d invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v5 if-eqz v5, :cond_20 if-nez v12, :cond_1e .line 287 invoke-virtual {v0, v2}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V goto :goto_5 :cond_1e const/4 v5, 0x0 :goto_4 if-ge v5, v13, :cond_20 .line 290 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v6 if-eqz v6, :cond_1f .line 291 invoke-virtual {v0, v2}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_1f add-int/lit8 v5, v5, 0x1 goto :goto_4 .line 298 :cond_20 :goto_5 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v5 if-eqz v5, :cond_25 .line 299 invoke-virtual {v0, v2}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V if-ne v4, v10, :cond_21 .line 301 invoke-virtual {v0, v8}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_21 if-lt v4, v9, :cond_22 .line 304 invoke-virtual {v0, v10}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 306 :cond_22 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v2 if-eqz v2, :cond_23 .line 307 invoke-virtual {v0, v7}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_23 if-nez v4, :cond_24 .line 309 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v2 if-eqz v2, :cond_24 .line 310 invoke-virtual {v0, v7}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_24 const/4 v2, 0x3 if-ge v11, v2, :cond_26 .line 313 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBit()V goto :goto_6 :cond_25 const/4 v2, 0x3 :cond_26 :goto_6 if-nez v1, :cond_27 if-eq v12, v2, :cond_27 .line 317 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBit()V :cond_27 if-ne v1, v10, :cond_29 if-eq v12, v2, :cond_28 .line 320 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v2 if-eqz v2, :cond_29 .line 321 :cond_28 invoke-virtual {v0, v9}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 324 :cond_29 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v2 if-eqz v2, :cond_2a .line 325 invoke-virtual {v0, v9}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBits(I)I move-result v2 const/4 v4, 0x1 if-ne v2, v4, :cond_2a .line 326 invoke-virtual {v0, v7}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBits(I)I move-result v0 if-ne v0, v4, :cond_2a const-string v0, "audio/eac3-joc" goto :goto_7 :cond_2a const-string v0, "audio/eac3" :goto_7 move-object v5, v0 move v6, v1 move v9, v3 move v8, v14 move v10, v15 move/from16 v7, v17 goto :goto_8 :cond_2b const/16 v2, 0x20 .line 332 invoke-virtual {v0, v2}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V .line 333 invoke-virtual {v0, v10}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBits(I)I move-result v2 .line 334 invoke-virtual {v0, v9}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBits(I)I move-result v3 .line 335 invoke-static {v2, v3}, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->getAc3SyncframeSize(II)I move-result v3 .line 336 invoke-virtual {v0, v7}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V const/4 v4, 0x3 .line 337 invoke-virtual {v0, v4}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBits(I)I move-result v4 and-int/lit8 v5, v4, 0x1 if-eqz v5, :cond_2c const/4 v5, 0x1 if-eq v4, v5, :cond_2c .line 339 invoke-virtual {v0, v10}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_2c and-int/lit8 v5, v4, 0x4 if-eqz v5, :cond_2d .line 342 invoke-virtual {v0, v10}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_2d if-ne v4, v10, :cond_2e .line 345 invoke-virtual {v0, v10}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->skipBits(I)V :cond_2e sget-object v5, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->SAMPLE_RATE_BY_FSCOD:[I .line 347 aget v14, v5, v2 .line 349 invoke-virtual/range {p0 .. p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableBitArray;->readBit()Z move-result v0 sget-object v2, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->CHANNEL_COUNT_BY_ACMOD:[I .line 350 aget v2, v2, v4 add-int v17, v2, v0 const-string v0, "audio/ac3" const/16 v15, 0x600 goto :goto_7 .line 352 :goto_8 new-instance v0, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util$SyncFrameInfo; const/4 v11, 0x0 move-object v4, v0 invoke-direct/range {v4 .. v11}, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util$SyncFrameInfo;->(Ljava/lang/String;IIIIILcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util$1;)V return-object v0 .end method .method public static parseAc3SyncframeSize([B)I .locals 2 .line 358 array-length v0, p0 const/4 v1, 0x5 if-ge v0, v1, :cond_0 const/4 p0, -0x1 return p0 :cond_0 const/4 v0, 0x4 .line 361 aget-byte p0, p0, v0 and-int/lit16 v0, p0, 0xc0 shr-int/lit8 v0, v0, 0x6 and-int/lit8 p0, p0, 0x3f .line 363 invoke-static {v0, p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->getAc3SyncframeSize(II)I move-result p0 return p0 .end method .method public static parseEAc3AnnexFFormat(Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableByteArray;Ljava/lang/String;Ljava/lang/String;Lcom/mbridge/msdk/playercommon/exoplayer2/drm/DrmInitData;)Lcom/mbridge/msdk/playercommon/exoplayer2/Format; .locals 15 const/4 v0, 0x2 move-object v1, p0 .line 106 invoke-virtual {p0, v0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableByteArray;->skipBytes(I)V .line 109 invoke-virtual {p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I move-result v2 and-int/lit16 v2, v2, 0xc0 shr-int/lit8 v2, v2, 0x6 sget-object v3, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->SAMPLE_RATE_BY_FSCOD:[I .line 110 aget v10, v3, v2 .line 111 invoke-virtual {p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I move-result v2 sget-object v3, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->CHANNEL_COUNT_BY_ACMOD:[I and-int/lit8 v4, v2, 0xe shr-int/lit8 v4, v4, 0x1 .line 112 aget v3, v3, v4 and-int/lit8 v2, v2, 0x1 if-eqz v2, :cond_0 add-int/lit8 v3, v3, 0x1 .line 118 :cond_0 invoke-virtual {p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I move-result v2 and-int/lit8 v2, v2, 0x1e shr-int/lit8 v2, v2, 0x1 if-lez v2, :cond_1 .line 121 invoke-virtual {p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I move-result v2 and-int/2addr v0, v2 if-eqz v0, :cond_1 add-int/lit8 v3, v3, 0x2 :cond_1 move v9, v3 .line 129 invoke-virtual {p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableByteArray;->bytesLeft()I move-result v0 if-lez v0, :cond_2 .line 130 invoke-virtual {p0}, Lcom/mbridge/msdk/playercommon/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I move-result v0 and-int/lit8 v0, v0, 0x1 if-eqz v0, :cond_2 const-string v0, "audio/eac3-joc" :goto_0 move-object v5, v0 goto :goto_1 :cond_2 const-string v0, "audio/eac3" goto :goto_0 :goto_1 const/4 v6, 0x0 const/4 v7, -0x1 const/4 v8, -0x1 const/4 v11, 0x0 const/4 v13, 0x0 move-object/from16 v4, p1 move-object/from16 v12, p3 move-object/from16 v14, p2 .line 135 invoke-static/range {v4 .. v14}, Lcom/mbridge/msdk/playercommon/exoplayer2/Format;->createAudioSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIILjava/util/List;Lcom/mbridge/msdk/playercommon/exoplayer2/drm/DrmInitData;ILjava/lang/String;)Lcom/mbridge/msdk/playercommon/exoplayer2/Format; move-result-object v0 return-object v0 .end method .method public static parseEAc3SyncframeAudioSampleCount(Ljava/nio/ByteBuffer;)I .locals 3 .line 374 invoke-virtual {p0}, Ljava/nio/Buffer;->position()I move-result v0 add-int/lit8 v0, v0, 0x4 invoke-virtual {p0, v0}, Ljava/nio/ByteBuffer;->get(I)B move-result v0 and-int/lit16 v0, v0, 0xc0 const/4 v1, 0x6 shr-int/2addr v0, v1 const/4 v2, 0x3 if-ne v0, v2, :cond_0 goto :goto_0 :cond_0 sget-object v0, Lcom/mbridge/msdk/playercommon/exoplayer2/audio/Ac3Util;->BLOCKS_PER_SYNCFRAME_BY_NUMBLKSCOD:[I .line 376 invoke-virtual {p0}, Ljava/nio/Buffer;->position()I move-result v1 add-int/lit8 v1, v1, 0x4 invoke-virtual {p0, v1}, Ljava/nio/ByteBuffer;->get(I)B move-result p0 and-int/lit8 p0, p0, 0x30 shr-int/lit8 p0, p0, 0x4 aget v1, v0, p0 :goto_0 mul-int/lit16 v1, v1, 0x100 return v1 .end method .method public static parseTrueHdSyncframeAudioSampleCount(Ljava/nio/ByteBuffer;I)I .locals 2 .line 409 invoke-virtual {p0}, Ljava/nio/Buffer;->position()I move-result v0 add-int/2addr v0, p1 add-int/lit8 v0, v0, 0x7 invoke-virtual {p0, v0}, Ljava/nio/ByteBuffer;->get(I)B move-result v0 and-int/lit16 v0, v0, 0xff const/16 v1, 0xbb if-ne v0, v1, :cond_0 const/4 v0, 0x1 goto :goto_0 :cond_0 const/4 v0, 0x0 .line 410 :goto_0 invoke-virtual {p0}, Ljava/nio/Buffer;->position()I move-result v1 add-int/2addr v1, p1 if-eqz v0, :cond_1 const/16 p1, 0x9 goto :goto_1 :cond_1 const/16 p1, 0x8 :goto_1 add-int/2addr v1, p1 invoke-virtual {p0, v1}, Ljava/nio/ByteBuffer;->get(I)B move-result p0 shr-int/lit8 p0, p0, 0x4 and-int/lit8 p0, p0, 0x7 const/16 p1, 0x28 shl-int p0, p1, p0 return p0 .end method .method public static parseTrueHdSyncframeAudioSampleCount([B)I .locals 6 const/4 v0, 0x4 .line 396 aget-byte v1, p0, v0 const/4 v2, -0x8 const/4 v3, 0x0 if-ne v1, v2, :cond_3 const/4 v1, 0x5 aget-byte v1, p0, v1 const/16 v2, 0x72 if-ne v1, v2, :cond_3 const/4 v1, 0x6 aget-byte v1, p0, v1 const/16 v2, 0x6f if-ne v1, v2, :cond_3 const/4 v1, 0x7 aget-byte v2, p0, v1 and-int/lit16 v4, v2, 0xfe const/16 v5, 0xba if-eq v4, v5, :cond_0 goto :goto_1 :cond_0 and-int/lit16 v2, v2, 0xff const/16 v4, 0xbb if-ne v2, v4, :cond_1 const/4 v3, 0x1 :cond_1 if-eqz v3, :cond_2 const/16 v2, 0x9 goto :goto_0 :cond_2 const/16 v2, 0x8 .line 403 :goto_0 aget-byte p0, p0, v2 shr-int/2addr p0, v0 and-int/2addr p0, v1 const/16 v0, 0x28 shl-int p0, v0, p0 return p0 :cond_3 :goto_1 return v3 .end method