SurfaceEglRenderer.smali
.class public Lio/agora/base/internal/SurfaceEglRenderer;
.super Lio/agora/base/internal/video/EglRenderer;
.source "SurfaceEglRenderer.java"
# interfaces
.implements Landroid/view/SurfaceHolder$Callback;
# static fields
.field private static final TAG:Ljava/lang/String; = "SurfaceEglRenderer"
# instance fields
.field private frameRotation:I
.field private isRenderingPaused:Z
.field private final layoutLock:Ljava/lang/Object;
.field private rotatedFrameHeight:I
.field private rotatedFrameWidth:I
# direct methods
.method public constructor <init>(Ljava/lang/String;)V
.registers 2
.line 43
invoke-direct {p0, p1}, Lio/agora/base/internal/video/EglRenderer;-><init>(Ljava/lang/String;)V
.line 33
new-instance p1, Ljava/lang/Object;
invoke-direct {p1}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lio/agora/base/internal/SurfaceEglRenderer;->layoutLock:Ljava/lang/Object;
const/4 p1, 0x0
.line 34
iput-boolean p1, p0, Lio/agora/base/internal/SurfaceEglRenderer;->isRenderingPaused:Z
return-void
.end method
.method private logD(Ljava/lang/String;)V
.registers 4
.line 173
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
iget-object v1, p0, Lio/agora/base/internal/SurfaceEglRenderer;->name:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, ": "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string v0, "SurfaceEglRenderer"
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method private updateFrameDimensionsAndReportEvents(Lio/agora/base/VideoFrame;)V
.registers 7
.line 152
iget-object v0, p0, Lio/agora/base/internal/SurfaceEglRenderer;->layoutLock:Ljava/lang/Object;
monitor-enter v0
.line 153
:try_start_3
iget-boolean v1, p0, Lio/agora/base/internal/SurfaceEglRenderer;->isRenderingPaused:Z
if-eqz v1, :cond_9
.line 154
monitor-exit v0
return-void
.line 156
:cond_9
iget v1, p0, Lio/agora/base/internal/SurfaceEglRenderer;->rotatedFrameWidth:I
invoke-virtual {p1}, Lio/agora/base/VideoFrame;->getRotatedWidth()I
move-result v2
if-ne v1, v2, :cond_21
iget v1, p0, Lio/agora/base/internal/SurfaceEglRenderer;->rotatedFrameHeight:I
.line 157
invoke-virtual {p1}, Lio/agora/base/VideoFrame;->getRotatedHeight()I
move-result v2
if-ne v1, v2, :cond_21
iget v1, p0, Lio/agora/base/internal/SurfaceEglRenderer;->frameRotation:I
.line 158
invoke-virtual {p1}, Lio/agora/base/VideoFrame;->getRotation()I
move-result v2
if-eq v1, v2, :cond_89
.line 159
:cond_21
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Reporting frame resolution changed to "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Lio/agora/base/VideoFrame;->getBuffer()Lio/agora/base/VideoFrame$Buffer;
move-result-object v2
invoke-interface {v2}, Lio/agora/base/VideoFrame$Buffer;->getWidth()I
move-result v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string/jumbo v2, "x"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 160
invoke-virtual {p1}, Lio/agora/base/VideoFrame;->getBuffer()Lio/agora/base/VideoFrame$Buffer;
move-result-object v2
invoke-interface {v2}, Lio/agora/base/VideoFrame$Buffer;->getHeight()I
move-result v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " with rotation "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Lio/agora/base/VideoFrame;->getRotation()I
move-result v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 159
invoke-direct {p0, v1}, Lio/agora/base/internal/SurfaceEglRenderer;->logD(Ljava/lang/String;)V
.line 161
iget-object v1, p0, Lio/agora/base/internal/SurfaceEglRenderer;->rendererEvents:Lio/agora/base/internal/video/RendererCommon$RendererEvents;
if-eqz v1, :cond_77
.line 162
iget-object v1, p0, Lio/agora/base/internal/SurfaceEglRenderer;->rendererEvents:Lio/agora/base/internal/video/RendererCommon$RendererEvents;
.line 163
invoke-virtual {p1}, Lio/agora/base/VideoFrame;->getBuffer()Lio/agora/base/VideoFrame$Buffer;
move-result-object v2
invoke-interface {v2}, Lio/agora/base/VideoFrame$Buffer;->getWidth()I
move-result v2
invoke-virtual {p1}, Lio/agora/base/VideoFrame;->getBuffer()Lio/agora/base/VideoFrame$Buffer;
move-result-object v3
invoke-interface {v3}, Lio/agora/base/VideoFrame$Buffer;->getHeight()I
move-result v3
invoke-virtual {p1}, Lio/agora/base/VideoFrame;->getRotation()I
move-result v4
.line 162
invoke-interface {v1, v2, v3, v4}, Lio/agora/base/internal/video/RendererCommon$RendererEvents;->onFrameResolutionChanged(III)V
.line 165
:cond_77
invoke-virtual {p1}, Lio/agora/base/VideoFrame;->getRotatedWidth()I
move-result v1
iput v1, p0, Lio/agora/base/internal/SurfaceEglRenderer;->rotatedFrameWidth:I
.line 166
invoke-virtual {p1}, Lio/agora/base/VideoFrame;->getRotatedHeight()I
move-result v1
iput v1, p0, Lio/agora/base/internal/SurfaceEglRenderer;->rotatedFrameHeight:I
.line 167
invoke-virtual {p1}, Lio/agora/base/VideoFrame;->getRotation()I
move-result p1
iput p1, p0, Lio/agora/base/internal/SurfaceEglRenderer;->frameRotation:I
.line 169
:cond_89
monitor-exit v0
return-void
:catchall_8b
move-exception p1
monitor-exit v0
:try_end_8d
.catchall {:try_start_3 .. :try_end_8d} :catchall_8b
throw p1
.end method
# virtual methods
.method public disableFpsReduction()V
.registers 3
.line 87
iget-object v0, p0, Lio/agora/base/internal/SurfaceEglRenderer;->layoutLock:Ljava/lang/Object;
monitor-enter v0
const/4 v1, 0x0
.line 88
:try_start_4
iput-boolean v1, p0, Lio/agora/base/internal/SurfaceEglRenderer;->isRenderingPaused:Z
.line 89
monitor-exit v0
:try_end_7
.catchall {:try_start_4 .. :try_end_7} :catchall_b
.line 90
invoke-super {p0}, Lio/agora/base/internal/video/EglRenderer;->disableFpsReduction()V
return-void
:catchall_b
move-exception v1
.line 89
:try_start_c
monitor-exit v0
:try_end_d
.catchall {:try_start_c .. :try_end_d} :catchall_b
throw v1
.end method
.method public init(Lio/agora/base/internal/video/EglBase$Context;Lio/agora/base/internal/video/RendererCommon$RendererEvents;[ILio/agora/base/internal/video/RendererCommon$GlDrawer;Z)V
.registers 7
.line 55
iput-object p2, p0, Lio/agora/base/internal/SurfaceEglRenderer;->rendererEvents:Lio/agora/base/internal/video/RendererCommon$RendererEvents;
.line 56
iget-object p2, p0, Lio/agora/base/internal/SurfaceEglRenderer;->layoutLock:Ljava/lang/Object;
monitor-enter p2
const/4 v0, 0x0
.line 57
:try_start_6
iput-boolean v0, p0, Lio/agora/base/internal/SurfaceEglRenderer;->isFirstFrameRendered:Z
.line 58
iput v0, p0, Lio/agora/base/internal/SurfaceEglRenderer;->rotatedFrameWidth:I
.line 59
iput v0, p0, Lio/agora/base/internal/SurfaceEglRenderer;->rotatedFrameHeight:I
.line 60
iput v0, p0, Lio/agora/base/internal/SurfaceEglRenderer;->frameRotation:I
.line 61
monitor-exit p2
:try_end_f
.catchall {:try_start_6 .. :try_end_f} :catchall_13
.line 62
invoke-super {p0, p1, p3, p4, p5}, Lio/agora/base/internal/video/EglRenderer;->init(Lio/agora/base/internal/video/EglBase$Context;[ILio/agora/base/internal/video/RendererCommon$GlDrawer;Z)V
return-void
:catchall_13
move-exception p1
.line 61
:try_start_14
monitor-exit p2
:try_end_15
.catchall {:try_start_14 .. :try_end_15} :catchall_13
throw p1
.end method
.method public init(Lio/agora/base/internal/video/EglBase$Context;[ILio/agora/base/internal/video/RendererCommon$GlDrawer;Z)V
.registers 11
const/4 v2, 0x0
move-object v0, p0
move-object v1, p1
move-object v3, p2
move-object v4, p3
move v5, p4
.line 68
invoke-virtual/range {v0 .. v5}, Lio/agora/base/internal/SurfaceEglRenderer;->init(Lio/agora/base/internal/video/EglBase$Context;Lio/agora/base/internal/video/RendererCommon$RendererEvents;[ILio/agora/base/internal/video/RendererCommon$GlDrawer;Z)V
return-void
.end method
.method public onFrame(Lio/agora/base/VideoFrame;)V
.registers 2
.line 104
invoke-direct {p0, p1}, Lio/agora/base/internal/SurfaceEglRenderer;->updateFrameDimensionsAndReportEvents(Lio/agora/base/VideoFrame;)V
.line 105
invoke-super {p0, p1}, Lio/agora/base/internal/video/EglRenderer;->onFrame(Lio/agora/base/VideoFrame;)V
return-void
.end method
.method public onSurfaceTextureAvailable(Landroid/graphics/SurfaceTexture;II)V
.registers 6
.line 131
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "onTextureSurfaceAvailable: surfaceTexture: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, " width: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p2, "height"
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p0, p2}, Lio/agora/base/internal/SurfaceEglRenderer;->logD(Ljava/lang/String;)V
.line 133
invoke-static {}, Lio/agora/base/internal/ThreadUtils;->checkIsOnMainThread()V
.line 134
invoke-virtual {p0, p1}, Lio/agora/base/internal/SurfaceEglRenderer;->createEglSurface(Landroid/graphics/SurfaceTexture;)V
return-void
.end method
.method public onSurfaceTextureDestroyed(Landroid/graphics/SurfaceTexture;)V
.registers 4
.line 145
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "onSurfaceTextureDestroyed: surfaceTexture: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Lio/agora/base/internal/SurfaceEglRenderer;->logD(Ljava/lang/String;)V
.line 146
invoke-static {}, Lio/agora/base/internal/ThreadUtils;->checkIsOnMainThread()V
.line 147
invoke-virtual {p0}, Lio/agora/base/internal/SurfaceEglRenderer;->releaseEglSurface()V
return-void
.end method
.method public onSurfaceTextureSizeChanged(Landroid/graphics/SurfaceTexture;II)V
.registers 6
.line 138
invoke-static {}, Lio/agora/base/internal/ThreadUtils;->checkIsOnMainThread()V
.line 139
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "onSurfaceTextureSizeChanged: surfaceTexture: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string p1, " size: "
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string/jumbo p1, "x"
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Lio/agora/base/internal/SurfaceEglRenderer;->logD(Ljava/lang/String;)V
.line 141
invoke-virtual {p0}, Lio/agora/base/internal/SurfaceEglRenderer;->notifySurfaceSizeChanged()V
return-void
.end method
.method public pauseVideo()V
.registers 3
.line 95
iget-object v0, p0, Lio/agora/base/internal/SurfaceEglRenderer;->layoutLock:Ljava/lang/Object;
monitor-enter v0
const/4 v1, 0x1
.line 96
:try_start_4
iput-boolean v1, p0, Lio/agora/base/internal/SurfaceEglRenderer;->isRenderingPaused:Z
.line 97
monitor-exit v0
:try_end_7
.catchall {:try_start_4 .. :try_end_7} :catchall_b
.line 98
invoke-super {p0}, Lio/agora/base/internal/video/EglRenderer;->pauseVideo()V
return-void
:catchall_b
move-exception v1
.line 97
:try_start_c
monitor-exit v0
:try_end_d
.catchall {:try_start_c .. :try_end_d} :catchall_b
throw v1
.end method
.method public setFpsReduction(F)V
.registers 4
.line 79
iget-object v0, p0, Lio/agora/base/internal/SurfaceEglRenderer;->layoutLock:Ljava/lang/Object;
monitor-enter v0
const/4 v1, 0x0
cmpl-float v1, p1, v1
if-nez v1, :cond_a
const/4 v1, 0x1
goto :goto_b
:cond_a
const/4 v1, 0x0
.line 80
:goto_b
:try_start_b
iput-boolean v1, p0, Lio/agora/base/internal/SurfaceEglRenderer;->isRenderingPaused:Z
.line 81
monitor-exit v0
:try_end_e
.catchall {:try_start_b .. :try_end_e} :catchall_12
.line 82
invoke-super {p0, p1}, Lio/agora/base/internal/video/EglRenderer;->setFpsReduction(F)V
return-void
:catchall_12
move-exception p1
.line 81
:try_start_13
monitor-exit v0
:try_end_14
.catchall {:try_start_13 .. :try_end_14} :catchall_12
throw p1
.end method
.method public surfaceChanged(Landroid/view/SurfaceHolder;III)V
.registers 6
.line 125
invoke-static {}, Lio/agora/base/internal/ThreadUtils;->checkIsOnMainThread()V
.line 126
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "surfaceChanged: format: "
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p2, " size: "
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string/jumbo p2, "x"
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, p4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Lio/agora/base/internal/SurfaceEglRenderer;->logD(Ljava/lang/String;)V
.line 127
invoke-virtual {p0}, Lio/agora/base/internal/SurfaceEglRenderer;->notifySurfaceSizeChanged()V
return-void
.end method
.method public surfaceCreated(Landroid/view/SurfaceHolder;)V
.registers 4
.line 111
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "surfaceCreated: SurfaceHolder: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lio/agora/base/internal/SurfaceEglRenderer;->logD(Ljava/lang/String;)V
.line 112
invoke-static {}, Lio/agora/base/internal/ThreadUtils;->checkIsOnMainThread()V
.line 113
invoke-interface {p1}, Landroid/view/SurfaceHolder;->getSurface()Landroid/view/Surface;
move-result-object p1
invoke-virtual {p0, p1}, Lio/agora/base/internal/SurfaceEglRenderer;->createEglSurface(Landroid/view/Surface;)V
return-void
.end method
.method public surfaceDestroyed(Landroid/view/SurfaceHolder;)V
.registers 4
.line 118
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "surfaceDestroyed: SurfaceHolder: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Lio/agora/base/internal/SurfaceEglRenderer;->logD(Ljava/lang/String;)V
.line 119
invoke-static {}, Lio/agora/base/internal/ThreadUtils;->checkIsOnMainThread()V
.line 120
invoke-virtual {p0}, Lio/agora/base/internal/SurfaceEglRenderer;->releaseEglSurface()V
return-void
.end method