I420BufferImpl.smali

.class Lorg/webrtc/ali/I420BufferImpl;
.super Ljava/lang/Object;
.source "I420BufferImpl.java"

# interfaces
.implements Lorg/webrtc/ali/VideoFrame$I420Buffer;


# instance fields
.field private final height:I

.field private final strideUV:I

.field private final u:Ljava/nio/ByteBuffer;

.field private final v:Ljava/nio/ByteBuffer;

.field private final width:I

.field private final y:Ljava/nio/ByteBuffer;


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

    return-void
.end method

.method constructor <init>(II)V
    .registers 5
    .param p1, "width"    # I
    .param p2, "height"    # I

    .line 25
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 26
    iput p1, p0, Lorg/webrtc/ali/I420BufferImpl;->width:I

    .line 27
    iput p2, p0, Lorg/webrtc/ali/I420BufferImpl;->height:I

    .line 28
    add-int/lit8 v0, p1, 0x1

    div-int/lit8 v0, v0, 0x2

    iput v0, p0, Lorg/webrtc/ali/I420BufferImpl;->strideUV:I

    .line 29
    add-int/lit8 v0, p2, 0x1

    div-int/lit8 v0, v0, 0x2

    .line 30
    .local v0, "halfHeight":I
    mul-int v1, p1, p2

    invoke-static {v1}, Ljava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;

    move-result-object v1

    iput-object v1, p0, Lorg/webrtc/ali/I420BufferImpl;->y:Ljava/nio/ByteBuffer;

    .line 31
    iget v1, p0, Lorg/webrtc/ali/I420BufferImpl;->strideUV:I

    mul-int v1, v1, v0

    invoke-static {v1}, Ljava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;

    move-result-object v1

    iput-object v1, p0, Lorg/webrtc/ali/I420BufferImpl;->u:Ljava/nio/ByteBuffer;

    .line 32
    iget v1, p0, Lorg/webrtc/ali/I420BufferImpl;->strideUV:I

    mul-int v1, v1, v0

    invoke-static {v1}, Ljava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;

    move-result-object v1

    iput-object v1, p0, Lorg/webrtc/ali/I420BufferImpl;->v:Ljava/nio/ByteBuffer;

    .line 33
    return-void
.end method


# virtual methods
.method public getDataU()Ljava/nio/ByteBuffer;
    .registers 2

    .line 52
    iget-object v0, p0, Lorg/webrtc/ali/I420BufferImpl;->u:Ljava/nio/ByteBuffer;

    return-object v0
.end method

.method public getDataV()Ljava/nio/ByteBuffer;
    .registers 2

    .line 57
    iget-object v0, p0, Lorg/webrtc/ali/I420BufferImpl;->v:Ljava/nio/ByteBuffer;

    return-object v0
.end method

.method public getDataY()Ljava/nio/ByteBuffer;
    .registers 2

    .line 47
    iget-object v0, p0, Lorg/webrtc/ali/I420BufferImpl;->y:Ljava/nio/ByteBuffer;

    return-object v0
.end method

.method public getHeight()I
    .registers 2

    .line 42
    iget v0, p0, Lorg/webrtc/ali/I420BufferImpl;->height:I

    return v0
.end method

.method public getStrideU()I
    .registers 2

    .line 67
    iget v0, p0, Lorg/webrtc/ali/I420BufferImpl;->strideUV:I

    return v0
.end method

.method public getStrideV()I
    .registers 2

    .line 72
    iget v0, p0, Lorg/webrtc/ali/I420BufferImpl;->strideUV:I

    return v0
.end method

.method public getStrideY()I
    .registers 2

    .line 62
    iget v0, p0, Lorg/webrtc/ali/I420BufferImpl;->width:I

    return v0
.end method

.method public getWidth()I
    .registers 2

    .line 37
    iget v0, p0, Lorg/webrtc/ali/I420BufferImpl;->width:I

    return v0
.end method

.method public release()V
    .registers 1

    .line 84
    return-void
.end method

.method public retain()V
    .registers 1

    .line 81
    return-void
.end method

.method public toI420()Lorg/webrtc/ali/VideoFrame$I420Buffer;
    .registers 1

    .line 77
    return-object p0
.end method