HardwareVideoEncoder$5.smali
.class Lio/agora/base/internal/video/HardwareVideoEncoder$5;
.super Ljava/lang/Object;
.source "HardwareVideoEncoder.java"
# interfaces
.implements Ljava/util/concurrent/Callable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lio/agora/base/internal/video/HardwareVideoEncoder;->encodeByteBuffer(Lio/agora/base/VideoFrame;Lio/agora/base/VideoFrame$Buffer;ILio/agora/base/internal/video/CodecSpecificInfo;)Lio/agora/base/internal/video/VideoCodecStatus;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Ljava/util/concurrent/Callable<",
"Lio/agora/base/internal/video/VideoCodecStatus;",
">;"
}
.end annotation
# instance fields
.field final synthetic this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
.field final synthetic val$bufferSize:I
.field final synthetic val$codecSpecificInfo:Lio/agora/base/internal/video/CodecSpecificInfo;
.field final synthetic val$videoFrame:Lio/agora/base/VideoFrame;
.field final synthetic val$videoFrameBuffer:Lio/agora/base/VideoFrame$Buffer;
# direct methods
.method constructor <init>(Lio/agora/base/internal/video/HardwareVideoEncoder;Lio/agora/base/VideoFrame;Lio/agora/base/VideoFrame$Buffer;Lio/agora/base/internal/video/CodecSpecificInfo;I)V
.registers 6
.line 797
iput-object p1, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
iput-object p2, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->val$videoFrame:Lio/agora/base/VideoFrame;
iput-object p3, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->val$videoFrameBuffer:Lio/agora/base/VideoFrame$Buffer;
iput-object p4, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->val$codecSpecificInfo:Lio/agora/base/internal/video/CodecSpecificInfo;
iput p5, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->val$bufferSize:I
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public call()Lio/agora/base/internal/video/VideoCodecStatus;
.registers 13
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
const-string v0, "HardwareVideoEncoder"
.line 801
iget-object v1, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->val$videoFrame:Lio/agora/base/VideoFrame;
invoke-virtual {v1}, Lio/agora/base/VideoFrame;->getTimestampNs()J
move-result-wide v1
const-wide/16 v3, 0x1f4
add-long/2addr v1, v3
const-wide/16 v3, 0x3e8
div-long/2addr v1, v3
.line 805
:try_start_e
iget-object v3, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->codec:Lio/agora/base/internal/video/MediaCodecWrapper;
invoke-static {v3}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$000(Lio/agora/base/internal/video/HardwareVideoEncoder;)Lio/agora/base/internal/video/MediaCodecWrapper;
move-result-object v3
const-wide/16 v4, 0x0
invoke-interface {v3, v4, v5}, Lio/agora/base/internal/video/MediaCodecWrapper;->dequeueInputBuffer(J)I
move-result v6
:try_end_1a
.catch Ljava/lang/IllegalStateException; {:try_start_e .. :try_end_1a} :catch_b0
const/4 v3, -0x1
if-ne v6, v3, :cond_25
const-string v1, "Dropped frame, no input buffers available"
.line 815
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 816
sget-object v0, Lio/agora/base/internal/video/VideoCodecStatus;->NO_OUTPUT:Lio/agora/base/internal/video/VideoCodecStatus;
return-object v0
.line 820
:cond_25
:try_start_25
iget-object v3, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->codec:Lio/agora/base/internal/video/MediaCodecWrapper;
invoke-static {v3}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$000(Lio/agora/base/internal/video/HardwareVideoEncoder;)Lio/agora/base/internal/video/MediaCodecWrapper;
move-result-object v3
invoke-interface {v3}, Lio/agora/base/internal/video/MediaCodecWrapper;->getInputBuffers()[Ljava/nio/ByteBuffer;
move-result-object v3
aget-object v3, v3, v6
:try_end_31
.catch Ljava/lang/IllegalStateException; {:try_start_25 .. :try_end_31} :catch_9a
.line 828
iget-object v4, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
iget-object v5, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->val$videoFrameBuffer:Lio/agora/base/VideoFrame$Buffer;
invoke-virtual {v4, v3, v5}, Lio/agora/base/internal/video/HardwareVideoEncoder;->fillInputBuffer(Ljava/nio/ByteBuffer;Lio/agora/base/VideoFrame$Buffer;)V
.line 829
new-instance v3, Lio/agora/base/internal/video/HardwareVideoEncoder$TimeStamps;
.line 830
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v4
invoke-direct {v3, v4, v5, v1, v2}, Lio/agora/base/internal/video/HardwareVideoEncoder$TimeStamps;-><init>(JJ)V
.line 833
:try_start_41
iget-object v4, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->val$codecSpecificInfo:Lio/agora/base/internal/video/CodecSpecificInfo;
if-eqz v4, :cond_54
.line 834
iget-object v4, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->codecSpecificInfoMap:Ljava/util/Map;
invoke-static {v4}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$1300(Lio/agora/base/internal/video/HardwareVideoEncoder;)Ljava/util/Map;
move-result-object v4
invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v5
iget-object v7, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->val$codecSpecificInfo:Lio/agora/base/internal/video/CodecSpecificInfo;
invoke-interface {v4, v5, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 836
:cond_54
iget-object v4, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->codec:Lio/agora/base/internal/video/MediaCodecWrapper;
invoke-static {v4}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$000(Lio/agora/base/internal/video/HardwareVideoEncoder;)Lio/agora/base/internal/video/MediaCodecWrapper;
move-result-object v5
const/4 v7, 0x0
iget v8, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->val$bufferSize:I
const/4 v11, 0x0
move-wide v9, v1
invoke-interface/range {v5 .. v11}, Lio/agora/base/internal/video/MediaCodecWrapper;->queueInputBuffer(IIIJI)V
.line 838
iget-object v4, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->encodeTimeStamps:Ljava/util/Queue;
invoke-static {v4}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$1200(Lio/agora/base/internal/video/HardwareVideoEncoder;)Ljava/util/Queue;
move-result-object v4
invoke-interface {v4, v3}, Ljava/util/Queue;->add(Ljava/lang/Object;)Z
:try_end_6b
.catch Ljava/lang/RuntimeException; {:try_start_41 .. :try_end_6b} :catch_6e
.line 850
sget-object v0, Lio/agora/base/internal/video/VideoCodecStatus;->OK:Lio/agora/base/internal/video/VideoCodecStatus;
return-object v0
:catch_6e
move-exception v4
const-string v5, "queueInputBuffer failed"
.line 840
invoke-static {v0, v5, v4}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 842
iget-object v0, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->codecSpecificInfoMap:Ljava/util/Map;
invoke-static {v0}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$1300(Lio/agora/base/internal/video/HardwareVideoEncoder;)Ljava/util/Map;
move-result-object v0
invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v1
invoke-interface {v0, v1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
.line 843
iget-object v0, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->encodeTimeStamps:Ljava/util/Queue;
invoke-static {v0}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$1200(Lio/agora/base/internal/video/HardwareVideoEncoder;)Ljava/util/Queue;
move-result-object v0
invoke-interface {v0, v3}, Ljava/util/Queue;->remove(Ljava/lang/Object;)Z
.line 845
iget-object v0, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->deliveredVideoFrame:Z
invoke-static {v0}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$1400(Lio/agora/base/internal/video/HardwareVideoEncoder;)Z
move-result v0
if-nez v0, :cond_95
.line 846
sget-object v0, Lio/agora/base/internal/video/VideoCodecStatus;->FALLBACK_SOFTWARE:Lio/agora/base/internal/video/VideoCodecStatus;
return-object v0
.line 848
:cond_95
invoke-static {v4}, Lio/agora/base/internal/video/MediaCodecUtils;->isMediaCodecException(Ljava/lang/RuntimeException;)Lio/agora/base/internal/video/VideoCodecStatus;
move-result-object v0
return-object v0
:catch_9a
move-exception v1
const-string v2, "getInputBuffers failed"
.line 822
invoke-static {v0, v2, v1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 823
iget-object v0, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->deliveredVideoFrame:Z
invoke-static {v0}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$1400(Lio/agora/base/internal/video/HardwareVideoEncoder;)Z
move-result v0
if-nez v0, :cond_ab
.line 824
sget-object v0, Lio/agora/base/internal/video/VideoCodecStatus;->FALLBACK_SOFTWARE:Lio/agora/base/internal/video/VideoCodecStatus;
return-object v0
.line 826
:cond_ab
invoke-static {v1}, Lio/agora/base/internal/video/MediaCodecUtils;->isMediaCodecException(Ljava/lang/RuntimeException;)Lio/agora/base/internal/video/VideoCodecStatus;
move-result-object v0
return-object v0
:catch_b0
move-exception v1
const-string v2, "dequeueInputBuffer failed"
.line 807
invoke-static {v0, v2, v1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 808
iget-object v0, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->deliveredVideoFrame:Z
invoke-static {v0}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$1400(Lio/agora/base/internal/video/HardwareVideoEncoder;)Z
move-result v0
if-nez v0, :cond_c1
.line 809
sget-object v0, Lio/agora/base/internal/video/VideoCodecStatus;->FALLBACK_SOFTWARE:Lio/agora/base/internal/video/VideoCodecStatus;
return-object v0
.line 811
:cond_c1
invoke-static {v1}, Lio/agora/base/internal/video/MediaCodecUtils;->isMediaCodecException(Ljava/lang/RuntimeException;)Lio/agora/base/internal/video/VideoCodecStatus;
move-result-object v0
return-object v0
.end method
.method public bridge synthetic call()Ljava/lang/Object;
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 797
invoke-virtual {p0}, Lio/agora/base/internal/video/HardwareVideoEncoder$5;->call()Lio/agora/base/internal/video/VideoCodecStatus;
move-result-object v0
return-object v0
.end method