e.smali
.class public Lkm/e;
.super Ljava/lang/Object;
.source "ImageUtils.java"
# annotations
.annotation build Landroidx/annotation/RequiresApi;
value = 0x13
.end annotation
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public static a(Landroid/media/Image;[B)V
.registers 18
.param p0 # Landroid/media/Image;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p1 # [B
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
move-object/from16 v0, p1
invoke-virtual/range {p0 .. p0}, Landroid/media/Image;->getFormat()I
move-result v1
const/16 v2, 0x23
if-ne v1, v2, :cond_fe
invoke-virtual/range {p0 .. p0}, Landroid/media/Image;->getWidth()I
move-result v1
invoke-virtual/range {p0 .. p0}, Landroid/media/Image;->getHeight()I
move-result v2
mul-int v3, v1, v2
div-int/lit8 v4, v3, 0x4
invoke-virtual/range {p0 .. p0}, Landroid/media/Image;->getPlanes()[Landroid/media/Image$Plane;
move-result-object v5
const/4 v6, 0x0
aget-object v5, v5, v6
invoke-virtual {v5}, Landroid/media/Image$Plane;->getBuffer()Ljava/nio/ByteBuffer;
move-result-object v5
invoke-virtual/range {p0 .. p0}, Landroid/media/Image;->getPlanes()[Landroid/media/Image$Plane;
move-result-object v7
const/4 v8, 0x1
aget-object v7, v7, v8
invoke-virtual {v7}, Landroid/media/Image$Plane;->getBuffer()Ljava/nio/ByteBuffer;
move-result-object v7
invoke-virtual/range {p0 .. p0}, Landroid/media/Image;->getPlanes()[Landroid/media/Image$Plane;
move-result-object v9
const/4 v10, 0x2
aget-object v9, v9, v10
invoke-virtual {v9}, Landroid/media/Image$Plane;->getBuffer()Ljava/nio/ByteBuffer;
move-result-object v9
invoke-virtual/range {p0 .. p0}, Landroid/media/Image;->getPlanes()[Landroid/media/Image$Plane;
move-result-object v11
aget-object v11, v11, v6
invoke-virtual {v11}, Landroid/media/Image$Plane;->getRowStride()I
move-result v11
invoke-virtual/range {p0 .. p0}, Landroid/media/Image;->getPlanes()[Landroid/media/Image$Plane;
move-result-object v12
aget-object v12, v12, v6
invoke-virtual {v12}, Landroid/media/Image$Plane;->getPixelStride()I
move-result v12
const-string v13, "Something wrong in convertToNV21"
if-ne v12, v8, :cond_f8
if-ne v11, v1, :cond_57
invoke-virtual {v5, v0, v6, v3}, Ljava/nio/ByteBuffer;->get([BII)Ljava/nio/ByteBuffer;
add-int/lit8 v5, v3, 0x0
goto :goto_69
:cond_57
sub-int v12, v1, v11
move v14, v12
const/4 v12, 0x0
:goto_5b
if-ge v12, v3, :cond_68
sub-int v15, v11, v1
add-int/2addr v14, v15
invoke-virtual {v5, v14}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
invoke-virtual {v5, v0, v12, v1}, Ljava/nio/ByteBuffer;->get([BII)Ljava/nio/ByteBuffer;
add-int/2addr v12, v1
goto :goto_5b
:cond_68
move v5, v12
:goto_69
invoke-virtual/range {p0 .. p0}, Landroid/media/Image;->getPlanes()[Landroid/media/Image$Plane;
move-result-object v11
aget-object v11, v11, v10
invoke-virtual {v11}, Landroid/media/Image$Plane;->getRowStride()I
move-result v11
invoke-virtual/range {p0 .. p0}, Landroid/media/Image;->getPlanes()[Landroid/media/Image$Plane;
move-result-object v12
aget-object v12, v12, v10
invoke-virtual {v12}, Landroid/media/Image$Plane;->getPixelStride()I
move-result v12
invoke-virtual/range {p0 .. p0}, Landroid/media/Image;->getPlanes()[Landroid/media/Image$Plane;
move-result-object v14
aget-object v14, v14, v8
invoke-virtual {v14}, Landroid/media/Image$Plane;->getRowStride()I
move-result v14
if-ne v11, v14, :cond_f2
invoke-virtual/range {p0 .. p0}, Landroid/media/Image;->getPlanes()[Landroid/media/Image$Plane;
move-result-object v14
aget-object v14, v14, v8
invoke-virtual {v14}, Landroid/media/Image$Plane;->getPixelStride()I
move-result v14
if-ne v12, v14, :cond_ec
if-ne v12, v10, :cond_c6
if-ne v11, v1, :cond_c6
invoke-virtual {v7, v6}, Ljava/nio/ByteBuffer;->get(I)B
move-result v13
invoke-virtual {v9, v8}, Ljava/nio/ByteBuffer;->get(I)B
move-result v14
if-ne v13, v14, :cond_c6
invoke-virtual {v9, v8}, Ljava/nio/ByteBuffer;->get(I)B
move-result v13
invoke-virtual {v9, v8, v6}, Ljava/nio/ByteBuffer;->put(IB)Ljava/nio/ByteBuffer;
invoke-virtual {v7, v6}, Ljava/nio/ByteBuffer;->get(I)B
move-result v14
if-nez v14, :cond_c3
const/4 v14, -0x1
invoke-virtual {v9, v8, v14}, Ljava/nio/ByteBuffer;->put(IB)Ljava/nio/ByteBuffer;
invoke-virtual {v7, v6}, Ljava/nio/ByteBuffer;->get(I)B
move-result v14
const/16 v15, 0xff
if-ne v14, v15, :cond_c3
invoke-virtual {v9, v8, v13}, Ljava/nio/ByteBuffer;->put(IB)Ljava/nio/ByteBuffer;
invoke-virtual {v9, v0, v3, v4}, Ljava/nio/ByteBuffer;->get([BII)Ljava/nio/ByteBuffer;
return-void
:cond_c3
invoke-virtual {v9, v8, v13}, Ljava/nio/ByteBuffer;->put(IB)Ljava/nio/ByteBuffer;
:cond_c6
const/4 v3, 0x0
:goto_c7
div-int/lit8 v4, v2, 0x2
if-ge v3, v4, :cond_eb
const/4 v4, 0x0
:goto_cc
div-int/lit8 v8, v1, 0x2
if-ge v4, v8, :cond_e8
mul-int v8, v4, v12
mul-int v13, v3, v11
add-int/2addr v8, v13
add-int/lit8 v13, v5, 0x1
invoke-virtual {v9, v8}, Ljava/nio/ByteBuffer;->get(I)B
move-result v14
aput-byte v14, v0, v5
add-int/lit8 v5, v13, 0x1
invoke-virtual {v7, v8}, Ljava/nio/ByteBuffer;->get(I)B
move-result v8
aput-byte v8, v0, v13
add-int/lit8 v4, v4, 0x1
goto :goto_cc
:cond_e8
add-int/lit8 v3, v3, 0x1
goto :goto_c7
:cond_eb
return-void
:cond_ec
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0, v13}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
throw v0
:cond_f2
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0, v13}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
throw v0
:cond_f8
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0, v13}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
throw v0
:cond_fe
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "CAn only convert from YUV_420_888."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
goto :goto_107
:goto_106
throw v0
:goto_107
goto :goto_106
.end method