This commit is contained in:
2022-06-10 21:38:30 +09:00
commit 27f5152838
51323 changed files with 12934539 additions and 0 deletions
@@ -0,0 +1,244 @@
.class public final Lcom/google/android/exoplayer2/video/AvcConfig;
.super Ljava/lang/Object;
.source "AvcConfig.java"
# instance fields
.field public final height:I
.field public final initializationData:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"[B>;"
}
.end annotation
.end field
.field public final nalUnitLengthFieldLength:I
.field public final pixelWidthAspectRatio:F
.field public final width:I
# direct methods
.method private constructor <init>(Ljava/util/List;IIIF)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"[B>;IIIF)V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lcom/google/android/exoplayer2/video/AvcConfig;->initializationData:Ljava/util/List;
.line 3
iput p2, p0, Lcom/google/android/exoplayer2/video/AvcConfig;->nalUnitLengthFieldLength:I
.line 4
iput p3, p0, Lcom/google/android/exoplayer2/video/AvcConfig;->width:I
.line 5
iput p4, p0, Lcom/google/android/exoplayer2/video/AvcConfig;->height:I
.line 6
iput p5, p0, Lcom/google/android/exoplayer2/video/AvcConfig;->pixelWidthAspectRatio:F
return-void
.end method
.method private static buildNalUnitForChild(Lcom/google/android/exoplayer2/util/ParsableByteArray;)[B
.locals 2
.line 1
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v0
.line 2
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v1
.line 3
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 4
iget-object p0, p0, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
invoke-static {p0, v1, v0}, Lcom/google/android/exoplayer2/util/CodecSpecificDataUtil;->buildNalUnit([BII)[B
move-result-object p0
return-object p0
.end method
.method public static parse(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/video/AvcConfig;
.locals 8
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
const/4 v0, 0x4
.line 1
:try_start_0
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 2
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v0
const/4 v1, 0x3
and-int/2addr v0, v1
add-int/lit8 v4, v0, 0x1
if-eq v4, v1, :cond_3
.line 3
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
.line 4
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v0
and-int/lit8 v0, v0, 0x1f
const/4 v1, 0x0
move v2, v1
:goto_0
if-ge v2, v0, :cond_0
.line 5
invoke-static {p0}, Lcom/google/android/exoplayer2/video/AvcConfig;->buildNalUnitForChild(Lcom/google/android/exoplayer2/util/ParsableByteArray;)[B
move-result-object v5
invoke-virtual {v3, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
add-int/lit8 v2, v2, 0x1
goto :goto_0
.line 6
:cond_0
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v2
move v5, v1
:goto_1
if-ge v5, v2, :cond_1
.line 7
invoke-static {p0}, Lcom/google/android/exoplayer2/video/AvcConfig;->buildNalUnitForChild(Lcom/google/android/exoplayer2/util/ParsableByteArray;)[B
move-result-object v6
invoke-virtual {v3, v6}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
add-int/lit8 v5, v5, 0x1
goto :goto_1
:cond_1
const/high16 p0, 0x3f800000 # 1.0f
const/4 v2, -0x1
if-lez v0, :cond_2
.line 8
invoke-virtual {v3, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object p0
check-cast p0, [B
.line 9
invoke-virtual {v3, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [B
array-length p0, p0
invoke-static {v0, v4, p0}, Lcom/google/android/exoplayer2/util/NalUnitUtil;->parseSpsNalUnit([BII)Lcom/google/android/exoplayer2/util/NalUnitUtil$SpsData;
move-result-object p0
.line 10
iget v0, p0, Lcom/google/android/exoplayer2/util/NalUnitUtil$SpsData;->width:I
.line 11
iget v1, p0, Lcom/google/android/exoplayer2/util/NalUnitUtil$SpsData;->height:I
.line 12
iget p0, p0, Lcom/google/android/exoplayer2/util/NalUnitUtil$SpsData;->pixelWidthAspectRatio:F
move v7, p0
move v5, v0
move v6, v1
goto :goto_2
:cond_2
move v7, p0
move v5, v2
move v6, v5
.line 13
:goto_2
new-instance p0, Lcom/google/android/exoplayer2/video/AvcConfig;
move-object v2, p0
invoke-direct/range {v2 .. v7}, Lcom/google/android/exoplayer2/video/AvcConfig;-><init>(Ljava/util/List;IIIF)V
return-object p0
.line 14
:cond_3
new-instance p0, Ljava/lang/IllegalStateException;
invoke-direct {p0}, Ljava/lang/IllegalStateException;-><init>()V
throw p0
:try_end_0
.catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_0 .. :try_end_0} :catch_0
:catch_0
move-exception p0
.line 15
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
const-string v1, "Error parsing AVC config"
invoke-direct {v0, v1, p0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v0
.end method
@@ -0,0 +1,82 @@
.class final Lcom/google/android/exoplayer2/video/ColorInfo$1;
.super Ljava/lang/Object;
.source "ColorInfo.java"
# interfaces
.implements Landroid/os/Parcelable$Creator;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/video/ColorInfo;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Landroid/os/Parcelable$Creator<",
"Lcom/google/android/exoplayer2/video/ColorInfo;",
">;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public createFromParcel(Landroid/os/Parcel;)Lcom/google/android/exoplayer2/video/ColorInfo;
.locals 1
.line 2
new-instance v0, Lcom/google/android/exoplayer2/video/ColorInfo;
invoke-direct {v0, p1}, Lcom/google/android/exoplayer2/video/ColorInfo;-><init>(Landroid/os/Parcel;)V
return-object v0
.end method
.method public bridge synthetic createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
.locals 0
.line 1
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/video/ColorInfo$1;->createFromParcel(Landroid/os/Parcel;)Lcom/google/android/exoplayer2/video/ColorInfo;
move-result-object p1
return-object p1
.end method
.method public newArray(I)[Lcom/google/android/exoplayer2/video/ColorInfo;
.locals 0
const/4 p1, 0x0
new-array p1, p1, [Lcom/google/android/exoplayer2/video/ColorInfo;
return-object p1
.end method
.method public bridge synthetic newArray(I)[Ljava/lang/Object;
.locals 0
.line 1
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/video/ColorInfo$1;->newArray(I)[Lcom/google/android/exoplayer2/video/ColorInfo;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,351 @@
.class public final Lcom/google/android/exoplayer2/video/ColorInfo;
.super Ljava/lang/Object;
.source "ColorInfo.java"
# interfaces
.implements Landroid/os/Parcelable;
# static fields
.field public static final CREATOR:Landroid/os/Parcelable$Creator;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/os/Parcelable$Creator<",
"Lcom/google/android/exoplayer2/video/ColorInfo;",
">;"
}
.end annotation
.end field
# instance fields
.field public final colorRange:I
.field public final colorSpace:I
.field public final colorTransfer:I
.field private hashCode:I
.field public final hdrStaticInfo:[B
# direct methods
.method public static constructor <clinit>()V
.locals 1
.line 1
new-instance v0, Lcom/google/android/exoplayer2/video/ColorInfo$1;
invoke-direct {v0}, Lcom/google/android/exoplayer2/video/ColorInfo$1;-><init>()V
sput-object v0, Lcom/google/android/exoplayer2/video/ColorInfo;->CREATOR:Landroid/os/Parcelable$Creator;
return-void
.end method
.method public constructor <init>(III[B)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorSpace:I
.line 3
iput p2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorRange:I
.line 4
iput p3, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorTransfer:I
.line 5
iput-object p4, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hdrStaticInfo:[B
return-void
.end method
.method public constructor <init>(Landroid/os/Parcel;)V
.locals 1
.line 6
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 7
invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
move-result v0
iput v0, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorSpace:I
.line 8
invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
move-result v0
iput v0, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorRange:I
.line 9
invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
move-result v0
iput v0, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorTransfer:I
.line 10
invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
move-result v0
if-eqz v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
if-eqz v0, :cond_1
.line 11
invoke-virtual {p1}, Landroid/os/Parcel;->createByteArray()[B
move-result-object p1
goto :goto_1
:cond_1
const/4 p1, 0x0
:goto_1
iput-object p1, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hdrStaticInfo:[B
return-void
.end method
# virtual methods
.method public describeContents()I
.locals 1
const/4 v0, 0x0
return v0
.end method
.method public equals(Ljava/lang/Object;)Z
.locals 4
const/4 v0, 0x1
if-ne p0, p1, :cond_0
return v0
:cond_0
const/4 v1, 0x0
if-eqz p1, :cond_3
.line 1
const-class v2, Lcom/google/android/exoplayer2/video/ColorInfo;
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v3
if-eq v2, v3, :cond_1
goto :goto_0
.line 2
:cond_1
check-cast p1, Lcom/google/android/exoplayer2/video/ColorInfo;
.line 3
iget v2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorSpace:I
iget v3, p1, Lcom/google/android/exoplayer2/video/ColorInfo;->colorSpace:I
if-ne v2, v3, :cond_3
iget v2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorRange:I
iget v3, p1, Lcom/google/android/exoplayer2/video/ColorInfo;->colorRange:I
if-ne v2, v3, :cond_3
iget v2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorTransfer:I
iget v3, p1, Lcom/google/android/exoplayer2/video/ColorInfo;->colorTransfer:I
if-ne v2, v3, :cond_3
iget-object v2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hdrStaticInfo:[B
iget-object p1, p1, Lcom/google/android/exoplayer2/video/ColorInfo;->hdrStaticInfo:[B
.line 4
invoke-static {v2, p1}, Ljava/util/Arrays;->equals([B[B)Z
move-result p1
if-nez p1, :cond_2
goto :goto_0
:cond_2
return v0
:cond_3
:goto_0
return v1
.end method
.method public hashCode()I
.locals 2
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hashCode:I
if-nez v0, :cond_0
const/16 v0, 0x20f
.line 2
iget v1, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorSpace:I
add-int/2addr v0, v1
mul-int/lit8 v0, v0, 0x1f
.line 3
iget v1, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorRange:I
add-int/2addr v0, v1
mul-int/lit8 v0, v0, 0x1f
.line 4
iget v1, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorTransfer:I
add-int/2addr v0, v1
mul-int/lit8 v0, v0, 0x1f
.line 5
iget-object v1, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hdrStaticInfo:[B
invoke-static {v1}, Ljava/util/Arrays;->hashCode([B)I
move-result v1
add-int/2addr v1, v0
.line 6
iput v1, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hashCode:I
.line 7
:cond_0
iget v0, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hashCode:I
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 3
const-string v0, "ColorInfo("
.line 1
invoke-static {v0}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorSpace:I
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;
iget v2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorRange:I
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorTransfer:I
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hdrStaticInfo:[B
if-eqz v1, :cond_0
const/4 v1, 0x1
goto :goto_0
:cond_0
const/4 v1, 0x0
:goto_0
const-string v2, ")"
invoke-static {v0, v1, v2}, Lc/e;->a(Ljava/lang/StringBuilder;ZLjava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public writeToParcel(Landroid/os/Parcel;I)V
.locals 0
.line 1
iget p2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorSpace:I
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeInt(I)V
.line 2
iget p2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorRange:I
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeInt(I)V
.line 3
iget p2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->colorTransfer:I
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeInt(I)V
.line 4
iget-object p2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hdrStaticInfo:[B
if-eqz p2, :cond_0
const/4 p2, 0x1
goto :goto_0
:cond_0
const/4 p2, 0x0
:goto_0
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeInt(I)V
.line 5
iget-object p2, p0, Lcom/google/android/exoplayer2/video/ColorInfo;->hdrStaticInfo:[B
if-eqz p2, :cond_1
.line 6
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeByteArray([B)V
:cond_1
return-void
.end method
@@ -0,0 +1,14 @@
.class synthetic Lcom/google/android/exoplayer2/video/DummySurface$1;
.super Ljava/lang/Object;
.source "DummySurface.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/video/DummySurface;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1009
name = null
.end annotation
@@ -0,0 +1,753 @@
.class Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;
.super Landroid/os/HandlerThread;
.source "DummySurface.java"
# interfaces
.implements Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
.implements Landroid/os/Handler$Callback;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/video/DummySurface;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "DummySurfaceThread"
.end annotation
# static fields
.field private static final MSG_INIT:I = 0x1
.field private static final MSG_RELEASE:I = 0x3
.field private static final MSG_UPDATE_TEXTURE:I = 0x2
# instance fields
.field private handler:Landroid/os/Handler;
.field private initError:Ljava/lang/Error;
.field private initException:Ljava/lang/RuntimeException;
.field private surface:Lcom/google/android/exoplayer2/video/DummySurface;
.field private surfaceTexture:Landroid/graphics/SurfaceTexture;
.field private final textureIdHolder:[I
# direct methods
.method public constructor <init>()V
.locals 1
const-string v0, "dummySurface"
.line 1
invoke-direct {p0, v0}, Landroid/os/HandlerThread;-><init>(Ljava/lang/String;)V
const/4 v0, 0x1
new-array v0, v0, [I
.line 2
iput-object v0, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->textureIdHolder:[I
return-void
.end method
.method private initInternal(Z)V
.locals 13
const/4 v0, 0x0
.line 1
invoke-static {v0}, Landroid/opengl/EGL14;->eglGetDisplay(I)Landroid/opengl/EGLDisplay;
move-result-object v9
const/4 v10, 0x1
if-eqz v9, :cond_0
move v1, v10
goto :goto_0
:cond_0
move v1, v0
:goto_0
const-string v2, "eglGetDisplay failed"
.line 2
invoke-static {v1, v2}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(ZLjava/lang/Object;)V
const/4 v1, 0x2
new-array v1, v1, [I
.line 3
invoke-static {v9, v1, v0, v1, v10}, Landroid/opengl/EGL14;->eglInitialize(Landroid/opengl/EGLDisplay;[II[II)Z
move-result v1
const-string v2, "eglInitialize failed"
.line 4
invoke-static {v1, v2}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(ZLjava/lang/Object;)V
const/16 v1, 0x11
new-array v2, v1, [I
.line 5
fill-array-data v2, :array_0
new-array v11, v10, [Landroid/opengl/EGLConfig;
new-array v12, v10, [I
const/4 v3, 0x0
const/4 v5, 0x0
const/4 v6, 0x1
const/4 v8, 0x0
move-object v1, v9
move-object v4, v11
move-object v7, v12
.line 6
invoke-static/range {v1 .. v8}, Landroid/opengl/EGL14;->eglChooseConfig(Landroid/opengl/EGLDisplay;[II[Landroid/opengl/EGLConfig;II[II)Z
move-result v1
if-eqz v1, :cond_1
.line 7
aget v1, v12, v0
if-lez v1, :cond_1
aget-object v1, v11, v0
if-eqz v1, :cond_1
move v1, v10
goto :goto_1
:cond_1
move v1, v0
:goto_1
const-string v2, "eglChooseConfig failed"
invoke-static {v1, v2}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(ZLjava/lang/Object;)V
.line 8
aget-object v1, v11, v0
const/4 v2, 0x5
if-eqz p1, :cond_2
new-array v3, v2, [I
.line 9
fill-array-data v3, :array_1
goto :goto_2
:cond_2
const/4 v3, 0x3
new-array v3, v3, [I
.line 10
fill-array-data v3, :array_2
.line 11
:goto_2
sget-object v4, Landroid/opengl/EGL14;->EGL_NO_CONTEXT:Landroid/opengl/EGLContext;
invoke-static {v9, v1, v4, v3, v0}, Landroid/opengl/EGL14;->eglCreateContext(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Landroid/opengl/EGLContext;[II)Landroid/opengl/EGLContext;
move-result-object v3
if-eqz v3, :cond_3
move v4, v10
goto :goto_3
:cond_3
move v4, v0
:goto_3
const-string v5, "eglCreateContext failed"
.line 12
invoke-static {v4, v5}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(ZLjava/lang/Object;)V
if-eqz p1, :cond_4
const/4 v2, 0x7
new-array v2, v2, [I
.line 13
fill-array-data v2, :array_3
goto :goto_4
:cond_4
new-array v2, v2, [I
.line 14
fill-array-data v2, :array_4
.line 15
:goto_4
invoke-static {v9, v1, v2, v0}, Landroid/opengl/EGL14;->eglCreatePbufferSurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;[II)Landroid/opengl/EGLSurface;
move-result-object v1
if-eqz v1, :cond_5
move v2, v10
goto :goto_5
:cond_5
move v2, v0
:goto_5
const-string v4, "eglCreatePbufferSurface failed"
.line 16
invoke-static {v2, v4}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(ZLjava/lang/Object;)V
.line 17
invoke-static {v9, v1, v1, v3}, Landroid/opengl/EGL14;->eglMakeCurrent(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;Landroid/opengl/EGLSurface;Landroid/opengl/EGLContext;)Z
move-result v1
const-string v2, "eglMakeCurrent failed"
.line 18
invoke-static {v1, v2}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(ZLjava/lang/Object;)V
.line 19
iget-object v1, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->textureIdHolder:[I
invoke-static {v10, v1, v0}, Landroid/opengl/GLES20;->glGenTextures(I[II)V
.line 20
new-instance v1, Landroid/graphics/SurfaceTexture;
iget-object v2, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->textureIdHolder:[I
aget v0, v2, v0
invoke-direct {v1, v0}, Landroid/graphics/SurfaceTexture;-><init>(I)V
iput-object v1, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->surfaceTexture:Landroid/graphics/SurfaceTexture;
.line 21
invoke-virtual {v1, p0}, Landroid/graphics/SurfaceTexture;->setOnFrameAvailableListener(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V
.line 22
new-instance v0, Lcom/google/android/exoplayer2/video/DummySurface;
iget-object v1, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->surfaceTexture:Landroid/graphics/SurfaceTexture;
const/4 v2, 0x0
invoke-direct {v0, p0, v1, p1, v2}, Lcom/google/android/exoplayer2/video/DummySurface;-><init>(Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;Landroid/graphics/SurfaceTexture;ZLcom/google/android/exoplayer2/video/DummySurface$1;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->surface:Lcom/google/android/exoplayer2/video/DummySurface;
return-void
:array_0
.array-data 4
0x3040
0x4
0x3024
0x8
0x3023
0x8
0x3022
0x8
0x3021
0x8
0x3025
0x0
0x3027
0x3038
0x3033
0x4
0x3038
.end array-data
:array_1
.array-data 4
0x3098
0x2
0x32c0
0x1
0x3038
.end array-data
:array_2
.array-data 4
0x3098
0x2
0x3038
.end array-data
:array_3
.array-data 4
0x3057
0x1
0x3056
0x1
0x32c0
0x1
0x3038
.end array-data
:array_4
.array-data 4
0x3057
0x1
0x3056
0x1
0x3038
.end array-data
.end method
.method private releaseInternal()V
.locals 4
const/4 v0, 0x0
const/4 v1, 0x1
const/4 v2, 0x0
.line 1
:try_start_0
iget-object v3, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->surfaceTexture:Landroid/graphics/SurfaceTexture;
invoke-virtual {v3}, Landroid/graphics/SurfaceTexture;->release()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 2
iput-object v2, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->surface:Lcom/google/android/exoplayer2/video/DummySurface;
.line 3
iput-object v2, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->surfaceTexture:Landroid/graphics/SurfaceTexture;
.line 4
iget-object v2, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->textureIdHolder:[I
invoke-static {v1, v2, v0}, Landroid/opengl/GLES20;->glDeleteTextures(I[II)V
return-void
:catchall_0
move-exception v3
.line 5
iput-object v2, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->surface:Lcom/google/android/exoplayer2/video/DummySurface;
.line 6
iput-object v2, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->surfaceTexture:Landroid/graphics/SurfaceTexture;
.line 7
iget-object v2, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->textureIdHolder:[I
invoke-static {v1, v2, v0}, Landroid/opengl/GLES20;->glDeleteTextures(I[II)V
throw v3
.end method
# virtual methods
.method public handleMessage(Landroid/os/Message;)Z
.locals 3
.line 1
iget v0, p1, Landroid/os/Message;->what:I
const/4 v1, 0x1
if-eq v0, v1, :cond_2
const/4 p1, 0x2
if-eq v0, p1, :cond_1
const/4 p1, 0x3
if-eq v0, p1, :cond_0
return v1
.line 2
:cond_0
:try_start_0
invoke-direct {p0}, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->releaseInternal()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 3
:goto_0
invoke-virtual {p0}, Landroid/os/HandlerThread;->quit()Z
goto :goto_1
:catchall_0
move-exception p1
:try_start_1
const-string v0, "DummySurface"
const-string v2, "Failed to release dummy surface"
.line 4
invoke-static {v0, v2, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_1
goto :goto_0
:goto_1
return v1
:catchall_1
move-exception p1
.line 5
invoke-virtual {p0}, Landroid/os/HandlerThread;->quit()Z
throw p1
.line 6
:cond_1
iget-object p1, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->surfaceTexture:Landroid/graphics/SurfaceTexture;
invoke-virtual {p1}, Landroid/graphics/SurfaceTexture;->updateTexImage()V
return v1
.line 7
:cond_2
:try_start_2
iget p1, p1, Landroid/os/Message;->arg1:I
if-eqz p1, :cond_3
move p1, v1
goto :goto_2
:cond_3
const/4 p1, 0x0
:goto_2
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->initInternal(Z)V
:try_end_2
.catch Ljava/lang/RuntimeException; {:try_start_2 .. :try_end_2} :catch_1
.catch Ljava/lang/Error; {:try_start_2 .. :try_end_2} :catch_0
.catchall {:try_start_2 .. :try_end_2} :catchall_3
.line 8
monitor-enter p0
.line 9
:try_start_3
invoke-virtual {p0}, Ljava/lang/Object;->notify()V
.line 10
monitor-exit p0
goto :goto_3
:catchall_2
move-exception p1
monitor-exit p0
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_2
throw p1
:catchall_3
move-exception p1
goto :goto_4
:catch_0
move-exception p1
:try_start_4
const-string v0, "DummySurface"
const-string v2, "Failed to initialize dummy surface"
.line 11
invoke-static {v0, v2, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 12
iput-object p1, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->initError:Ljava/lang/Error;
:try_end_4
.catchall {:try_start_4 .. :try_end_4} :catchall_3
.line 13
monitor-enter p0
.line 14
:try_start_5
invoke-virtual {p0}, Ljava/lang/Object;->notify()V
.line 15
monitor-exit p0
goto :goto_3
:catchall_4
move-exception p1
monitor-exit p0
:try_end_5
.catchall {:try_start_5 .. :try_end_5} :catchall_4
throw p1
:catch_1
move-exception p1
:try_start_6
const-string v0, "DummySurface"
const-string v2, "Failed to initialize dummy surface"
.line 16
invoke-static {v0, v2, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 17
iput-object p1, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->initException:Ljava/lang/RuntimeException;
:try_end_6
.catchall {:try_start_6 .. :try_end_6} :catchall_3
.line 18
monitor-enter p0
.line 19
:try_start_7
invoke-virtual {p0}, Ljava/lang/Object;->notify()V
.line 20
monitor-exit p0
:goto_3
return v1
:catchall_5
move-exception p1
monitor-exit p0
:try_end_7
.catchall {:try_start_7 .. :try_end_7} :catchall_5
throw p1
.line 21
:goto_4
monitor-enter p0
.line 22
:try_start_8
invoke-virtual {p0}, Ljava/lang/Object;->notify()V
.line 23
monitor-exit p0
:try_end_8
.catchall {:try_start_8 .. :try_end_8} :catchall_6
throw p1
:catchall_6
move-exception p1
:try_start_9
monitor-exit p0
:try_end_9
.catchall {:try_start_9 .. :try_end_9} :catchall_6
throw p1
.end method
.method public init(Z)Lcom/google/android/exoplayer2/video/DummySurface;
.locals 3
.line 1
invoke-virtual {p0}, Landroid/os/HandlerThread;->start()V
.line 2
new-instance v0, Landroid/os/Handler;
invoke-virtual {p0}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
move-result-object v1
invoke-direct {v0, v1, p0}, Landroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->handler:Landroid/os/Handler;
.line 3
monitor-enter p0
.line 4
:try_start_0
iget-object v0, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->handler:Landroid/os/Handler;
const/4 v1, 0x1
const/4 v2, 0x0
if-eqz p1, :cond_0
move p1, v1
goto :goto_0
:cond_0
move p1, v2
:goto_0
invoke-virtual {v0, v1, p1, v2}, Landroid/os/Handler;->obtainMessage(III)Landroid/os/Message;
move-result-object p1
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
.line 5
:goto_1
iget-object p1, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->surface:Lcom/google/android/exoplayer2/video/DummySurface;
if-nez p1, :cond_1
iget-object p1, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->initException:Ljava/lang/RuntimeException;
if-nez p1, :cond_1
iget-object p1, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->initError:Ljava/lang/Error;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-nez p1, :cond_1
.line 6
:try_start_1
invoke-virtual {p0}, Ljava/lang/Object;->wait()V
:try_end_1
.catch Ljava/lang/InterruptedException; {:try_start_1 .. :try_end_1} :catch_0
.catchall {:try_start_1 .. :try_end_1} :catchall_0
goto :goto_1
:catch_0
move v2, v1
goto :goto_1
.line 7
:cond_1
:try_start_2
monitor-exit p0
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_0
if-eqz v2, :cond_2
.line 8
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/Thread;->interrupt()V
.line 9
:cond_2
iget-object p1, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->initException:Ljava/lang/RuntimeException;
if-nez p1, :cond_4
.line 10
iget-object p1, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->initError:Ljava/lang/Error;
if-nez p1, :cond_3
.line 11
iget-object p1, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->surface:Lcom/google/android/exoplayer2/video/DummySurface;
return-object p1
.line 12
:cond_3
throw p1
.line 13
:cond_4
throw p1
:catchall_0
move-exception p1
.line 14
:try_start_3
monitor-exit p0
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_0
throw p1
.end method
.method public onFrameAvailable(Landroid/graphics/SurfaceTexture;)V
.locals 1
.line 1
iget-object p1, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->handler:Landroid/os/Handler;
const/4 v0, 0x2
invoke-virtual {p1, v0}, Landroid/os/Handler;->sendEmptyMessage(I)Z
return-void
.end method
.method public release()V
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->handler:Landroid/os/Handler;
const/4 v1, 0x3
invoke-virtual {v0, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
return-void
.end method
@@ -0,0 +1,215 @@
.class public final Lcom/google/android/exoplayer2/video/DummySurface;
.super Landroid/view/Surface;
.source "DummySurface.java"
# annotations
.annotation build Landroid/annotation/TargetApi;
value = 0x11
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;
}
.end annotation
# static fields
.field private static final EGL_PROTECTED_CONTENT_EXT:I = 0x32c0
.field public static final SECURE_SUPPORTED:Z
.field private static final TAG:Ljava/lang/String; = "DummySurface"
# instance fields
.field public final secure:Z
.field private final thread:Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;
.field private threadReleased:Z
# direct methods
.method public static constructor <clinit>()V
.locals 3
.line 1
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/4 v1, 0x0
const/16 v2, 0x11
if-lt v0, v2, :cond_1
.line 2
invoke-static {v1}, Landroid/opengl/EGL14;->eglGetDisplay(I)Landroid/opengl/EGLDisplay;
move-result-object v0
const/16 v2, 0x3055
.line 3
invoke-static {v0, v2}, Landroid/opengl/EGL14;->eglQueryString(Landroid/opengl/EGLDisplay;I)Ljava/lang/String;
move-result-object v0
if-eqz v0, :cond_0
const-string v2, "EGL_EXT_protected_content"
.line 4
invoke-virtual {v0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_0
const/4 v1, 0x1
:cond_0
sput-boolean v1, Lcom/google/android/exoplayer2/video/DummySurface;->SECURE_SUPPORTED:Z
goto :goto_0
.line 5
:cond_1
sput-boolean v1, Lcom/google/android/exoplayer2/video/DummySurface;->SECURE_SUPPORTED:Z
:goto_0
return-void
.end method
.method private constructor <init>(Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;Landroid/graphics/SurfaceTexture;Z)V
.locals 0
.line 2
invoke-direct {p0, p2}, Landroid/view/Surface;-><init>(Landroid/graphics/SurfaceTexture;)V
.line 3
iput-object p1, p0, Lcom/google/android/exoplayer2/video/DummySurface;->thread:Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;
.line 4
iput-boolean p3, p0, Lcom/google/android/exoplayer2/video/DummySurface;->secure:Z
return-void
.end method
.method public synthetic constructor <init>(Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;Landroid/graphics/SurfaceTexture;ZLcom/google/android/exoplayer2/video/DummySurface$1;)V
.locals 0
.line 1
invoke-direct {p0, p1, p2, p3}, Lcom/google/android/exoplayer2/video/DummySurface;-><init>(Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;Landroid/graphics/SurfaceTexture;Z)V
return-void
.end method
.method private static assertApiLevel17OrHigher()V
.locals 2
.line 1
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v1, 0x11
if-lt v0, v1, :cond_0
return-void
.line 2
:cond_0
new-instance v0, Ljava/lang/UnsupportedOperationException;
const-string v1, "Unsupported prior to API level 17"
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static newInstanceV17(Z)Lcom/google/android/exoplayer2/video/DummySurface;
.locals 1
.line 1
invoke-static {}, Lcom/google/android/exoplayer2/video/DummySurface;->assertApiLevel17OrHigher()V
if-eqz p0, :cond_1
.line 2
sget-boolean v0, Lcom/google/android/exoplayer2/video/DummySurface;->SECURE_SUPPORTED:Z
if-eqz v0, :cond_0
goto :goto_0
:cond_0
const/4 v0, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 v0, 0x1
:goto_1
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 3
new-instance v0, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;
invoke-direct {v0}, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;-><init>()V
.line 4
invoke-virtual {v0, p0}, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->init(Z)Lcom/google/android/exoplayer2/video/DummySurface;
move-result-object p0
return-object p0
.end method
# virtual methods
.method public release()V
.locals 2
.line 1
invoke-super {p0}, Landroid/view/Surface;->release()V
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/DummySurface;->thread:Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;
monitor-enter v0
.line 3
:try_start_0
iget-boolean v1, p0, Lcom/google/android/exoplayer2/video/DummySurface;->threadReleased:Z
if-nez v1, :cond_0
.line 4
iget-object v1, p0, Lcom/google/android/exoplayer2/video/DummySurface;->thread:Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/video/DummySurface$DummySurfaceThread;->release()V
const/4 v1, 0x1
.line 5
iput-boolean v1, p0, Lcom/google/android/exoplayer2/video/DummySurface;->threadReleased:Z
.line 6
:cond_0
monitor-exit v0
return-void
:catchall_0
move-exception v1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v1
.end method
@@ -0,0 +1,222 @@
.class public final Lcom/google/android/exoplayer2/video/HevcConfig;
.super Ljava/lang/Object;
.source "HevcConfig.java"
# instance fields
.field public final initializationData:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"[B>;"
}
.end annotation
.end field
.field public final nalUnitLengthFieldLength:I
# direct methods
.method private constructor <init>(Ljava/util/List;I)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"[B>;I)V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lcom/google/android/exoplayer2/video/HevcConfig;->initializationData:Ljava/util/List;
.line 3
iput p2, p0, Lcom/google/android/exoplayer2/video/HevcConfig;->nalUnitLengthFieldLength:I
return-void
.end method
.method public static parse(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/video/HevcConfig;
.locals 13
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
const/16 v0, 0x15
.line 1
:try_start_0
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 2
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v0
and-int/lit8 v0, v0, 0x3
.line 3
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v1
.line 4
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v2
const/4 v3, 0x0
move v4, v3
move v5, v4
:goto_0
const/4 v6, 0x1
if-ge v4, v1, :cond_1
.line 5
invoke-virtual {p0, v6}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 6
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v6
move v7, v3
:goto_1
if-ge v7, v6, :cond_0
.line 7
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v8
add-int/lit8 v9, v8, 0x4
add-int/2addr v5, v9
.line 8
invoke-virtual {p0, v8}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
add-int/lit8 v7, v7, 0x1
goto :goto_1
:cond_0
add-int/lit8 v4, v4, 0x1
goto :goto_0
.line 9
:cond_1
invoke-virtual {p0, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 10
new-array v2, v5, [B
move v4, v3
move v7, v4
:goto_2
if-ge v4, v1, :cond_3
.line 11
invoke-virtual {p0, v6}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 12
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v8
move v9, v3
:goto_3
if-ge v9, v8, :cond_2
.line 13
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v10
.line 14
sget-object v11, Lcom/google/android/exoplayer2/util/NalUnitUtil;->NAL_START_CODE:[B
array-length v12, v11
invoke-static {v11, v3, v2, v7, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 15
array-length v11, v11
add-int/2addr v7, v11
.line 16
iget-object v11, p0, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
.line 17
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v12
invoke-static {v11, v12, v2, v7, v10}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
add-int/2addr v7, v10
.line 18
invoke-virtual {p0, v10}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
add-int/lit8 v9, v9, 0x1
goto :goto_3
:cond_2
add-int/lit8 v4, v4, 0x1
goto :goto_2
:cond_3
if-nez v5, :cond_4
const/4 p0, 0x0
goto :goto_4
.line 19
:cond_4
invoke-static {v2}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object p0
.line 20
:goto_4
new-instance v1, Lcom/google/android/exoplayer2/video/HevcConfig;
add-int/2addr v0, v6
invoke-direct {v1, p0, v0}, Lcom/google/android/exoplayer2/video/HevcConfig;-><init>(Ljava/util/List;I)V
:try_end_0
.catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_0 .. :try_end_0} :catch_0
return-object v1
:catch_0
move-exception p0
.line 21
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
const-string v1, "Error parsing HEVC config"
invoke-direct {v0, v1, p0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v0
.end method
@@ -0,0 +1,14 @@
.class synthetic Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer$1;
.super Ljava/lang/Object;
.source "MediaCodecVideoRenderer.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1009
name = null
.end annotation
@@ -0,0 +1,42 @@
.class public final Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer$CodecMaxValues;
.super Ljava/lang/Object;
.source "MediaCodecVideoRenderer.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "CodecMaxValues"
.end annotation
# instance fields
.field public final height:I
.field public final inputSize:I
.field public final width:I
# direct methods
.method public constructor <init>(III)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer$CodecMaxValues;->width:I
.line 3
iput p2, p0, Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer$CodecMaxValues;->height:I
.line 4
iput p3, p0, Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer$CodecMaxValues;->inputSize:I
return-void
.end method
@@ -0,0 +1,79 @@
.class final Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer$OnFrameRenderedListenerV23;
.super Ljava/lang/Object;
.source "MediaCodecVideoRenderer.java"
# interfaces
.implements Landroid/media/MediaCodec$OnFrameRenderedListener;
# annotations
.annotation build Landroid/annotation/TargetApi;
value = 0x17
.end annotation
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "OnFrameRenderedListenerV23"
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer;
# direct methods
.method private constructor <init>(Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer;Landroid/media/MediaCodec;)V
.locals 0
.line 2
iput-object p1, p0, Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer$OnFrameRenderedListenerV23;->this$0:Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 3
new-instance p1, Landroid/os/Handler;
invoke-direct {p1}, Landroid/os/Handler;-><init>()V
invoke-virtual {p2, p0, p1}, Landroid/media/MediaCodec;->setOnFrameRenderedListener(Landroid/media/MediaCodec$OnFrameRenderedListener;Landroid/os/Handler;)V
return-void
.end method
.method public synthetic constructor <init>(Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer;Landroid/media/MediaCodec;Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer$1;)V
.locals 0
.line 1
invoke-direct {p0, p1, p2}, Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer$OnFrameRenderedListenerV23;-><init>(Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer;Landroid/media/MediaCodec;)V
return-void
.end method
# virtual methods
.method public onFrameRendered(Landroid/media/MediaCodec;JJ)V
.locals 0
.param p1 # Landroid/media/MediaCodec;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 1
iget-object p1, p0, Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer$OnFrameRenderedListenerV23;->this$0:Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer;
iget-object p2, p1, Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer;->tunnelingOnFrameRenderedListener:Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer$OnFrameRenderedListenerV23;
if-eq p0, p2, :cond_0
return-void
.line 2
:cond_0
invoke-virtual {p1}, Lcom/google/android/exoplayer2/video/MediaCodecVideoRenderer;->maybeNotifyRenderedFirstFrame()V
return-void
.end method
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,246 @@
.class final Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;
.super Ljava/lang/Object;
.source "VideoFrameReleaseTimeHelper.java"
# interfaces
.implements Landroid/view/Choreographer$FrameCallback;
.implements Landroid/os/Handler$Callback;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "VSyncSampler"
.end annotation
# static fields
.field private static final CREATE_CHOREOGRAPHER:I = 0x0
.field private static final INSTANCE:Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;
.field private static final MSG_ADD_OBSERVER:I = 0x1
.field private static final MSG_REMOVE_OBSERVER:I = 0x2
# instance fields
.field private choreographer:Landroid/view/Choreographer;
.field private final choreographerOwnerThread:Landroid/os/HandlerThread;
.field private final handler:Landroid/os/Handler;
.field private observerCount:I
.field public volatile sampledVsyncTimeNs:J
# direct methods
.method public static constructor <clinit>()V
.locals 1
.line 1
new-instance v0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;
invoke-direct {v0}, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;-><init>()V
sput-object v0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->INSTANCE:Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;
return-void
.end method
.method private constructor <init>()V
.locals 2
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Landroid/os/HandlerThread;
const-string v1, "ChoreographerOwner:Handler"
invoke-direct {v0, v1}, Landroid/os/HandlerThread;-><init>(Ljava/lang/String;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->choreographerOwnerThread:Landroid/os/HandlerThread;
.line 3
invoke-virtual {v0}, Landroid/os/HandlerThread;->start()V
.line 4
new-instance v1, Landroid/os/Handler;
invoke-virtual {v0}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
move-result-object v0
invoke-direct {v1, v0, p0}, Landroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;)V
iput-object v1, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->handler:Landroid/os/Handler;
const/4 v0, 0x0
.line 5
invoke-virtual {v1, v0}, Landroid/os/Handler;->sendEmptyMessage(I)Z
return-void
.end method
.method private addObserverInternal()V
.locals 2
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->observerCount:I
const/4 v1, 0x1
add-int/2addr v0, v1
iput v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->observerCount:I
if-ne v0, v1, :cond_0
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->choreographer:Landroid/view/Choreographer;
invoke-virtual {v0, p0}, Landroid/view/Choreographer;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V
:cond_0
return-void
.end method
.method private createChoreographerInstanceInternal()V
.locals 1
.line 1
invoke-static {}, Landroid/view/Choreographer;->getInstance()Landroid/view/Choreographer;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->choreographer:Landroid/view/Choreographer;
return-void
.end method
.method public static getInstance()Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;
.locals 1
.line 1
sget-object v0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->INSTANCE:Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;
return-object v0
.end method
.method private removeObserverInternal()V
.locals 2
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->observerCount:I
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->observerCount:I
if-nez v0, :cond_0
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->choreographer:Landroid/view/Choreographer;
invoke-virtual {v0, p0}, Landroid/view/Choreographer;->removeFrameCallback(Landroid/view/Choreographer$FrameCallback;)V
const-wide/16 v0, 0x0
.line 3
iput-wide v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->sampledVsyncTimeNs:J
:cond_0
return-void
.end method
# virtual methods
.method public addObserver()V
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->handler:Landroid/os/Handler;
const/4 v1, 0x1
invoke-virtual {v0, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
return-void
.end method
.method public doFrame(J)V
.locals 2
.line 1
iput-wide p1, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->sampledVsyncTimeNs:J
.line 2
iget-object p1, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->choreographer:Landroid/view/Choreographer;
const-wide/16 v0, 0x1f4
invoke-virtual {p1, p0, v0, v1}, Landroid/view/Choreographer;->postFrameCallbackDelayed(Landroid/view/Choreographer$FrameCallback;J)V
return-void
.end method
.method public handleMessage(Landroid/os/Message;)Z
.locals 2
.line 1
iget p1, p1, Landroid/os/Message;->what:I
const/4 v0, 0x1
if-eqz p1, :cond_2
if-eq p1, v0, :cond_1
const/4 v1, 0x2
if-eq p1, v1, :cond_0
const/4 p1, 0x0
return p1
.line 2
:cond_0
invoke-direct {p0}, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->removeObserverInternal()V
return v0
.line 3
:cond_1
invoke-direct {p0}, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->addObserverInternal()V
return v0
.line 4
:cond_2
invoke-direct {p0}, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->createChoreographerInstanceInternal()V
return v0
.end method
.method public removeObserver()V
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->handler:Landroid/os/Handler;
const/4 v1, 0x2
invoke-virtual {v0, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
return-void
.end method
@@ -0,0 +1,459 @@
.class public final Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;
.super Ljava/lang/Object;
.source "VideoFrameReleaseTimeHelper.java"
# annotations
.annotation build Landroid/annotation/TargetApi;
value = 0x10
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;
}
.end annotation
# static fields
.field private static final CHOREOGRAPHER_SAMPLE_DELAY_MILLIS:J = 0x1f4L
.field private static final MAX_ALLOWED_DRIFT_NS:J = 0x1312d00L
.field private static final MIN_FRAMES_FOR_ADJUSTMENT:I = 0x6
.field private static final VSYNC_OFFSET_PERCENTAGE:J = 0x50L
# instance fields
.field private adjustedLastFrameTimeNs:J
.field private frameCount:J
.field private haveSync:Z
.field private lastFramePresentationTimeUs:J
.field private pendingAdjustedFrameTimeNs:J
.field private syncFramePresentationTimeNs:J
.field private syncUnadjustedReleaseTimeNs:J
.field private final useDefaultDisplayVsync:Z
.field private final vsyncDurationNs:J
.field private final vsyncOffsetNs:J
.field private final vsyncSampler:Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;
# direct methods
.method public constructor <init>()V
.locals 3
const-wide/high16 v0, -0x4010000000000000L # -1.0
const/4 v2, 0x0
.line 1
invoke-direct {p0, v0, v1, v2}, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;-><init>(DZ)V
return-void
.end method
.method private constructor <init>(DZ)V
.locals 2
.line 3
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 4
iput-boolean p3, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->useDefaultDisplayVsync:Z
if-eqz p3, :cond_0
.line 5
invoke-static {}, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->getInstance()Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;
move-result-object p3
iput-object p3, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->vsyncSampler:Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;
const-wide v0, 0x41cdcd6500000000L # 1.0E9
div-double/2addr v0, p1
double-to-long p1, v0
.line 6
iput-wide p1, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->vsyncDurationNs:J
const-wide/16 v0, 0x50
mul-long/2addr p1, v0
const-wide/16 v0, 0x64
.line 7
div-long/2addr p1, v0
iput-wide p1, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->vsyncOffsetNs:J
goto :goto_0
:cond_0
const/4 p1, 0x0
.line 8
iput-object p1, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->vsyncSampler:Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;
const-wide/16 p1, -0x1
.line 9
iput-wide p1, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->vsyncDurationNs:J
.line 10
iput-wide p1, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->vsyncOffsetNs:J
:goto_0
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.locals 2
.line 2
invoke-static {p1}, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->getDefaultDisplayRefreshRate(Landroid/content/Context;)F
move-result p1
float-to-double v0, p1
const/4 p1, 0x1
invoke-direct {p0, v0, v1, p1}, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;-><init>(DZ)V
return-void
.end method
.method private static closestVsync(JJJ)J
.locals 2
sub-long v0, p0, p2
.line 1
div-long/2addr v0, p4
mul-long/2addr v0, p4
add-long/2addr v0, p2
cmp-long p2, p0, v0
if-gtz p2, :cond_0
sub-long p2, v0, p4
goto :goto_0
:cond_0
add-long/2addr p4, v0
move-wide p2, v0
move-wide v0, p4
:goto_0
sub-long p4, v0, p0
sub-long/2addr p0, p2
cmp-long p0, p4, p0
if-gez p0, :cond_1
goto :goto_1
:cond_1
move-wide v0, p2
:goto_1
return-wide v0
.end method
.method private static getDefaultDisplayRefreshRate(Landroid/content/Context;)F
.locals 1
const-string v0, "window"
.line 1
invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Landroid/view/WindowManager;
.line 2
invoke-interface {p0}, Landroid/view/WindowManager;->getDefaultDisplay()Landroid/view/Display;
move-result-object p0
invoke-virtual {p0}, Landroid/view/Display;->getRefreshRate()F
move-result p0
return p0
.end method
.method private isDriftTooLarge(JJ)Z
.locals 2
.line 1
iget-wide v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->syncFramePresentationTimeNs:J
sub-long/2addr p1, v0
.line 2
iget-wide v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->syncUnadjustedReleaseTimeNs:J
sub-long/2addr p3, v0
sub-long/2addr p3, p1
.line 3
invoke-static {p3, p4}, Ljava/lang/Math;->abs(J)J
move-result-wide p1
const-wide/32 p3, 0x1312d00
cmp-long p1, p1, p3
if-lez p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
# virtual methods
.method public adjustReleaseTime(JJ)J
.locals 10
const-wide/16 v0, 0x3e8
mul-long/2addr v0, p1
.line 1
iget-boolean v2, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->haveSync:Z
if-eqz v2, :cond_3
.line 2
iget-wide v2, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->lastFramePresentationTimeUs:J
cmp-long v2, p1, v2
if-eqz v2, :cond_0
.line 3
iget-wide v2, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->frameCount:J
const-wide/16 v4, 0x1
add-long/2addr v2, v4
iput-wide v2, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->frameCount:J
.line 4
iget-wide v2, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->pendingAdjustedFrameTimeNs:J
iput-wide v2, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->adjustedLastFrameTimeNs:J
.line 5
:cond_0
iget-wide v2, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->frameCount:J
const-wide/16 v4, 0x6
cmp-long v4, v2, v4
const/4 v5, 0x0
if-ltz v4, :cond_2
.line 6
iget-wide v6, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->syncFramePresentationTimeNs:J
sub-long v6, v0, v6
div-long/2addr v6, v2
.line 7
iget-wide v2, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->adjustedLastFrameTimeNs:J
add-long/2addr v2, v6
.line 8
invoke-direct {p0, v2, v3, p3, p4}, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->isDriftTooLarge(JJ)Z
move-result v4
if-eqz v4, :cond_1
.line 9
iput-boolean v5, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->haveSync:Z
goto :goto_0
.line 10
:cond_1
iget-wide v4, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->syncUnadjustedReleaseTimeNs:J
add-long/2addr v4, v2
iget-wide v6, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->syncFramePresentationTimeNs:J
sub-long/2addr v4, v6
goto :goto_1
.line 11
:cond_2
invoke-direct {p0, v0, v1, p3, p4}, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->isDriftTooLarge(JJ)Z
move-result v2
if-eqz v2, :cond_3
.line 12
iput-boolean v5, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->haveSync:Z
:cond_3
:goto_0
move-wide v4, p3
move-wide v2, v0
.line 13
:goto_1
iget-boolean v6, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->haveSync:Z
const-wide/16 v7, 0x0
if-nez v6, :cond_4
.line 14
iput-wide v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->syncFramePresentationTimeNs:J
.line 15
iput-wide p3, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->syncUnadjustedReleaseTimeNs:J
.line 16
iput-wide v7, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->frameCount:J
const/4 p3, 0x1
.line 17
iput-boolean p3, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->haveSync:Z
.line 18
invoke-virtual {p0}, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->onSynced()V
.line 19
:cond_4
iput-wide p1, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->lastFramePresentationTimeUs:J
.line 20
iput-wide v2, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->pendingAdjustedFrameTimeNs:J
.line 21
iget-object p1, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->vsyncSampler:Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;
if-eqz p1, :cond_6
iget-wide p1, p1, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->sampledVsyncTimeNs:J
cmp-long p1, p1, v7
if-nez p1, :cond_5
goto :goto_2
.line 22
:cond_5
iget-object p1, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->vsyncSampler:Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;
iget-wide v6, p1, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->sampledVsyncTimeNs:J
iget-wide v8, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->vsyncDurationNs:J
invoke-static/range {v4 .. v9}, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->closestVsync(JJJ)J
move-result-wide p1
.line 23
iget-wide p3, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->vsyncOffsetNs:J
sub-long/2addr p1, p3
return-wide p1
:cond_6
:goto_2
return-wide v4
.end method
.method public disable()V
.locals 1
.line 1
iget-boolean v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->useDefaultDisplayVsync:Z
if-eqz v0, :cond_0
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->vsyncSampler:Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->removeObserver()V
:cond_0
return-void
.end method
.method public enable()V
.locals 1
const/4 v0, 0x0
.line 1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->haveSync:Z
.line 2
iget-boolean v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->useDefaultDisplayVsync:Z
if-eqz v0, :cond_0
.line 3
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper;->vsyncSampler:Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper$VSyncSampler;->addObserver()V
:cond_0
return-void
.end method
.method public onSynced()V
.locals 0
return-void
.end method
@@ -0,0 +1,57 @@
.class Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$1;
.super Ljava/lang/Object;
.source "VideoRendererEventListener.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->enabled(Lcom/google/android/exoplayer2/decoder/DecoderCounters;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
.field public final synthetic val$decoderCounters:Lcom/google/android/exoplayer2/decoder/DecoderCounters;
# direct methods
.method public constructor <init>(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;Lcom/google/android/exoplayer2/decoder/DecoderCounters;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$1;->this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
iput-object p2, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$1;->val$decoderCounters:Lcom/google/android/exoplayer2/decoder/DecoderCounters;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$1;->this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
invoke-static {v0}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->access$000(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;)Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
move-result-object v0
iget-object v1, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$1;->val$decoderCounters:Lcom/google/android/exoplayer2/decoder/DecoderCounters;
invoke-interface {v0, v1}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener;->onVideoEnabled(Lcom/google/android/exoplayer2/decoder/DecoderCounters;)V
return-void
.end method
@@ -0,0 +1,69 @@
.class Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$2;
.super Ljava/lang/Object;
.source "VideoRendererEventListener.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->decoderInitialized(Ljava/lang/String;JJ)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
.field public final synthetic val$decoderName:Ljava/lang/String;
.field public final synthetic val$initializationDurationMs:J
.field public final synthetic val$initializedTimestampMs:J
# direct methods
.method public constructor <init>(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;Ljava/lang/String;JJ)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$2;->this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
iput-object p2, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$2;->val$decoderName:Ljava/lang/String;
iput-wide p3, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$2;->val$initializedTimestampMs:J
iput-wide p5, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$2;->val$initializationDurationMs:J
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 7
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$2;->this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
invoke-static {v0}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->access$000(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;)Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
move-result-object v1
iget-object v2, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$2;->val$decoderName:Ljava/lang/String;
iget-wide v3, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$2;->val$initializedTimestampMs:J
iget-wide v5, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$2;->val$initializationDurationMs:J
invoke-interface/range {v1 .. v6}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener;->onVideoDecoderInitialized(Ljava/lang/String;JJ)V
return-void
.end method
@@ -0,0 +1,57 @@
.class Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$3;
.super Ljava/lang/Object;
.source "VideoRendererEventListener.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->inputFormatChanged(Lcom/google/android/exoplayer2/Format;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
.field public final synthetic val$format:Lcom/google/android/exoplayer2/Format;
# direct methods
.method public constructor <init>(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;Lcom/google/android/exoplayer2/Format;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$3;->this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
iput-object p2, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$3;->val$format:Lcom/google/android/exoplayer2/Format;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$3;->this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
invoke-static {v0}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->access$000(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;)Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
move-result-object v0
iget-object v1, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$3;->val$format:Lcom/google/android/exoplayer2/Format;
invoke-interface {v0, v1}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener;->onVideoInputFormatChanged(Lcom/google/android/exoplayer2/Format;)V
return-void
.end method
@@ -0,0 +1,63 @@
.class Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$4;
.super Ljava/lang/Object;
.source "VideoRendererEventListener.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->droppedFrames(IJ)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
.field public final synthetic val$droppedFrameCount:I
.field public final synthetic val$elapsedMs:J
# direct methods
.method public constructor <init>(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;IJ)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$4;->this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
iput p2, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$4;->val$droppedFrameCount:I
iput-wide p3, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$4;->val$elapsedMs:J
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 4
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$4;->this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
invoke-static {v0}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->access$000(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;)Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
move-result-object v0
iget v1, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$4;->val$droppedFrameCount:I
iget-wide v2, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$4;->val$elapsedMs:J
invoke-interface {v0, v1, v2, v3}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener;->onDroppedFrames(IJ)V
return-void
.end method
@@ -0,0 +1,75 @@
.class Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$5;
.super Ljava/lang/Object;
.source "VideoRendererEventListener.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->videoSizeChanged(IIIF)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
.field public final synthetic val$height:I
.field public final synthetic val$pixelWidthHeightRatio:F
.field public final synthetic val$unappliedRotationDegrees:I
.field public final synthetic val$width:I
# direct methods
.method public constructor <init>(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;IIIF)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$5;->this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
iput p2, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$5;->val$width:I
iput p3, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$5;->val$height:I
iput p4, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$5;->val$unappliedRotationDegrees:I
iput p5, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$5;->val$pixelWidthHeightRatio:F
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 5
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$5;->this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
invoke-static {v0}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->access$000(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;)Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
move-result-object v0
iget v1, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$5;->val$width:I
iget v2, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$5;->val$height:I
iget v3, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$5;->val$unappliedRotationDegrees:I
iget v4, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$5;->val$pixelWidthHeightRatio:F
invoke-interface {v0, v1, v2, v3, v4}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener;->onVideoSizeChanged(IIIF)V
return-void
.end method
@@ -0,0 +1,57 @@
.class Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$6;
.super Ljava/lang/Object;
.source "VideoRendererEventListener.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->renderedFirstFrame(Landroid/view/Surface;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
.field public final synthetic val$surface:Landroid/view/Surface;
# direct methods
.method public constructor <init>(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;Landroid/view/Surface;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$6;->this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
iput-object p2, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$6;->val$surface:Landroid/view/Surface;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$6;->this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
invoke-static {v0}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->access$000(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;)Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
move-result-object v0
iget-object v1, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$6;->val$surface:Landroid/view/Surface;
invoke-interface {v0, v1}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener;->onRenderedFirstFrame(Landroid/view/Surface;)V
return-void
.end method
@@ -0,0 +1,62 @@
.class Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$7;
.super Ljava/lang/Object;
.source "VideoRendererEventListener.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->disabled(Lcom/google/android/exoplayer2/decoder/DecoderCounters;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
.field public final synthetic val$counters:Lcom/google/android/exoplayer2/decoder/DecoderCounters;
# direct methods
.method public constructor <init>(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;Lcom/google/android/exoplayer2/decoder/DecoderCounters;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$7;->this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
iput-object p2, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$7;->val$counters:Lcom/google/android/exoplayer2/decoder/DecoderCounters;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$7;->val$counters:Lcom/google/android/exoplayer2/decoder/DecoderCounters;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/decoder/DecoderCounters;->ensureUpdated()V
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$7;->this$0:Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
invoke-static {v0}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->access$000(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;)Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
move-result-object v0
iget-object v1, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$7;->val$counters:Lcom/google/android/exoplayer2/decoder/DecoderCounters;
invoke-interface {v0, v1}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener;->onVideoDisabled(Lcom/google/android/exoplayer2/decoder/DecoderCounters;)V
return-void
.end method
@@ -0,0 +1,231 @@
.class public final Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
.super Ljava/lang/Object;
.source "VideoRendererEventListener.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "EventDispatcher"
.end annotation
# instance fields
.field private final handler:Landroid/os/Handler;
.field private final listener:Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
# direct methods
.method public constructor <init>(Landroid/os/Handler;Lcom/google/android/exoplayer2/video/VideoRendererEventListener;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
if-eqz p2, :cond_0
.line 2
invoke-static {p1}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroid/os/Handler;
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
iput-object p1, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->handler:Landroid/os/Handler;
.line 3
iput-object p2, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->listener:Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
return-void
.end method
.method public static synthetic access$000(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;)Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
.locals 0
.line 1
iget-object p0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->listener:Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
return-object p0
.end method
# virtual methods
.method public decoderInitialized(Ljava/lang/String;JJ)V
.locals 9
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->listener:Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
if-eqz v0, :cond_0
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->handler:Landroid/os/Handler;
new-instance v8, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$2;
move-object v1, v8
move-object v2, p0
move-object v3, p1
move-wide v4, p2
move-wide v6, p4
invoke-direct/range {v1 .. v7}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$2;-><init>(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;Ljava/lang/String;JJ)V
invoke-virtual {v0, v8}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:cond_0
return-void
.end method
.method public disabled(Lcom/google/android/exoplayer2/decoder/DecoderCounters;)V
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->listener:Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
if-eqz v0, :cond_0
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->handler:Landroid/os/Handler;
new-instance v1, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$7;
invoke-direct {v1, p0, p1}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$7;-><init>(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;Lcom/google/android/exoplayer2/decoder/DecoderCounters;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:cond_0
return-void
.end method
.method public droppedFrames(IJ)V
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->listener:Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
if-eqz v0, :cond_0
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->handler:Landroid/os/Handler;
new-instance v1, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$4;
invoke-direct {v1, p0, p1, p2, p3}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$4;-><init>(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;IJ)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:cond_0
return-void
.end method
.method public enabled(Lcom/google/android/exoplayer2/decoder/DecoderCounters;)V
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->listener:Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
if-eqz v0, :cond_0
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->handler:Landroid/os/Handler;
new-instance v1, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$1;
invoke-direct {v1, p0, p1}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$1;-><init>(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;Lcom/google/android/exoplayer2/decoder/DecoderCounters;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:cond_0
return-void
.end method
.method public inputFormatChanged(Lcom/google/android/exoplayer2/Format;)V
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->listener:Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
if-eqz v0, :cond_0
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->handler:Landroid/os/Handler;
new-instance v1, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$3;
invoke-direct {v1, p0, p1}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$3;-><init>(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;Lcom/google/android/exoplayer2/Format;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:cond_0
return-void
.end method
.method public renderedFirstFrame(Landroid/view/Surface;)V
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->listener:Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
if-eqz v0, :cond_0
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->handler:Landroid/os/Handler;
new-instance v1, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$6;
invoke-direct {v1, p0, p1}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$6;-><init>(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;Landroid/view/Surface;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:cond_0
return-void
.end method
.method public videoSizeChanged(IIIF)V
.locals 8
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->listener:Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
if-eqz v0, :cond_0
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;->handler:Landroid/os/Handler;
new-instance v7, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$5;
move-object v1, v7
move-object v2, p0
move v3, p1
move v4, p2
move v5, p3
move v6, p4
invoke-direct/range {v1 .. v6}, Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher$5;-><init>(Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;IIIF)V
invoke-virtual {v0, v7}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:cond_0
return-void
.end method
@@ -0,0 +1,34 @@
.class public interface abstract Lcom/google/android/exoplayer2/video/VideoRendererEventListener;
.super Ljava/lang/Object;
.source "VideoRendererEventListener.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/video/VideoRendererEventListener$EventDispatcher;
}
.end annotation
# virtual methods
.method public abstract onDroppedFrames(IJ)V
.end method
.method public abstract onRenderedFirstFrame(Landroid/view/Surface;)V
.end method
.method public abstract onVideoDecoderInitialized(Ljava/lang/String;JJ)V
.end method
.method public abstract onVideoDisabled(Lcom/google/android/exoplayer2/decoder/DecoderCounters;)V
.end method
.method public abstract onVideoEnabled(Lcom/google/android/exoplayer2/decoder/DecoderCounters;)V
.end method
.method public abstract onVideoInputFormatChanged(Lcom/google/android/exoplayer2/Format;)V
.end method
.method public abstract onVideoSizeChanged(IIIF)V
.end method