FlacBinarySearchSeeker.smali

.class final Lcom/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker;
.super Lcom/google/android/exoplayer2/extractor/BinarySearchSeeker;
.source "FlacBinarySearchSeeker.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker$FlacSeekTimestampConverter;,
        Lcom/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker$FlacTimestampSeeker;
    }
.end annotation


# instance fields
.field private final decoderJni:Lcom/google/android/exoplayer2/ext/flac/FlacDecoderJni;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    return-void
.end method

.method public constructor <init>(Lcom/google/android/exoplayer2/util/FlacStreamInfo;JJLcom/google/android/exoplayer2/ext/flac/FlacDecoderJni;)V
    .registers 25
    .param p1, "streamInfo"    # Lcom/google/android/exoplayer2/util/FlacStreamInfo;
    .param p2, "firstFramePosition"    # J
    .param p4, "inputLength"    # J
    .param p6, "decoderJni"    # Lcom/google/android/exoplayer2/ext/flac/FlacDecoderJni;

    .line 41
    move-object/from16 v0, p1

    new-instance v2, Lcom/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker$FlacSeekTimestampConverter;

    invoke-direct {v2, v0}, Lcom/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker$FlacSeekTimestampConverter;-><init>(Lcom/google/android/exoplayer2/util/FlacStreamInfo;)V

    new-instance v3, Lcom/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker$FlacTimestampSeeker;

    const/4 v1, 0x0

    move-object/from16 v14, p6

    invoke-direct {v3, v14, v1}, Lcom/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker$FlacTimestampSeeker;-><init>(Lcom/google/android/exoplayer2/ext/flac/FlacDecoderJni;Lcom/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker$1;)V

    .line 44
    invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/util/FlacStreamInfo;->durationUs()J

    move-result-wide v4

    iget-wide v8, v0, Lcom/google/android/exoplayer2/util/FlacStreamInfo;->totalSamples:J

    .line 49
    invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/util/FlacStreamInfo;->getApproxBytesPerFrame()J

    move-result-wide v15

    iget v1, v0, Lcom/google/android/exoplayer2/util/FlacStreamInfo;->minFrameSize:I

    .line 50
    const/4 v6, 0x1

    invoke-static {v6, v1}, Ljava/lang/Math;->max(II)I

    move-result v17

    .line 41
    const-wide/16 v6, 0x0

    move-object/from16 v1, p0

    move-wide/from16 v10, p2

    move-wide/from16 v12, p4

    move-wide v14, v15

    move/from16 v16, v17

    invoke-direct/range {v1 .. v16}, Lcom/google/android/exoplayer2/extractor/BinarySearchSeeker;-><init>(Lcom/google/android/exoplayer2/extractor/BinarySearchSeeker$SeekTimestampConverter;Lcom/google/android/exoplayer2/extractor/BinarySearchSeeker$TimestampSeeker;JJJJJJI)V

    .line 51
    invoke-static/range {p6 .. p6}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/google/android/exoplayer2/ext/flac/FlacDecoderJni;

    move-object/from16 v2, p0

    iput-object v1, v2, Lcom/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker;->decoderJni:Lcom/google/android/exoplayer2/ext/flac/FlacDecoderJni;

    .line 52
    return-void
.end method


# virtual methods
.method protected onSeekOperationFinished(ZJ)V
    .registers 5
    .param p1, "foundTargetFrame"    # Z
    .param p2, "resultPosition"    # J

    .line 56
    if-nez p1, :cond_7

    .line 59
    iget-object v0, p0, Lcom/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker;->decoderJni:Lcom/google/android/exoplayer2/ext/flac/FlacDecoderJni;

    invoke-virtual {v0, p2, p3}, Lcom/google/android/exoplayer2/ext/flac/FlacDecoderJni;->reset(J)V

    .line 61
    :cond_7
    return-void
.end method