SurfaceEglRendererHelper.smali
.class public abstract Lio/agora/rtc2/internal/SurfaceEglRendererHelper;
.super Ljava/lang/Object;
.source "SurfaceEglRendererHelper.java"
# interfaces
.implements Lio/agora/base/internal/video/VideoSink;
.implements Lio/agora/base/internal/video/RendererCommon$RendererEvents;
.implements Landroid/view/View$OnLayoutChangeListener;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/agora/rtc2/internal/SurfaceEglRendererHelper$DefaultDisplayListener;,
Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;,
Lio/agora/rtc2/internal/SurfaceEglRendererHelper$TextureViewEglRenderHelper;,
Lio/agora/rtc2/internal/SurfaceEglRendererHelper$SurfaceViewEglRenderHelper;,
Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderModeType;
}
.end annotation
# static fields
.field private static final DEFAULT_DISPLAY_REFRESH_RATE:I = 0x3c
.field private static final NANOS_PER_SECOND:J = 0x3b9aca00L
.field private static final TAG:Ljava/lang/String; = "SurfaceEglRendererHelper"
# instance fields
.field private displayListener:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$DefaultDisplayListener;
.field protected volatile disposed:Z
.field protected final eglRenderLock:Ljava/lang/Object;
.field protected eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
.field private final handler:Landroid/os/Handler;
.field protected final nativeLock:Ljava/lang/Object;
.field protected nativeVideoRendererAndroid:J
.field protected volatile rect:Landroid/graphics/Rect;
.field protected renderConfig:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;
.field protected final resourceName:Ljava/lang/String;
.field private sharedContext:Lio/agora/base/internal/video/EglBase$Context;
.field protected final view:Landroid/view/View;
.field private viewHeight:I
.field private viewWidth:I
.field private vsyncDurationNs:J
# direct methods
.method public constructor <init>(JLandroid/view/View;)V
.registers 6
.line 290
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 59
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->nativeLock:Ljava/lang/Object;
.line 61
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderLock:Ljava/lang/Object;
.line 65
new-instance v0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;
invoke-direct {v0, p0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;-><init>(Lio/agora/rtc2/internal/SurfaceEglRendererHelper;)V
iput-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->renderConfig:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;
const-wide/16 v0, 0x0
.line 73
iput-wide v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->vsyncDurationNs:J
const/4 v0, 0x0
.line 76
iput-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->displayListener:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$DefaultDisplayListener;
.line 291
iput-wide p1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->nativeVideoRendererAndroid:J
.line 292
iput-object p3, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->view:Landroid/view/View;
.line 293
invoke-direct {p0, p3}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->getResourceName(Landroid/view/View;)Ljava/lang/String;
move-result-object p1
iput-object p1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->resourceName:Ljava/lang/String;
.line 294
new-instance p2, Lio/agora/base/internal/SurfaceEglRenderer;
invoke-direct {p2, p1}, Lio/agora/base/internal/SurfaceEglRenderer;-><init>(Ljava/lang/String;)V
iput-object p2, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
.line 295
new-instance p1, Landroid/os/Handler;
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object p2
invoke-direct {p1, p2}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object p1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->handler:Landroid/os/Handler;
const/4 p1, 0x0
.line 296
iput-boolean p1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->disposed:Z
.line 297
invoke-virtual {p3}, Landroid/view/View;->getWidth()I
move-result p1
iput p1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->viewWidth:I
.line 298
invoke-virtual {p3}, Landroid/view/View;->getHeight()I
move-result p1
iput p1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->viewHeight:I
.line 299
invoke-virtual {p3, p0}, Landroid/view/View;->addOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V
.line 300
invoke-direct {p0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->registerDisplayListener()V
return-void
.end method
.method static synthetic access$000(Lio/agora/rtc2/internal/SurfaceEglRendererHelper;)Landroid/os/Handler;
.registers 1
.line 34
iget-object p0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->handler:Landroid/os/Handler;
return-object p0
.end method
.method static synthetic access$100(Lio/agora/rtc2/internal/SurfaceEglRendererHelper;)V
.registers 1
.line 34
invoke-direct {p0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->updateDefaultDisplayRefreshRateParams()V
return-void
.end method
.method private getResourceName(Landroid/view/View;)Ljava/lang/String;
.registers 3
.line 432
:try_start_0
invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
invoke-virtual {p1}, Landroid/view/View;->getId()I
move-result p1
invoke-virtual {v0, p1}, Landroid/content/res/Resources;->getResourceEntryName(I)Ljava/lang/String;
move-result-object p1
:try_end_10
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_10} :catch_11
return-object p1
.line 434
:catch_11
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, ""
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
new-instance v0, Ljava/util/Random;
invoke-direct {v0}, Ljava/util/Random;-><init>()V
invoke-virtual {v0}, Ljava/util/Random;->nextInt()I
move-result v0
invoke-static {v0}, Ljava/lang/Math;->abs(I)I
move-result v0
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
return-object p1
.end method
.method private getViewHeight()I
.registers 2
.line 479
iget v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->viewHeight:I
if-nez v0, :cond_c
.line 480
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->view:Landroid/view/View;
invoke-virtual {v0}, Landroid/view/View;->getHeight()I
move-result v0
iput v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->viewHeight:I
.line 482
:cond_c
iget v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->viewHeight:I
return v0
.end method
.method private getViewWidth()I
.registers 2
.line 472
iget v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->viewWidth:I
if-nez v0, :cond_c
.line 473
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->view:Landroid/view/View;
invoke-virtual {v0}, Landroid/view/View;->getWidth()I
move-result v0
iput v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->viewWidth:I
.line 475
:cond_c
iget v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->viewWidth:I
return v0
.end method
.method private maybeBuildDefaultDisplayListenerV17(Landroid/content/Context;)Lio/agora/rtc2/internal/SurfaceEglRendererHelper$DefaultDisplayListener;
.registers 4
.line 540
invoke-static {}, Lio/agora/base/internal/ContextUtils;->getApplicationContext()Landroid/content/Context;
move-result-object p1
const/4 v0, 0x0
if-nez p1, :cond_8
return-object v0
.line 543
:cond_8
invoke-static {}, Lio/agora/base/internal/ContextUtils;->getApplicationContext()Landroid/content/Context;
move-result-object p1
const-string v1, "display"
invoke-virtual {p1, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroid/hardware/display/DisplayManager;
if-nez p1, :cond_17
goto :goto_1c
.line 545
:cond_17
new-instance v0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$DefaultDisplayListener;
invoke-direct {v0, p0, p1}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$DefaultDisplayListener;-><init>(Lio/agora/rtc2/internal/SurfaceEglRendererHelper;Landroid/hardware/display/DisplayManager;)V
:goto_1c
return-object v0
.end method
.method public static newInstance(JLandroid/view/View;)Lio/agora/rtc2/internal/SurfaceEglRendererHelper;
.registers 4
.line 80
instance-of v0, p2, Landroid/view/SurfaceView;
if-eqz v0, :cond_c
.line 81
new-instance v0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$SurfaceViewEglRenderHelper;
check-cast p2, Landroid/view/SurfaceView;
invoke-direct {v0, p0, p1, p2}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$SurfaceViewEglRenderHelper;-><init>(JLandroid/view/SurfaceView;)V
return-object v0
.line 82
:cond_c
instance-of v0, p2, Landroid/view/TextureView;
if-eqz v0, :cond_18
.line 83
new-instance v0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$TextureViewEglRenderHelper;
check-cast p2, Landroid/view/TextureView;
invoke-direct {v0, p0, p1, p2}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$TextureViewEglRenderHelper;-><init>(JLandroid/view/TextureView;)V
return-object v0
:cond_18
const/4 p0, 0x0
return-object p0
.end method
.method private static objectsEquals(Ljava/lang/Object;Ljava/lang/Object;)Z
.registers 2
if-eq p0, p1, :cond_d
if-eqz p0, :cond_b
.line 662
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_b
goto :goto_d
:cond_b
const/4 p0, 0x0
goto :goto_e
:cond_d
:goto_d
const/4 p0, 0x1
:goto_e
return p0
.end method
.method private postOrRun(Ljava/lang/Runnable;)V
.registers 4
.line 650
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iget-object v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->handler:Landroid/os/Handler;
invoke-virtual {v1}, Landroid/os/Handler;->getLooper()Landroid/os/Looper;
move-result-object v1
invoke-virtual {v1}, Landroid/os/Looper;->getThread()Ljava/lang/Thread;
move-result-object v1
if-ne v0, v1, :cond_14
.line 651
invoke-interface {p1}, Ljava/lang/Runnable;->run()V
goto :goto_19
.line 653
:cond_14
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->handler:Landroid/os/Handler;
invoke-virtual {v0, p1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:goto_19
return-void
.end method
.method private registerDisplayListener()V
.registers 4
const-string v0, "registerDisplayListener"
.line 514
invoke-virtual {p0, v0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->logD(Ljava/lang/String;)V
.line 516
invoke-static {}, Lio/agora/base/internal/ContextUtils;->getApplicationContext()Landroid/content/Context;
move-result-object v0
const/4 v1, 0x0
if-eqz v0, :cond_1a
.line 517
invoke-static {}, Lio/agora/base/internal/ContextUtils;->getApplicationContext()Landroid/content/Context;
move-result-object v0
const-string/jumbo v2, "window"
invoke-virtual {v0, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/view/WindowManager;
goto :goto_1b
:cond_1a
move-object v0, v1
:goto_1b
const/16 v2, 0x11
if-eqz v0, :cond_34
.line 520
invoke-static {}, Lio/agora/base/internal/ContextUtils;->getApplicationContext()Landroid/content/Context;
move-result-object v0
if-eqz v0, :cond_34
.line 521
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
if-lt v0, v2, :cond_31
.line 522
invoke-static {}, Lio/agora/base/internal/ContextUtils;->getApplicationContext()Landroid/content/Context;
move-result-object v0
invoke-direct {p0, v0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->maybeBuildDefaultDisplayListenerV17(Landroid/content/Context;)Lio/agora/rtc2/internal/SurfaceEglRendererHelper$DefaultDisplayListener;
move-result-object v1
.line 523
:cond_31
iput-object v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->displayListener:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$DefaultDisplayListener;
goto :goto_36
.line 525
:cond_34
iput-object v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->displayListener:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$DefaultDisplayListener;
.line 527
:goto_36
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->displayListener:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$DefaultDisplayListener;
if-eqz v0, :cond_43
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
if-lt v0, v2, :cond_43
.line 528
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->displayListener:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$DefaultDisplayListener;
invoke-virtual {v0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$DefaultDisplayListener;->register()V
:cond_43
return-void
.end method
.method private unregisterDisplayListener()V
.registers 3
.line 533
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->displayListener:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$DefaultDisplayListener;
if-eqz v0, :cond_f
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x11
if-lt v0, v1, :cond_f
.line 534
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->displayListener:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$DefaultDisplayListener;
invoke-virtual {v0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$DefaultDisplayListener;->unregister()V
:cond_f
return-void
.end method
.method private updateDefaultDisplayRefreshRateParams()V
.registers 5
.line 549
invoke-static {}, Lio/agora/base/internal/ContextUtils;->getApplicationContext()Landroid/content/Context;
move-result-object v0
if-nez v0, :cond_b
const-wide/16 v0, 0x0
.line 550
iput-wide v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->vsyncDurationNs:J
return-void
.line 554
:cond_b
invoke-static {}, Lio/agora/base/internal/ContextUtils;->getApplicationContext()Landroid/content/Context;
move-result-object v0
const-string/jumbo v1, "window"
invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/view/WindowManager;
if-eqz v0, :cond_4a
.line 557
invoke-interface {v0}, Landroid/view/WindowManager;->getDefaultDisplay()Landroid/view/Display;
move-result-object v0
if-eqz v0, :cond_37
.line 559
invoke-virtual {v0}, Landroid/view/Display;->getRefreshRate()F
move-result v0
float-to-double v0, v0
const-wide/16 v2, 0x0
cmpl-double v2, v0, v2
if-nez v2, :cond_2d
const-wide/high16 v0, 0x404e000000000000L # 60.0
:cond_2d
const-wide v2, 0x41cdcd6500000000L # 1.0E9
div-double/2addr v2, v0
double-to-long v0, v2
.line 563
iput-wide v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->vsyncDurationNs:J
goto :goto_41
:cond_37
const-string v0, "Unable to query display refresh rate, set to default 60 fps"
.line 565
invoke-virtual {p0, v0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->logD(Ljava/lang/String;)V
const-wide/32 v0, 0xfe502a
.line 566
iput-wide v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->vsyncDurationNs:J
.line 568
:goto_41
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
if-eqz v0, :cond_4a
.line 569
iget-wide v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->vsyncDurationNs:J
invoke-virtual {v0, v1, v2}, Lio/agora/base/internal/SurfaceEglRenderer;->updateVsyncDuration(J)V
:cond_4a
return-void
.end method
# virtual methods
.method protected abstract checkAndSetExistSurface()V
.end method
.method public dispose()V
.registers 2
.line 360
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->view:Landroid/view/View;
invoke-virtual {v0, p0}, Landroid/view/View;->removeOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V
.line 361
invoke-direct {p0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->unregisterDisplayListener()V
return-void
.end method
.method public getFrameDrawn()I
.registers 2
.line 406
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
invoke-virtual {v0}, Lio/agora/base/internal/SurfaceEglRenderer;->getFrameDrawn()I
move-result v0
return v0
.end method
.method public final init(Lio/agora/base/internal/video/EglBase$Context;ZIZ)Z
.registers 6
.line 328
:try_start_0
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->renderConfig:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;
invoke-virtual {v0, p3}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;->setRenderMode(I)V
.line 329
iget-object p3, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->renderConfig:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;
invoke-virtual {p3, p2}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;->setMirror(Z)V
.line 330
iget-object p2, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->renderConfig:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;
invoke-virtual {p2, p4}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;->setUseVsync(Z)V
.line 331
iget-object p2, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->renderConfig:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;
invoke-virtual {p0, p1, p2}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->initImpl(Lio/agora/base/internal/video/EglBase$Context;Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;)Z
move-result p1
:try_end_15
.catchall {:try_start_0 .. :try_end_15} :catchall_16
return p1
:catchall_16
move-exception p1
const-string p2, "SurfaceEglRendererHelper"
const-string p3, " Failed to init eglRender"
.line 333
invoke-static {p2, p3, p1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
const/4 p1, 0x0
return p1
.end method
.method protected initImpl(Lio/agora/base/internal/video/EglBase$Context;Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;)Z
.registers 10
.line 304
iput-object p1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->sharedContext:Lio/agora/base/internal/video/EglBase$Context;
.line 305
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->renderConfig:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;
invoke-virtual {p2}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;->isMirror()Z
move-result v1
invoke-virtual {v0, v1}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;->setMirror(Z)V
.line 306
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "init() [mirror: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;->isMirror()Z
move-result v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
const-string v1, ", renderMode: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 307
invoke-virtual {p2}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;->getRenderMode()I
move-result v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)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
.line 306
invoke-virtual {p0, v0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->logD(Ljava/lang/String;)V
.line 309
iget-object v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
sget-object v4, Lio/agora/base/internal/video/EglBase;->CONFIG_PLAIN:[I
new-instance v5, Lio/agora/base/internal/video/GlRectDrawer;
invoke-direct {v5}, Lio/agora/base/internal/video/GlRectDrawer;-><init>()V
.line 310
invoke-virtual {p2}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;->isUseVsync()Z
move-result v6
move-object v2, p1
move-object v3, p0
.line 309
invoke-virtual/range {v1 .. v6}, 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
.line 311
iget-object p1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
invoke-virtual {p2}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;->isMirror()Z
move-result v0
invoke-virtual {p1, v0}, Lio/agora/base/internal/SurfaceEglRenderer;->setMirror(Z)V
.line 313
invoke-virtual {p2}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;->getRenderMode()I
move-result p1
invoke-virtual {p0, p1}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->setRenderMode(I)V
.line 315
new-instance p1, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$1;
invoke-direct {p1, p0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$1;-><init>(Lio/agora/rtc2/internal/SurfaceEglRendererHelper;)V
invoke-direct {p0, p1}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->postOrRun(Ljava/lang/Runnable;)V
const/4 p1, 0x1
return p1
.end method
.method protected logD(Ljava/lang/String;)V
.registers 4
.line 658
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
iget-object v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->resourceName: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, "SurfaceEglRendererHelper"
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method protected native nativeNofityFrameDrawn(JJ)V
.end method
.method protected native nativeNofityFrameDropped(J)V
.end method
.method protected native nativeNotifyFirstVideoFrame(JIII)V
.end method
.method protected native nativeNotifySurfaceSizeChanged(JII)V
.end method
.method public onFirstFrameRendered(III)V
.registers 11
.line 441
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "onFirstFrameRendered videoWidth:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " videoHeight:"
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, " rotation:"
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;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->logD(Ljava/lang/String;)V
.line 443
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->nativeLock:Ljava/lang/Object;
monitor-enter v0
.line 444
:try_start_27
iget-wide v2, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->nativeVideoRendererAndroid:J
const-wide/16 v4, 0x0
cmp-long v1, v2, v4
if-eqz v1, :cond_36
move-object v1, p0
move v4, p1
move v5, p2
move v6, p3
.line 445
invoke-virtual/range {v1 .. v6}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->nativeNotifyFirstVideoFrame(JIII)V
.line 447
:cond_36
monitor-exit v0
return-void
:catchall_38
move-exception p1
monitor-exit v0
:try_end_3a
.catchall {:try_start_27 .. :try_end_3a} :catchall_38
throw p1
.end method
.method public onFrame(Lio/agora/base/VideoFrame;)V
.registers 4
.line 413
iget-boolean v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->disposed:Z
if-eqz v0, :cond_5
return-void
.line 417
:cond_5
invoke-virtual {p1}, Lio/agora/base/VideoFrame;->getBuffer()Lio/agora/base/VideoFrame$Buffer;
move-result-object v0
.line 418
instance-of v1, v0, Lio/agora/base/VideoFrame$TextureBuffer;
if-eqz v1, :cond_1e
.line 420
check-cast v0, Lio/agora/base/VideoFrame$TextureBuffer;
.line 421
invoke-interface {v0}, Lio/agora/base/VideoFrame$TextureBuffer;->getEglBaseContext()Lio/agora/base/internal/video/EglBase$Context;
move-result-object v0
.line 422
iget-object v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->sharedContext:Lio/agora/base/internal/video/EglBase$Context;
invoke-static {v1, v0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->objectsEquals(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_1e
.line 423
invoke-virtual {p0, v0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->reInit(Lio/agora/base/internal/video/EglBase$Context;)V
.line 427
:cond_1e
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
invoke-virtual {v0, p1}, Lio/agora/base/internal/SurfaceEglRenderer;->onFrame(Lio/agora/base/VideoFrame;)V
return-void
.end method
.method public onFrameDrawn(J)V
.registers 8
.line 452
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->nativeLock:Ljava/lang/Object;
monitor-enter v0
.line 453
:try_start_3
iget-wide v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->nativeVideoRendererAndroid:J
const-wide/16 v3, 0x0
cmp-long v3, v1, v3
if-eqz v3, :cond_e
.line 454
invoke-virtual {p0, v1, v2, p1, p2}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->nativeNofityFrameDrawn(JJ)V
.line 456
:cond_e
monitor-exit v0
return-void
:catchall_10
move-exception p1
monitor-exit v0
:try_end_12
.catchall {:try_start_3 .. :try_end_12} :catchall_10
throw p1
.end method
.method public onFrameDropped()V
.registers 6
.line 461
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->nativeLock:Ljava/lang/Object;
monitor-enter v0
.line 462
:try_start_3
iget-wide v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->nativeVideoRendererAndroid:J
const-wide/16 v3, 0x0
cmp-long v3, v1, v3
if-eqz v3, :cond_e
.line 463
invoke-virtual {p0, v1, v2}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->nativeNofityFrameDropped(J)V
.line 465
:cond_e
monitor-exit v0
return-void
:catchall_10
move-exception v1
monitor-exit v0
:try_end_12
.catchall {:try_start_3 .. :try_end_12} :catchall_10
throw v1
.end method
.method public onFrameResolutionChanged(III)V
.registers 4
return-void
.end method
.method public onLayoutChange(Landroid/view/View;IIIIIIII)V
.registers 10
.line 345
iget-object p2, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->view:Landroid/view/View;
if-eq p1, p2, :cond_5
return-void
.line 348
:cond_5
invoke-virtual {p1}, Landroid/view/View;->getWidth()I
move-result p2
.line 349
invoke-virtual {p1}, Landroid/view/View;->getHeight()I
move-result p1
.line 350
iget p3, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->viewWidth:I
if-ne p3, p2, :cond_15
iget p3, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->viewHeight:I
if-eq p3, p1, :cond_21
:cond_15
const-string p3, "onLayoutChange()"
.line 351
invoke-virtual {p0, p3}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->logD(Ljava/lang/String;)V
.line 352
iput p2, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->viewWidth:I
.line 353
iput p1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->viewHeight:I
.line 354
invoke-virtual {p0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->updateRenderSettings()V
:cond_21
return-void
.end method
.method protected abstract reInit(Lio/agora/base/internal/video/EglBase$Context;)V
.end method
.method public setBackgroundColor(I)V
.registers 4
.line 387
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "setBackgroudColor() [colr: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)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
invoke-virtual {p0, v0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->logD(Ljava/lang/String;)V
.line 388
iget-boolean v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->disposed:Z
if-eqz v0, :cond_1e
return-void
.line 391
:cond_1e
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
invoke-virtual {v0, p1}, Lio/agora/base/internal/SurfaceEglRenderer;->setBackgroundColor(I)V
return-void
.end method
.method public setMirror(Z)V
.registers 4
.line 366
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "setMirror() [mirror: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Z)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
invoke-virtual {p0, v0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->logD(Ljava/lang/String;)V
.line 367
iget-boolean v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->disposed:Z
if-eqz v0, :cond_1e
return-void
.line 370
:cond_1e
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->renderConfig:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;
invoke-virtual {v0, p1}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;->setMirror(Z)V
.line 371
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
invoke-virtual {v0, p1}, Lio/agora/base/internal/SurfaceEglRenderer;->setMirror(Z)V
return-void
.end method
.method public setRenderMode(I)V
.registers 4
.line 396
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "setRenderMode() [renderMode: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)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
invoke-virtual {p0, v0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->logD(Ljava/lang/String;)V
.line 397
iget-boolean v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->disposed:Z
if-eqz v0, :cond_1e
return-void
.line 400
:cond_1e
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->renderConfig:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;
invoke-virtual {v0, p1}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;->setRenderMode(I)V
.line 401
invoke-virtual {p0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->updateRenderSettings()V
return-void
.end method
.method public updateCropArea(IIII)V
.registers 6
.line 376
new-instance v0, Landroid/graphics/Rect;
invoke-direct {v0, p1, p2, p3, p4}, Landroid/graphics/Rect;-><init>(IIII)V
.line 377
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string p2, "updateCropArea() [rect: "
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Landroid/graphics/Rect;->toString()Ljava/lang/String;
move-result-object p2
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p2, "]"
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, p1}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->logD(Ljava/lang/String;)V
.line 378
iget-boolean p1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->disposed:Z
if-eqz p1, :cond_27
return-void
.line 381
:cond_27
iput-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->rect:Landroid/graphics/Rect;
.line 382
iget-object p1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
invoke-virtual {p1, v0}, Lio/agora/base/internal/SurfaceEglRenderer;->updateCropArea(Landroid/graphics/Rect;)V
return-void
.end method
.method protected updateRenderSettings()V
.registers 8
.line 486
iget-object v0, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderLock:Ljava/lang/Object;
monitor-enter v0
.line 487
:try_start_3
iget-boolean v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->disposed:Z
if-eqz v1, :cond_9
.line 488
monitor-exit v0
return-void
.line 491
:cond_9
invoke-direct {p0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->getViewWidth()I
move-result v1
.line 492
invoke-direct {p0}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->getViewHeight()I
move-result v2
const/4 v3, 0x0
if-eqz v1, :cond_1a
if-eqz v2, :cond_1a
int-to-float v4, v1
int-to-float v5, v2
div-float/2addr v4, v5
goto :goto_1b
:cond_1a
move v4, v3
.line 497
:goto_1b
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "updateRenderSettings. Layout size: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string/jumbo v1, "x"
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v1}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->logD(Ljava/lang/String;)V
.line 499
iget-object v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->renderConfig:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;
invoke-virtual {v1}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;->getRenderMode()I
move-result v1
const/4 v2, 0x0
const/4 v5, 0x1
if-ne v1, v5, :cond_4d
.line 500
iget-object v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
invoke-virtual {v1, v4}, Lio/agora/base/internal/SurfaceEglRenderer;->setLayoutAspectRatio(F)V
.line 501
iget-object v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
invoke-virtual {v1, v2}, Lio/agora/base/internal/SurfaceEglRenderer;->setLayoutScaledFit(Z)V
goto :goto_6b
.line 502
:cond_4d
iget-object v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->renderConfig:Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;
invoke-virtual {v1}, Lio/agora/rtc2/internal/SurfaceEglRendererHelper$RenderConfig;->getRenderMode()I
move-result v1
const/4 v6, 0x2
if-ne v1, v6, :cond_61
.line 503
iget-object v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
invoke-virtual {v1, v4}, Lio/agora/base/internal/SurfaceEglRenderer;->setLayoutAspectRatio(F)V
.line 504
iget-object v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
invoke-virtual {v1, v5}, Lio/agora/base/internal/SurfaceEglRenderer;->setLayoutScaledFit(Z)V
goto :goto_6b
.line 507
:cond_61
iget-object v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
invoke-virtual {v1, v3}, Lio/agora/base/internal/SurfaceEglRenderer;->setLayoutAspectRatio(F)V
.line 508
iget-object v1, p0, Lio/agora/rtc2/internal/SurfaceEglRendererHelper;->eglRenderer:Lio/agora/base/internal/SurfaceEglRenderer;
invoke-virtual {v1, v2}, Lio/agora/base/internal/SurfaceEglRenderer;->setLayoutScaledFit(Z)V
.line 510
:goto_6b
monitor-exit v0
return-void
:catchall_6d
move-exception v1
monitor-exit v0
:try_end_6f
.catchall {:try_start_3 .. :try_end_6f} :catchall_6d
throw v1
.end method