HardwareVideoDecoder$2.smali
.class Lorg/webrtc/ali/HardwareVideoDecoder$2;
.super Ljava/lang/Object;
.source "HardwareVideoDecoder.java"
# interfaces
.implements Lorg/webrtc/ali/VideoFrame$I420Buffer;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lorg/webrtc/ali/HardwareVideoDecoder;->createBufferFromI420(Ljava/nio/ByteBuffer;IIIIII)Lorg/webrtc/ali/VideoFrame$I420Buffer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
# instance fields
.field private refCount:I
.field final synthetic this$0:Lorg/webrtc/ali/HardwareVideoDecoder;
.field final synthetic val$buffer:Ljava/nio/ByteBuffer;
.field final synthetic val$chromaHeight:I
.field final synthetic val$height:I
.field final synthetic val$outputBufferIndex:I
.field final synthetic val$stride:I
.field final synthetic val$uPos:I
.field final synthetic val$uvStride:I
.field final synthetic val$vPos:I
.field final synthetic val$width:I
.field final synthetic val$yPos:I
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method constructor <init>(Lorg/webrtc/ali/HardwareVideoDecoder;Ljava/nio/ByteBuffer;IIIIIIIII)V
.registers 12
.param p1, "this$0" # Lorg/webrtc/ali/HardwareVideoDecoder;
.line 522
iput-object p1, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->this$0:Lorg/webrtc/ali/HardwareVideoDecoder;
iput-object p2, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$buffer:Ljava/nio/ByteBuffer;
iput p3, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$yPos:I
iput p4, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$height:I
iput p5, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$uPos:I
iput p6, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$chromaHeight:I
iput p7, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$vPos:I
iput p8, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$stride:I
iput p9, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$uvStride:I
iput p10, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$width:I
iput p11, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$outputBufferIndex:I
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 523
const/4 p2, 0x1
iput p2, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->refCount:I
return-void
.end method
# virtual methods
.method public getDataU()Ljava/nio/ByteBuffer;
.registers 5
.line 535
iget-object v0, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$buffer:Ljava/nio/ByteBuffer;
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;
move-result-object v0
.line 536
.local v0, "data":Ljava/nio/ByteBuffer;
iget v1, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$uPos:I
invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 537
iget v1, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$uPos:I
invoke-virtual {p0}, Lorg/webrtc/ali/HardwareVideoDecoder$2;->getStrideU()I
move-result v2
iget v3, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$chromaHeight:I
mul-int v2, v2, v3
add-int/2addr v1, v2
invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;
.line 538
return-object v0
.end method
.method public getDataV()Ljava/nio/ByteBuffer;
.registers 5
.line 543
iget-object v0, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$buffer:Ljava/nio/ByteBuffer;
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;
move-result-object v0
.line 544
.local v0, "data":Ljava/nio/ByteBuffer;
iget v1, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$vPos:I
invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 545
iget v1, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$vPos:I
invoke-virtual {p0}, Lorg/webrtc/ali/HardwareVideoDecoder$2;->getStrideV()I
move-result v2
iget v3, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$chromaHeight:I
mul-int v2, v2, v3
add-int/2addr v1, v2
invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;
.line 546
return-object v0
.end method
.method public getDataY()Ljava/nio/ByteBuffer;
.registers 5
.line 527
iget-object v0, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$buffer:Ljava/nio/ByteBuffer;
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;
move-result-object v0
.line 528
.local v0, "data":Ljava/nio/ByteBuffer;
iget v1, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$yPos:I
invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 529
iget v1, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$yPos:I
invoke-virtual {p0}, Lorg/webrtc/ali/HardwareVideoDecoder$2;->getStrideY()I
move-result v2
iget v3, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$height:I
mul-int v2, v2, v3
add-int/2addr v1, v2
invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;
.line 530
return-object v0
.end method
.method public getHeight()I
.registers 2
.line 571
iget v0, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$height:I
return v0
.end method
.method public getStrideU()I
.registers 2
.line 556
iget v0, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$uvStride:I
return v0
.end method
.method public getStrideV()I
.registers 2
.line 561
iget v0, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$uvStride:I
return v0
.end method
.method public getStrideY()I
.registers 2
.line 551
iget v0, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$stride:I
return v0
.end method
.method public getWidth()I
.registers 2
.line 566
iget v0, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$width:I
return v0
.end method
.method public release()V
.registers 4
.line 586
iget v0, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->refCount:I
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->refCount:I
.line 588
if-nez v0, :cond_2e
.line 589
iget-object v0, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->this$0:Lorg/webrtc/ali/HardwareVideoDecoder;
invoke-static {v0}, Lorg/webrtc/ali/HardwareVideoDecoder;->access$400(Lorg/webrtc/ali/HardwareVideoDecoder;)Landroid/media/MediaCodec;
move-result-object v0
iget v1, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->val$outputBufferIndex:I
const/4 v2, 0x0
invoke-virtual {v0, v1, v2}, Landroid/media/MediaCodec;->releaseOutputBuffer(IZ)V
.line 590
iget-object v0, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->this$0:Lorg/webrtc/ali/HardwareVideoDecoder;
invoke-static {v0}, Lorg/webrtc/ali/HardwareVideoDecoder;->access$500(Lorg/webrtc/ali/HardwareVideoDecoder;)Ljava/lang/Object;
move-result-object v0
monitor-enter v0
.line 591
:try_start_1b
iget-object v1, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->this$0:Lorg/webrtc/ali/HardwareVideoDecoder;
invoke-static {v1}, Lorg/webrtc/ali/HardwareVideoDecoder;->access$610(Lorg/webrtc/ali/HardwareVideoDecoder;)I
.line 592
iget-object v1, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->this$0:Lorg/webrtc/ali/HardwareVideoDecoder;
invoke-static {v1}, Lorg/webrtc/ali/HardwareVideoDecoder;->access$500(Lorg/webrtc/ali/HardwareVideoDecoder;)Ljava/lang/Object;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Object;->notifyAll()V
.line 593
monitor-exit v0
goto :goto_2e
:catchall_2b
move-exception v1
monitor-exit v0
:try_end_2d
.catchall {:try_start_1b .. :try_end_2d} :catchall_2b
throw v1
.line 595
:cond_2e
:goto_2e
return-void
.end method
.method public retain()V
.registers 2
.line 581
iget v0, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->refCount:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/webrtc/ali/HardwareVideoDecoder$2;->refCount:I
.line 582
return-void
.end method
.method public toI420()Lorg/webrtc/ali/VideoFrame$I420Buffer;
.registers 1
.line 576
return-object p0
.end method