.class public Lorg/webrtc/YuvHelper; .super Ljava/lang/Object; .source "YuvHelper.java" # direct methods .method public constructor ()V .locals 0 .line 16 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static ABGRToI420(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V .locals 0 .line 108 invoke-static/range {p0 .. p9}, Lorg/webrtc/YuvHelper;->nativeABGRToI420(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V return-void .end method .method public static I420Copy(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;II)V .locals 14 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_0 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}, Lorg/webrtc/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_0 new-instance v1, Ljava/lang/IllegalArgumentException; new-instance v2, Ljava/lang/StringBuilder; const-string v4, "Expected destination buffer capacity to be at least " invoke-direct {v2, v4}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v2 const-string v3, " was " invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 .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; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {v1, v0}, Ljava/lang/IllegalArgumentException;->(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 .locals 0 .line 115 invoke-static/range {p0 .. p13}, Lorg/webrtc/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 .locals 15 move-object/from16 v0, p6 move/from16 v14, p9 .line 72 rem-int/lit16 v1, v14, 0xb4 if-nez v1, :cond_0 move/from16 v7, p7 goto :goto_0 :cond_0 move/from16 v7, p8 :goto_0 if-nez v1, :cond_1 move/from16 v1, p8 goto :goto_1 :cond_1 move/from16 v1, p7 :goto_1 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_2 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}, Lorg/webrtc/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_2 new-instance v1, Ljava/lang/IllegalArgumentException; new-instance v2, Ljava/lang/StringBuilder; const-string v4, "Expected destination buffer capacity to be at least " invoke-direct {v2, v4}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v2 const-string v3, " was " invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 .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; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {v1, v0}, Ljava/lang/IllegalArgumentException;->(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 .locals 0 .line 130 invoke-static/range {p0 .. p14}, Lorg/webrtc/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 .locals 12 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_0 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}, Lorg/webrtc/YuvHelper;->nativeI420ToNV12(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V return-void .line 52 :cond_0 new-instance v1, Ljava/lang/IllegalArgumentException; new-instance v3, Ljava/lang/StringBuilder; const-string v4, "Expected destination buffer capacity to be at least " invoke-direct {v3, v4}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v2 const-string v3, " was " invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 .line 53 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; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {v1, v0}, Ljava/lang/IllegalArgumentException;->(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 .locals 0 .line 122 invoke-static/range {p0 .. p11}, Lorg/webrtc/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 .locals 0 .line 102 invoke-static/range {p0 .. p5}, Lorg/webrtc/YuvHelper;->nativeCopyPlane(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V return-void .end method .method private static native nativeABGRToI420(Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;III)V .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