YuvHelper.smali 
.class public Lio/agora/base/internal/video/YuvHelper;
.super Ljava/lang/Object;
.source "YuvHelper.java"
# direct methods
.method public constructor <init>()V
    .registers 1
    .line 16
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    return-void
.end method
.method public static I420Copy(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;II)V
    .registers 23
    move-object/from16 v0, p6
    add-int/lit8 v1, p8, 0x1
    .line 20
    div-int/lit8 v1, v1, 0x2
    add-int/lit8 v2, p7, 0x1
    .line 21
    div-int/lit8 v11, v2, 0x2
    mul-int v2, p7, p8
    mul-int/2addr v1, v11
    mul-int/lit8 v3, v1, 0x2
    add-int/2addr v3, v2
    .line 24
    invoke-virtual/range {p6 .. p6}, Ljava/nio/ByteBuffer;->capacity()I
    move-result v4
    if-lt v4, v3, :cond_42
    add-int/2addr v1, v2
    const/4 v3, 0x0
    .line 33
    invoke-virtual {v0, v3}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
    .line 34
    invoke-virtual/range {p6 .. p6}, Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;
    move-result-object v6
    .line 35
    invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
    .line 36
    invoke-virtual/range {p6 .. p6}, Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;
    move-result-object v8
    .line 37
    invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
    .line 38
    invoke-virtual/range {p6 .. p6}, Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;
    move-result-object v10
    move-object v0, p0
    move v1, p1
    move-object/from16 v2, p2
    move/from16 v3, p3
    move-object/from16 v4, p4
    move/from16 v5, p5
    move/from16 v7, p7
    move v9, v11
    move/from16 v12, p7
    move/from16 v13, p8
    .line 40
    invoke-static/range {v0 .. v13}, Lio/agora/base/internal/video/YuvHelper;->nativeI420Copy(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V
    return-void
    .line 25
    :cond_42
    new-instance v1, Ljava/lang/IllegalArgumentException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    const-string v4, "Expected destination buffer capacity to be at least "
    invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    const-string v3, " was "
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    .line 26
    invoke-virtual/range {p6 .. p6}, Ljava/nio/ByteBuffer;->capacity()I
    move-result v0
    invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v0
    invoke-direct {v1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
    throw v1
.end method
.method public static I420Copy(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V
    .registers 14
    .line 108
    invoke-static/range {p0 .. p13}, Lio/agora/base/internal/video/YuvHelper;->nativeI420Copy(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V
    return-void
.end method
.method public static I420Rotate(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V
    .registers 25
    move-object/from16 v0, p6
    move/from16 v14, p9
    .line 72
    rem-int/lit16 v1, v14, 0xb4
    if-nez v1, :cond_b
    move/from16 v7, p7
    goto :goto_d
    :cond_b
    move/from16 v7, p8
    :goto_d
    if-nez v1, :cond_12
    move/from16 v1, p8
    goto :goto_14
    :cond_12
    move/from16 v1, p7
    :goto_14
    add-int/lit8 v2, v1, 0x1
    .line 75
    div-int/lit8 v2, v2, 0x2
    add-int/lit8 v3, v7, 0x1
    .line 76
    div-int/lit8 v11, v3, 0x2
    mul-int/2addr v1, v7
    mul-int/2addr v2, v11
    mul-int/lit8 v3, v2, 0x2
    add-int/2addr v3, v1
    .line 79
    invoke-virtual/range {p6 .. p6}, Ljava/nio/ByteBuffer;->capacity()I
    move-result v4
    if-lt v4, v3, :cond_54
    add-int/2addr v2, v1
    const/4 v3, 0x0
    .line 88
    invoke-virtual {v0, v3}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
    .line 89
    invoke-virtual/range {p6 .. p6}, Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;
    move-result-object v6
    .line 90
    invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
    .line 91
    invoke-virtual/range {p6 .. p6}, Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;
    move-result-object v8
    .line 92
    invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
    .line 93
    invoke-virtual/range {p6 .. p6}, Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;
    move-result-object v10
    move-object v0, p0
    move/from16 v1, p1
    move-object/from16 v2, p2
    move/from16 v3, p3
    move-object/from16 v4, p4
    move/from16 v5, p5
    move v9, v11
    move/from16 v12, p7
    move/from16 v13, p8
    move/from16 v14, p9
    .line 95
    invoke-static/range {v0 .. v14}, Lio/agora/base/internal/video/YuvHelper;->nativeI420Rotate(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;IIII)V
    return-void
    .line 80
    :cond_54
    new-instance v1, Ljava/lang/IllegalArgumentException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    const-string v4, "Expected destination buffer capacity to be at least "
    invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    const-string v3, " was "
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    .line 81
    invoke-virtual/range {p6 .. p6}, Ljava/nio/ByteBuffer;->capacity()I
    move-result v0
    invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v0
    invoke-direct {v1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
    throw v1
.end method
.method public static I420Rotate(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;IIII)V
    .registers 15
    .line 123
    invoke-static/range {p0 .. p14}, Lio/agora/base/internal/video/YuvHelper;->nativeI420Rotate(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;IIII)V
    return-void
.end method
.method public static I420ToNV12(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;II)V
    .registers 21
    move-object/from16 v0, p6
    add-int/lit8 v1, p7, 0x1
    .line 47
    div-int/lit8 v1, v1, 0x2
    add-int/lit8 v2, p8, 0x1
    .line 48
    div-int/lit8 v2, v2, 0x2
    mul-int v3, p7, p8
    mul-int/2addr v2, v1
    mul-int/lit8 v2, v2, 0x2
    add-int/2addr v2, v3
    .line 51
    invoke-virtual/range {p6 .. p6}, Ljava/nio/ByteBuffer;->capacity()I
    move-result v4
    if-lt v4, v2, :cond_39
    const/4 v2, 0x0
    .line 59
    invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
    .line 60
    invoke-virtual/range {p6 .. p6}, Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;
    move-result-object v6
    .line 61
    invoke-virtual {v0, v3}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
    .line 62
    invoke-virtual/range {p6 .. p6}, Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;
    move-result-object v8
    mul-int/lit8 v9, v1, 0x2
    move-object v0, p0
    move v1, p1
    move-object v2, p2
    move v3, p3
    move-object/from16 v4, p4
    move/from16 v5, p5
    move/from16 v7, p7
    move/from16 v10, p7
    move/from16 v11, p8
    .line 64
    invoke-static/range {v0 .. v11}, Lio/agora/base/internal/video/YuvHelper;->nativeI420ToNV12(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V
    return-void
    .line 52
    :cond_39
    new-instance v1, Ljava/lang/IllegalArgumentException;
    new-instance v3, Ljava/lang/StringBuilder;
    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
    const-string v4, "Expected destination buffer capacity to be at least "
    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    const-string v2, " was "
    invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    .line 53
    invoke-virtual/range {p6 .. p6}, Ljava/nio/ByteBuffer;->capacity()I
    move-result v0
    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v0
    invoke-direct {v1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
    throw v1
.end method
.method public static I420ToNV12(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V
    .registers 12
    .line 115
    invoke-static/range {p0 .. p11}, Lio/agora/base/internal/video/YuvHelper;->nativeI420ToNV12(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V
    return-void
.end method
.method public static copyPlane(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V
    .registers 6
    .line 102
    invoke-static/range {p0 .. p5}, Lio/agora/base/internal/video/YuvHelper;->nativeCopyPlane(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V
    return-void
.end method
.method private static native nativeCopyPlane(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V
.end method
.method private static native nativeI420Copy(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V
.end method
.method private static native nativeI420Rotate(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;IIII)V
.end method
.method private static native nativeI420ToNV12(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V
.end method