SurfaceViewRenderer.smali
.class public Lorg/webrtc/ali/SurfaceViewRenderer;
.super Landroid/view/SurfaceView;
.source "SurfaceViewRenderer.java"
# interfaces
.implements Landroid/view/SurfaceHolder$Callback;
.implements Lorg/webrtc/ali/VideoRenderer$Callbacks;
# static fields
.field private static final TAG:Ljava/lang/String; = "SurfaceViewRenderer"
# instance fields
.field private final eglRenderer:Lorg/webrtc/ali/EglRenderer;
.field private enableFixedSize:Z
.field private frameRotation:I
.field private isFirstFrameRendered:Z
.field private isRenderingPaused:Z
.field private final layoutLock:Ljava/lang/Object;
.field private rendererEvents:Lorg/webrtc/ali/RendererCommon$RendererEvents;
.field private final resourceName:Ljava/lang/String;
.field private rotatedFrameHeight:I
.field private rotatedFrameWidth:I
.field private surfaceHeight:I
.field private surfaceWidth:I
.field private final videoLayoutMeasure:Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.registers 4
.param p1, "context" # Landroid/content/Context;
.line 59
invoke-direct {p0, p1}, Landroid/view/SurfaceView;-><init>(Landroid/content/Context;)V
.line 36
new-instance v0, Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;
invoke-direct {v0}, Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;-><init>()V
iput-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->videoLayoutMeasure:Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;
.line 43
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->layoutLock:Ljava/lang/Object;
.line 44
const/4 v0, 0x0
iput-boolean v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->isRenderingPaused:Z
.line 60
invoke-direct {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getResourceName()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->resourceName:Ljava/lang/String;
.line 61
new-instance v1, Lorg/webrtc/ali/EglRenderer;
invoke-direct {v1, v0}, Lorg/webrtc/ali/EglRenderer;-><init>(Ljava/lang/String;)V
iput-object v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
.line 62
invoke-virtual {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getHolder()Landroid/view/SurfaceHolder;
move-result-object v0
invoke-interface {v0, p0}, Landroid/view/SurfaceHolder;->addCallback(Landroid/view/SurfaceHolder$Callback;)V
.line 63
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.registers 5
.param p1, "context" # Landroid/content/Context;
.param p2, "attrs" # Landroid/util/AttributeSet;
.line 69
invoke-direct {p0, p1, p2}, Landroid/view/SurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.line 36
new-instance v0, Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;
invoke-direct {v0}, Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;-><init>()V
iput-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->videoLayoutMeasure:Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;
.line 43
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->layoutLock:Ljava/lang/Object;
.line 44
const/4 v0, 0x0
iput-boolean v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->isRenderingPaused:Z
.line 70
invoke-direct {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getResourceName()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->resourceName:Ljava/lang/String;
.line 71
new-instance v1, Lorg/webrtc/ali/EglRenderer;
invoke-direct {v1, v0}, Lorg/webrtc/ali/EglRenderer;-><init>(Ljava/lang/String;)V
iput-object v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
.line 72
invoke-virtual {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getHolder()Landroid/view/SurfaceHolder;
move-result-object v0
invoke-interface {v0, p0}, Landroid/view/SurfaceHolder;->addCallback(Landroid/view/SurfaceHolder$Callback;)V
.line 73
return-void
.end method
.method static synthetic access$000(Lorg/webrtc/ali/SurfaceViewRenderer;)V
.registers 1
.param p0, "x0" # Lorg/webrtc/ali/SurfaceViewRenderer;
.line 30
invoke-direct {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->updateSurfaceSize()V
return-void
.end method
.method private getResourceName()Ljava/lang/String;
.registers 4
.line 292
:try_start_0
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getResources()Landroid/content/res/Resources;
move-result-object v1
invoke-virtual {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getId()I
move-result v2
invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getResourceEntryName(I)Ljava/lang/String;
move-result-object v1
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}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
:try_end_1d
.catch Landroid/content/res/Resources$NotFoundException; {:try_start_0 .. :try_end_1d} :catch_1e
return-object v0
.line 293
:catch_1e
move-exception v0
.line 294
.local v0, "e":Landroid/content/res/Resources$NotFoundException;
const-string v1, ""
return-object v1
.end method
.method private logD(Ljava/lang/String;)V
.registers 4
.param p1, "string" # Ljava/lang/String;
.line 340
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
iget-object v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->resourceName:Ljava/lang/String;
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 v0
const-string v1, "SurfaceViewRenderer"
invoke-static {v1, v0}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 341
return-void
.end method
.method private updateFrameDimensionsAndReportEvents(Lorg/webrtc/ali/VideoRenderer$I420Frame;)V
.registers 7
.param p1, "frame" # Lorg/webrtc/ali/VideoRenderer$I420Frame;
.line 307
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->layoutLock:Ljava/lang/Object;
monitor-enter v0
.line 308
:try_start_3
iget-boolean v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->isRenderingPaused:Z
if-eqz v1, :cond_9
.line 309
monitor-exit v0
return-void
.line 311
:cond_9
iget-boolean v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->isFirstFrameRendered:Z
if-nez v1, :cond_1e
.line 312
const/4 v1, 0x1
iput-boolean v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->isFirstFrameRendered:Z
.line 313
const-string v1, "Reporting first rendered frame."
invoke-direct {p0, v1}, Lorg/webrtc/ali/SurfaceViewRenderer;->logD(Ljava/lang/String;)V
.line 314
iget-object v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rendererEvents:Lorg/webrtc/ali/RendererCommon$RendererEvents;
if-eqz v1, :cond_1e
.line 315
iget-object v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rendererEvents:Lorg/webrtc/ali/RendererCommon$RendererEvents;
invoke-interface {v1}, Lorg/webrtc/ali/RendererCommon$RendererEvents;->onFirstFrameRendered()V
.line 318
:cond_1e
iget v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameWidth:I
invoke-virtual {p1}, Lorg/webrtc/ali/VideoRenderer$I420Frame;->rotatedWidth()I
move-result v2
if-ne v1, v2, :cond_34
iget v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameHeight:I
invoke-virtual {p1}, Lorg/webrtc/ali/VideoRenderer$I420Frame;->rotatedHeight()I
move-result v2
if-ne v1, v2, :cond_34
iget v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->frameRotation:I
iget v2, p1, Lorg/webrtc/ali/VideoRenderer$I420Frame;->rotationDegree:I
if-eq v1, v2, :cond_85
.line 320
:cond_34
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;
iget v2, p1, Lorg/webrtc/ali/VideoRenderer$I420Frame;->width:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, "x"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p1, Lorg/webrtc/ali/VideoRenderer$I420Frame;->height:I
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;
iget v2, p1, Lorg/webrtc/ali/VideoRenderer$I420Frame;->rotationDegree:I
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
invoke-direct {p0, v1}, Lorg/webrtc/ali/SurfaceViewRenderer;->logD(Ljava/lang/String;)V
.line 322
iget-object v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rendererEvents:Lorg/webrtc/ali/RendererCommon$RendererEvents;
if-eqz v1, :cond_6d
.line 323
iget-object v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rendererEvents:Lorg/webrtc/ali/RendererCommon$RendererEvents;
iget v2, p1, Lorg/webrtc/ali/VideoRenderer$I420Frame;->width:I
iget v3, p1, Lorg/webrtc/ali/VideoRenderer$I420Frame;->height:I
iget v4, p1, Lorg/webrtc/ali/VideoRenderer$I420Frame;->rotationDegree:I
invoke-interface {v1, v2, v3, v4}, Lorg/webrtc/ali/RendererCommon$RendererEvents;->onFrameResolutionChanged(III)V
.line 325
:cond_6d
invoke-virtual {p1}, Lorg/webrtc/ali/VideoRenderer$I420Frame;->rotatedWidth()I
move-result v1
iput v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameWidth:I
.line 326
invoke-virtual {p1}, Lorg/webrtc/ali/VideoRenderer$I420Frame;->rotatedHeight()I
move-result v1
iput v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameHeight:I
.line 327
iget v1, p1, Lorg/webrtc/ali/VideoRenderer$I420Frame;->rotationDegree:I
iput v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->frameRotation:I
.line 328
new-instance v1, Lorg/webrtc/ali/SurfaceViewRenderer$2;
invoke-direct {v1, p0}, Lorg/webrtc/ali/SurfaceViewRenderer$2;-><init>(Lorg/webrtc/ali/SurfaceViewRenderer;)V
invoke-virtual {p0, v1}, Lorg/webrtc/ali/SurfaceViewRenderer;->post(Ljava/lang/Runnable;)Z
.line 336
:cond_85
monitor-exit v0
.line 337
return-void
.line 336
:catchall_87
move-exception v1
monitor-exit v0
:try_end_89
.catchall {:try_start_3 .. :try_end_89} :catchall_87
throw v1
.end method
.method private updateSurfaceSize()V
.registers 10
.line 229
invoke-static {}, Lorg/webrtc/ali/ThreadUtils;->checkIsOnMainThread()V
.line 230
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->layoutLock:Ljava/lang/Object;
monitor-enter v0
.line 231
:try_start_6
iget-boolean v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->enableFixedSize:Z
if-eqz v1, :cond_c4
iget v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameWidth:I
if-eqz v1, :cond_c4
iget v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameHeight:I
if-eqz v1, :cond_c4
invoke-virtual {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getWidth()I
move-result v1
if-eqz v1, :cond_c4
.line 232
invoke-virtual {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getHeight()I
move-result v1
if-eqz v1, :cond_c4
.line 233
invoke-virtual {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getWidth()I
move-result v1
int-to-float v1, v1
invoke-virtual {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getHeight()I
move-result v2
int-to-float v2, v2
div-float/2addr v1, v2
.line 234
.local v1, "layoutAspectRatio":F
iget v2, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameWidth:I
int-to-float v2, v2
iget v3, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameHeight:I
int-to-float v3, v3
div-float/2addr v2, v3
.line 237
.local v2, "frameAspectRatio":F
cmpl-float v3, v2, v1
if-lez v3, :cond_3d
.line 238
iget v3, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameHeight:I
int-to-float v3, v3
mul-float v3, v3, v1
float-to-int v3, v3
.line 239
.local v3, "drawnFrameWidth":I
iget v4, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameHeight:I
.local v4, "drawnFrameHeight":I
goto :goto_44
.line 241
.end local v3 # "drawnFrameWidth":I
.end local v4 # "drawnFrameHeight":I
:cond_3d
iget v3, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameWidth:I
.line 242
.restart local v3 # "drawnFrameWidth":I
iget v4, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameWidth:I
int-to-float v4, v4
div-float/2addr v4, v1
float-to-int v4, v4
.line 245
.restart local v4 # "drawnFrameHeight":I
:goto_44
invoke-virtual {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getWidth()I
move-result v5
invoke-static {v5, v3}, Ljava/lang/Math;->min(II)I
move-result v5
.line 246
.local v5, "width":I
invoke-virtual {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getHeight()I
move-result v6
invoke-static {v6, v4}, Ljava/lang/Math;->min(II)I
move-result v6
.line 247
.local v6, "height":I
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "updateSurfaceSize. Layout size: "
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getWidth()I
move-result v8
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v8, "x"
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getHeight()I
move-result v8
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v8, ", frame size: "
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v8, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameWidth:I
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v8, "x"
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v8, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameHeight:I
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v8, ", requested surface size: "
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v8, "x"
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v8, ", old surface size: "
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v8, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->surfaceWidth:I
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v8, "x"
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v8, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->surfaceHeight:I
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
invoke-direct {p0, v7}, Lorg/webrtc/ali/SurfaceViewRenderer;->logD(Ljava/lang/String;)V
.line 250
iget v7, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->surfaceWidth:I
if-ne v5, v7, :cond_b8
iget v7, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->surfaceHeight:I
if-eq v6, v7, :cond_c3
.line 251
:cond_b8
iput v5, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->surfaceWidth:I
.line 252
iput v6, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->surfaceHeight:I
.line 253
invoke-virtual {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getHolder()Landroid/view/SurfaceHolder;
move-result-object v7
invoke-interface {v7, v5, v6}, Landroid/view/SurfaceHolder;->setFixedSize(II)V
.line 255
.end local v1 # "layoutAspectRatio":F
.end local v2 # "frameAspectRatio":F
.end local v3 # "drawnFrameWidth":I
.end local v4 # "drawnFrameHeight":I
.end local v5 # "width":I
.end local v6 # "height":I
:cond_c3
goto :goto_d0
.line 256
:cond_c4
const/4 v1, 0x0
iput v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->surfaceHeight:I
iput v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->surfaceWidth:I
.line 257
invoke-virtual {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->getHolder()Landroid/view/SurfaceHolder;
move-result-object v1
invoke-interface {v1}, Landroid/view/SurfaceHolder;->setSizeFromLayout()V
.line 259
:goto_d0
monitor-exit v0
.line 260
return-void
.line 259
:catchall_d2
move-exception v1
monitor-exit v0
:try_end_d4
.catchall {:try_start_6 .. :try_end_d4} :catchall_d2
throw v1
.end method
# virtual methods
.method public addFrameListener(Lorg/webrtc/ali/EglRenderer$FrameListener;F)V
.registers 4
.param p1, "listener" # Lorg/webrtc/ali/EglRenderer$FrameListener;
.param p2, "scale" # F
.line 136
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
invoke-virtual {v0, p1, p2}, Lorg/webrtc/ali/EglRenderer;->addFrameListener(Lorg/webrtc/ali/EglRenderer$FrameListener;F)V
.line 137
return-void
.end method
.method public addFrameListener(Lorg/webrtc/ali/EglRenderer$FrameListener;FLorg/webrtc/ali/RendererCommon$GlDrawer;)V
.registers 5
.param p1, "listener" # Lorg/webrtc/ali/EglRenderer$FrameListener;
.param p2, "scale" # F
.param p3, "drawerParam" # Lorg/webrtc/ali/RendererCommon$GlDrawer;
.line 123
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
invoke-virtual {v0, p1, p2, p3}, Lorg/webrtc/ali/EglRenderer;->addFrameListener(Lorg/webrtc/ali/EglRenderer$FrameListener;FLorg/webrtc/ali/RendererCommon$GlDrawer;)V
.line 124
return-void
.end method
.method public clearImage()V
.registers 2
.line 302
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
invoke-virtual {v0}, Lorg/webrtc/ali/EglRenderer;->clearImage()V
.line 303
return-void
.end method
.method public disableFpsReduction()V
.registers 3
.line 188
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->layoutLock:Ljava/lang/Object;
monitor-enter v0
.line 189
const/4 v1, 0x0
:try_start_4
iput-boolean v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->isRenderingPaused:Z
.line 190
monitor-exit v0
:try_end_7
.catchall {:try_start_4 .. :try_end_7} :catchall_d
.line 191
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
invoke-virtual {v0}, Lorg/webrtc/ali/EglRenderer;->disableFpsReduction()V
.line 192
return-void
.line 190
:catchall_d
move-exception v1
:try_start_e
monitor-exit v0
:try_end_f
.catchall {:try_start_e .. :try_end_f} :catchall_d
throw v1
.end method
.method public init(Lorg/webrtc/ali/EglBase$Context;Lorg/webrtc/ali/RendererCommon$RendererEvents;)V
.registers 5
.param p1, "sharedContext" # Lorg/webrtc/ali/EglBase$Context;
.param p2, "rendererEvents" # Lorg/webrtc/ali/RendererCommon$RendererEvents;
.line 80
sget-object v0, Lorg/webrtc/ali/EglBase;->CONFIG_PLAIN:[I
new-instance v1, Lorg/webrtc/ali/GlRectDrawer;
invoke-direct {v1}, Lorg/webrtc/ali/GlRectDrawer;-><init>()V
invoke-virtual {p0, p1, p2, v0, v1}, Lorg/webrtc/ali/SurfaceViewRenderer;->init(Lorg/webrtc/ali/EglBase$Context;Lorg/webrtc/ali/RendererCommon$RendererEvents;[ILorg/webrtc/ali/RendererCommon$GlDrawer;)V
.line 81
return-void
.end method
.method public init(Lorg/webrtc/ali/EglBase$Context;Lorg/webrtc/ali/RendererCommon$RendererEvents;[ILorg/webrtc/ali/RendererCommon$GlDrawer;)V
.registers 7
.param p1, "sharedContext" # Lorg/webrtc/ali/EglBase$Context;
.param p2, "rendererEvents" # Lorg/webrtc/ali/RendererCommon$RendererEvents;
.param p3, "configAttributes" # [I
.param p4, "drawer" # Lorg/webrtc/ali/RendererCommon$GlDrawer;
.line 92
invoke-static {}, Lorg/webrtc/ali/ThreadUtils;->checkIsOnMainThread()V
.line 93
iput-object p2, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rendererEvents:Lorg/webrtc/ali/RendererCommon$RendererEvents;
.line 94
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->layoutLock:Ljava/lang/Object;
monitor-enter v0
.line 95
const/4 v1, 0x0
:try_start_9
iput v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameWidth:I
.line 96
iput v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameHeight:I
.line 97
iput v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->frameRotation:I
.line 98
monitor-exit v0
:try_end_10
.catchall {:try_start_9 .. :try_end_10} :catchall_16
.line 99
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
invoke-virtual {v0, p1, p3, p4}, Lorg/webrtc/ali/EglRenderer;->init(Lorg/webrtc/ali/EglBase$Context;[ILorg/webrtc/ali/RendererCommon$GlDrawer;)V
.line 100
return-void
.line 98
:catchall_16
move-exception v1
:try_start_17
monitor-exit v0
:try_end_18
.catchall {:try_start_17 .. :try_end_18} :catchall_16
throw v1
.end method
.method protected onLayout(ZIIII)V
.registers 9
.param p1, "changed" # Z
.param p2, "left" # I
.param p3, "top" # I
.param p4, "right" # I
.param p5, "bottom" # I
.line 223
invoke-static {}, Lorg/webrtc/ali/ThreadUtils;->checkIsOnMainThread()V
.line 224
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
sub-int v1, p4, p2
int-to-float v1, v1
sub-int v2, p5, p3
int-to-float v2, v2
div-float/2addr v1, v2
invoke-virtual {v0, v1}, Lorg/webrtc/ali/EglRenderer;->setLayoutAspectRatio(F)V
.line 225
invoke-direct {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->updateSurfaceSize()V
.line 226
return-void
.end method
.method protected onMeasure(II)V
.registers 7
.param p1, "widthSpec" # I
.param p2, "heightSpec" # I
.line 211
invoke-static {}, Lorg/webrtc/ali/ThreadUtils;->checkIsOnMainThread()V
.line 213
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->layoutLock:Ljava/lang/Object;
monitor-enter v0
.line 214
:try_start_6
iget-object v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->videoLayoutMeasure:Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;
iget v2, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameWidth:I
iget v3, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->rotatedFrameHeight:I
.line 215
invoke-virtual {v1, p1, p2, v2, v3}, Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;->measure(IIII)Landroid/graphics/Point;
move-result-object v1
.line 216
.local v1, "size":Landroid/graphics/Point;
monitor-exit v0
:try_end_11
.catchall {:try_start_6 .. :try_end_11} :catchall_39
.line 217
iget v0, v1, Landroid/graphics/Point;->x:I
iget v2, v1, Landroid/graphics/Point;->y:I
invoke-virtual {p0, v0, v2}, Lorg/webrtc/ali/SurfaceViewRenderer;->setMeasuredDimension(II)V
.line 218
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "onMeasure(). New size: "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, v1, Landroid/graphics/Point;->x:I
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, "x"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, v1, Landroid/graphics/Point;->y:I
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/webrtc/ali/SurfaceViewRenderer;->logD(Ljava/lang/String;)V
.line 219
return-void
.line 216
.end local v1 # "size":Landroid/graphics/Point;
:catchall_39
move-exception v1
:try_start_3a
monitor-exit v0
:try_end_3b
.catchall {:try_start_3a .. :try_end_3b} :catchall_39
throw v1
.end method
.method public pauseVideo()V
.registers 3
.line 195
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->layoutLock:Ljava/lang/Object;
monitor-enter v0
.line 196
const/4 v1, 0x1
:try_start_4
iput-boolean v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->isRenderingPaused:Z
.line 197
monitor-exit v0
:try_end_7
.catchall {:try_start_4 .. :try_end_7} :catchall_d
.line 198
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
invoke-virtual {v0}, Lorg/webrtc/ali/EglRenderer;->pauseVideo()V
.line 199
return-void
.line 197
:catchall_d
move-exception v1
:try_start_e
monitor-exit v0
:try_end_f
.catchall {:try_start_e .. :try_end_f} :catchall_d
throw v1
.end method
.method public release()V
.registers 2
.line 109
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
invoke-virtual {v0}, Lorg/webrtc/ali/EglRenderer;->release()V
.line 110
return-void
.end method
.method public removeFrameListener(Lorg/webrtc/ali/EglRenderer$FrameListener;)V
.registers 3
.param p1, "listener" # Lorg/webrtc/ali/EglRenderer$FrameListener;
.line 140
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
invoke-virtual {v0, p1}, Lorg/webrtc/ali/EglRenderer;->removeFrameListener(Lorg/webrtc/ali/EglRenderer$FrameListener;)V
.line 141
return-void
.end method
.method public renderFrame(Lorg/webrtc/ali/VideoRenderer$I420Frame;)V
.registers 3
.param p1, "frame" # Lorg/webrtc/ali/VideoRenderer$I420Frame;
.line 204
invoke-direct {p0, p1}, Lorg/webrtc/ali/SurfaceViewRenderer;->updateFrameDimensionsAndReportEvents(Lorg/webrtc/ali/VideoRenderer$I420Frame;)V
.line 205
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
invoke-virtual {v0, p1}, Lorg/webrtc/ali/EglRenderer;->renderFrame(Lorg/webrtc/ali/VideoRenderer$I420Frame;)V
.line 206
return-void
.end method
.method public setEnableHardwareScaler(Z)V
.registers 2
.param p1, "enabled" # Z
.line 148
invoke-static {}, Lorg/webrtc/ali/ThreadUtils;->checkIsOnMainThread()V
.line 149
iput-boolean p1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->enableFixedSize:Z
.line 150
invoke-direct {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->updateSurfaceSize()V
.line 151
return-void
.end method
.method public setFpsReduction(F)V
.registers 4
.param p1, "fps" # F
.line 181
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->layoutLock:Ljava/lang/Object;
monitor-enter v0
.line 182
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
:goto_b
:try_start_b
iput-boolean v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->isRenderingPaused:Z
.line 183
monitor-exit v0
:try_end_e
.catchall {:try_start_b .. :try_end_e} :catchall_14
.line 184
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
invoke-virtual {v0, p1}, Lorg/webrtc/ali/EglRenderer;->setFpsReduction(F)V
.line 185
return-void
.line 183
:catchall_14
move-exception v1
:try_start_15
monitor-exit v0
:try_end_16
.catchall {:try_start_15 .. :try_end_16} :catchall_14
throw v1
.end method
.method public setMirror(Z)V
.registers 3
.param p1, "mirror" # Z
.line 157
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
invoke-virtual {v0, p1}, Lorg/webrtc/ali/EglRenderer;->setMirror(Z)V
.line 158
return-void
.end method
.method public setScalingType(Lorg/webrtc/ali/RendererCommon$ScalingType;)V
.registers 3
.param p1, "scalingType" # Lorg/webrtc/ali/RendererCommon$ScalingType;
.line 164
invoke-static {}, Lorg/webrtc/ali/ThreadUtils;->checkIsOnMainThread()V
.line 165
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->videoLayoutMeasure:Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;
invoke-virtual {v0, p1}, Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;->setScalingType(Lorg/webrtc/ali/RendererCommon$ScalingType;)V
.line 166
return-void
.end method
.method public setScalingType(Lorg/webrtc/ali/RendererCommon$ScalingType;Lorg/webrtc/ali/RendererCommon$ScalingType;)V
.registers 4
.param p1, "scalingTypeMatchOrientation" # Lorg/webrtc/ali/RendererCommon$ScalingType;
.param p2, "scalingTypeMismatchOrientation" # Lorg/webrtc/ali/RendererCommon$ScalingType;
.line 170
invoke-static {}, Lorg/webrtc/ali/ThreadUtils;->checkIsOnMainThread()V
.line 171
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->videoLayoutMeasure:Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;
invoke-virtual {v0, p1, p2}, Lorg/webrtc/ali/RendererCommon$VideoLayoutMeasure;->setScalingType(Lorg/webrtc/ali/RendererCommon$ScalingType;Lorg/webrtc/ali/RendererCommon$ScalingType;)V
.line 172
return-void
.end method
.method public surfaceChanged(Landroid/view/SurfaceHolder;III)V
.registers 7
.param p1, "holder" # Landroid/view/SurfaceHolder;
.param p2, "format" # I
.param p3, "width" # I
.param p4, "height" # I
.line 286
invoke-static {}, Lorg/webrtc/ali/ThreadUtils;->checkIsOnMainThread()V
.line 287
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "surfaceChanged: format: "
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 v1, " size: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, "x"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/webrtc/ali/SurfaceViewRenderer;->logD(Ljava/lang/String;)V
.line 288
return-void
.end method
.method public surfaceCreated(Landroid/view/SurfaceHolder;)V
.registers 4
.param p1, "holder" # Landroid/view/SurfaceHolder;
.line 265
invoke-static {}, Lorg/webrtc/ali/ThreadUtils;->checkIsOnMainThread()V
.line 266
iget-object v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
invoke-interface {p1}, Landroid/view/SurfaceHolder;->getSurface()Landroid/view/Surface;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/webrtc/ali/EglRenderer;->createEglSurface(Landroid/view/Surface;)V
.line 267
const/4 v0, 0x0
iput v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->surfaceHeight:I
iput v0, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->surfaceWidth:I
.line 268
invoke-direct {p0}, Lorg/webrtc/ali/SurfaceViewRenderer;->updateSurfaceSize()V
.line 269
return-void
.end method
.method public surfaceDestroyed(Landroid/view/SurfaceHolder;)V
.registers 5
.param p1, "holder" # Landroid/view/SurfaceHolder;
.line 273
invoke-static {}, Lorg/webrtc/ali/ThreadUtils;->checkIsOnMainThread()V
.line 274
new-instance v0, Ljava/util/concurrent/CountDownLatch;
const/4 v1, 0x1
invoke-direct {v0, v1}, Ljava/util/concurrent/CountDownLatch;-><init>(I)V
.line 275
.local v0, "completionLatch":Ljava/util/concurrent/CountDownLatch;
iget-object v1, p0, Lorg/webrtc/ali/SurfaceViewRenderer;->eglRenderer:Lorg/webrtc/ali/EglRenderer;
new-instance v2, Lorg/webrtc/ali/SurfaceViewRenderer$1;
invoke-direct {v2, p0, v0}, Lorg/webrtc/ali/SurfaceViewRenderer$1;-><init>(Lorg/webrtc/ali/SurfaceViewRenderer;Ljava/util/concurrent/CountDownLatch;)V
invoke-virtual {v1, v2}, Lorg/webrtc/ali/EglRenderer;->releaseEglSurface(Ljava/lang/Runnable;)V
.line 281
invoke-static {v0}, Lorg/webrtc/ali/ThreadUtils;->awaitUninterruptibly(Ljava/util/concurrent/CountDownLatch;)V
.line 282
return-void
.end method