HardwareVideoEncoder$4.smali
.class Lio/agora/base/internal/video/HardwareVideoEncoder$4;
.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;->encodeTextureBuffer(Lio/agora/base/VideoFrame;Lio/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$codecSpecificInfo:Lio/agora/base/internal/video/CodecSpecificInfo;
.field final synthetic val$videoFrame:Lio/agora/base/VideoFrame;
# direct methods
.method constructor <init>(Lio/agora/base/internal/video/HardwareVideoEncoder;Lio/agora/base/VideoFrame;Lio/agora/base/internal/video/CodecSpecificInfo;)V
.registers 4
.line 742
iput-object p1, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
iput-object p2, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->val$videoFrame:Lio/agora/base/VideoFrame;
iput-object p3, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->val$codecSpecificInfo:Lio/agora/base/internal/video/CodecSpecificInfo;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public call()Lio/agora/base/internal/video/VideoCodecStatus;
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 746
iget-object v0, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->val$videoFrame:Lio/agora/base/VideoFrame;
invoke-virtual {v0}, Lio/agora/base/VideoFrame;->getTimestampNs()J
move-result-wide v0
const-wide/16 v2, 0x1f4
add-long/2addr v0, v2
const-wide/16 v2, 0x3e8
div-long/2addr v0, v2
.line 747
new-instance v2, Lio/agora/base/internal/video/HardwareVideoEncoder$TimeStamps;
.line 748
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v3
invoke-direct {v2, v3, v4, v0, v1}, Lio/agora/base/internal/video/HardwareVideoEncoder$TimeStamps;-><init>(JJ)V
.line 749
iget-object v3, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->encodeTimeStamps:Ljava/util/Queue;
invoke-static {v3}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$1200(Lio/agora/base/internal/video/HardwareVideoEncoder;)Ljava/util/Queue;
move-result-object v3
invoke-interface {v3, v2}, Ljava/util/Queue;->add(Ljava/lang/Object;)Z
.line 752
:try_start_1e
iget-object v3, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->val$codecSpecificInfo:Lio/agora/base/internal/video/CodecSpecificInfo;
if-eqz v3, :cond_31
.line 753
iget-object v3, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->codecSpecificInfoMap:Ljava/util/Map;
invoke-static {v3}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$1300(Lio/agora/base/internal/video/HardwareVideoEncoder;)Ljava/util/Map;
move-result-object v3
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v4
iget-object v5, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->val$codecSpecificInfo:Lio/agora/base/internal/video/CodecSpecificInfo;
invoke-interface {v3, v4, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:cond_31
const/16 v3, 0x4000
.line 757
invoke-static {v3}, Landroid/opengl/GLES20;->glClear(I)V
.line 759
new-instance v3, Lio/agora/base/VideoFrame;
iget-object v4, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->val$videoFrame:Lio/agora/base/VideoFrame;
.line 760
invoke-virtual {v4}, Lio/agora/base/VideoFrame;->getBuffer()Lio/agora/base/VideoFrame$Buffer;
move-result-object v4
const/4 v5, 0x0
iget-object v6, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->val$videoFrame:Lio/agora/base/VideoFrame;
invoke-virtual {v6}, Lio/agora/base/VideoFrame;->getTimestampNs()J
move-result-wide v6
invoke-direct {v3, v4, v5, v6, v7}, Lio/agora/base/VideoFrame;-><init>(Lio/agora/base/VideoFrame$Buffer;IJ)V
.line 761
iget-object v4, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->videoFrameDrawer:Lio/agora/base/internal/video/VideoFrameDrawer;
invoke-static {v4}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$900(Lio/agora/base/internal/video/HardwareVideoEncoder;)Lio/agora/base/internal/video/VideoFrameDrawer;
move-result-object v4
iget-object v5, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
.line 762
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->textureDrawer:Lio/agora/base/internal/video/GlRectDrawer;
invoke-static {v5}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$800(Lio/agora/base/internal/video/HardwareVideoEncoder;)Lio/agora/base/internal/video/GlRectDrawer;
move-result-object v5
const/4 v6, 0x0
.line 761
invoke-virtual {v4, v3, v5, v6}, Lio/agora/base/internal/video/VideoFrameDrawer;->drawFrame(Lio/agora/base/VideoFrame;Lio/agora/base/internal/video/RendererCommon$GlDrawer;Landroid/graphics/Matrix;)V
.line 763
iget-object v3, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->textureEglBase:Lio/agora/base/internal/video/EglBase;
invoke-static {v3}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$500(Lio/agora/base/internal/video/HardwareVideoEncoder;)Lio/agora/base/internal/video/EglBase;
move-result-object v3
iget-object v4, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->val$videoFrame:Lio/agora/base/VideoFrame;
invoke-virtual {v4}, Lio/agora/base/VideoFrame;->getTimestampNs()J
move-result-wide v4
invoke-interface {v3, v4, v5}, Lio/agora/base/internal/video/EglBase;->swapBuffers(J)V
:try_end_67
.catch Ljava/lang/RuntimeException; {:try_start_1e .. :try_end_67} :catch_6a
.line 771
sget-object v0, Lio/agora/base/internal/video/VideoCodecStatus;->OK:Lio/agora/base/internal/video/VideoCodecStatus;
return-object v0
:catch_6a
move-exception v3
const-string v4, "HardwareVideoEncoder"
const-string v5, "encodeTexture failed"
.line 765
invoke-static {v4, v5, v3}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 767
iget-object v3, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->this$0:Lio/agora/base/internal/video/HardwareVideoEncoder;
# getter for: Lio/agora/base/internal/video/HardwareVideoEncoder;->codecSpecificInfoMap:Ljava/util/Map;
invoke-static {v3}, Lio/agora/base/internal/video/HardwareVideoEncoder;->access$1300(Lio/agora/base/internal/video/HardwareVideoEncoder;)Ljava/util/Map;
move-result-object v3
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
.line 768
iget-object v0, p0, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->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, v2}, Ljava/util/Queue;->remove(Ljava/lang/Object;)Z
.line 769
sget-object v0, Lio/agora/base/internal/video/VideoCodecStatus;->ERROR:Lio/agora/base/internal/video/VideoCodecStatus;
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 742
invoke-virtual {p0}, Lio/agora/base/internal/video/HardwareVideoEncoder$4;->call()Lio/agora/base/internal/video/VideoCodecStatus;
move-result-object v0
return-object v0
.end method