Changes of com.discord v1325

This commit is contained in:
root 2020-11-12 02:11:44 +00:00
parent d9d9f382c9
commit 3cb9e1231d
28086 changed files with 4880345 additions and 0 deletions

View file

@ -0,0 +1,33 @@
.class public final Lorg/objectweb/asm/ClassTooLargeException;
.super Ljava/lang/IndexOutOfBoundsException;
.source "ClassTooLargeException.java"
# static fields
.field public static final serialVersionUID:J = 0x23af9fecf3bf67dL
# instance fields
.field public final className:Ljava/lang/String;
.field public final constantPoolCount:I
# direct methods
.method public constructor <init>(Ljava/lang/String;I)V
.locals 1
const-string v0, "Class too large: "
invoke-static {v0, p1}, Lf/e/c/a/a;->q(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Ljava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
iput-object p1, p0, Lorg/objectweb/asm/ClassTooLargeException;->className:Ljava/lang/String;
iput p2, p0, Lorg/objectweb/asm/ClassTooLargeException;->constantPoolCount:I
return-void
.end method

View file

@ -0,0 +1,61 @@
.class public final Lorg/objectweb/asm/MethodTooLargeException;
.super Ljava/lang/IndexOutOfBoundsException;
.source "MethodTooLargeException.java"
# static fields
.field public static final serialVersionUID:J = 0x5e78ac6c04ef3f4aL
# instance fields
.field public final className:Ljava/lang/String;
.field public final codeSize:I
.field public final descriptor:Ljava/lang/String;
.field public final methodName:Ljava/lang/String;
# direct methods
.method public constructor <init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
.locals 2
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Method too large: "
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;
const-string v1, "."
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p2}, 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, p3}, 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-direct {p0, v0}, Ljava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
iput-object p1, p0, Lorg/objectweb/asm/MethodTooLargeException;->className:Ljava/lang/String;
iput-object p2, p0, Lorg/objectweb/asm/MethodTooLargeException;->methodName:Ljava/lang/String;
iput-object p3, p0, Lorg/objectweb/asm/MethodTooLargeException;->descriptor:Ljava/lang/String;
iput p4, p0, Lorg/objectweb/asm/MethodTooLargeException;->codeSize:I
return-void
.end method

View file

@ -0,0 +1,17 @@
.class public Lorg/objenesis/ObjenesisException;
.super Ljava/lang/RuntimeException;
.source "ObjenesisException.java"
# static fields
.field public static final serialVersionUID:J = -0x25276e83e555d158L
# direct methods
.method public constructor <init>(Ljava/lang/Throwable;)V
.locals 0
invoke-direct {p0, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
return-void
.end method

View file

@ -0,0 +1,66 @@
.class public Lorg/webrtc/AndroidVideoDecoder$1;
.super Ljava/lang/Thread;
.source "AndroidVideoDecoder.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lorg/webrtc/AndroidVideoDecoder;->createOutputThread()Ljava/lang/Thread;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/AndroidVideoDecoder;
# direct methods
.method public constructor <init>(Lorg/webrtc/AndroidVideoDecoder;Ljava/lang/String;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/AndroidVideoDecoder$1;->this$0:Lorg/webrtc/AndroidVideoDecoder;
invoke-direct {p0, p2}, Ljava/lang/Thread;-><init>(Ljava/lang/String;)V
return-void
.end method
# virtual methods
.method public run()V
.locals 2
iget-object v0, p0, Lorg/webrtc/AndroidVideoDecoder$1;->this$0:Lorg/webrtc/AndroidVideoDecoder;
new-instance v1, Lorg/webrtc/ThreadUtils$ThreadChecker;
invoke-direct {v1}, Lorg/webrtc/ThreadUtils$ThreadChecker;-><init>()V
invoke-static {v0, v1}, Lorg/webrtc/AndroidVideoDecoder;->access$002(Lorg/webrtc/AndroidVideoDecoder;Lorg/webrtc/ThreadUtils$ThreadChecker;)Lorg/webrtc/ThreadUtils$ThreadChecker;
:goto_0
iget-object v0, p0, Lorg/webrtc/AndroidVideoDecoder$1;->this$0:Lorg/webrtc/AndroidVideoDecoder;
invoke-static {v0}, Lorg/webrtc/AndroidVideoDecoder;->access$100(Lorg/webrtc/AndroidVideoDecoder;)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lorg/webrtc/AndroidVideoDecoder$1;->this$0:Lorg/webrtc/AndroidVideoDecoder;
invoke-virtual {v0}, Lorg/webrtc/AndroidVideoDecoder;->deliverDecodedFrame()V
goto :goto_0
:cond_0
iget-object v0, p0, Lorg/webrtc/AndroidVideoDecoder$1;->this$0:Lorg/webrtc/AndroidVideoDecoder;
invoke-static {v0}, Lorg/webrtc/AndroidVideoDecoder;->access$200(Lorg/webrtc/AndroidVideoDecoder;)V
return-void
.end method

View file

@ -0,0 +1,34 @@
.class public Lorg/webrtc/AndroidVideoDecoder$DecodedTextureMetadata;
.super Ljava/lang/Object;
.source "AndroidVideoDecoder.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/AndroidVideoDecoder;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "DecodedTextureMetadata"
.end annotation
# instance fields
.field public final decodeTimeMs:Ljava/lang/Integer;
.field public final presentationTimestampUs:J
# direct methods
.method public constructor <init>(JLjava/lang/Integer;)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-wide p1, p0, Lorg/webrtc/AndroidVideoDecoder$DecodedTextureMetadata;->presentationTimestampUs:J
iput-object p3, p0, Lorg/webrtc/AndroidVideoDecoder$DecodedTextureMetadata;->decodeTimeMs:Ljava/lang/Integer;
return-void
.end method

View file

@ -0,0 +1,34 @@
.class public Lorg/webrtc/AndroidVideoDecoder$FrameInfo;
.super Ljava/lang/Object;
.source "AndroidVideoDecoder.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/AndroidVideoDecoder;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "FrameInfo"
.end annotation
# instance fields
.field public final decodeStartTimeMs:J
.field public final rotation:I
# direct methods
.method public constructor <init>(JI)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-wide p1, p0, Lorg/webrtc/AndroidVideoDecoder$FrameInfo;->decodeStartTimeMs:J
iput p3, p0, Lorg/webrtc/AndroidVideoDecoder$FrameInfo;->rotation:I
return-void
.end method

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,8 @@
.class public interface abstract Lorg/webrtc/AudioDecoderFactoryFactory;
.super Ljava/lang/Object;
.source "AudioDecoderFactoryFactory.java"
# virtual methods
.method public abstract createNativeAudioDecoderFactory()J
.end method

View file

@ -0,0 +1,8 @@
.class public interface abstract Lorg/webrtc/AudioEncoderFactoryFactory;
.super Ljava/lang/Object;
.source "AudioEncoderFactoryFactory.java"
# virtual methods
.method public abstract createNativeAudioEncoderFactory()J
.end method

View file

@ -0,0 +1,8 @@
.class public interface abstract Lorg/webrtc/AudioProcessingFactory;
.super Ljava/lang/Object;
.source "AudioProcessingFactory.java"
# virtual methods
.method public abstract createNative()J
.end method

View file

@ -0,0 +1,25 @@
.class public Lorg/webrtc/AudioSource;
.super Lorg/webrtc/MediaSource;
.source "AudioSource.java"
# direct methods
.method public constructor <init>(J)V
.locals 0
invoke-direct {p0, p1, p2}, Lorg/webrtc/MediaSource;-><init>(J)V
return-void
.end method
# virtual methods
.method public getNativeAudioSource()J
.locals 2
invoke-virtual {p0}, Lorg/webrtc/MediaSource;->getNativeMediaSource()J
move-result-wide v0
return-wide v0
.end method

View file

@ -0,0 +1,40 @@
.class public Lorg/webrtc/AudioTrack;
.super Lorg/webrtc/MediaStreamTrack;
.source "AudioTrack.java"
# direct methods
.method public constructor <init>(J)V
.locals 0
invoke-direct {p0, p1, p2}, Lorg/webrtc/MediaStreamTrack;-><init>(J)V
return-void
.end method
.method public static native nativeSetVolume(JD)V
.end method
# virtual methods
.method public getNativeAudioTrack()J
.locals 2
invoke-virtual {p0}, Lorg/webrtc/MediaStreamTrack;->getNativeMediaStreamTrack()J
move-result-wide v0
return-wide v0
.end method
.method public setVolume(D)V
.locals 2
invoke-virtual {p0}, Lorg/webrtc/AudioTrack;->getNativeAudioTrack()J
move-result-wide v0
invoke-static {v0, v1, p1, p2}, Lorg/webrtc/AudioTrack;->nativeSetVolume(JD)V
return-void
.end method

View file

@ -0,0 +1,56 @@
.class public Lorg/webrtc/BaseBitrateAdjuster;
.super Ljava/lang/Object;
.source "BaseBitrateAdjuster.java"
# interfaces
.implements Lorg/webrtc/BitrateAdjuster;
# instance fields
.field public targetBitrateBps:I
.field public targetFps:I
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public getAdjustedBitrateBps()I
.locals 1
iget v0, p0, Lorg/webrtc/BaseBitrateAdjuster;->targetBitrateBps:I
return v0
.end method
.method public getCodecConfigFramerate()I
.locals 1
iget v0, p0, Lorg/webrtc/BaseBitrateAdjuster;->targetFps:I
return v0
.end method
.method public reportEncodedFrame(I)V
.locals 0
return-void
.end method
.method public setTargets(II)V
.locals 0
iput p1, p0, Lorg/webrtc/BaseBitrateAdjuster;->targetBitrateBps:I
iput p2, p0, Lorg/webrtc/BaseBitrateAdjuster;->targetFps:I
return-void
.end method

View file

@ -0,0 +1,17 @@
.class public interface abstract Lorg/webrtc/BitrateAdjuster;
.super Ljava/lang/Object;
.source "BitrateAdjuster.java"
# virtual methods
.method public abstract getAdjustedBitrateBps()I
.end method
.method public abstract getCodecConfigFramerate()I
.end method
.method public abstract reportEncodedFrame(I)V
.end method
.method public abstract setTargets(II)V
.end method

View file

@ -0,0 +1,31 @@
.class public Lorg/webrtc/BuiltinAudioDecoderFactoryFactory;
.super Ljava/lang/Object;
.source "BuiltinAudioDecoderFactoryFactory.java"
# interfaces
.implements Lorg/webrtc/AudioDecoderFactoryFactory;
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static native nativeCreateBuiltinAudioDecoderFactory()J
.end method
# virtual methods
.method public createNativeAudioDecoderFactory()J
.locals 2
invoke-static {}, Lorg/webrtc/BuiltinAudioDecoderFactoryFactory;->nativeCreateBuiltinAudioDecoderFactory()J
move-result-wide v0
return-wide v0
.end method

View file

@ -0,0 +1,31 @@
.class public Lorg/webrtc/BuiltinAudioEncoderFactoryFactory;
.super Ljava/lang/Object;
.source "BuiltinAudioEncoderFactoryFactory.java"
# interfaces
.implements Lorg/webrtc/AudioEncoderFactoryFactory;
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static native nativeCreateBuiltinAudioEncoderFactory()J
.end method
# virtual methods
.method public createNativeAudioEncoderFactory()J
.locals 2
invoke-static {}, Lorg/webrtc/BuiltinAudioEncoderFactoryFactory;->nativeCreateBuiltinAudioEncoderFactory()J
move-result-wide v0
return-wide v0
.end method

View file

@ -0,0 +1,89 @@
.class public Lorg/webrtc/CallSessionFileRotatingLogSink;
.super Ljava/lang/Object;
.source "CallSessionFileRotatingLogSink.java"
# instance fields
.field public nativeSink:J
# direct methods
.method public constructor <init>(Ljava/lang/String;ILorg/webrtc/Logging$Severity;)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
if-eqz p1, :cond_0
invoke-virtual {p3}, Ljava/lang/Enum;->ordinal()I
move-result p3
invoke-static {p1, p2, p3}, Lorg/webrtc/CallSessionFileRotatingLogSink;->nativeAddSink(Ljava/lang/String;II)J
move-result-wide p1
iput-wide p1, p0, Lorg/webrtc/CallSessionFileRotatingLogSink;->nativeSink:J
return-void
:cond_0
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string p2, "dirPath may not be null."
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public static getLogData(Ljava/lang/String;)[B
.locals 1
if-eqz p0, :cond_0
invoke-static {p0}, Lorg/webrtc/CallSessionFileRotatingLogSink;->nativeGetLogData(Ljava/lang/String;)[B
move-result-object p0
return-object p0
:cond_0
new-instance p0, Ljava/lang/IllegalArgumentException;
const-string v0, "dirPath may not be null."
invoke-direct {p0, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p0
.end method
.method public static native nativeAddSink(Ljava/lang/String;II)J
.end method
.method public static native nativeDeleteSink(J)V
.end method
.method public static native nativeGetLogData(Ljava/lang/String;)[B
.end method
# virtual methods
.method public dispose()V
.locals 5
iget-wide v0, p0, Lorg/webrtc/CallSessionFileRotatingLogSink;->nativeSink:J
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-eqz v4, :cond_0
invoke-static {v0, v1}, Lorg/webrtc/CallSessionFileRotatingLogSink;->nativeDeleteSink(J)V
iput-wide v2, p0, Lorg/webrtc/CallSessionFileRotatingLogSink;->nativeSink:J
:cond_0
return-void
.end method

View file

@ -0,0 +1,30 @@
.class public interface abstract annotation Lorg/webrtc/CalledByNative;
.super Ljava/lang/Object;
.source "CalledByNative.java"
# interfaces
.implements Ljava/lang/annotation/Annotation;
# annotations
.annotation system Ldalvik/annotation/AnnotationDefault;
value = .subannotation Lorg/webrtc/CalledByNative;
value = ""
.end subannotation
.end annotation
.annotation runtime Ljava/lang/annotation/Retention;
value = .enum Ljava/lang/annotation/RetentionPolicy;->CLASS:Ljava/lang/annotation/RetentionPolicy;
.end annotation
.annotation runtime Ljava/lang/annotation/Target;
value = {
.enum Ljava/lang/annotation/ElementType;->CONSTRUCTOR:Ljava/lang/annotation/ElementType;,
.enum Ljava/lang/annotation/ElementType;->METHOD:Ljava/lang/annotation/ElementType;
}
.end annotation
# virtual methods
.method public abstract value()Ljava/lang/String;
.end method

View file

@ -0,0 +1,29 @@
.class public interface abstract annotation Lorg/webrtc/CalledByNativeUnchecked;
.super Ljava/lang/Object;
.source "CalledByNativeUnchecked.java"
# interfaces
.implements Ljava/lang/annotation/Annotation;
# annotations
.annotation system Ldalvik/annotation/AnnotationDefault;
value = .subannotation Lorg/webrtc/CalledByNativeUnchecked;
value = ""
.end subannotation
.end annotation
.annotation runtime Ljava/lang/annotation/Retention;
value = .enum Ljava/lang/annotation/RetentionPolicy;->CLASS:Ljava/lang/annotation/RetentionPolicy;
.end annotation
.annotation runtime Ljava/lang/annotation/Target;
value = {
.enum Ljava/lang/annotation/ElementType;->METHOD:Ljava/lang/annotation/ElementType;
}
.end annotation
# virtual methods
.method public abstract value()Ljava/lang/String;
.end method

View file

@ -0,0 +1,121 @@
.class public Lorg/webrtc/Camera1Capturer;
.super Lorg/webrtc/CameraCapturer;
.source "Camera1Capturer.java"
# instance fields
.field public final captureToTexture:Z
# direct methods
.method public constructor <init>(Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;Z)V
.locals 1
new-instance v0, Lorg/webrtc/Camera1Enumerator;
invoke-direct {v0, p3}, Lorg/webrtc/Camera1Enumerator;-><init>(Z)V
invoke-direct {p0, p1, p2, v0}, Lorg/webrtc/CameraCapturer;-><init>(Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;Lorg/webrtc/CameraEnumerator;)V
iput-boolean p3, p0, Lorg/webrtc/Camera1Capturer;->captureToTexture:Z
return-void
.end method
# virtual methods
.method public bridge synthetic changeCaptureFormat(III)V
.locals 0
invoke-super {p0, p1, p2, p3}, Lorg/webrtc/CameraCapturer;->changeCaptureFormat(III)V
return-void
.end method
.method public createCameraSession(Lorg/webrtc/CameraSession$CreateSessionCallback;Lorg/webrtc/CameraSession$Events;Landroid/content/Context;Lorg/webrtc/SurfaceTextureHelper;Ljava/lang/String;III)V
.locals 10
move-object v0, p0
iget-boolean v3, v0, Lorg/webrtc/Camera1Capturer;->captureToTexture:Z
invoke-static {p5}, Lorg/webrtc/Camera1Enumerator;->getCameraIndex(Ljava/lang/String;)I
move-result v6
move-object v1, p1
move-object v2, p2
move-object v4, p3
move-object v5, p4
move/from16 v7, p6
move/from16 v8, p7
move/from16 v9, p8
invoke-static/range {v1 .. v9}, Lorg/webrtc/Camera1Session;->create(Lorg/webrtc/CameraSession$CreateSessionCallback;Lorg/webrtc/CameraSession$Events;ZLandroid/content/Context;Lorg/webrtc/SurfaceTextureHelper;IIII)V
return-void
.end method
.method public bridge synthetic dispose()V
.locals 0
invoke-super {p0}, Lorg/webrtc/CameraCapturer;->dispose()V
return-void
.end method
.method public bridge synthetic initialize(Lorg/webrtc/SurfaceTextureHelper;Landroid/content/Context;Lorg/webrtc/CapturerObserver;)V
.locals 0
invoke-super {p0, p1, p2, p3}, Lorg/webrtc/CameraCapturer;->initialize(Lorg/webrtc/SurfaceTextureHelper;Landroid/content/Context;Lorg/webrtc/CapturerObserver;)V
return-void
.end method
.method public bridge synthetic isScreencast()Z
.locals 1
invoke-super {p0}, Lorg/webrtc/CameraCapturer;->isScreencast()Z
move-result v0
return v0
.end method
.method public bridge synthetic printStackTrace()V
.locals 0
invoke-super {p0}, Lorg/webrtc/CameraCapturer;->printStackTrace()V
return-void
.end method
.method public bridge synthetic startCapture(III)V
.locals 0
invoke-super {p0, p1, p2, p3}, Lorg/webrtc/CameraCapturer;->startCapture(III)V
return-void
.end method
.method public bridge synthetic stopCapture()V
.locals 0
invoke-super {p0}, Lorg/webrtc/CameraCapturer;->stopCapture()V
return-void
.end method
.method public bridge synthetic switchCamera(Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
.locals 0
invoke-super {p0, p1}, Lorg/webrtc/CameraCapturer;->switchCamera(Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
return-void
.end method

View file

@ -0,0 +1,800 @@
.class public Lorg/webrtc/Camera1Enumerator;
.super Ljava/lang/Object;
.source "Camera1Enumerator.java"
# interfaces
.implements Lorg/webrtc/CameraEnumerator;
# static fields
.field public static final TAG:Ljava/lang/String; = "Camera1Enumerator"
.field public static cachedSupportedFormats:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Ljava/util/List<",
"Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;",
">;>;"
}
.end annotation
.end field
# instance fields
.field public final captureToTexture:Z
# direct methods
.method public constructor <init>()V
.locals 1
const/4 v0, 0x1
invoke-direct {p0, v0}, Lorg/webrtc/Camera1Enumerator;-><init>(Z)V
return-void
.end method
.method public constructor <init>(Z)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-boolean p1, p0, Lorg/webrtc/Camera1Enumerator;->captureToTexture:Z
return-void
.end method
.method public static convertFramerates(Ljava/util/List;)Ljava/util/List;
.locals 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"[I>;)",
"Ljava/util/List<",
"Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;",
">;"
}
.end annotation
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_0
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_0
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, [I
new-instance v2, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
const/4 v3, 0x0
aget v3, v1, v3
const/4 v4, 0x1
aget v1, v1, v4
invoke-direct {v2, v3, v1}, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;-><init>(II)V
invoke-virtual {v0, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_0
:cond_0
return-object v0
.end method
.method public static convertSizes(Ljava/util/List;)Ljava/util/List;
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Landroid/hardware/Camera$Size;",
">;)",
"Ljava/util/List<",
"Lorg/webrtc/Size;",
">;"
}
.end annotation
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_0
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_0
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/hardware/Camera$Size;
new-instance v2, Lorg/webrtc/Size;
iget v3, v1, Landroid/hardware/Camera$Size;->width:I
iget v1, v1, Landroid/hardware/Camera$Size;->height:I
invoke-direct {v2, v3, v1}, Lorg/webrtc/Size;-><init>(II)V
invoke-virtual {v0, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_0
:cond_0
return-object v0
.end method
.method public static enumerateFormats(I)Ljava/util/List;
.locals 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)",
"Ljava/util/List<",
"Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;",
">;"
}
.end annotation
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Get supported formats for camera index "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, "."
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v2, "Camera1Enumerator"
invoke-static {v2, v0}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v3
const/4 v0, 0x0
:try_start_0
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Opening camera with index "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v2, v5}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
invoke-static {p0}, Landroid/hardware/Camera;->open(I)Landroid/hardware/Camera;
move-result-object v0
invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;
move-result-object v5
:try_end_0
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_1
.catchall {:try_start_0 .. :try_end_0} :catchall_0
invoke-virtual {v0}, Landroid/hardware/Camera;->release()V
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
:try_start_1
invoke-virtual {v5}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewFpsRange()Ljava/util/List;
move-result-object v6
const/4 v7, 0x0
if-eqz v6, :cond_0
invoke-interface {v6}, Ljava/util/List;->size()I
move-result v8
const/4 v9, 0x1
sub-int/2addr v8, v9
invoke-interface {v6, v8}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v6
check-cast v6, [I
aget v7, v6, v7
aget v6, v6, v9
goto :goto_0
:cond_0
const/4 v6, 0x0
:goto_0
invoke-virtual {v5}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewSizes()Ljava/util/List;
move-result-object v5
invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v5
:goto_1
invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z
move-result v8
if-eqz v8, :cond_1
invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v8
check-cast v8, Landroid/hardware/Camera$Size;
new-instance v9, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
iget v10, v8, Landroid/hardware/Camera$Size;->width:I
iget v8, v8, Landroid/hardware/Camera$Size;->height:I
invoke-direct {v9, v10, v8, v7, v6}, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;-><init>(IIII)V
invoke-virtual {v0, v9}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
:try_end_1
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0
goto :goto_1
:catch_0
move-exception v5
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "getSupportedFormats() failed on camera index "
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-static {v2, v6, v5}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:cond_1
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v5
const-string v7, " done. Time spent: "
invoke-static {v1, p0, v7}, Lf/e/c/a/a;->F(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p0
sub-long/2addr v5, v3
invoke-virtual {p0, v5, v6}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string v1, " ms."
invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v2, p0}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-object v0
:catchall_0
move-exception p0
goto :goto_2
:catch_1
move-exception v1
:try_start_2
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Open camera failed on camera index "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v2, p0, v1}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
new-instance p0, Ljava/util/ArrayList;
invoke-direct {p0}, Ljava/util/ArrayList;-><init>()V
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_0
if-eqz v0, :cond_2
invoke-virtual {v0}, Landroid/hardware/Camera;->release()V
:cond_2
return-object p0
:goto_2
if-eqz v0, :cond_3
invoke-virtual {v0}, Landroid/hardware/Camera;->release()V
:cond_3
throw p0
.end method
.method public static getCameraIndex(Ljava/lang/String;)I
.locals 2
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "getCameraIndex: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "Camera1Enumerator"
invoke-static {v1, v0}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
const/4 v0, 0x0
:goto_0
invoke-static {}, Landroid/hardware/Camera;->getNumberOfCameras()I
move-result v1
if-ge v0, v1, :cond_1
invoke-static {v0}, Lorg/webrtc/Camera1Enumerator;->getDeviceName(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_0
return v0
:cond_0
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_1
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "No such camera: "
invoke-static {v1, p0}, Lf/e/c/a/a;->q(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static getCameraInfo(I)Landroid/hardware/Camera$CameraInfo;
.locals 3
new-instance v0, Landroid/hardware/Camera$CameraInfo;
invoke-direct {v0}, Landroid/hardware/Camera$CameraInfo;-><init>()V
:try_start_0
invoke-static {p0, v0}, Landroid/hardware/Camera;->getCameraInfo(ILandroid/hardware/Camera$CameraInfo;)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
return-object v0
:catch_0
move-exception v0
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "getCameraInfo failed on index "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
const-string v1, "Camera1Enumerator"
invoke-static {v1, p0, v0}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
const/4 p0, 0x0
return-object p0
.end method
.method public static getDeviceName(I)Ljava/lang/String;
.locals 4
invoke-static {p0}, Lorg/webrtc/Camera1Enumerator;->getCameraInfo(I)Landroid/hardware/Camera$CameraInfo;
move-result-object v0
if-nez v0, :cond_0
const/4 p0, 0x0
return-object p0
:cond_0
iget v1, v0, Landroid/hardware/Camera$CameraInfo;->facing:I
const/4 v2, 0x1
if-ne v1, v2, :cond_1
const-string v1, "front"
goto :goto_0
:cond_1
const-string v1, "back"
:goto_0
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Camera "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p0, ", Facing "
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, ", Orientation "
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget p0, v0, Landroid/hardware/Camera$CameraInfo;->orientation:I
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static declared-synchronized getSupportedFormats(I)Ljava/util/List;
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)",
"Ljava/util/List<",
"Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;",
">;"
}
.end annotation
const-class v0, Lorg/webrtc/Camera1Enumerator;
monitor-enter v0
:try_start_0
sget-object v1, Lorg/webrtc/Camera1Enumerator;->cachedSupportedFormats:Ljava/util/List;
if-nez v1, :cond_0
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
sput-object v1, Lorg/webrtc/Camera1Enumerator;->cachedSupportedFormats:Ljava/util/List;
const/4 v1, 0x0
:goto_0
invoke-static {}, Landroid/hardware/Camera;->getNumberOfCameras()I
move-result v2
if-ge v1, v2, :cond_0
sget-object v2, Lorg/webrtc/Camera1Enumerator;->cachedSupportedFormats:Ljava/util/List;
invoke-static {v1}, Lorg/webrtc/Camera1Enumerator;->enumerateFormats(I)Ljava/util/List;
move-result-object v3
invoke-interface {v2, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_0
sget-object v1, Lorg/webrtc/Camera1Enumerator;->cachedSupportedFormats:Ljava/util/List;
invoke-interface {v1, p0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/util/List;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
monitor-exit v0
return-object p0
:catchall_0
move-exception p0
monitor-exit v0
throw p0
.end method
# virtual methods
.method public createCapturer(Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;)Lorg/webrtc/CameraVideoCapturer;
.locals 2
new-instance v0, Lorg/webrtc/Camera1Capturer;
iget-boolean v1, p0, Lorg/webrtc/Camera1Enumerator;->captureToTexture:Z
invoke-direct {v0, p1, p2, v1}, Lorg/webrtc/Camera1Capturer;-><init>(Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;Z)V
return-object v0
.end method
.method public getDeviceNames()[Ljava/lang/String;
.locals 6
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
const/4 v1, 0x0
:goto_0
invoke-static {}, Landroid/hardware/Camera;->getNumberOfCameras()I
move-result v2
if-ge v1, v2, :cond_1
invoke-static {v1}, Lorg/webrtc/Camera1Enumerator;->getDeviceName(I)Ljava/lang/String;
move-result-object v2
const-string v3, "Index: "
const-string v4, "Camera1Enumerator"
if-eqz v2, :cond_0
invoke-virtual {v0, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, ". "
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v4, v2}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_1
:cond_0
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, ". Failed to query camera name."
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v4, v2}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
:goto_1
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_1
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v1
new-array v1, v1, [Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Ljava/lang/String;
return-object v0
.end method
.method public getSupportedFormats(Ljava/lang/String;)Ljava/util/List;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
")",
"Ljava/util/List<",
"Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;",
">;"
}
.end annotation
invoke-static {p1}, Lorg/webrtc/Camera1Enumerator;->getCameraIndex(Ljava/lang/String;)I
move-result p1
invoke-static {p1}, Lorg/webrtc/Camera1Enumerator;->getSupportedFormats(I)Ljava/util/List;
move-result-object p1
return-object p1
.end method
.method public isBackFacing(Ljava/lang/String;)Z
.locals 0
invoke-static {p1}, Lorg/webrtc/Camera1Enumerator;->getCameraIndex(Ljava/lang/String;)I
move-result p1
invoke-static {p1}, Lorg/webrtc/Camera1Enumerator;->getCameraInfo(I)Landroid/hardware/Camera$CameraInfo;
move-result-object p1
if-eqz p1, :cond_0
iget p1, p1, Landroid/hardware/Camera$CameraInfo;->facing:I
if-nez p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public isFrontFacing(Ljava/lang/String;)Z
.locals 1
invoke-static {p1}, Lorg/webrtc/Camera1Enumerator;->getCameraIndex(Ljava/lang/String;)I
move-result p1
invoke-static {p1}, Lorg/webrtc/Camera1Enumerator;->getCameraInfo(I)Landroid/hardware/Camera$CameraInfo;
move-result-object p1
const/4 v0, 0x1
if-eqz p1, :cond_0
iget p1, p1, Landroid/hardware/Camera$CameraInfo;->facing:I
if-ne p1, v0, :cond_0
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method

View file

@ -0,0 +1,93 @@
.class public Lorg/webrtc/Camera1Session$1;
.super Ljava/lang/Object;
.source "Camera1Session.java"
# interfaces
.implements Landroid/hardware/Camera$ErrorCallback;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lorg/webrtc/Camera1Session;->startCapturing()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/Camera1Session;
# direct methods
.method public constructor <init>(Lorg/webrtc/Camera1Session;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/Camera1Session$1;->this$0:Lorg/webrtc/Camera1Session;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public onError(ILandroid/hardware/Camera;)V
.locals 1
const/16 p2, 0x64
if-ne p1, p2, :cond_0
const-string p2, "Camera server died!"
goto :goto_0
:cond_0
const-string p2, "Camera error: "
invoke-static {p2, p1}, Lf/e/c/a/a;->i(Ljava/lang/String;I)Ljava/lang/String;
move-result-object p2
:goto_0
const-string v0, "Camera1Session"
invoke-static {v0, p2}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
iget-object v0, p0, Lorg/webrtc/Camera1Session$1;->this$0:Lorg/webrtc/Camera1Session;
invoke-static {v0}, Lorg/webrtc/Camera1Session;->access$000(Lorg/webrtc/Camera1Session;)V
const/4 v0, 0x2
if-ne p1, v0, :cond_1
iget-object p1, p0, Lorg/webrtc/Camera1Session$1;->this$0:Lorg/webrtc/Camera1Session;
invoke-static {p1}, Lorg/webrtc/Camera1Session;->access$100(Lorg/webrtc/Camera1Session;)Lorg/webrtc/CameraSession$Events;
move-result-object p1
iget-object p2, p0, Lorg/webrtc/Camera1Session$1;->this$0:Lorg/webrtc/Camera1Session;
invoke-interface {p1, p2}, Lorg/webrtc/CameraSession$Events;->onCameraDisconnected(Lorg/webrtc/CameraSession;)V
goto :goto_1
:cond_1
iget-object p1, p0, Lorg/webrtc/Camera1Session$1;->this$0:Lorg/webrtc/Camera1Session;
invoke-static {p1}, Lorg/webrtc/Camera1Session;->access$100(Lorg/webrtc/Camera1Session;)Lorg/webrtc/CameraSession$Events;
move-result-object p1
iget-object v0, p0, Lorg/webrtc/Camera1Session$1;->this$0:Lorg/webrtc/Camera1Session;
invoke-interface {p1, v0, p2}, Lorg/webrtc/CameraSession$Events;->onCameraError(Lorg/webrtc/CameraSession;Ljava/lang/String;)V
:goto_1
return-void
.end method

View file

@ -0,0 +1,219 @@
.class public Lorg/webrtc/Camera1Session$2;
.super Ljava/lang/Object;
.source "Camera1Session.java"
# interfaces
.implements Landroid/hardware/Camera$PreviewCallback;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lorg/webrtc/Camera1Session;->listenForBytebufferFrames()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/Camera1Session;
# direct methods
.method public constructor <init>(Lorg/webrtc/Camera1Session;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/Camera1Session$2;->this$0:Lorg/webrtc/Camera1Session;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public synthetic a([B)V
.locals 2
iget-object v0, p0, Lorg/webrtc/Camera1Session$2;->this$0:Lorg/webrtc/Camera1Session;
invoke-static {v0}, Lorg/webrtc/Camera1Session;->access$400(Lorg/webrtc/Camera1Session;)Lorg/webrtc/Camera1Session$SessionState;
move-result-object v0
sget-object v1, Lorg/webrtc/Camera1Session$SessionState;->RUNNING:Lorg/webrtc/Camera1Session$SessionState;
if-ne v0, v1, :cond_0
iget-object v0, p0, Lorg/webrtc/Camera1Session$2;->this$0:Lorg/webrtc/Camera1Session;
invoke-static {v0}, Lorg/webrtc/Camera1Session;->access$300(Lorg/webrtc/Camera1Session;)Landroid/hardware/Camera;
move-result-object v0
invoke-virtual {v0, p1}, Landroid/hardware/Camera;->addCallbackBuffer([B)V
:cond_0
return-void
.end method
.method public synthetic b([B)V
.locals 2
iget-object v0, p0, Lorg/webrtc/Camera1Session$2;->this$0:Lorg/webrtc/Camera1Session;
invoke-static {v0}, Lorg/webrtc/Camera1Session;->access$1000(Lorg/webrtc/Camera1Session;)Landroid/os/Handler;
move-result-object v0
new-instance v1, Lf0/c/c;
invoke-direct {v1, p0, p1}, Lf0/c/c;-><init>(Lorg/webrtc/Camera1Session$2;[B)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method
.method public onPreviewFrame([BLandroid/hardware/Camera;)V
.locals 6
iget-object v0, p0, Lorg/webrtc/Camera1Session$2;->this$0:Lorg/webrtc/Camera1Session;
invoke-static {v0}, Lorg/webrtc/Camera1Session;->access$200(Lorg/webrtc/Camera1Session;)V
iget-object v0, p0, Lorg/webrtc/Camera1Session$2;->this$0:Lorg/webrtc/Camera1Session;
invoke-static {v0}, Lorg/webrtc/Camera1Session;->access$300(Lorg/webrtc/Camera1Session;)Landroid/hardware/Camera;
move-result-object v0
const-string v1, "Camera1Session"
if-eq p2, v0, :cond_0
const-string p1, "Callback from a different camera. This should never happen."
invoke-static {v1, p1}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return-void
:cond_0
iget-object p2, p0, Lorg/webrtc/Camera1Session$2;->this$0:Lorg/webrtc/Camera1Session;
invoke-static {p2}, Lorg/webrtc/Camera1Session;->access$400(Lorg/webrtc/Camera1Session;)Lorg/webrtc/Camera1Session$SessionState;
move-result-object p2
sget-object v0, Lorg/webrtc/Camera1Session$SessionState;->RUNNING:Lorg/webrtc/Camera1Session$SessionState;
if-eq p2, v0, :cond_1
const-string p1, "Bytebuffer frame captured but camera is no longer running."
invoke-static {v1, p1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
:cond_1
sget-object p2, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v0
invoke-virtual {p2, v0, v1}, Ljava/util/concurrent/TimeUnit;->toNanos(J)J
move-result-wide v0
iget-object p2, p0, Lorg/webrtc/Camera1Session$2;->this$0:Lorg/webrtc/Camera1Session;
invoke-static {p2}, Lorg/webrtc/Camera1Session;->access$500(Lorg/webrtc/Camera1Session;)Z
move-result p2
if-nez p2, :cond_2
sget-object p2, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v2
iget-object v4, p0, Lorg/webrtc/Camera1Session$2;->this$0:Lorg/webrtc/Camera1Session;
invoke-static {v4}, Lorg/webrtc/Camera1Session;->access$600(Lorg/webrtc/Camera1Session;)J
move-result-wide v4
sub-long/2addr v2, v4
invoke-virtual {p2, v2, v3}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J
move-result-wide v2
long-to-int p2, v2
invoke-static {}, Lorg/webrtc/Camera1Session;->access$700()Lorg/webrtc/Histogram;
move-result-object v2
invoke-virtual {v2, p2}, Lorg/webrtc/Histogram;->addSample(I)V
iget-object p2, p0, Lorg/webrtc/Camera1Session$2;->this$0:Lorg/webrtc/Camera1Session;
const/4 v2, 0x1
invoke-static {p2, v2}, Lorg/webrtc/Camera1Session;->access$502(Lorg/webrtc/Camera1Session;Z)Z
:cond_2
new-instance p2, Lorg/webrtc/NV21Buffer;
iget-object v2, p0, Lorg/webrtc/Camera1Session$2;->this$0:Lorg/webrtc/Camera1Session;
invoke-static {v2}, Lorg/webrtc/Camera1Session;->access$800(Lorg/webrtc/Camera1Session;)Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
move-result-object v2
iget v2, v2, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->width:I
iget-object v3, p0, Lorg/webrtc/Camera1Session$2;->this$0:Lorg/webrtc/Camera1Session;
invoke-static {v3}, Lorg/webrtc/Camera1Session;->access$800(Lorg/webrtc/Camera1Session;)Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
move-result-object v3
iget v3, v3, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->height:I
new-instance v4, Lf0/c/d;
invoke-direct {v4, p0, p1}, Lf0/c/d;-><init>(Lorg/webrtc/Camera1Session$2;[B)V
invoke-direct {p2, p1, v2, v3, v4}, Lorg/webrtc/NV21Buffer;-><init>([BIILjava/lang/Runnable;)V
new-instance p1, Lorg/webrtc/VideoFrame;
iget-object v2, p0, Lorg/webrtc/Camera1Session$2;->this$0:Lorg/webrtc/Camera1Session;
invoke-static {v2}, Lorg/webrtc/Camera1Session;->access$900(Lorg/webrtc/Camera1Session;)I
move-result v2
invoke-direct {p1, p2, v2, v0, v1}, Lorg/webrtc/VideoFrame;-><init>(Lorg/webrtc/VideoFrame$Buffer;IJ)V
iget-object p2, p0, Lorg/webrtc/Camera1Session$2;->this$0:Lorg/webrtc/Camera1Session;
invoke-static {p2}, Lorg/webrtc/Camera1Session;->access$100(Lorg/webrtc/Camera1Session;)Lorg/webrtc/CameraSession$Events;
move-result-object p2
iget-object v0, p0, Lorg/webrtc/Camera1Session$2;->this$0:Lorg/webrtc/Camera1Session;
invoke-interface {p2, v0, p1}, Lorg/webrtc/CameraSession$Events;->onFrameCaptured(Lorg/webrtc/CameraSession;Lorg/webrtc/VideoFrame;)V
invoke-virtual {p1}, Lorg/webrtc/VideoFrame;->release()V
return-void
.end method

View file

@ -0,0 +1,111 @@
.class public final enum Lorg/webrtc/Camera1Session$SessionState;
.super Ljava/lang/Enum;
.source "Camera1Session.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/Camera1Session;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4019
name = "SessionState"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Enum<",
"Lorg/webrtc/Camera1Session$SessionState;",
">;"
}
.end annotation
# static fields
.field public static final synthetic $VALUES:[Lorg/webrtc/Camera1Session$SessionState;
.field public static final enum RUNNING:Lorg/webrtc/Camera1Session$SessionState;
.field public static final enum STOPPED:Lorg/webrtc/Camera1Session$SessionState;
# direct methods
.method public static constructor <clinit>()V
.locals 5
new-instance v0, Lorg/webrtc/Camera1Session$SessionState;
const-string v1, "RUNNING"
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lorg/webrtc/Camera1Session$SessionState;-><init>(Ljava/lang/String;I)V
sput-object v0, Lorg/webrtc/Camera1Session$SessionState;->RUNNING:Lorg/webrtc/Camera1Session$SessionState;
new-instance v0, Lorg/webrtc/Camera1Session$SessionState;
const-string v1, "STOPPED"
const/4 v3, 0x1
invoke-direct {v0, v1, v3}, Lorg/webrtc/Camera1Session$SessionState;-><init>(Ljava/lang/String;I)V
sput-object v0, Lorg/webrtc/Camera1Session$SessionState;->STOPPED:Lorg/webrtc/Camera1Session$SessionState;
const/4 v1, 0x2
new-array v1, v1, [Lorg/webrtc/Camera1Session$SessionState;
sget-object v4, Lorg/webrtc/Camera1Session$SessionState;->RUNNING:Lorg/webrtc/Camera1Session$SessionState;
aput-object v4, v1, v2
aput-object v0, v1, v3
sput-object v1, Lorg/webrtc/Camera1Session$SessionState;->$VALUES:[Lorg/webrtc/Camera1Session$SessionState;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;I)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method public static valueOf(Ljava/lang/String;)Lorg/webrtc/Camera1Session$SessionState;
.locals 1
const-class v0, Lorg/webrtc/Camera1Session$SessionState;
invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
move-result-object p0
check-cast p0, Lorg/webrtc/Camera1Session$SessionState;
return-object p0
.end method
.method public static values()[Lorg/webrtc/Camera1Session$SessionState;
.locals 1
sget-object v0, Lorg/webrtc/Camera1Session$SessionState;->$VALUES:[Lorg/webrtc/Camera1Session$SessionState;
invoke-virtual {v0}, [Lorg/webrtc/Camera1Session$SessionState;->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lorg/webrtc/Camera1Session$SessionState;
return-object v0
.end method

View file

@ -0,0 +1,962 @@
.class public Lorg/webrtc/Camera1Session;
.super Ljava/lang/Object;
.source "Camera1Session.java"
# interfaces
.implements Lorg/webrtc/CameraSession;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/webrtc/Camera1Session$SessionState;
}
.end annotation
# static fields
.field public static final NUMBER_OF_CAPTURE_BUFFERS:I = 0x3
.field public static final TAG:Ljava/lang/String; = "Camera1Session"
.field public static final camera1ResolutionHistogram:Lorg/webrtc/Histogram;
.field public static final camera1StartTimeMsHistogram:Lorg/webrtc/Histogram;
.field public static final camera1StopTimeMsHistogram:Lorg/webrtc/Histogram;
# instance fields
.field public final applicationContext:Landroid/content/Context;
.field public final camera:Landroid/hardware/Camera;
.field public final cameraId:I
.field public final cameraThreadHandler:Landroid/os/Handler;
.field public final captureFormat:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
.field public final captureToTexture:Z
.field public final constructionTimeNs:J
.field public final events:Lorg/webrtc/CameraSession$Events;
.field public firstFrameReported:Z
.field public final info:Landroid/hardware/Camera$CameraInfo;
.field public state:Lorg/webrtc/Camera1Session$SessionState;
.field public final surfaceTextureHelper:Lorg/webrtc/SurfaceTextureHelper;
# direct methods
.method public static constructor <clinit>()V
.locals 4
const-string v0, "WebRTC.Android.Camera1.StartTimeMs"
const/4 v1, 0x1
const/16 v2, 0x2710
const/16 v3, 0x32
invoke-static {v0, v1, v2, v3}, Lorg/webrtc/Histogram;->createCounts(Ljava/lang/String;III)Lorg/webrtc/Histogram;
move-result-object v0
sput-object v0, Lorg/webrtc/Camera1Session;->camera1StartTimeMsHistogram:Lorg/webrtc/Histogram;
const-string v0, "WebRTC.Android.Camera1.StopTimeMs"
invoke-static {v0, v1, v2, v3}, Lorg/webrtc/Histogram;->createCounts(Ljava/lang/String;III)Lorg/webrtc/Histogram;
move-result-object v0
sput-object v0, Lorg/webrtc/Camera1Session;->camera1StopTimeMsHistogram:Lorg/webrtc/Histogram;
sget-object v0, Lorg/webrtc/CameraEnumerationAndroid;->COMMON_RESOLUTIONS:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
const-string v1, "WebRTC.Android.Camera1.Resolution"
invoke-static {v1, v0}, Lorg/webrtc/Histogram;->createEnumeration(Ljava/lang/String;I)Lorg/webrtc/Histogram;
move-result-object v0
sput-object v0, Lorg/webrtc/Camera1Session;->camera1ResolutionHistogram:Lorg/webrtc/Histogram;
return-void
.end method
.method public constructor <init>(Lorg/webrtc/CameraSession$Events;ZLandroid/content/Context;Lorg/webrtc/SurfaceTextureHelper;ILandroid/hardware/Camera;Landroid/hardware/Camera$CameraInfo;Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;J)V
.locals 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Create new camera1 session on camera "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "Camera1Session"
invoke-static {v1, v0}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Landroid/os/Handler;
invoke-direct {v0}, Landroid/os/Handler;-><init>()V
iput-object v0, p0, Lorg/webrtc/Camera1Session;->cameraThreadHandler:Landroid/os/Handler;
iput-object p1, p0, Lorg/webrtc/Camera1Session;->events:Lorg/webrtc/CameraSession$Events;
iput-boolean p2, p0, Lorg/webrtc/Camera1Session;->captureToTexture:Z
iput-object p3, p0, Lorg/webrtc/Camera1Session;->applicationContext:Landroid/content/Context;
iput-object p4, p0, Lorg/webrtc/Camera1Session;->surfaceTextureHelper:Lorg/webrtc/SurfaceTextureHelper;
iput p5, p0, Lorg/webrtc/Camera1Session;->cameraId:I
iput-object p6, p0, Lorg/webrtc/Camera1Session;->camera:Landroid/hardware/Camera;
iput-object p7, p0, Lorg/webrtc/Camera1Session;->info:Landroid/hardware/Camera$CameraInfo;
iput-object p8, p0, Lorg/webrtc/Camera1Session;->captureFormat:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
iput-wide p9, p0, Lorg/webrtc/Camera1Session;->constructionTimeNs:J
iget p1, p8, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->width:I
iget p2, p8, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->height:I
invoke-virtual {p4, p1, p2}, Lorg/webrtc/SurfaceTextureHelper;->setTextureSize(II)V
invoke-direct {p0}, Lorg/webrtc/Camera1Session;->startCapturing()V
return-void
.end method
.method public static synthetic access$000(Lorg/webrtc/Camera1Session;)V
.locals 0
invoke-direct {p0}, Lorg/webrtc/Camera1Session;->stopInternal()V
return-void
.end method
.method public static synthetic access$100(Lorg/webrtc/Camera1Session;)Lorg/webrtc/CameraSession$Events;
.locals 0
iget-object p0, p0, Lorg/webrtc/Camera1Session;->events:Lorg/webrtc/CameraSession$Events;
return-object p0
.end method
.method public static synthetic access$1000(Lorg/webrtc/Camera1Session;)Landroid/os/Handler;
.locals 0
iget-object p0, p0, Lorg/webrtc/Camera1Session;->cameraThreadHandler:Landroid/os/Handler;
return-object p0
.end method
.method public static synthetic access$200(Lorg/webrtc/Camera1Session;)V
.locals 0
invoke-direct {p0}, Lorg/webrtc/Camera1Session;->checkIsOnCameraThread()V
return-void
.end method
.method public static synthetic access$300(Lorg/webrtc/Camera1Session;)Landroid/hardware/Camera;
.locals 0
iget-object p0, p0, Lorg/webrtc/Camera1Session;->camera:Landroid/hardware/Camera;
return-object p0
.end method
.method public static synthetic access$400(Lorg/webrtc/Camera1Session;)Lorg/webrtc/Camera1Session$SessionState;
.locals 0
iget-object p0, p0, Lorg/webrtc/Camera1Session;->state:Lorg/webrtc/Camera1Session$SessionState;
return-object p0
.end method
.method public static synthetic access$500(Lorg/webrtc/Camera1Session;)Z
.locals 0
iget-boolean p0, p0, Lorg/webrtc/Camera1Session;->firstFrameReported:Z
return p0
.end method
.method public static synthetic access$502(Lorg/webrtc/Camera1Session;Z)Z
.locals 0
iput-boolean p1, p0, Lorg/webrtc/Camera1Session;->firstFrameReported:Z
return p1
.end method
.method public static synthetic access$600(Lorg/webrtc/Camera1Session;)J
.locals 2
iget-wide v0, p0, Lorg/webrtc/Camera1Session;->constructionTimeNs:J
return-wide v0
.end method
.method public static synthetic access$700()Lorg/webrtc/Histogram;
.locals 1
sget-object v0, Lorg/webrtc/Camera1Session;->camera1StartTimeMsHistogram:Lorg/webrtc/Histogram;
return-object v0
.end method
.method public static synthetic access$800(Lorg/webrtc/Camera1Session;)Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
.locals 0
iget-object p0, p0, Lorg/webrtc/Camera1Session;->captureFormat:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
return-object p0
.end method
.method public static synthetic access$900(Lorg/webrtc/Camera1Session;)I
.locals 0
invoke-direct {p0}, Lorg/webrtc/Camera1Session;->getFrameOrientation()I
move-result p0
return p0
.end method
.method public static cameraReleaseSafe(Landroid/hardware/Camera;)V
.locals 0
:try_start_0
invoke-virtual {p0}, Landroid/hardware/Camera;->release()V
:try_end_0
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
:catch_0
return-void
.end method
.method private checkIsOnCameraThread()V
.locals 2
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/Camera1Session;->cameraThreadHandler: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_0
return-void
:cond_0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Wrong thread"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static create(Lorg/webrtc/CameraSession$CreateSessionCallback;Lorg/webrtc/CameraSession$Events;ZLandroid/content/Context;Lorg/webrtc/SurfaceTextureHelper;IIII)V
.locals 14
move-object v1, p0
move/from16 v0, p2
move/from16 v7, p5
move/from16 v2, p6
move/from16 v3, p7
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v11
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "Open camera "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
const-string v5, "Camera1Session"
invoke-static {v5, v4}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
invoke-interface {p1}, Lorg/webrtc/CameraSession$Events;->onCameraOpening()V
:try_start_0
invoke-static/range {p5 .. p5}, Landroid/hardware/Camera;->open(I)Landroid/hardware/Camera;
move-result-object v8
:try_end_0
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_3
if-nez v8, :cond_0
sget-object v0, Lorg/webrtc/CameraSession$FailureType;->ERROR:Lorg/webrtc/CameraSession$FailureType;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "android.hardware.Camera.open returned null for camera id = "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-interface {p0, v0, v2}, Lorg/webrtc/CameraSession$CreateSessionCallback;->onFailure(Lorg/webrtc/CameraSession$FailureType;Ljava/lang/String;)V
return-void
:cond_0
:try_start_1
invoke-virtual/range {p4 .. p4}, Lorg/webrtc/SurfaceTextureHelper;->getSurfaceTexture()Landroid/graphics/SurfaceTexture;
move-result-object v4
invoke-virtual {v8, v4}, Landroid/hardware/Camera;->setPreviewTexture(Landroid/graphics/SurfaceTexture;)V
:try_end_1
.catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_2
.catch Ljava/lang/RuntimeException; {:try_start_1 .. :try_end_1} :catch_1
new-instance v9, Landroid/hardware/Camera$CameraInfo;
invoke-direct {v9}, Landroid/hardware/Camera$CameraInfo;-><init>()V
invoke-static {v7, v9}, Landroid/hardware/Camera;->getCameraInfo(ILandroid/hardware/Camera$CameraInfo;)V
:try_start_2
invoke-virtual {v8}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;
move-result-object v4
move/from16 v5, p8
invoke-static {v4, v2, v3, v5}, Lorg/webrtc/Camera1Session;->findClosestCaptureFormat(Landroid/hardware/Camera$Parameters;III)Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
move-result-object v10
invoke-static {v4, v2, v3}, Lorg/webrtc/Camera1Session;->findClosestPictureSize(Landroid/hardware/Camera$Parameters;II)Lorg/webrtc/Size;
move-result-object v2
invoke-static {v8, v4, v10, v2, v0}, Lorg/webrtc/Camera1Session;->updateCameraParameters(Landroid/hardware/Camera;Landroid/hardware/Camera$Parameters;Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;Lorg/webrtc/Size;Z)V
:try_end_2
.catch Ljava/lang/RuntimeException; {:try_start_2 .. :try_end_2} :catch_0
const/4 v2, 0x0
if-nez v0, :cond_1
invoke-virtual {v10}, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->frameSize()I
move-result v3
const/4 v4, 0x0
:goto_0
const/4 v5, 0x3
if-ge v4, v5, :cond_1
invoke-static {v3}, Ljava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;
move-result-object v5
invoke-virtual {v5}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v5
invoke-virtual {v8, v5}, Landroid/hardware/Camera;->addCallbackBuffer([B)V
add-int/lit8 v4, v4, 0x1
goto :goto_0
:cond_1
invoke-virtual {v8, v2}, Landroid/hardware/Camera;->setDisplayOrientation(I)V
new-instance v13, Lorg/webrtc/Camera1Session;
move-object v2, v13
move-object v3, p1
move/from16 v4, p2
move-object/from16 v5, p3
move-object/from16 v6, p4
move/from16 v7, p5
invoke-direct/range {v2 .. v12}, Lorg/webrtc/Camera1Session;-><init>(Lorg/webrtc/CameraSession$Events;ZLandroid/content/Context;Lorg/webrtc/SurfaceTextureHelper;ILandroid/hardware/Camera;Landroid/hardware/Camera$CameraInfo;Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;J)V
invoke-interface {p0, v13}, Lorg/webrtc/CameraSession$CreateSessionCallback;->onDone(Lorg/webrtc/CameraSession;)V
return-void
:catch_0
move-exception v0
invoke-static {v8}, Lorg/webrtc/Camera1Session;->cameraReleaseSafe(Landroid/hardware/Camera;)V
sget-object v2, Lorg/webrtc/CameraSession$FailureType;->ERROR:Lorg/webrtc/CameraSession$FailureType;
invoke-virtual {v0}, Ljava/lang/RuntimeException;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-interface {p0, v2, v0}, Lorg/webrtc/CameraSession$CreateSessionCallback;->onFailure(Lorg/webrtc/CameraSession$FailureType;Ljava/lang/String;)V
return-void
:catch_1
move-exception v0
goto :goto_1
:catch_2
move-exception v0
:goto_1
invoke-static {v8}, Lorg/webrtc/Camera1Session;->cameraReleaseSafe(Landroid/hardware/Camera;)V
sget-object v2, Lorg/webrtc/CameraSession$FailureType;->ERROR:Lorg/webrtc/CameraSession$FailureType;
invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-interface {p0, v2, v0}, Lorg/webrtc/CameraSession$CreateSessionCallback;->onFailure(Lorg/webrtc/CameraSession$FailureType;Ljava/lang/String;)V
return-void
:catch_3
move-exception v0
move-object v2, v0
sget-object v0, Lorg/webrtc/CameraSession$FailureType;->ERROR:Lorg/webrtc/CameraSession$FailureType;
invoke-virtual {v2}, Ljava/lang/RuntimeException;->getMessage()Ljava/lang/String;
move-result-object v2
invoke-interface {p0, v0, v2}, Lorg/webrtc/CameraSession$CreateSessionCallback;->onFailure(Lorg/webrtc/CameraSession$FailureType;Ljava/lang/String;)V
return-void
.end method
.method public static findClosestCaptureFormat(Landroid/hardware/Camera$Parameters;III)Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
.locals 3
invoke-virtual {p0}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewFpsRange()Ljava/util/List;
move-result-object v0
invoke-static {v0}, Lorg/webrtc/Camera1Enumerator;->convertFramerates(Ljava/util/List;)Ljava/util/List;
move-result-object v0
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Available fps ranges: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
const-string v2, "Camera1Session"
invoke-static {v2, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
invoke-static {v0, p3}, Lorg/webrtc/CameraEnumerationAndroid;->getClosestSupportedFramerateRange(Ljava/util/List;I)Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
move-result-object p3
invoke-virtual {p0}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewSizes()Ljava/util/List;
move-result-object p0
invoke-static {p0}, Lorg/webrtc/Camera1Enumerator;->convertSizes(Ljava/util/List;)Ljava/util/List;
move-result-object p0
invoke-static {p0, p1, p2}, Lorg/webrtc/CameraEnumerationAndroid;->getClosestSupportedSize(Ljava/util/List;II)Lorg/webrtc/Size;
move-result-object p0
sget-object p1, Lorg/webrtc/Camera1Session;->camera1ResolutionHistogram:Lorg/webrtc/Histogram;
invoke-static {p1, p0}, Lorg/webrtc/CameraEnumerationAndroid;->reportCameraResolution(Lorg/webrtc/Histogram;Lorg/webrtc/Size;)V
new-instance p1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
iget p2, p0, Lorg/webrtc/Size;->width:I
iget p0, p0, Lorg/webrtc/Size;->height:I
invoke-direct {p1, p2, p0, p3}, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;-><init>(IILorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;)V
return-object p1
.end method
.method public static findClosestPictureSize(Landroid/hardware/Camera$Parameters;II)Lorg/webrtc/Size;
.locals 0
invoke-virtual {p0}, Landroid/hardware/Camera$Parameters;->getSupportedPictureSizes()Ljava/util/List;
move-result-object p0
invoke-static {p0}, Lorg/webrtc/Camera1Enumerator;->convertSizes(Ljava/util/List;)Ljava/util/List;
move-result-object p0
invoke-static {p0, p1, p2}, Lorg/webrtc/CameraEnumerationAndroid;->getClosestSupportedSize(Ljava/util/List;II)Lorg/webrtc/Size;
move-result-object p0
return-object p0
.end method
.method private getFrameOrientation()I
.locals 2
iget-object v0, p0, Lorg/webrtc/Camera1Session;->applicationContext:Landroid/content/Context;
invoke-static {v0}, Lf0/c/g0;->b(Landroid/content/Context;)I
move-result v0
iget-object v1, p0, Lorg/webrtc/Camera1Session;->info:Landroid/hardware/Camera$CameraInfo;
iget v1, v1, Landroid/hardware/Camera$CameraInfo;->facing:I
if-nez v1, :cond_0
rsub-int v0, v0, 0x168
:cond_0
iget-object v1, p0, Lorg/webrtc/Camera1Session;->info:Landroid/hardware/Camera$CameraInfo;
iget v1, v1, Landroid/hardware/Camera$CameraInfo;->orientation:I
add-int/2addr v1, v0
rem-int/lit16 v1, v1, 0x168
return v1
.end method
.method private listenForBytebufferFrames()V
.locals 2
iget-object v0, p0, Lorg/webrtc/Camera1Session;->camera:Landroid/hardware/Camera;
new-instance v1, Lorg/webrtc/Camera1Session$2;
invoke-direct {v1, p0}, Lorg/webrtc/Camera1Session$2;-><init>(Lorg/webrtc/Camera1Session;)V
invoke-virtual {v0, v1}, Landroid/hardware/Camera;->setPreviewCallbackWithBuffer(Landroid/hardware/Camera$PreviewCallback;)V
return-void
.end method
.method private listenForTextureFrames()V
.locals 2
iget-object v0, p0, Lorg/webrtc/Camera1Session;->surfaceTextureHelper:Lorg/webrtc/SurfaceTextureHelper;
new-instance v1, Lf0/c/e;
invoke-direct {v1, p0}, Lf0/c/e;-><init>(Lorg/webrtc/Camera1Session;)V
invoke-virtual {v0, v1}, Lorg/webrtc/SurfaceTextureHelper;->startListening(Lorg/webrtc/VideoSink;)V
return-void
.end method
.method private startCapturing()V
.locals 2
const-string v0, "Camera1Session"
const-string v1, "Start capturing"
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
invoke-direct {p0}, Lorg/webrtc/Camera1Session;->checkIsOnCameraThread()V
sget-object v0, Lorg/webrtc/Camera1Session$SessionState;->RUNNING:Lorg/webrtc/Camera1Session$SessionState;
iput-object v0, p0, Lorg/webrtc/Camera1Session;->state:Lorg/webrtc/Camera1Session$SessionState;
iget-object v0, p0, Lorg/webrtc/Camera1Session;->camera:Landroid/hardware/Camera;
new-instance v1, Lorg/webrtc/Camera1Session$1;
invoke-direct {v1, p0}, Lorg/webrtc/Camera1Session$1;-><init>(Lorg/webrtc/Camera1Session;)V
invoke-virtual {v0, v1}, Landroid/hardware/Camera;->setErrorCallback(Landroid/hardware/Camera$ErrorCallback;)V
iget-boolean v0, p0, Lorg/webrtc/Camera1Session;->captureToTexture:Z
if-eqz v0, :cond_0
invoke-direct {p0}, Lorg/webrtc/Camera1Session;->listenForTextureFrames()V
goto :goto_0
:cond_0
invoke-direct {p0}, Lorg/webrtc/Camera1Session;->listenForBytebufferFrames()V
:goto_0
:try_start_0
iget-object v0, p0, Lorg/webrtc/Camera1Session;->camera:Landroid/hardware/Camera;
invoke-virtual {v0}, Landroid/hardware/Camera;->startPreview()V
:try_end_0
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_1
:catch_0
move-exception v0
invoke-direct {p0}, Lorg/webrtc/Camera1Session;->stopInternal()V
iget-object v1, p0, Lorg/webrtc/Camera1Session;->events:Lorg/webrtc/CameraSession$Events;
invoke-virtual {v0}, Ljava/lang/RuntimeException;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-interface {v1, p0, v0}, Lorg/webrtc/CameraSession$Events;->onCameraError(Lorg/webrtc/CameraSession;Ljava/lang/String;)V
:goto_1
return-void
.end method
.method private stopInternal()V
.locals 3
const-string v0, "Camera1Session"
const-string v1, "Stop internal"
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
invoke-direct {p0}, Lorg/webrtc/Camera1Session;->checkIsOnCameraThread()V
iget-object v1, p0, Lorg/webrtc/Camera1Session;->state:Lorg/webrtc/Camera1Session$SessionState;
sget-object v2, Lorg/webrtc/Camera1Session$SessionState;->STOPPED:Lorg/webrtc/Camera1Session$SessionState;
if-ne v1, v2, :cond_0
const-string v1, "Camera is already stopped"
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
:cond_0
iput-object v2, p0, Lorg/webrtc/Camera1Session;->state:Lorg/webrtc/Camera1Session$SessionState;
iget-object v1, p0, Lorg/webrtc/Camera1Session;->surfaceTextureHelper:Lorg/webrtc/SurfaceTextureHelper;
invoke-virtual {v1}, Lorg/webrtc/SurfaceTextureHelper;->stopListening()V
iget-object v1, p0, Lorg/webrtc/Camera1Session;->camera:Landroid/hardware/Camera;
invoke-virtual {v1}, Landroid/hardware/Camera;->stopPreview()V
iget-object v1, p0, Lorg/webrtc/Camera1Session;->camera:Landroid/hardware/Camera;
invoke-static {v1}, Lorg/webrtc/Camera1Session;->cameraReleaseSafe(Landroid/hardware/Camera;)V
iget-object v1, p0, Lorg/webrtc/Camera1Session;->events:Lorg/webrtc/CameraSession$Events;
invoke-interface {v1, p0}, Lorg/webrtc/CameraSession$Events;->onCameraClosed(Lorg/webrtc/CameraSession;)V
const-string v1, "Stop done"
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method public static updateCameraParameters(Landroid/hardware/Camera;Landroid/hardware/Camera$Parameters;Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;Lorg/webrtc/Size;Z)V
.locals 3
invoke-virtual {p1}, Landroid/hardware/Camera$Parameters;->getSupportedFocusModes()Ljava/util/List;
move-result-object v0
iget-object v1, p2, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->framerate:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
iget v2, v1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->min:I
iget v1, v1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->max:I
invoke-virtual {p1, v2, v1}, Landroid/hardware/Camera$Parameters;->setPreviewFpsRange(II)V
iget v1, p2, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->width:I
iget v2, p2, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->height:I
invoke-virtual {p1, v1, v2}, Landroid/hardware/Camera$Parameters;->setPreviewSize(II)V
iget v1, p3, Lorg/webrtc/Size;->width:I
iget p3, p3, Lorg/webrtc/Size;->height:I
invoke-virtual {p1, v1, p3}, Landroid/hardware/Camera$Parameters;->setPictureSize(II)V
if-nez p4, :cond_0
invoke-virtual {p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
const/16 p2, 0x11
invoke-virtual {p1, p2}, Landroid/hardware/Camera$Parameters;->setPreviewFormat(I)V
:cond_0
invoke-virtual {p1}, Landroid/hardware/Camera$Parameters;->isVideoStabilizationSupported()Z
move-result p2
if-eqz p2, :cond_1
const/4 p2, 0x1
invoke-virtual {p1, p2}, Landroid/hardware/Camera$Parameters;->setVideoStabilization(Z)V
:cond_1
const-string p2, "continuous-video"
invoke-interface {v0, p2}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result p3
if-eqz p3, :cond_2
invoke-virtual {p1, p2}, Landroid/hardware/Camera$Parameters;->setFocusMode(Ljava/lang/String;)V
:cond_2
invoke-virtual {p0, p1}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
return-void
.end method
# virtual methods
.method public synthetic a(Lorg/webrtc/VideoFrame;)V
.locals 6
invoke-direct {p0}, Lorg/webrtc/Camera1Session;->checkIsOnCameraThread()V
iget-object v0, p0, Lorg/webrtc/Camera1Session;->state:Lorg/webrtc/Camera1Session$SessionState;
sget-object v1, Lorg/webrtc/Camera1Session$SessionState;->RUNNING:Lorg/webrtc/Camera1Session$SessionState;
if-eq v0, v1, :cond_0
const-string p1, "Camera1Session"
const-string v0, "Texture frame captured but camera is no longer running."
invoke-static {p1, v0}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
:cond_0
iget-boolean v0, p0, Lorg/webrtc/Camera1Session;->firstFrameReported:Z
const/4 v1, 0x1
if-nez v0, :cond_1
sget-object v0, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v2
iget-wide v4, p0, Lorg/webrtc/Camera1Session;->constructionTimeNs:J
sub-long/2addr v2, v4
invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J
move-result-wide v2
long-to-int v0, v2
sget-object v2, Lorg/webrtc/Camera1Session;->camera1StartTimeMsHistogram:Lorg/webrtc/Histogram;
invoke-virtual {v2, v0}, Lorg/webrtc/Histogram;->addSample(I)V
iput-boolean v1, p0, Lorg/webrtc/Camera1Session;->firstFrameReported:Z
:cond_1
new-instance v0, Lorg/webrtc/VideoFrame;
invoke-virtual {p1}, Lorg/webrtc/VideoFrame;->getBuffer()Lorg/webrtc/VideoFrame$Buffer;
move-result-object v2
check-cast v2, Lorg/webrtc/TextureBufferImpl;
iget-object v3, p0, Lorg/webrtc/Camera1Session;->info:Landroid/hardware/Camera$CameraInfo;
iget v3, v3, Landroid/hardware/Camera$CameraInfo;->facing:I
const/4 v4, 0x0
if-ne v3, v1, :cond_2
goto :goto_0
:cond_2
const/4 v1, 0x0
:goto_0
invoke-static {v2, v1, v4}, Lf0/c/g0;->a(Lorg/webrtc/TextureBufferImpl;ZI)Lorg/webrtc/VideoFrame$TextureBuffer;
move-result-object v1
invoke-direct {p0}, Lorg/webrtc/Camera1Session;->getFrameOrientation()I
move-result v2
invoke-virtual {p1}, Lorg/webrtc/VideoFrame;->getTimestampNs()J
move-result-wide v3
invoke-direct {v0, v1, v2, v3, v4}, Lorg/webrtc/VideoFrame;-><init>(Lorg/webrtc/VideoFrame$Buffer;IJ)V
iget-object p1, p0, Lorg/webrtc/Camera1Session;->events:Lorg/webrtc/CameraSession$Events;
invoke-interface {p1, p0, v0}, Lorg/webrtc/CameraSession$Events;->onFrameCaptured(Lorg/webrtc/CameraSession;Lorg/webrtc/VideoFrame;)V
invoke-virtual {v0}, Lorg/webrtc/VideoFrame;->release()V
return-void
.end method
.method public stop()V
.locals 5
const-string v0, "Stop camera1 session on camera "
invoke-static {v0}, Lf/e/c/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lorg/webrtc/Camera1Session;->cameraId:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "Camera1Session"
invoke-static {v1, v0}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
invoke-direct {p0}, Lorg/webrtc/Camera1Session;->checkIsOnCameraThread()V
iget-object v0, p0, Lorg/webrtc/Camera1Session;->state:Lorg/webrtc/Camera1Session$SessionState;
sget-object v1, Lorg/webrtc/Camera1Session$SessionState;->STOPPED:Lorg/webrtc/Camera1Session$SessionState;
if-eq v0, v1, :cond_0
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v0
invoke-direct {p0}, Lorg/webrtc/Camera1Session;->stopInternal()V
sget-object v2, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v3
sub-long/2addr v3, v0
invoke-virtual {v2, v3, v4}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J
move-result-wide v0
long-to-int v1, v0
sget-object v0, Lorg/webrtc/Camera1Session;->camera1StopTimeMsHistogram:Lorg/webrtc/Histogram;
invoke-virtual {v0, v1}, Lorg/webrtc/Histogram;->addSample(I)V
:cond_0
return-void
.end method

View file

@ -0,0 +1,137 @@
.class public Lorg/webrtc/Camera2Capturer;
.super Lorg/webrtc/CameraCapturer;
.source "Camera2Capturer.java"
# annotations
.annotation build Landroid/annotation/TargetApi;
value = 0x15
.end annotation
# instance fields
.field public final cameraManager:Landroid/hardware/camera2/CameraManager;
.field public final context:Landroid/content/Context;
# direct methods
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;)V
.locals 1
new-instance v0, Lorg/webrtc/Camera2Enumerator;
invoke-direct {v0, p1}, Lorg/webrtc/Camera2Enumerator;-><init>(Landroid/content/Context;)V
invoke-direct {p0, p2, p3, v0}, Lorg/webrtc/CameraCapturer;-><init>(Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;Lorg/webrtc/CameraEnumerator;)V
iput-object p1, p0, Lorg/webrtc/Camera2Capturer;->context:Landroid/content/Context;
const-string p2, "camera"
invoke-virtual {p1, p2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroid/hardware/camera2/CameraManager;
iput-object p1, p0, Lorg/webrtc/Camera2Capturer;->cameraManager:Landroid/hardware/camera2/CameraManager;
return-void
.end method
# virtual methods
.method public bridge synthetic changeCaptureFormat(III)V
.locals 0
invoke-super {p0, p1, p2, p3}, Lorg/webrtc/CameraCapturer;->changeCaptureFormat(III)V
return-void
.end method
.method public createCameraSession(Lorg/webrtc/CameraSession$CreateSessionCallback;Lorg/webrtc/CameraSession$Events;Landroid/content/Context;Lorg/webrtc/SurfaceTextureHelper;Ljava/lang/String;III)V
.locals 10
move-object v0, p0
iget-object v4, v0, Lorg/webrtc/Camera2Capturer;->cameraManager:Landroid/hardware/camera2/CameraManager;
move-object v1, p1
move-object v2, p2
move-object v3, p3
move-object v5, p4
move-object v6, p5
move/from16 v7, p6
move/from16 v8, p7
move/from16 v9, p8
invoke-static/range {v1 .. v9}, Lorg/webrtc/Camera2Session;->create(Lorg/webrtc/CameraSession$CreateSessionCallback;Lorg/webrtc/CameraSession$Events;Landroid/content/Context;Landroid/hardware/camera2/CameraManager;Lorg/webrtc/SurfaceTextureHelper;Ljava/lang/String;III)V
return-void
.end method
.method public bridge synthetic dispose()V
.locals 0
invoke-super {p0}, Lorg/webrtc/CameraCapturer;->dispose()V
return-void
.end method
.method public bridge synthetic initialize(Lorg/webrtc/SurfaceTextureHelper;Landroid/content/Context;Lorg/webrtc/CapturerObserver;)V
.locals 0
invoke-super {p0, p1, p2, p3}, Lorg/webrtc/CameraCapturer;->initialize(Lorg/webrtc/SurfaceTextureHelper;Landroid/content/Context;Lorg/webrtc/CapturerObserver;)V
return-void
.end method
.method public bridge synthetic isScreencast()Z
.locals 1
invoke-super {p0}, Lorg/webrtc/CameraCapturer;->isScreencast()Z
move-result v0
return v0
.end method
.method public bridge synthetic printStackTrace()V
.locals 0
invoke-super {p0}, Lorg/webrtc/CameraCapturer;->printStackTrace()V
return-void
.end method
.method public bridge synthetic startCapture(III)V
.locals 0
invoke-super {p0, p1, p2, p3}, Lorg/webrtc/CameraCapturer;->startCapture(III)V
return-void
.end method
.method public bridge synthetic stopCapture()V
.locals 0
invoke-super {p0}, Lorg/webrtc/CameraCapturer;->stopCapture()V
return-void
.end method
.method public bridge synthetic switchCamera(Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
.locals 0
invoke-super {p0, p1}, Lorg/webrtc/CameraCapturer;->switchCamera(Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
return-void
.end method

View file

@ -0,0 +1,977 @@
.class public Lorg/webrtc/Camera2Enumerator;
.super Ljava/lang/Object;
.source "Camera2Enumerator.java"
# interfaces
.implements Lorg/webrtc/CameraEnumerator;
# annotations
.annotation build Landroid/annotation/TargetApi;
value = 0x15
.end annotation
# static fields
.field public static final NANO_SECONDS_PER_SECOND:D = 1.0E9
.field public static final TAG:Ljava/lang/String; = "Camera2Enumerator"
.field public static final cachedSupportedFormats:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/util/List<",
"Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;",
">;>;"
}
.end annotation
.end field
# instance fields
.field public final cameraManager:Landroid/hardware/camera2/CameraManager;
.field public final context:Landroid/content/Context;
# direct methods
.method public static constructor <clinit>()V
.locals 1
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Lorg/webrtc/Camera2Enumerator;->cachedSupportedFormats:Ljava/util/Map;
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.locals 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lorg/webrtc/Camera2Enumerator;->context:Landroid/content/Context;
const-string v0, "camera"
invoke-virtual {p1, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroid/hardware/camera2/CameraManager;
iput-object p1, p0, Lorg/webrtc/Camera2Enumerator;->cameraManager:Landroid/hardware/camera2/CameraManager;
return-void
.end method
.method public static convertFramerates([Landroid/util/Range;I)Ljava/util/List;
.locals 6
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Landroid/util/Range<",
"Ljava/lang/Integer;",
">;I)",
"Ljava/util/List<",
"Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;",
">;"
}
.end annotation
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
array-length v1, p0
const/4 v2, 0x0
:goto_0
if-ge v2, v1, :cond_0
aget-object v3, p0, v2
new-instance v4, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
invoke-virtual {v3}, Landroid/util/Range;->getLower()Ljava/lang/Comparable;
move-result-object v5
check-cast v5, Ljava/lang/Integer;
invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I
move-result v5
mul-int v5, v5, p1
invoke-virtual {v3}, Landroid/util/Range;->getUpper()Ljava/lang/Comparable;
move-result-object v3
check-cast v3, Ljava/lang/Integer;
invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
move-result v3
mul-int v3, v3, p1
invoke-direct {v4, v5, v3}, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;-><init>(II)V
invoke-virtual {v0, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_0
return-object v0
.end method
.method public static convertSizes([Landroid/util/Size;)Ljava/util/List;
.locals 6
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Landroid/util/Size;",
")",
"Ljava/util/List<",
"Lorg/webrtc/Size;",
">;"
}
.end annotation
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
array-length v1, p0
const/4 v2, 0x0
:goto_0
if-ge v2, v1, :cond_0
aget-object v3, p0, v2
new-instance v4, Lorg/webrtc/Size;
invoke-virtual {v3}, Landroid/util/Size;->getWidth()I
move-result v5
invoke-virtual {v3}, Landroid/util/Size;->getHeight()I
move-result v3
invoke-direct {v4, v5, v3}, Lorg/webrtc/Size;-><init>(II)V
invoke-virtual {v0, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_0
return-object v0
.end method
.method private getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/CameraCharacteristics;
.locals 2
:try_start_0
iget-object v0, p0, Lorg/webrtc/Camera2Enumerator;->cameraManager:Landroid/hardware/camera2/CameraManager;
invoke-virtual {v0, p1}, Landroid/hardware/camera2/CameraManager;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object p1
:try_end_0
.catch Landroid/util/AndroidException; {:try_start_0 .. :try_end_0} :catch_0
return-object p1
:catch_0
move-exception p1
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Camera access exception: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string v0, "Camera2Enumerator"
invoke-static {v0, p1}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
const/4 p1, 0x0
return-object p1
.end method
.method public static getFpsUnitFactor([Landroid/util/Range;)I
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Landroid/util/Range<",
"Ljava/lang/Integer;",
">;)I"
}
.end annotation
array-length v0, p0
const/16 v1, 0x3e8
if-nez v0, :cond_0
return v1
:cond_0
const/4 v0, 0x0
aget-object p0, p0, v0
invoke-virtual {p0}, Landroid/util/Range;->getUpper()Ljava/lang/Comparable;
move-result-object p0
check-cast p0, Ljava/lang/Integer;
invoke-virtual {p0}, Ljava/lang/Integer;->intValue()I
move-result p0
if-ge p0, v1, :cond_1
goto :goto_0
:cond_1
const/4 v1, 0x1
:goto_0
return v1
.end method
.method public static getSupportedFormats(Landroid/content/Context;Ljava/lang/String;)Ljava/util/List;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/lang/String;",
")",
"Ljava/util/List<",
"Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;",
">;"
}
.end annotation
const-string v0, "camera"
invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Landroid/hardware/camera2/CameraManager;
invoke-static {p0, p1}, Lorg/webrtc/Camera2Enumerator;->getSupportedFormats(Landroid/hardware/camera2/CameraManager;Ljava/lang/String;)Ljava/util/List;
move-result-object p0
return-object p0
.end method
.method public static getSupportedFormats(Landroid/hardware/camera2/CameraManager;Ljava/lang/String;)Ljava/util/List;
.locals 14
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/hardware/camera2/CameraManager;",
"Ljava/lang/String;",
")",
"Ljava/util/List<",
"Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;",
">;"
}
.end annotation
sget-object v0, Lorg/webrtc/Camera2Enumerator;->cachedSupportedFormats:Ljava/util/Map;
monitor-enter v0
:try_start_0
sget-object v1, Lorg/webrtc/Camera2Enumerator;->cachedSupportedFormats:Ljava/util/Map;
invoke-interface {v1, p1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_0
sget-object p0, Lorg/webrtc/Camera2Enumerator;->cachedSupportedFormats:Ljava/util/Map;
invoke-interface {p0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/util/List;
monitor-exit v0
return-object p0
:cond_0
const-string v1, "Camera2Enumerator"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Get supported formats for camera index "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "."
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
:try_start_1
invoke-virtual {p0, p1}, Landroid/hardware/camera2/CameraManager;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object p0
:try_end_1
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
:try_start_2
sget-object v3, Landroid/hardware/camera2/CameraCharacteristics;->SCALER_STREAM_CONFIGURATION_MAP:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {p0, v3}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Landroid/hardware/camera2/params/StreamConfigurationMap;
sget-object v4, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {p0, v4}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v4
check-cast v4, [Landroid/util/Range;
invoke-static {v4}, Lorg/webrtc/Camera2Enumerator;->getFpsUnitFactor([Landroid/util/Range;)I
move-result v5
invoke-static {v4, v5}, Lorg/webrtc/Camera2Enumerator;->convertFramerates([Landroid/util/Range;I)Ljava/util/List;
move-result-object v4
invoke-static {p0}, Lorg/webrtc/Camera2Enumerator;->getSupportedSizes(Landroid/hardware/camera2/CameraCharacteristics;)Ljava/util/List;
move-result-object p0
invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v4
const/4 v5, 0x0
const/4 v6, 0x0
:goto_0
invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z
move-result v7
if-eqz v7, :cond_1
invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v7
check-cast v7, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
iget v7, v7, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->max:I
invoke-static {v6, v7}, Ljava/lang/Math;->max(II)I
move-result v6
goto :goto_0
:cond_1
new-instance v4, Ljava/util/ArrayList;
invoke-direct {v4}, Ljava/util/ArrayList;-><init>()V
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_1
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v7
if-eqz v7, :cond_3
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v7
check-cast v7, Lorg/webrtc/Size;
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_0
const-wide/16 v8, 0x0
:try_start_3
const-class v10, Landroid/graphics/SurfaceTexture;
new-instance v11, Landroid/util/Size;
iget v12, v7, Lorg/webrtc/Size;->width:I
iget v13, v7, Lorg/webrtc/Size;->height:I
invoke-direct {v11, v12, v13}, Landroid/util/Size;-><init>(II)V
invoke-virtual {v3, v10, v11}, Landroid/hardware/camera2/params/StreamConfigurationMap;->getOutputMinFrameDuration(Ljava/lang/Class;Landroid/util/Size;)J
move-result-wide v10
:try_end_3
.catch Ljava/lang/Exception; {:try_start_3 .. :try_end_3} :catch_0
.catchall {:try_start_3 .. :try_end_3} :catchall_0
goto :goto_2
:catch_0
move-wide v10, v8
:goto_2
cmp-long v12, v10, v8
if-nez v12, :cond_2
move v9, v6
goto :goto_3
:cond_2
const-wide v8, 0x41cdcd6500000000L # 1.0E9
long-to-double v10, v10
div-double/2addr v8, v10
:try_start_4
invoke-static {v8, v9}, Ljava/lang/Math;->round(D)J
move-result-wide v8
long-to-int v9, v8
mul-int/lit16 v9, v9, 0x3e8
:goto_3
new-instance v8, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
iget v10, v7, Lorg/webrtc/Size;->width:I
iget v11, v7, Lorg/webrtc/Size;->height:I
invoke-direct {v8, v10, v11, v5, v9}, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;-><init>(IIII)V
invoke-virtual {v4, v8}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
const-string v8, "Camera2Enumerator"
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
const-string v11, "Format: "
invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v11, v7, Lorg/webrtc/Size;->width:I
invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v11, "x"
invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v7, v7, Lorg/webrtc/Size;->height:I
invoke-virtual {v10, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v7, "@"
invoke-virtual {v10, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v10, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
invoke-static {v8, v7}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_1
:cond_3
sget-object p0, Lorg/webrtc/Camera2Enumerator;->cachedSupportedFormats:Ljava/util/Map;
invoke-interface {p0, p1, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v5
const-string p0, "Camera2Enumerator"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "Get supported formats for camera index "
invoke-virtual {v3, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, " done. Time spent: "
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sub-long/2addr v5, v1
invoke-virtual {v3, v5, v6}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string p1, " ms."
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {p0, p1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
monitor-exit v0
return-object v4
:catch_1
move-exception p0
const-string p1, "Camera2Enumerator"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "getCameraCharacteristics(): "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {p1, p0}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
new-instance p0, Ljava/util/ArrayList;
invoke-direct {p0}, Ljava/util/ArrayList;-><init>()V
monitor-exit v0
return-object p0
:catchall_0
move-exception p0
monitor-exit v0
:try_end_4
.catchall {:try_start_4 .. :try_end_4} :catchall_0
throw p0
.end method
.method public static getSupportedSizes(Landroid/hardware/camera2/CameraCharacteristics;)Ljava/util/List;
.locals 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/hardware/camera2/CameraCharacteristics;",
")",
"Ljava/util/List<",
"Lorg/webrtc/Size;",
">;"
}
.end annotation
sget-object v0, Landroid/hardware/camera2/CameraCharacteristics;->SCALER_STREAM_CONFIGURATION_MAP:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {p0, v0}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/camera2/params/StreamConfigurationMap;
sget-object v1, Landroid/hardware/camera2/CameraCharacteristics;->INFO_SUPPORTED_HARDWARE_LEVEL:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {p0, v1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/Integer;
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v1
const-class v2, Landroid/graphics/SurfaceTexture;
invoke-virtual {v0, v2}, Landroid/hardware/camera2/params/StreamConfigurationMap;->getOutputSizes(Ljava/lang/Class;)[Landroid/util/Size;
move-result-object v0
invoke-static {v0}, Lorg/webrtc/Camera2Enumerator;->convertSizes([Landroid/util/Size;)Ljava/util/List;
move-result-object v0
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v3, 0x16
if-ge v2, v3, :cond_2
const/4 v2, 0x2
if-ne v1, v2, :cond_2
sget-object v1, Landroid/hardware/camera2/CameraCharacteristics;->SENSOR_INFO_ACTIVE_ARRAY_SIZE:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {p0, v1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Landroid/graphics/Rect;
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:cond_0
:goto_0
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_1
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Lorg/webrtc/Size;
invoke-virtual {p0}, Landroid/graphics/Rect;->width()I
move-result v3
iget v4, v2, Lorg/webrtc/Size;->height:I
mul-int v3, v3, v4
invoke-virtual {p0}, Landroid/graphics/Rect;->height()I
move-result v4
iget v5, v2, Lorg/webrtc/Size;->width:I
mul-int v4, v4, v5
if-ne v3, v4, :cond_0
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_0
:cond_1
return-object v1
:cond_2
return-object v0
.end method
.method public static isSupported(Landroid/content/Context;)Z
.locals 6
const-string v0, "camera"
invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Landroid/hardware/camera2/CameraManager;
const/4 v0, 0x0
:try_start_0
invoke-virtual {p0}, Landroid/hardware/camera2/CameraManager;->getCameraIdList()[Ljava/lang/String;
move-result-object v1
array-length v2, v1
const/4 v3, 0x0
:goto_0
if-ge v3, v2, :cond_1
aget-object v4, v1, v3
invoke-virtual {p0, v4}, Landroid/hardware/camera2/CameraManager;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v4
sget-object v5, Landroid/hardware/camera2/CameraCharacteristics;->INFO_SUPPORTED_HARDWARE_LEVEL:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v4, v5}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/lang/Integer;
invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
move-result v4
:try_end_0
.catch Landroid/util/AndroidException; {:try_start_0 .. :try_end_0} :catch_0
const/4 v5, 0x2
if-ne v4, v5, :cond_0
return v0
:cond_0
add-int/lit8 v3, v3, 0x1
goto :goto_0
:cond_1
const/4 p0, 0x1
return p0
:catch_0
move-exception p0
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Camera access exception: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
const-string v1, "Camera2Enumerator"
invoke-static {v1, p0}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v0
.end method
# virtual methods
.method public createCapturer(Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;)Lorg/webrtc/CameraVideoCapturer;
.locals 2
new-instance v0, Lorg/webrtc/Camera2Capturer;
iget-object v1, p0, Lorg/webrtc/Camera2Enumerator;->context:Landroid/content/Context;
invoke-direct {v0, v1, p1, p2}, Lorg/webrtc/Camera2Capturer;-><init>(Landroid/content/Context;Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;)V
return-object v0
.end method
.method public getDeviceNames()[Ljava/lang/String;
.locals 3
:try_start_0
iget-object v0, p0, Lorg/webrtc/Camera2Enumerator;->cameraManager:Landroid/hardware/camera2/CameraManager;
invoke-virtual {v0}, Landroid/hardware/camera2/CameraManager;->getCameraIdList()[Ljava/lang/String;
move-result-object v0
:try_end_0
.catch Landroid/util/AndroidException; {:try_start_0 .. :try_end_0} :catch_0
return-object v0
:catch_0
move-exception v0
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Camera access exception: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "Camera2Enumerator"
invoke-static {v1, v0}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
const/4 v0, 0x0
new-array v0, v0, [Ljava/lang/String;
return-object v0
.end method
.method public getSupportedFormats(Ljava/lang/String;)Ljava/util/List;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
")",
"Ljava/util/List<",
"Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;",
">;"
}
.end annotation
iget-object v0, p0, Lorg/webrtc/Camera2Enumerator;->context:Landroid/content/Context;
invoke-static {v0, p1}, Lorg/webrtc/Camera2Enumerator;->getSupportedFormats(Landroid/content/Context;Ljava/lang/String;)Ljava/util/List;
move-result-object p1
return-object p1
.end method
.method public isBackFacing(Ljava/lang/String;)Z
.locals 2
invoke-direct {p0, p1}, Lorg/webrtc/Camera2Enumerator;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object p1
const/4 v0, 0x1
if-eqz p1, :cond_0
sget-object v1, Landroid/hardware/camera2/CameraCharacteristics;->LENS_FACING:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {p1, v1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/Integer;
invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I
move-result p1
if-ne p1, v0, :cond_0
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public isFrontFacing(Ljava/lang/String;)Z
.locals 1
invoke-direct {p0, p1}, Lorg/webrtc/Camera2Enumerator;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object p1
if-eqz p1, :cond_0
sget-object v0, Landroid/hardware/camera2/CameraCharacteristics;->LENS_FACING:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {p1, v0}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/Integer;
invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I
move-result p1
if-nez p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method

View file

@ -0,0 +1,14 @@
.class public synthetic Lorg/webrtc/Camera2Session$1;
.super Ljava/lang/Object;
.source "Camera2Session.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/Camera2Session;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1009
name = null
.end annotation

View file

@ -0,0 +1,58 @@
.class public Lorg/webrtc/Camera2Session$CameraCaptureCallback;
.super Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
.source "Camera2Session.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/Camera2Session;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "CameraCaptureCallback"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;-><init>()V
return-void
.end method
.method public synthetic constructor <init>(Lorg/webrtc/Camera2Session$1;)V
.locals 0
invoke-direct {p0}, Lorg/webrtc/Camera2Session$CameraCaptureCallback;-><init>()V
return-void
.end method
# virtual methods
.method public onCaptureFailed(Landroid/hardware/camera2/CameraCaptureSession;Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CaptureFailure;)V
.locals 0
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string p2, "Capture failed: "
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string p2, "Camera2Session"
invoke-static {p2, p1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method

View file

@ -0,0 +1,337 @@
.class public Lorg/webrtc/Camera2Session$CameraStateCallback;
.super Landroid/hardware/camera2/CameraDevice$StateCallback;
.source "Camera2Session.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/Camera2Session;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "CameraStateCallback"
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/Camera2Session;
# direct methods
.method public constructor <init>(Lorg/webrtc/Camera2Session;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-direct {p0}, Landroid/hardware/camera2/CameraDevice$StateCallback;-><init>()V
return-void
.end method
.method public synthetic constructor <init>(Lorg/webrtc/Camera2Session;Lorg/webrtc/Camera2Session$1;)V
.locals 0
invoke-direct {p0, p1}, Lorg/webrtc/Camera2Session$CameraStateCallback;-><init>(Lorg/webrtc/Camera2Session;)V
return-void
.end method
.method private getErrorDescription(I)Ljava/lang/String;
.locals 1
const/4 v0, 0x1
if-eq p1, v0, :cond_4
const/4 v0, 0x2
if-eq p1, v0, :cond_3
const/4 v0, 0x3
if-eq p1, v0, :cond_2
const/4 v0, 0x4
if-eq p1, v0, :cond_1
const/4 v0, 0x5
if-eq p1, v0, :cond_0
const-string v0, "Unknown camera error: "
invoke-static {v0, p1}, Lf/e/c/a/a;->i(Ljava/lang/String;I)Ljava/lang/String;
move-result-object p1
return-object p1
:cond_0
const-string p1, "Camera service has encountered a fatal error."
return-object p1
:cond_1
const-string p1, "Camera device has encountered a fatal error."
return-object p1
:cond_2
const-string p1, "Camera device could not be opened due to a device policy."
return-object p1
:cond_3
const-string p1, "Camera device could not be opened because there are too many other open camera devices."
return-object p1
:cond_4
const-string p1, "Camera device is in use already."
return-object p1
.end method
# virtual methods
.method public onClosed(Landroid/hardware/camera2/CameraDevice;)V
.locals 1
iget-object p1, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {p1}, Lorg/webrtc/Camera2Session;->access$000(Lorg/webrtc/Camera2Session;)V
const-string p1, "Camera2Session"
const-string v0, "Camera device closed."
invoke-static {p1, v0}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
iget-object p1, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {p1}, Lorg/webrtc/Camera2Session;->access$500(Lorg/webrtc/Camera2Session;)Lorg/webrtc/CameraSession$Events;
move-result-object p1
iget-object v0, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-interface {p1, v0}, Lorg/webrtc/CameraSession$Events;->onCameraClosed(Lorg/webrtc/CameraSession;)V
return-void
.end method
.method public onDisconnected(Landroid/hardware/camera2/CameraDevice;)V
.locals 2
iget-object p1, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {p1}, Lorg/webrtc/Camera2Session;->access$000(Lorg/webrtc/Camera2Session;)V
iget-object p1, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {p1}, Lorg/webrtc/Camera2Session;->access$100(Lorg/webrtc/Camera2Session;)Landroid/hardware/camera2/CameraCaptureSession;
move-result-object p1
if-nez p1, :cond_0
iget-object p1, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {p1}, Lorg/webrtc/Camera2Session;->access$200(Lorg/webrtc/Camera2Session;)Lorg/webrtc/Camera2Session$SessionState;
move-result-object p1
sget-object v0, Lorg/webrtc/Camera2Session$SessionState;->STOPPED:Lorg/webrtc/Camera2Session$SessionState;
if-eq p1, v0, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
iget-object v0, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
sget-object v1, Lorg/webrtc/Camera2Session$SessionState;->STOPPED:Lorg/webrtc/Camera2Session$SessionState;
invoke-static {v0, v1}, Lorg/webrtc/Camera2Session;->access$202(Lorg/webrtc/Camera2Session;Lorg/webrtc/Camera2Session$SessionState;)Lorg/webrtc/Camera2Session$SessionState;
iget-object v0, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v0}, Lorg/webrtc/Camera2Session;->access$300(Lorg/webrtc/Camera2Session;)V
if-eqz p1, :cond_1
iget-object p1, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {p1}, Lorg/webrtc/Camera2Session;->access$400(Lorg/webrtc/Camera2Session;)Lorg/webrtc/CameraSession$CreateSessionCallback;
move-result-object p1
sget-object v0, Lorg/webrtc/CameraSession$FailureType;->DISCONNECTED:Lorg/webrtc/CameraSession$FailureType;
const-string v1, "Camera disconnected / evicted."
invoke-interface {p1, v0, v1}, Lorg/webrtc/CameraSession$CreateSessionCallback;->onFailure(Lorg/webrtc/CameraSession$FailureType;Ljava/lang/String;)V
goto :goto_1
:cond_1
iget-object p1, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {p1}, Lorg/webrtc/Camera2Session;->access$500(Lorg/webrtc/Camera2Session;)Lorg/webrtc/CameraSession$Events;
move-result-object p1
iget-object v0, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-interface {p1, v0}, Lorg/webrtc/CameraSession$Events;->onCameraDisconnected(Lorg/webrtc/CameraSession;)V
:goto_1
return-void
.end method
.method public onError(Landroid/hardware/camera2/CameraDevice;I)V
.locals 0
iget-object p1, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {p1}, Lorg/webrtc/Camera2Session;->access$000(Lorg/webrtc/Camera2Session;)V
iget-object p1, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-direct {p0, p2}, Lorg/webrtc/Camera2Session$CameraStateCallback;->getErrorDescription(I)Ljava/lang/String;
move-result-object p2
invoke-static {p1, p2}, Lorg/webrtc/Camera2Session;->access$600(Lorg/webrtc/Camera2Session;Ljava/lang/String;)V
return-void
.end method
.method public onOpened(Landroid/hardware/camera2/CameraDevice;)V
.locals 4
iget-object v0, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v0}, Lorg/webrtc/Camera2Session;->access$000(Lorg/webrtc/Camera2Session;)V
const-string v0, "Camera2Session"
const-string v1, "Camera opened."
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
iget-object v0, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v0, p1}, Lorg/webrtc/Camera2Session;->access$702(Lorg/webrtc/Camera2Session;Landroid/hardware/camera2/CameraDevice;)Landroid/hardware/camera2/CameraDevice;
iget-object v0, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v0}, Lorg/webrtc/Camera2Session;->access$900(Lorg/webrtc/Camera2Session;)Lorg/webrtc/SurfaceTextureHelper;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v1}, Lorg/webrtc/Camera2Session;->access$800(Lorg/webrtc/Camera2Session;)Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
move-result-object v1
iget v1, v1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->width:I
iget-object v2, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v2}, Lorg/webrtc/Camera2Session;->access$800(Lorg/webrtc/Camera2Session;)Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
move-result-object v2
iget v2, v2, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->height:I
invoke-virtual {v0, v1, v2}, Lorg/webrtc/SurfaceTextureHelper;->setTextureSize(II)V
iget-object v0, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
new-instance v1, Landroid/view/Surface;
iget-object v2, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v2}, Lorg/webrtc/Camera2Session;->access$900(Lorg/webrtc/Camera2Session;)Lorg/webrtc/SurfaceTextureHelper;
move-result-object v2
invoke-virtual {v2}, Lorg/webrtc/SurfaceTextureHelper;->getSurfaceTexture()Landroid/graphics/SurfaceTexture;
move-result-object v2
invoke-direct {v1, v2}, Landroid/view/Surface;-><init>(Landroid/graphics/SurfaceTexture;)V
invoke-static {v0, v1}, Lorg/webrtc/Camera2Session;->access$1002(Lorg/webrtc/Camera2Session;Landroid/view/Surface;)Landroid/view/Surface;
const/4 v0, 0x1
:try_start_0
new-array v0, v0, [Landroid/view/Surface;
const/4 v1, 0x0
iget-object v2, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v2}, Lorg/webrtc/Camera2Session;->access$1000(Lorg/webrtc/Camera2Session;)Landroid/view/Surface;
move-result-object v2
aput-object v2, v0, v1
invoke-static {v0}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v0
new-instance v1, Lorg/webrtc/Camera2Session$CaptureSessionCallback;
iget-object v2, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
const/4 v3, 0x0
invoke-direct {v1, v2, v3}, Lorg/webrtc/Camera2Session$CaptureSessionCallback;-><init>(Lorg/webrtc/Camera2Session;Lorg/webrtc/Camera2Session$1;)V
iget-object v2, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v2}, Lorg/webrtc/Camera2Session;->access$1200(Lorg/webrtc/Camera2Session;)Landroid/os/Handler;
move-result-object v2
invoke-virtual {p1, v0, v1, v2}, Landroid/hardware/camera2/CameraDevice;->createCaptureSession(Ljava/util/List;Landroid/hardware/camera2/CameraCaptureSession$StateCallback;Landroid/os/Handler;)V
:try_end_0
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_0 .. :try_end_0} :catch_0
return-void
:catch_0
move-exception p1
iget-object v0, p0, Lorg/webrtc/Camera2Session$CameraStateCallback;->this$0:Lorg/webrtc/Camera2Session;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Failed to create capture session. "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v0, p1}, Lorg/webrtc/Camera2Session;->access$600(Lorg/webrtc/Camera2Session;Ljava/lang/String;)V
return-void
.end method

View file

@ -0,0 +1,533 @@
.class public Lorg/webrtc/Camera2Session$CaptureSessionCallback;
.super Landroid/hardware/camera2/CameraCaptureSession$StateCallback;
.source "Camera2Session.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/Camera2Session;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "CaptureSessionCallback"
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/Camera2Session;
# direct methods
.method public constructor <init>(Lorg/webrtc/Camera2Session;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-direct {p0}, Landroid/hardware/camera2/CameraCaptureSession$StateCallback;-><init>()V
return-void
.end method
.method public synthetic constructor <init>(Lorg/webrtc/Camera2Session;Lorg/webrtc/Camera2Session$1;)V
.locals 0
invoke-direct {p0, p1}, Lorg/webrtc/Camera2Session$CaptureSessionCallback;-><init>(Lorg/webrtc/Camera2Session;)V
return-void
.end method
.method private chooseFocusMode(Landroid/hardware/camera2/CaptureRequest$Builder;)V
.locals 6
iget-object v0, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v0}, Lorg/webrtc/Camera2Session;->access$1500(Lorg/webrtc/Camera2Session;)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
sget-object v1, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AF_AVAILABLE_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v0, v1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [I
array-length v1, v0
const/4 v2, 0x0
:goto_0
const-string v3, "Camera2Session"
if-ge v2, v1, :cond_1
aget v4, v0, v2
const/4 v5, 0x3
if-ne v4, v5, :cond_0
sget-object v0, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AF_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {p1, v0, v1}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
const-string p1, "Using continuous video auto-focus."
invoke-static {v3, p1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
:cond_0
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_1
const-string p1, "Auto-focus is not available."
invoke-static {v3, p1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method private chooseStabilizationMode(Landroid/hardware/camera2/CaptureRequest$Builder;)V
.locals 9
iget-object v0, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v0}, Lorg/webrtc/Camera2Session;->access$1500(Lorg/webrtc/Camera2Session;)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
sget-object v1, Landroid/hardware/camera2/CameraCharacteristics;->LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v0, v1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [I
const-string v1, "Camera2Session"
const/4 v2, 0x0
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
const/4 v4, 0x1
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
if-eqz v0, :cond_1
array-length v6, v0
const/4 v7, 0x0
:goto_0
if-ge v7, v6, :cond_1
aget v8, v0, v7
if-ne v8, v4, :cond_0
sget-object v0, Landroid/hardware/camera2/CaptureRequest;->LENS_OPTICAL_STABILIZATION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {p1, v0, v5}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
sget-object v0, Landroid/hardware/camera2/CaptureRequest;->CONTROL_VIDEO_STABILIZATION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {p1, v0, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
const-string p1, "Using optical stabilization."
invoke-static {v1, p1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
:cond_0
add-int/lit8 v7, v7, 0x1
goto :goto_0
:cond_1
iget-object v0, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v0}, Lorg/webrtc/Camera2Session;->access$1500(Lorg/webrtc/Camera2Session;)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
sget-object v6, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v0, v6}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [I
array-length v6, v0
:goto_1
if-ge v2, v6, :cond_3
aget v7, v0, v2
if-ne v7, v4, :cond_2
sget-object v0, Landroid/hardware/camera2/CaptureRequest;->CONTROL_VIDEO_STABILIZATION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {p1, v0, v5}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
sget-object v0, Landroid/hardware/camera2/CaptureRequest;->LENS_OPTICAL_STABILIZATION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {p1, v0, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
const-string p1, "Using video stabilization."
invoke-static {v1, p1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
:cond_2
add-int/lit8 v2, v2, 0x1
goto :goto_1
:cond_3
const-string p1, "Stabilization not available."
invoke-static {v1, p1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
# virtual methods
.method public synthetic a(Lorg/webrtc/VideoFrame;)V
.locals 5
iget-object v0, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v0}, Lorg/webrtc/Camera2Session;->access$000(Lorg/webrtc/Camera2Session;)V
iget-object v0, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v0}, Lorg/webrtc/Camera2Session;->access$200(Lorg/webrtc/Camera2Session;)Lorg/webrtc/Camera2Session$SessionState;
move-result-object v0
sget-object v1, Lorg/webrtc/Camera2Session$SessionState;->RUNNING:Lorg/webrtc/Camera2Session$SessionState;
if-eq v0, v1, :cond_0
const-string p1, "Camera2Session"
const-string v0, "Texture frame captured but camera is no longer running."
invoke-static {p1, v0}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
:cond_0
iget-object v0, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v0}, Lorg/webrtc/Camera2Session;->access$1600(Lorg/webrtc/Camera2Session;)Z
move-result v0
if-nez v0, :cond_1
iget-object v0, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
const/4 v1, 0x1
invoke-static {v0, v1}, Lorg/webrtc/Camera2Session;->access$1602(Lorg/webrtc/Camera2Session;Z)Z
sget-object v0, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v1
iget-object v3, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v3}, Lorg/webrtc/Camera2Session;->access$1700(Lorg/webrtc/Camera2Session;)J
move-result-wide v3
sub-long/2addr v1, v3
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J
move-result-wide v0
long-to-int v1, v0
invoke-static {}, Lorg/webrtc/Camera2Session;->access$1800()Lorg/webrtc/Histogram;
move-result-object v0
invoke-virtual {v0, v1}, Lorg/webrtc/Histogram;->addSample(I)V
:cond_1
new-instance v0, Lorg/webrtc/VideoFrame;
invoke-virtual {p1}, Lorg/webrtc/VideoFrame;->getBuffer()Lorg/webrtc/VideoFrame$Buffer;
move-result-object v1
check-cast v1, Lorg/webrtc/TextureBufferImpl;
iget-object v2, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v2}, Lorg/webrtc/Camera2Session;->access$1900(Lorg/webrtc/Camera2Session;)Z
move-result v2
iget-object v3, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v3}, Lorg/webrtc/Camera2Session;->access$2000(Lorg/webrtc/Camera2Session;)I
move-result v3
neg-int v3, v3
invoke-static {v1, v2, v3}, Lf0/c/g0;->a(Lorg/webrtc/TextureBufferImpl;ZI)Lorg/webrtc/VideoFrame$TextureBuffer;
move-result-object v1
iget-object v2, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v2}, Lorg/webrtc/Camera2Session;->access$2100(Lorg/webrtc/Camera2Session;)I
move-result v2
invoke-virtual {p1}, Lorg/webrtc/VideoFrame;->getTimestampNs()J
move-result-wide v3
invoke-direct {v0, v1, v2, v3, v4}, Lorg/webrtc/VideoFrame;-><init>(Lorg/webrtc/VideoFrame$Buffer;IJ)V
iget-object p1, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {p1}, Lorg/webrtc/Camera2Session;->access$500(Lorg/webrtc/Camera2Session;)Lorg/webrtc/CameraSession$Events;
move-result-object p1
iget-object v1, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-interface {p1, v1, v0}, Lorg/webrtc/CameraSession$Events;->onFrameCaptured(Lorg/webrtc/CameraSession;Lorg/webrtc/VideoFrame;)V
invoke-virtual {v0}, Lorg/webrtc/VideoFrame;->release()V
return-void
.end method
.method public onConfigureFailed(Landroid/hardware/camera2/CameraCaptureSession;)V
.locals 1
iget-object v0, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v0}, Lorg/webrtc/Camera2Session;->access$000(Lorg/webrtc/Camera2Session;)V
invoke-virtual {p1}, Landroid/hardware/camera2/CameraCaptureSession;->close()V
iget-object p1, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
const-string v0, "Failed to configure capture session."
invoke-static {p1, v0}, Lorg/webrtc/Camera2Session;->access$600(Lorg/webrtc/Camera2Session;Ljava/lang/String;)V
return-void
.end method
.method public onConfigured(Landroid/hardware/camera2/CameraCaptureSession;)V
.locals 7
iget-object v0, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v0}, Lorg/webrtc/Camera2Session;->access$000(Lorg/webrtc/Camera2Session;)V
const-string v0, "Camera2Session"
const-string v1, "Camera capture session configured."
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
iget-object v1, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v1, p1}, Lorg/webrtc/Camera2Session;->access$102(Lorg/webrtc/Camera2Session;Landroid/hardware/camera2/CameraCaptureSession;)Landroid/hardware/camera2/CameraCaptureSession;
:try_start_0
iget-object v1, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v1}, Lorg/webrtc/Camera2Session;->access$700(Lorg/webrtc/Camera2Session;)Landroid/hardware/camera2/CameraDevice;
move-result-object v1
const/4 v2, 0x3
invoke-virtual {v1, v2}, Landroid/hardware/camera2/CameraDevice;->createCaptureRequest(I)Landroid/hardware/camera2/CaptureRequest$Builder;
move-result-object v1
sget-object v2, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_TARGET_FPS_RANGE:Landroid/hardware/camera2/CaptureRequest$Key;
new-instance v3, Landroid/util/Range;
iget-object v4, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v4}, Lorg/webrtc/Camera2Session;->access$800(Lorg/webrtc/Camera2Session;)Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
move-result-object v4
iget-object v4, v4, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->framerate:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
iget v4, v4, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->min:I
iget-object v5, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v5}, Lorg/webrtc/Camera2Session;->access$1300(Lorg/webrtc/Camera2Session;)I
move-result v5
div-int/2addr v4, v5
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
iget-object v5, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v5}, Lorg/webrtc/Camera2Session;->access$800(Lorg/webrtc/Camera2Session;)Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
move-result-object v5
iget-object v5, v5, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->framerate:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
iget v5, v5, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->max:I
iget-object v6, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v6}, Lorg/webrtc/Camera2Session;->access$1300(Lorg/webrtc/Camera2Session;)I
move-result v6
div-int/2addr v5, v6
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
invoke-direct {v3, v4, v5}, Landroid/util/Range;-><init>(Ljava/lang/Comparable;Ljava/lang/Comparable;)V
invoke-virtual {v1, v2, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
sget-object v2, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
const/4 v3, 0x1
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-virtual {v1, v2, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
sget-object v2, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_LOCK:Landroid/hardware/camera2/CaptureRequest$Key;
sget-object v3, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
invoke-virtual {v1, v2, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
invoke-direct {p0, v1}, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->chooseStabilizationMode(Landroid/hardware/camera2/CaptureRequest$Builder;)V
invoke-direct {p0, v1}, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->chooseFocusMode(Landroid/hardware/camera2/CaptureRequest$Builder;)V
iget-object v2, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v2}, Lorg/webrtc/Camera2Session;->access$1000(Lorg/webrtc/Camera2Session;)Landroid/view/Surface;
move-result-object v2
invoke-virtual {v1, v2}, Landroid/hardware/camera2/CaptureRequest$Builder;->addTarget(Landroid/view/Surface;)V
invoke-virtual {v1}, Landroid/hardware/camera2/CaptureRequest$Builder;->build()Landroid/hardware/camera2/CaptureRequest;
move-result-object v1
new-instance v2, Lorg/webrtc/Camera2Session$CameraCaptureCallback;
const/4 v3, 0x0
invoke-direct {v2, v3}, Lorg/webrtc/Camera2Session$CameraCaptureCallback;-><init>(Lorg/webrtc/Camera2Session$1;)V
iget-object v3, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {v3}, Lorg/webrtc/Camera2Session;->access$1200(Lorg/webrtc/Camera2Session;)Landroid/os/Handler;
move-result-object v3
invoke-virtual {p1, v1, v2, v3}, Landroid/hardware/camera2/CameraCaptureSession;->setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;Landroid/os/Handler;)I
:try_end_0
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_0 .. :try_end_0} :catch_0
iget-object p1, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {p1}, Lorg/webrtc/Camera2Session;->access$900(Lorg/webrtc/Camera2Session;)Lorg/webrtc/SurfaceTextureHelper;
move-result-object p1
new-instance v1, Lf0/c/f;
invoke-direct {v1, p0}, Lf0/c/f;-><init>(Lorg/webrtc/Camera2Session$CaptureSessionCallback;)V
invoke-virtual {p1, v1}, Lorg/webrtc/SurfaceTextureHelper;->startListening(Lorg/webrtc/VideoSink;)V
const-string p1, "Camera device successfully started."
invoke-static {v0, p1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
iget-object p1, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-static {p1}, Lorg/webrtc/Camera2Session;->access$400(Lorg/webrtc/Camera2Session;)Lorg/webrtc/CameraSession$CreateSessionCallback;
move-result-object p1
iget-object v0, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
invoke-interface {p1, v0}, Lorg/webrtc/CameraSession$CreateSessionCallback;->onDone(Lorg/webrtc/CameraSession;)V
return-void
:catch_0
move-exception p1
iget-object v0, p0, Lorg/webrtc/Camera2Session$CaptureSessionCallback;->this$0:Lorg/webrtc/Camera2Session;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Failed to start capture request. "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v0, p1}, Lorg/webrtc/Camera2Session;->access$600(Lorg/webrtc/Camera2Session;Ljava/lang/String;)V
return-void
.end method

View file

@ -0,0 +1,111 @@
.class public final enum Lorg/webrtc/Camera2Session$SessionState;
.super Ljava/lang/Enum;
.source "Camera2Session.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/Camera2Session;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4019
name = "SessionState"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Enum<",
"Lorg/webrtc/Camera2Session$SessionState;",
">;"
}
.end annotation
# static fields
.field public static final synthetic $VALUES:[Lorg/webrtc/Camera2Session$SessionState;
.field public static final enum RUNNING:Lorg/webrtc/Camera2Session$SessionState;
.field public static final enum STOPPED:Lorg/webrtc/Camera2Session$SessionState;
# direct methods
.method public static constructor <clinit>()V
.locals 5
new-instance v0, Lorg/webrtc/Camera2Session$SessionState;
const-string v1, "RUNNING"
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lorg/webrtc/Camera2Session$SessionState;-><init>(Ljava/lang/String;I)V
sput-object v0, Lorg/webrtc/Camera2Session$SessionState;->RUNNING:Lorg/webrtc/Camera2Session$SessionState;
new-instance v0, Lorg/webrtc/Camera2Session$SessionState;
const-string v1, "STOPPED"
const/4 v3, 0x1
invoke-direct {v0, v1, v3}, Lorg/webrtc/Camera2Session$SessionState;-><init>(Ljava/lang/String;I)V
sput-object v0, Lorg/webrtc/Camera2Session$SessionState;->STOPPED:Lorg/webrtc/Camera2Session$SessionState;
const/4 v1, 0x2
new-array v1, v1, [Lorg/webrtc/Camera2Session$SessionState;
sget-object v4, Lorg/webrtc/Camera2Session$SessionState;->RUNNING:Lorg/webrtc/Camera2Session$SessionState;
aput-object v4, v1, v2
aput-object v0, v1, v3
sput-object v1, Lorg/webrtc/Camera2Session$SessionState;->$VALUES:[Lorg/webrtc/Camera2Session$SessionState;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;I)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method public static valueOf(Ljava/lang/String;)Lorg/webrtc/Camera2Session$SessionState;
.locals 1
const-class v0, Lorg/webrtc/Camera2Session$SessionState;
invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
move-result-object p0
check-cast p0, Lorg/webrtc/Camera2Session$SessionState;
return-object p0
.end method
.method public static values()[Lorg/webrtc/Camera2Session$SessionState;
.locals 1
sget-object v0, Lorg/webrtc/Camera2Session$SessionState;->$VALUES:[Lorg/webrtc/Camera2Session$SessionState;
invoke-virtual {v0}, [Lorg/webrtc/Camera2Session$SessionState;->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lorg/webrtc/Camera2Session$SessionState;
return-object v0
.end method

View file

@ -0,0 +1,944 @@
.class public Lorg/webrtc/Camera2Session;
.super Ljava/lang/Object;
.source "Camera2Session.java"
# interfaces
.implements Lorg/webrtc/CameraSession;
# annotations
.annotation build Landroid/annotation/TargetApi;
value = 0x15
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/webrtc/Camera2Session$CameraCaptureCallback;,
Lorg/webrtc/Camera2Session$CaptureSessionCallback;,
Lorg/webrtc/Camera2Session$CameraStateCallback;,
Lorg/webrtc/Camera2Session$SessionState;
}
.end annotation
# static fields
.field public static final TAG:Ljava/lang/String; = "Camera2Session"
.field public static final camera2ResolutionHistogram:Lorg/webrtc/Histogram;
.field public static final camera2StartTimeMsHistogram:Lorg/webrtc/Histogram;
.field public static final camera2StopTimeMsHistogram:Lorg/webrtc/Histogram;
# instance fields
.field public final applicationContext:Landroid/content/Context;
.field public final callback:Lorg/webrtc/CameraSession$CreateSessionCallback;
.field public cameraCharacteristics:Landroid/hardware/camera2/CameraCharacteristics;
.field public cameraDevice:Landroid/hardware/camera2/CameraDevice;
.field public final cameraId:Ljava/lang/String;
.field public final cameraManager:Landroid/hardware/camera2/CameraManager;
.field public cameraOrientation:I
.field public final cameraThreadHandler:Landroid/os/Handler;
.field public captureFormat:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
.field public captureSession:Landroid/hardware/camera2/CameraCaptureSession;
.field public final constructionTimeNs:J
.field public final events:Lorg/webrtc/CameraSession$Events;
.field public firstFrameReported:Z
.field public fpsUnitFactor:I
.field public final framerate:I
.field public final height:I
.field public isCameraFrontFacing:Z
.field public state:Lorg/webrtc/Camera2Session$SessionState;
.field public surface:Landroid/view/Surface;
.field public final surfaceTextureHelper:Lorg/webrtc/SurfaceTextureHelper;
.field public final width:I
# direct methods
.method public static constructor <clinit>()V
.locals 4
const-string v0, "WebRTC.Android.Camera2.StartTimeMs"
const/4 v1, 0x1
const/16 v2, 0x2710
const/16 v3, 0x32
invoke-static {v0, v1, v2, v3}, Lorg/webrtc/Histogram;->createCounts(Ljava/lang/String;III)Lorg/webrtc/Histogram;
move-result-object v0
sput-object v0, Lorg/webrtc/Camera2Session;->camera2StartTimeMsHistogram:Lorg/webrtc/Histogram;
const-string v0, "WebRTC.Android.Camera2.StopTimeMs"
invoke-static {v0, v1, v2, v3}, Lorg/webrtc/Histogram;->createCounts(Ljava/lang/String;III)Lorg/webrtc/Histogram;
move-result-object v0
sput-object v0, Lorg/webrtc/Camera2Session;->camera2StopTimeMsHistogram:Lorg/webrtc/Histogram;
sget-object v0, Lorg/webrtc/CameraEnumerationAndroid;->COMMON_RESOLUTIONS:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
const-string v1, "WebRTC.Android.Camera2.Resolution"
invoke-static {v1, v0}, Lorg/webrtc/Histogram;->createEnumeration(Ljava/lang/String;I)Lorg/webrtc/Histogram;
move-result-object v0
sput-object v0, Lorg/webrtc/Camera2Session;->camera2ResolutionHistogram:Lorg/webrtc/Histogram;
return-void
.end method
.method public constructor <init>(Lorg/webrtc/CameraSession$CreateSessionCallback;Lorg/webrtc/CameraSession$Events;Landroid/content/Context;Landroid/hardware/camera2/CameraManager;Lorg/webrtc/SurfaceTextureHelper;Ljava/lang/String;III)V
.locals 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
sget-object v0, Lorg/webrtc/Camera2Session$SessionState;->RUNNING:Lorg/webrtc/Camera2Session$SessionState;
iput-object v0, p0, Lorg/webrtc/Camera2Session;->state:Lorg/webrtc/Camera2Session$SessionState;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Create new camera2 session on camera "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "Camera2Session"
invoke-static {v1, v0}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v0
iput-wide v0, p0, Lorg/webrtc/Camera2Session;->constructionTimeNs:J
new-instance v0, Landroid/os/Handler;
invoke-direct {v0}, Landroid/os/Handler;-><init>()V
iput-object v0, p0, Lorg/webrtc/Camera2Session;->cameraThreadHandler:Landroid/os/Handler;
iput-object p1, p0, Lorg/webrtc/Camera2Session;->callback:Lorg/webrtc/CameraSession$CreateSessionCallback;
iput-object p2, p0, Lorg/webrtc/Camera2Session;->events:Lorg/webrtc/CameraSession$Events;
iput-object p3, p0, Lorg/webrtc/Camera2Session;->applicationContext:Landroid/content/Context;
iput-object p4, p0, Lorg/webrtc/Camera2Session;->cameraManager:Landroid/hardware/camera2/CameraManager;
iput-object p5, p0, Lorg/webrtc/Camera2Session;->surfaceTextureHelper:Lorg/webrtc/SurfaceTextureHelper;
iput-object p6, p0, Lorg/webrtc/Camera2Session;->cameraId:Ljava/lang/String;
iput p7, p0, Lorg/webrtc/Camera2Session;->width:I
iput p8, p0, Lorg/webrtc/Camera2Session;->height:I
iput p9, p0, Lorg/webrtc/Camera2Session;->framerate:I
invoke-direct {p0}, Lorg/webrtc/Camera2Session;->start()V
return-void
.end method
.method public static synthetic access$000(Lorg/webrtc/Camera2Session;)V
.locals 0
invoke-direct {p0}, Lorg/webrtc/Camera2Session;->checkIsOnCameraThread()V
return-void
.end method
.method public static synthetic access$100(Lorg/webrtc/Camera2Session;)Landroid/hardware/camera2/CameraCaptureSession;
.locals 0
iget-object p0, p0, Lorg/webrtc/Camera2Session;->captureSession:Landroid/hardware/camera2/CameraCaptureSession;
return-object p0
.end method
.method public static synthetic access$1000(Lorg/webrtc/Camera2Session;)Landroid/view/Surface;
.locals 0
iget-object p0, p0, Lorg/webrtc/Camera2Session;->surface:Landroid/view/Surface;
return-object p0
.end method
.method public static synthetic access$1002(Lorg/webrtc/Camera2Session;Landroid/view/Surface;)Landroid/view/Surface;
.locals 0
iput-object p1, p0, Lorg/webrtc/Camera2Session;->surface:Landroid/view/Surface;
return-object p1
.end method
.method public static synthetic access$102(Lorg/webrtc/Camera2Session;Landroid/hardware/camera2/CameraCaptureSession;)Landroid/hardware/camera2/CameraCaptureSession;
.locals 0
iput-object p1, p0, Lorg/webrtc/Camera2Session;->captureSession:Landroid/hardware/camera2/CameraCaptureSession;
return-object p1
.end method
.method public static synthetic access$1200(Lorg/webrtc/Camera2Session;)Landroid/os/Handler;
.locals 0
iget-object p0, p0, Lorg/webrtc/Camera2Session;->cameraThreadHandler:Landroid/os/Handler;
return-object p0
.end method
.method public static synthetic access$1300(Lorg/webrtc/Camera2Session;)I
.locals 0
iget p0, p0, Lorg/webrtc/Camera2Session;->fpsUnitFactor:I
return p0
.end method
.method public static synthetic access$1500(Lorg/webrtc/Camera2Session;)Landroid/hardware/camera2/CameraCharacteristics;
.locals 0
iget-object p0, p0, Lorg/webrtc/Camera2Session;->cameraCharacteristics:Landroid/hardware/camera2/CameraCharacteristics;
return-object p0
.end method
.method public static synthetic access$1600(Lorg/webrtc/Camera2Session;)Z
.locals 0
iget-boolean p0, p0, Lorg/webrtc/Camera2Session;->firstFrameReported:Z
return p0
.end method
.method public static synthetic access$1602(Lorg/webrtc/Camera2Session;Z)Z
.locals 0
iput-boolean p1, p0, Lorg/webrtc/Camera2Session;->firstFrameReported:Z
return p1
.end method
.method public static synthetic access$1700(Lorg/webrtc/Camera2Session;)J
.locals 2
iget-wide v0, p0, Lorg/webrtc/Camera2Session;->constructionTimeNs:J
return-wide v0
.end method
.method public static synthetic access$1800()Lorg/webrtc/Histogram;
.locals 1
sget-object v0, Lorg/webrtc/Camera2Session;->camera2StartTimeMsHistogram:Lorg/webrtc/Histogram;
return-object v0
.end method
.method public static synthetic access$1900(Lorg/webrtc/Camera2Session;)Z
.locals 0
iget-boolean p0, p0, Lorg/webrtc/Camera2Session;->isCameraFrontFacing:Z
return p0
.end method
.method public static synthetic access$200(Lorg/webrtc/Camera2Session;)Lorg/webrtc/Camera2Session$SessionState;
.locals 0
iget-object p0, p0, Lorg/webrtc/Camera2Session;->state:Lorg/webrtc/Camera2Session$SessionState;
return-object p0
.end method
.method public static synthetic access$2000(Lorg/webrtc/Camera2Session;)I
.locals 0
iget p0, p0, Lorg/webrtc/Camera2Session;->cameraOrientation:I
return p0
.end method
.method public static synthetic access$202(Lorg/webrtc/Camera2Session;Lorg/webrtc/Camera2Session$SessionState;)Lorg/webrtc/Camera2Session$SessionState;
.locals 0
iput-object p1, p0, Lorg/webrtc/Camera2Session;->state:Lorg/webrtc/Camera2Session$SessionState;
return-object p1
.end method
.method public static synthetic access$2100(Lorg/webrtc/Camera2Session;)I
.locals 0
invoke-direct {p0}, Lorg/webrtc/Camera2Session;->getFrameOrientation()I
move-result p0
return p0
.end method
.method public static synthetic access$300(Lorg/webrtc/Camera2Session;)V
.locals 0
invoke-direct {p0}, Lorg/webrtc/Camera2Session;->stopInternal()V
return-void
.end method
.method public static synthetic access$400(Lorg/webrtc/Camera2Session;)Lorg/webrtc/CameraSession$CreateSessionCallback;
.locals 0
iget-object p0, p0, Lorg/webrtc/Camera2Session;->callback:Lorg/webrtc/CameraSession$CreateSessionCallback;
return-object p0
.end method
.method public static synthetic access$500(Lorg/webrtc/Camera2Session;)Lorg/webrtc/CameraSession$Events;
.locals 0
iget-object p0, p0, Lorg/webrtc/Camera2Session;->events:Lorg/webrtc/CameraSession$Events;
return-object p0
.end method
.method public static synthetic access$600(Lorg/webrtc/Camera2Session;Ljava/lang/String;)V
.locals 0
invoke-direct {p0, p1}, Lorg/webrtc/Camera2Session;->reportError(Ljava/lang/String;)V
return-void
.end method
.method public static synthetic access$700(Lorg/webrtc/Camera2Session;)Landroid/hardware/camera2/CameraDevice;
.locals 0
iget-object p0, p0, Lorg/webrtc/Camera2Session;->cameraDevice:Landroid/hardware/camera2/CameraDevice;
return-object p0
.end method
.method public static synthetic access$702(Lorg/webrtc/Camera2Session;Landroid/hardware/camera2/CameraDevice;)Landroid/hardware/camera2/CameraDevice;
.locals 0
iput-object p1, p0, Lorg/webrtc/Camera2Session;->cameraDevice:Landroid/hardware/camera2/CameraDevice;
return-object p1
.end method
.method public static synthetic access$800(Lorg/webrtc/Camera2Session;)Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
.locals 0
iget-object p0, p0, Lorg/webrtc/Camera2Session;->captureFormat:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
return-object p0
.end method
.method public static synthetic access$900(Lorg/webrtc/Camera2Session;)Lorg/webrtc/SurfaceTextureHelper;
.locals 0
iget-object p0, p0, Lorg/webrtc/Camera2Session;->surfaceTextureHelper:Lorg/webrtc/SurfaceTextureHelper;
return-object p0
.end method
.method private checkIsOnCameraThread()V
.locals 2
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/Camera2Session;->cameraThreadHandler: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_0
return-void
:cond_0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Wrong thread"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static create(Lorg/webrtc/CameraSession$CreateSessionCallback;Lorg/webrtc/CameraSession$Events;Landroid/content/Context;Landroid/hardware/camera2/CameraManager;Lorg/webrtc/SurfaceTextureHelper;Ljava/lang/String;III)V
.locals 10
new-instance v0, Lorg/webrtc/Camera2Session;
move-object v1, p0
move-object v2, p1
move-object v3, p2
move-object v4, p3
move-object v5, p4
move-object v6, p5
move/from16 v7, p6
move/from16 v8, p7
move/from16 v9, p8
invoke-direct/range {v0 .. v9}, Lorg/webrtc/Camera2Session;-><init>(Lorg/webrtc/CameraSession$CreateSessionCallback;Lorg/webrtc/CameraSession$Events;Landroid/content/Context;Landroid/hardware/camera2/CameraManager;Lorg/webrtc/SurfaceTextureHelper;Ljava/lang/String;III)V
return-void
.end method
.method private findCaptureFormat()V
.locals 5
invoke-direct {p0}, Lorg/webrtc/Camera2Session;->checkIsOnCameraThread()V
iget-object v0, p0, Lorg/webrtc/Camera2Session;->cameraCharacteristics:Landroid/hardware/camera2/CameraCharacteristics;
sget-object v1, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v0, v1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [Landroid/util/Range;
invoke-static {v0}, Lorg/webrtc/Camera2Enumerator;->getFpsUnitFactor([Landroid/util/Range;)I
move-result v1
iput v1, p0, Lorg/webrtc/Camera2Session;->fpsUnitFactor:I
invoke-static {v0, v1}, Lorg/webrtc/Camera2Enumerator;->convertFramerates([Landroid/util/Range;I)Ljava/util/List;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/Camera2Session;->cameraCharacteristics:Landroid/hardware/camera2/CameraCharacteristics;
invoke-static {v1}, Lorg/webrtc/Camera2Enumerator;->getSupportedSizes(Landroid/hardware/camera2/CameraCharacteristics;)Ljava/util/List;
move-result-object v1
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Available preview sizes: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
const-string v3, "Camera2Session"
invoke-static {v3, v2}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Available fps ranges: "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v3, v2}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v2
if-nez v2, :cond_1
invoke-interface {v1}, Ljava/util/List;->isEmpty()Z
move-result v2
if-eqz v2, :cond_0
goto :goto_0
:cond_0
iget v2, p0, Lorg/webrtc/Camera2Session;->framerate:I
invoke-static {v0, v2}, Lorg/webrtc/CameraEnumerationAndroid;->getClosestSupportedFramerateRange(Ljava/util/List;I)Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
move-result-object v0
iget v2, p0, Lorg/webrtc/Camera2Session;->width:I
iget v4, p0, Lorg/webrtc/Camera2Session;->height:I
invoke-static {v1, v2, v4}, Lorg/webrtc/CameraEnumerationAndroid;->getClosestSupportedSize(Ljava/util/List;II)Lorg/webrtc/Size;
move-result-object v1
sget-object v2, Lorg/webrtc/Camera2Session;->camera2ResolutionHistogram:Lorg/webrtc/Histogram;
invoke-static {v2, v1}, Lorg/webrtc/CameraEnumerationAndroid;->reportCameraResolution(Lorg/webrtc/Histogram;Lorg/webrtc/Size;)V
new-instance v2, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
iget v4, v1, Lorg/webrtc/Size;->width:I
iget v1, v1, Lorg/webrtc/Size;->height:I
invoke-direct {v2, v4, v1, v0}, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;-><init>(IILorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;)V
iput-object v2, p0, Lorg/webrtc/Camera2Session;->captureFormat:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
const-string v0, "Using capture format: "
invoke-static {v0}, Lf/e/c/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/Camera2Session;->captureFormat:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v3, v0}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
:cond_1
:goto_0
const-string v0, "No supported capture formats."
invoke-direct {p0, v0}, Lorg/webrtc/Camera2Session;->reportError(Ljava/lang/String;)V
return-void
.end method
.method private getFrameOrientation()I
.locals 2
iget-object v0, p0, Lorg/webrtc/Camera2Session;->applicationContext:Landroid/content/Context;
invoke-static {v0}, Lf0/c/g0;->b(Landroid/content/Context;)I
move-result v0
iget-boolean v1, p0, Lorg/webrtc/Camera2Session;->isCameraFrontFacing:Z
if-nez v1, :cond_0
rsub-int v0, v0, 0x168
:cond_0
iget v1, p0, Lorg/webrtc/Camera2Session;->cameraOrientation:I
add-int/2addr v1, v0
rem-int/lit16 v1, v1, 0x168
return v1
.end method
.method private openCamera()V
.locals 4
invoke-direct {p0}, Lorg/webrtc/Camera2Session;->checkIsOnCameraThread()V
const-string v0, "Opening camera "
invoke-static {v0}, Lf/e/c/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/Camera2Session;->cameraId:Ljava/lang/String;
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
const-string v1, "Camera2Session"
invoke-static {v1, v0}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
iget-object v0, p0, Lorg/webrtc/Camera2Session;->events:Lorg/webrtc/CameraSession$Events;
invoke-interface {v0}, Lorg/webrtc/CameraSession$Events;->onCameraOpening()V
:try_start_0
iget-object v0, p0, Lorg/webrtc/Camera2Session;->cameraManager:Landroid/hardware/camera2/CameraManager;
iget-object v1, p0, Lorg/webrtc/Camera2Session;->cameraId:Ljava/lang/String;
new-instance v2, Lorg/webrtc/Camera2Session$CameraStateCallback;
const/4 v3, 0x0
invoke-direct {v2, p0, v3}, Lorg/webrtc/Camera2Session$CameraStateCallback;-><init>(Lorg/webrtc/Camera2Session;Lorg/webrtc/Camera2Session$1;)V
iget-object v3, p0, Lorg/webrtc/Camera2Session;->cameraThreadHandler:Landroid/os/Handler;
invoke-virtual {v0, v1, v2, v3}, Landroid/hardware/camera2/CameraManager;->openCamera(Ljava/lang/String;Landroid/hardware/camera2/CameraDevice$StateCallback;Landroid/os/Handler;)V
:try_end_0
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_0 .. :try_end_0} :catch_0
return-void
:catch_0
move-exception v0
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Failed to open camera: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/webrtc/Camera2Session;->reportError(Ljava/lang/String;)V
return-void
.end method
.method private reportError(Ljava/lang/String;)V
.locals 2
invoke-direct {p0}, Lorg/webrtc/Camera2Session;->checkIsOnCameraThread()V
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Error: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "Camera2Session"
invoke-static {v1, v0}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
iget-object v0, p0, Lorg/webrtc/Camera2Session;->captureSession:Landroid/hardware/camera2/CameraCaptureSession;
if-nez v0, :cond_0
iget-object v0, p0, Lorg/webrtc/Camera2Session;->state:Lorg/webrtc/Camera2Session$SessionState;
sget-object v1, Lorg/webrtc/Camera2Session$SessionState;->STOPPED:Lorg/webrtc/Camera2Session$SessionState;
if-eq v0, v1, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
sget-object v1, Lorg/webrtc/Camera2Session$SessionState;->STOPPED:Lorg/webrtc/Camera2Session$SessionState;
iput-object v1, p0, Lorg/webrtc/Camera2Session;->state:Lorg/webrtc/Camera2Session$SessionState;
invoke-direct {p0}, Lorg/webrtc/Camera2Session;->stopInternal()V
if-eqz v0, :cond_1
iget-object v0, p0, Lorg/webrtc/Camera2Session;->callback:Lorg/webrtc/CameraSession$CreateSessionCallback;
sget-object v1, Lorg/webrtc/CameraSession$FailureType;->ERROR:Lorg/webrtc/CameraSession$FailureType;
invoke-interface {v0, v1, p1}, Lorg/webrtc/CameraSession$CreateSessionCallback;->onFailure(Lorg/webrtc/CameraSession$FailureType;Ljava/lang/String;)V
goto :goto_1
:cond_1
iget-object v0, p0, Lorg/webrtc/Camera2Session;->events:Lorg/webrtc/CameraSession$Events;
invoke-interface {v0, p0, p1}, Lorg/webrtc/CameraSession$Events;->onCameraError(Lorg/webrtc/CameraSession;Ljava/lang/String;)V
:goto_1
return-void
.end method
.method private start()V
.locals 2
invoke-direct {p0}, Lorg/webrtc/Camera2Session;->checkIsOnCameraThread()V
const-string v0, "Camera2Session"
const-string v1, "start"
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
:try_start_0
iget-object v0, p0, Lorg/webrtc/Camera2Session;->cameraManager:Landroid/hardware/camera2/CameraManager;
iget-object v1, p0, Lorg/webrtc/Camera2Session;->cameraId:Ljava/lang/String;
invoke-virtual {v0, v1}, Landroid/hardware/camera2/CameraManager;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
iput-object v0, p0, Lorg/webrtc/Camera2Session;->cameraCharacteristics:Landroid/hardware/camera2/CameraCharacteristics;
:try_end_0
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_0 .. :try_end_0} :catch_0
sget-object v1, Landroid/hardware/camera2/CameraCharacteristics;->SENSOR_ORIENTATION:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v0, v1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
iput v0, p0, Lorg/webrtc/Camera2Session;->cameraOrientation:I
iget-object v0, p0, Lorg/webrtc/Camera2Session;->cameraCharacteristics:Landroid/hardware/camera2/CameraCharacteristics;
sget-object v1, Landroid/hardware/camera2/CameraCharacteristics;->LENS_FACING:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v0, v1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
if-nez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
iput-boolean v0, p0, Lorg/webrtc/Camera2Session;->isCameraFrontFacing:Z
invoke-direct {p0}, Lorg/webrtc/Camera2Session;->findCaptureFormat()V
invoke-direct {p0}, Lorg/webrtc/Camera2Session;->openCamera()V
return-void
:catch_0
move-exception v0
const-string v1, "getCameraCharacteristics(): "
invoke-static {v1}, Lf/e/c/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v0}, Landroid/hardware/camera2/CameraAccessException;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/webrtc/Camera2Session;->reportError(Ljava/lang/String;)V
return-void
.end method
.method private stopInternal()V
.locals 3
const-string v0, "Camera2Session"
const-string v1, "Stop internal"
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
invoke-direct {p0}, Lorg/webrtc/Camera2Session;->checkIsOnCameraThread()V
iget-object v1, p0, Lorg/webrtc/Camera2Session;->surfaceTextureHelper:Lorg/webrtc/SurfaceTextureHelper;
invoke-virtual {v1}, Lorg/webrtc/SurfaceTextureHelper;->stopListening()V
iget-object v1, p0, Lorg/webrtc/Camera2Session;->captureSession:Landroid/hardware/camera2/CameraCaptureSession;
const/4 v2, 0x0
if-eqz v1, :cond_0
invoke-virtual {v1}, Landroid/hardware/camera2/CameraCaptureSession;->close()V
iput-object v2, p0, Lorg/webrtc/Camera2Session;->captureSession:Landroid/hardware/camera2/CameraCaptureSession;
:cond_0
iget-object v1, p0, Lorg/webrtc/Camera2Session;->surface:Landroid/view/Surface;
if-eqz v1, :cond_1
invoke-virtual {v1}, Landroid/view/Surface;->release()V
iput-object v2, p0, Lorg/webrtc/Camera2Session;->surface:Landroid/view/Surface;
:cond_1
iget-object v1, p0, Lorg/webrtc/Camera2Session;->cameraDevice:Landroid/hardware/camera2/CameraDevice;
if-eqz v1, :cond_2
invoke-virtual {v1}, Landroid/hardware/camera2/CameraDevice;->close()V
iput-object v2, p0, Lorg/webrtc/Camera2Session;->cameraDevice:Landroid/hardware/camera2/CameraDevice;
:cond_2
const-string v1, "Stop done"
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
# virtual methods
.method public stop()V
.locals 5
const-string v0, "Stop camera2 session on camera "
invoke-static {v0}, Lf/e/c/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/Camera2Session;->cameraId:Ljava/lang/String;
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
const-string v1, "Camera2Session"
invoke-static {v1, v0}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
invoke-direct {p0}, Lorg/webrtc/Camera2Session;->checkIsOnCameraThread()V
iget-object v0, p0, Lorg/webrtc/Camera2Session;->state:Lorg/webrtc/Camera2Session$SessionState;
sget-object v1, Lorg/webrtc/Camera2Session$SessionState;->STOPPED:Lorg/webrtc/Camera2Session$SessionState;
if-eq v0, v1, :cond_0
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v0
sget-object v2, Lorg/webrtc/Camera2Session$SessionState;->STOPPED:Lorg/webrtc/Camera2Session$SessionState;
iput-object v2, p0, Lorg/webrtc/Camera2Session;->state:Lorg/webrtc/Camera2Session$SessionState;
invoke-direct {p0}, Lorg/webrtc/Camera2Session;->stopInternal()V
sget-object v2, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v3
sub-long/2addr v3, v0
invoke-virtual {v2, v3, v4}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J
move-result-wide v0
long-to-int v1, v0
sget-object v0, Lorg/webrtc/Camera2Session;->camera2StopTimeMsHistogram:Lorg/webrtc/Histogram;
invoke-virtual {v0, v1}, Lorg/webrtc/Histogram;->addSample(I)V
:cond_0
return-void
.end method

View file

@ -0,0 +1,427 @@
.class public Lorg/webrtc/CameraCapturer$1;
.super Ljava/lang/Object;
.source "CameraCapturer.java"
# interfaces
.implements Lorg/webrtc/CameraSession$CreateSessionCallback;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CameraCapturer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/CameraCapturer;
# direct methods
.method public constructor <init>(Lorg/webrtc/CameraCapturer;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public onDone(Lorg/webrtc/CameraSession;)V
.locals 5
iget-object v0, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$000(Lorg/webrtc/CameraCapturer;)V
const-string v0, "CameraCapturer"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Create session done. Switch state: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v2}, Lorg/webrtc/CameraCapturer;->access$100(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraCapturer$SwitchState;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
iget-object v0, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$300(Lorg/webrtc/CameraCapturer;)Landroid/os/Handler;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$200(Lorg/webrtc/CameraCapturer;)Ljava/lang/Runnable;
move-result-object v1
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
iget-object v0, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$400(Lorg/webrtc/CameraCapturer;)Ljava/lang/Object;
move-result-object v0
monitor-enter v0
:try_start_0
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$500(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CapturerObserver;
move-result-object v1
const/4 v2, 0x1
invoke-interface {v1, v2}, Lorg/webrtc/CapturerObserver;->onCapturerStarted(Z)V
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
const/4 v2, 0x0
invoke-static {v1, v2}, Lorg/webrtc/CameraCapturer;->access$602(Lorg/webrtc/CameraCapturer;Z)Z
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1, p1}, Lorg/webrtc/CameraCapturer;->access$702(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraSession;)Lorg/webrtc/CameraSession;
iget-object p1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
new-instance v1, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
iget-object v3, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v3}, Lorg/webrtc/CameraCapturer;->access$900(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/SurfaceTextureHelper;
move-result-object v3
iget-object v4, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v4}, Lorg/webrtc/CameraCapturer;->access$1000(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
move-result-object v4
invoke-direct {v1, v3, v4}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;-><init>(Lorg/webrtc/SurfaceTextureHelper;Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;)V
invoke-static {p1, v1}, Lorg/webrtc/CameraCapturer;->access$802(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
iget-object p1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1, v2}, Lorg/webrtc/CameraCapturer;->access$1102(Lorg/webrtc/CameraCapturer;Z)Z
iget-object p1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1}, Lorg/webrtc/CameraCapturer;->access$400(Lorg/webrtc/CameraCapturer;)Ljava/lang/Object;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/Object;->notifyAll()V
iget-object p1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1}, Lorg/webrtc/CameraCapturer;->access$100(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraCapturer$SwitchState;
move-result-object p1
sget-object v1, Lorg/webrtc/CameraCapturer$SwitchState;->IN_PROGRESS:Lorg/webrtc/CameraCapturer$SwitchState;
if-ne p1, v1, :cond_0
iget-object p1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
sget-object v1, Lorg/webrtc/CameraCapturer$SwitchState;->IDLE:Lorg/webrtc/CameraCapturer$SwitchState;
invoke-static {p1, v1}, Lorg/webrtc/CameraCapturer;->access$102(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraCapturer$SwitchState;)Lorg/webrtc/CameraCapturer$SwitchState;
iget-object p1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1}, Lorg/webrtc/CameraCapturer;->access$1200(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
move-result-object p1
if-eqz p1, :cond_1
iget-object p1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1}, Lorg/webrtc/CameraCapturer;->access$1200(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
move-result-object p1
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$1400(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraEnumerator;
move-result-object v1
iget-object v2, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v2}, Lorg/webrtc/CameraCapturer;->access$1300(Lorg/webrtc/CameraCapturer;)Ljava/lang/String;
move-result-object v2
invoke-interface {v1, v2}, Lorg/webrtc/CameraEnumerator;->isFrontFacing(Ljava/lang/String;)Z
move-result v1
invoke-interface {p1, v1}, Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;->onCameraSwitchDone(Z)V
iget-object p1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
const/4 v1, 0x0
invoke-static {p1, v1}, Lorg/webrtc/CameraCapturer;->access$1202(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
goto :goto_0
:cond_0
iget-object p1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1}, Lorg/webrtc/CameraCapturer;->access$100(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraCapturer$SwitchState;
move-result-object p1
sget-object v1, Lorg/webrtc/CameraCapturer$SwitchState;->PENDING:Lorg/webrtc/CameraCapturer$SwitchState;
if-ne p1, v1, :cond_1
iget-object p1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
sget-object v1, Lorg/webrtc/CameraCapturer$SwitchState;->IDLE:Lorg/webrtc/CameraCapturer$SwitchState;
invoke-static {p1, v1}, Lorg/webrtc/CameraCapturer;->access$102(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraCapturer$SwitchState;)Lorg/webrtc/CameraCapturer$SwitchState;
iget-object p1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$1200(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
move-result-object v1
invoke-static {p1, v1}, Lorg/webrtc/CameraCapturer;->access$1500(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
:cond_1
:goto_0
monitor-exit v0
return-void
:catchall_0
move-exception p1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p1
.end method
.method public onFailure(Lorg/webrtc/CameraSession$FailureType;Ljava/lang/String;)V
.locals 5
iget-object v0, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$000(Lorg/webrtc/CameraCapturer;)V
iget-object v0, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$300(Lorg/webrtc/CameraCapturer;)Landroid/os/Handler;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$200(Lorg/webrtc/CameraCapturer;)Ljava/lang/Runnable;
move-result-object v1
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
iget-object v0, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$400(Lorg/webrtc/CameraCapturer;)Ljava/lang/Object;
move-result-object v0
monitor-enter v0
:try_start_0
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$500(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CapturerObserver;
move-result-object v1
const/4 v2, 0x0
invoke-interface {v1, v2}, Lorg/webrtc/CapturerObserver;->onCapturerStarted(Z)V
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$1610(Lorg/webrtc/CameraCapturer;)I
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$1600(Lorg/webrtc/CameraCapturer;)I
move-result v1
if-gtz v1, :cond_3
const-string v1, "CameraCapturer"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Opening camera failed, passing: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v1, v3}, Lorg/webrtc/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1, v2}, Lorg/webrtc/CameraCapturer;->access$602(Lorg/webrtc/CameraCapturer;Z)Z
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$400(Lorg/webrtc/CameraCapturer;)Ljava/lang/Object;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Object;->notifyAll()V
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$100(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraCapturer$SwitchState;
move-result-object v1
sget-object v2, Lorg/webrtc/CameraCapturer$SwitchState;->IDLE:Lorg/webrtc/CameraCapturer$SwitchState;
if-eq v1, v2, :cond_1
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$1200(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
move-result-object v1
if-eqz v1, :cond_0
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$1200(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
move-result-object v1
invoke-interface {v1, p2}, Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;->onCameraSwitchError(Ljava/lang/String;)V
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
const/4 v2, 0x0
invoke-static {v1, v2}, Lorg/webrtc/CameraCapturer;->access$1202(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
:cond_0
iget-object v1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
sget-object v2, Lorg/webrtc/CameraCapturer$SwitchState;->IDLE:Lorg/webrtc/CameraCapturer$SwitchState;
invoke-static {v1, v2}, Lorg/webrtc/CameraCapturer;->access$102(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraCapturer$SwitchState;)Lorg/webrtc/CameraCapturer$SwitchState;
:cond_1
sget-object v1, Lorg/webrtc/CameraSession$FailureType;->DISCONNECTED:Lorg/webrtc/CameraSession$FailureType;
if-ne p1, v1, :cond_2
iget-object p1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1}, Lorg/webrtc/CameraCapturer;->access$1000(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
move-result-object p1
invoke-interface {p1}, Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;->onCameraDisconnected()V
goto :goto_0
:cond_2
iget-object p1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1}, Lorg/webrtc/CameraCapturer;->access$1000(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
move-result-object p1
invoke-interface {p1, p2}, Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;->onCameraError(Ljava/lang/String;)V
goto :goto_0
:cond_3
const-string p1, "CameraCapturer"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Opening camera failed, retry: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-static {p1, p2}, Lorg/webrtc/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
iget-object p1, p0, Lorg/webrtc/CameraCapturer$1;->this$0:Lorg/webrtc/CameraCapturer;
const/16 p2, 0x1f4
invoke-static {p1, p2}, Lorg/webrtc/CameraCapturer;->access$1700(Lorg/webrtc/CameraCapturer;I)V
:goto_0
monitor-exit v0
return-void
:catchall_0
move-exception p1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p1
.end method

View file

@ -0,0 +1,385 @@
.class public Lorg/webrtc/CameraCapturer$2;
.super Ljava/lang/Object;
.source "CameraCapturer.java"
# interfaces
.implements Lorg/webrtc/CameraSession$Events;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CameraCapturer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/CameraCapturer;
# direct methods
.method public constructor <init>(Lorg/webrtc/CameraCapturer;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public onCameraClosed(Lorg/webrtc/CameraSession;)V
.locals 2
iget-object v0, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$000(Lorg/webrtc/CameraCapturer;)V
iget-object v0, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$400(Lorg/webrtc/CameraCapturer;)Ljava/lang/Object;
move-result-object v0
monitor-enter v0
:try_start_0
iget-object v1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$700(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraSession;
move-result-object v1
if-eq p1, v1, :cond_0
iget-object p1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1}, Lorg/webrtc/CameraCapturer;->access$700(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraSession;
move-result-object p1
if-eqz p1, :cond_0
const-string p1, "CameraCapturer"
const-string v1, "onCameraClosed from another session."
invoke-static {p1, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
monitor-exit v0
return-void
:cond_0
iget-object p1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1}, Lorg/webrtc/CameraCapturer;->access$1000(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
move-result-object p1
invoke-interface {p1}, Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;->onCameraClosed()V
monitor-exit v0
return-void
:catchall_0
move-exception p1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p1
.end method
.method public onCameraDisconnected(Lorg/webrtc/CameraSession;)V
.locals 2
iget-object v0, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$000(Lorg/webrtc/CameraCapturer;)V
iget-object v0, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$400(Lorg/webrtc/CameraCapturer;)Ljava/lang/Object;
move-result-object v0
monitor-enter v0
:try_start_0
iget-object v1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$700(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraSession;
move-result-object v1
if-eq p1, v1, :cond_0
const-string p1, "CameraCapturer"
const-string v1, "onCameraDisconnected from another session."
invoke-static {p1, v1}, Lorg/webrtc/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
monitor-exit v0
return-void
:cond_0
iget-object p1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1}, Lorg/webrtc/CameraCapturer;->access$1000(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
move-result-object p1
invoke-interface {p1}, Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;->onCameraDisconnected()V
iget-object p1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-virtual {p1}, Lorg/webrtc/CameraCapturer;->stopCapture()V
monitor-exit v0
return-void
:catchall_0
move-exception p1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p1
.end method
.method public onCameraError(Lorg/webrtc/CameraSession;Ljava/lang/String;)V
.locals 3
iget-object v0, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$000(Lorg/webrtc/CameraCapturer;)V
iget-object v0, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$400(Lorg/webrtc/CameraCapturer;)Ljava/lang/Object;
move-result-object v0
monitor-enter v0
:try_start_0
iget-object v1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$700(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraSession;
move-result-object v1
if-eq p1, v1, :cond_0
const-string p1, "CameraCapturer"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "onCameraError from another session: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-static {p1, p2}, Lorg/webrtc/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
monitor-exit v0
return-void
:cond_0
iget-object p1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1}, Lorg/webrtc/CameraCapturer;->access$1000(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
move-result-object p1
invoke-interface {p1, p2}, Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;->onCameraError(Ljava/lang/String;)V
iget-object p1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-virtual {p1}, Lorg/webrtc/CameraCapturer;->stopCapture()V
monitor-exit v0
return-void
:catchall_0
move-exception p1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p1
.end method
.method public onCameraOpening()V
.locals 3
iget-object v0, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$000(Lorg/webrtc/CameraCapturer;)V
iget-object v0, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$400(Lorg/webrtc/CameraCapturer;)Ljava/lang/Object;
move-result-object v0
monitor-enter v0
:try_start_0
iget-object v1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$700(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraSession;
move-result-object v1
if-eqz v1, :cond_0
const-string v1, "CameraCapturer"
const-string v2, "onCameraOpening while session was open."
invoke-static {v1, v2}, Lorg/webrtc/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
monitor-exit v0
return-void
:cond_0
iget-object v1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$1000(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
move-result-object v1
iget-object v2, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v2}, Lorg/webrtc/CameraCapturer;->access$1300(Lorg/webrtc/CameraCapturer;)Ljava/lang/String;
move-result-object v2
invoke-interface {v1, v2}, Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;->onCameraOpening(Ljava/lang/String;)V
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
.method public onFrameCaptured(Lorg/webrtc/CameraSession;Lorg/webrtc/VideoFrame;)V
.locals 2
iget-object v0, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$000(Lorg/webrtc/CameraCapturer;)V
iget-object v0, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$400(Lorg/webrtc/CameraCapturer;)Ljava/lang/Object;
move-result-object v0
monitor-enter v0
:try_start_0
iget-object v1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v1}, Lorg/webrtc/CameraCapturer;->access$700(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraSession;
move-result-object v1
if-eq p1, v1, :cond_0
const-string p1, "CameraCapturer"
const-string p2, "onFrameCaptured from another session."
invoke-static {p1, p2}, Lorg/webrtc/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
monitor-exit v0
return-void
:cond_0
iget-object p1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1}, Lorg/webrtc/CameraCapturer;->access$1100(Lorg/webrtc/CameraCapturer;)Z
move-result p1
if-nez p1, :cond_1
iget-object p1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1}, Lorg/webrtc/CameraCapturer;->access$1000(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
move-result-object p1
invoke-interface {p1}, Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;->onFirstFrameAvailable()V
iget-object p1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
const/4 v1, 0x1
invoke-static {p1, v1}, Lorg/webrtc/CameraCapturer;->access$1102(Lorg/webrtc/CameraCapturer;Z)Z
:cond_1
iget-object p1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1}, Lorg/webrtc/CameraCapturer;->access$800(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
move-result-object p1
invoke-virtual {p1}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->addFrame()V
iget-object p1, p0, Lorg/webrtc/CameraCapturer$2;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {p1}, Lorg/webrtc/CameraCapturer;->access$500(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CapturerObserver;
move-result-object p1
invoke-interface {p1, p2}, Lorg/webrtc/CapturerObserver;->onFrameCaptured(Lorg/webrtc/VideoFrame;)V
monitor-exit v0
return-void
:catchall_0
move-exception p1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p1
.end method

View file

@ -0,0 +1,51 @@
.class public Lorg/webrtc/CameraCapturer$3;
.super Ljava/lang/Object;
.source "CameraCapturer.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CameraCapturer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/CameraCapturer;
# direct methods
.method public constructor <init>(Lorg/webrtc/CameraCapturer;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/CameraCapturer$3;->this$0:Lorg/webrtc/CameraCapturer;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 2
iget-object v0, p0, Lorg/webrtc/CameraCapturer$3;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$1000(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
move-result-object v0
const-string v1, "Camera failed to start within timeout."
invoke-interface {v0, v1}, Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;->onCameraError(Ljava/lang/String;)V
return-void
.end method

View file

@ -0,0 +1,71 @@
.class public Lorg/webrtc/CameraCapturer$4;
.super Ljava/lang/Object;
.source "CameraCapturer.java"
# interfaces
.implements Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lorg/webrtc/CameraCapturer;-><init>(Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;Lorg/webrtc/CameraEnumerator;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/CameraCapturer;
# direct methods
.method public constructor <init>(Lorg/webrtc/CameraCapturer;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/CameraCapturer$4;->this$0:Lorg/webrtc/CameraCapturer;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public onCameraClosed()V
.locals 0
return-void
.end method
.method public onCameraDisconnected()V
.locals 0
return-void
.end method
.method public onCameraError(Ljava/lang/String;)V
.locals 0
return-void
.end method
.method public onCameraFreezed(Ljava/lang/String;)V
.locals 0
return-void
.end method
.method public onCameraOpening(Ljava/lang/String;)V
.locals 0
return-void
.end method
.method public onFirstFrameAvailable()V
.locals 0
return-void
.end method

View file

@ -0,0 +1,91 @@
.class public Lorg/webrtc/CameraCapturer$5;
.super Ljava/lang/Object;
.source "CameraCapturer.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lorg/webrtc/CameraCapturer;->createSessionInternal(I)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/CameraCapturer;
# direct methods
.method public constructor <init>(Lorg/webrtc/CameraCapturer;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/CameraCapturer$5;->this$0:Lorg/webrtc/CameraCapturer;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 9
iget-object v0, p0, Lorg/webrtc/CameraCapturer$5;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v0}, Lorg/webrtc/CameraCapturer;->access$1800(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraSession$CreateSessionCallback;
move-result-object v1
iget-object v2, p0, Lorg/webrtc/CameraCapturer$5;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v2}, Lorg/webrtc/CameraCapturer;->access$1900(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraSession$Events;
move-result-object v2
iget-object v3, p0, Lorg/webrtc/CameraCapturer$5;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v3}, Lorg/webrtc/CameraCapturer;->access$2000(Lorg/webrtc/CameraCapturer;)Landroid/content/Context;
move-result-object v3
iget-object v4, p0, Lorg/webrtc/CameraCapturer$5;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v4}, Lorg/webrtc/CameraCapturer;->access$900(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/SurfaceTextureHelper;
move-result-object v4
iget-object v5, p0, Lorg/webrtc/CameraCapturer$5;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v5}, Lorg/webrtc/CameraCapturer;->access$1300(Lorg/webrtc/CameraCapturer;)Ljava/lang/String;
move-result-object v5
iget-object v6, p0, Lorg/webrtc/CameraCapturer$5;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v6}, Lorg/webrtc/CameraCapturer;->access$2100(Lorg/webrtc/CameraCapturer;)I
move-result v6
iget-object v7, p0, Lorg/webrtc/CameraCapturer$5;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v7}, Lorg/webrtc/CameraCapturer;->access$2200(Lorg/webrtc/CameraCapturer;)I
move-result v7
iget-object v8, p0, Lorg/webrtc/CameraCapturer$5;->this$0:Lorg/webrtc/CameraCapturer;
invoke-static {v8}, Lorg/webrtc/CameraCapturer;->access$2300(Lorg/webrtc/CameraCapturer;)I
move-result v8
invoke-virtual/range {v0 .. v8}, Lorg/webrtc/CameraCapturer;->createCameraSession(Lorg/webrtc/CameraSession$CreateSessionCallback;Lorg/webrtc/CameraSession$Events;Landroid/content/Context;Lorg/webrtc/SurfaceTextureHelper;Ljava/lang/String;III)V
return-void
.end method

View file

@ -0,0 +1,49 @@
.class public Lorg/webrtc/CameraCapturer$6;
.super Ljava/lang/Object;
.source "CameraCapturer.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lorg/webrtc/CameraCapturer;->stopCapture()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/CameraCapturer;
.field public final synthetic val$oldSession:Lorg/webrtc/CameraSession;
# direct methods
.method public constructor <init>(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraSession;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/CameraCapturer$6;->this$0:Lorg/webrtc/CameraCapturer;
iput-object p2, p0, Lorg/webrtc/CameraCapturer$6;->val$oldSession:Lorg/webrtc/CameraSession;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 1
iget-object v0, p0, Lorg/webrtc/CameraCapturer$6;->val$oldSession:Lorg/webrtc/CameraSession;
invoke-interface {v0}, Lorg/webrtc/CameraSession;->stop()V
return-void
.end method

View file

@ -0,0 +1,51 @@
.class public Lorg/webrtc/CameraCapturer$7;
.super Ljava/lang/Object;
.source "CameraCapturer.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lorg/webrtc/CameraCapturer;->switchCamera(Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/CameraCapturer;
.field public final synthetic val$switchEventsHandler:Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
# direct methods
.method public constructor <init>(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/CameraCapturer$7;->this$0:Lorg/webrtc/CameraCapturer;
iput-object p2, p0, Lorg/webrtc/CameraCapturer$7;->val$switchEventsHandler:Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 2
iget-object v0, p0, Lorg/webrtc/CameraCapturer$7;->this$0:Lorg/webrtc/CameraCapturer;
iget-object v1, p0, Lorg/webrtc/CameraCapturer$7;->val$switchEventsHandler:Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
invoke-static {v0, v1}, Lorg/webrtc/CameraCapturer;->access$1500(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
return-void
.end method

View file

@ -0,0 +1,49 @@
.class public Lorg/webrtc/CameraCapturer$8;
.super Ljava/lang/Object;
.source "CameraCapturer.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lorg/webrtc/CameraCapturer;->switchCameraInternal(Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/CameraCapturer;
.field public final synthetic val$oldSession:Lorg/webrtc/CameraSession;
# direct methods
.method public constructor <init>(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraSession;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/CameraCapturer$8;->this$0:Lorg/webrtc/CameraCapturer;
iput-object p2, p0, Lorg/webrtc/CameraCapturer$8;->val$oldSession:Lorg/webrtc/CameraSession;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 1
iget-object v0, p0, Lorg/webrtc/CameraCapturer$8;->val$oldSession:Lorg/webrtc/CameraSession;
invoke-interface {v0}, Lorg/webrtc/CameraSession;->stop()V
return-void
.end method

View file

@ -0,0 +1,127 @@
.class public final enum Lorg/webrtc/CameraCapturer$SwitchState;
.super Ljava/lang/Enum;
.source "CameraCapturer.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CameraCapturer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4019
name = "SwitchState"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Enum<",
"Lorg/webrtc/CameraCapturer$SwitchState;",
">;"
}
.end annotation
# static fields
.field public static final synthetic $VALUES:[Lorg/webrtc/CameraCapturer$SwitchState;
.field public static final enum IDLE:Lorg/webrtc/CameraCapturer$SwitchState;
.field public static final enum IN_PROGRESS:Lorg/webrtc/CameraCapturer$SwitchState;
.field public static final enum PENDING:Lorg/webrtc/CameraCapturer$SwitchState;
# direct methods
.method public static constructor <clinit>()V
.locals 6
new-instance v0, Lorg/webrtc/CameraCapturer$SwitchState;
const-string v1, "IDLE"
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lorg/webrtc/CameraCapturer$SwitchState;-><init>(Ljava/lang/String;I)V
sput-object v0, Lorg/webrtc/CameraCapturer$SwitchState;->IDLE:Lorg/webrtc/CameraCapturer$SwitchState;
new-instance v0, Lorg/webrtc/CameraCapturer$SwitchState;
const-string v1, "PENDING"
const/4 v3, 0x1
invoke-direct {v0, v1, v3}, Lorg/webrtc/CameraCapturer$SwitchState;-><init>(Ljava/lang/String;I)V
sput-object v0, Lorg/webrtc/CameraCapturer$SwitchState;->PENDING:Lorg/webrtc/CameraCapturer$SwitchState;
new-instance v0, Lorg/webrtc/CameraCapturer$SwitchState;
const-string v1, "IN_PROGRESS"
const/4 v4, 0x2
invoke-direct {v0, v1, v4}, Lorg/webrtc/CameraCapturer$SwitchState;-><init>(Ljava/lang/String;I)V
sput-object v0, Lorg/webrtc/CameraCapturer$SwitchState;->IN_PROGRESS:Lorg/webrtc/CameraCapturer$SwitchState;
const/4 v1, 0x3
new-array v1, v1, [Lorg/webrtc/CameraCapturer$SwitchState;
sget-object v5, Lorg/webrtc/CameraCapturer$SwitchState;->IDLE:Lorg/webrtc/CameraCapturer$SwitchState;
aput-object v5, v1, v2
sget-object v2, Lorg/webrtc/CameraCapturer$SwitchState;->PENDING:Lorg/webrtc/CameraCapturer$SwitchState;
aput-object v2, v1, v3
aput-object v0, v1, v4
sput-object v1, Lorg/webrtc/CameraCapturer$SwitchState;->$VALUES:[Lorg/webrtc/CameraCapturer$SwitchState;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;I)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method public static valueOf(Ljava/lang/String;)Lorg/webrtc/CameraCapturer$SwitchState;
.locals 1
const-class v0, Lorg/webrtc/CameraCapturer$SwitchState;
invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
move-result-object p0
check-cast p0, Lorg/webrtc/CameraCapturer$SwitchState;
return-object p0
.end method
.method public static values()[Lorg/webrtc/CameraCapturer$SwitchState;
.locals 1
sget-object v0, Lorg/webrtc/CameraCapturer$SwitchState;->$VALUES:[Lorg/webrtc/CameraCapturer$SwitchState;
invoke-virtual {v0}, [Lorg/webrtc/CameraCapturer$SwitchState;->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lorg/webrtc/CameraCapturer$SwitchState;
return-object v0
.end method

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,130 @@
.class public final Lorg/webrtc/CameraEnumerationAndroid$1;
.super Lorg/webrtc/CameraEnumerationAndroid$ClosestComparator;
.source "CameraEnumerationAndroid.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lorg/webrtc/CameraEnumerationAndroid;->getClosestSupportedFramerateRange(Ljava/util/List;I)Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/webrtc/CameraEnumerationAndroid$ClosestComparator<",
"Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;",
">;"
}
.end annotation
# static fields
.field public static final MAX_FPS_DIFF_THRESHOLD:I = 0x1388
.field public static final MAX_FPS_HIGH_DIFF_WEIGHT:I = 0x3
.field public static final MAX_FPS_LOW_DIFF_WEIGHT:I = 0x1
.field public static final MIN_FPS_HIGH_VALUE_WEIGHT:I = 0x4
.field public static final MIN_FPS_LOW_VALUE_WEIGHT:I = 0x1
.field public static final MIN_FPS_THRESHOLD:I = 0x1f40
# instance fields
.field public final synthetic val$requestedFps:I
# direct methods
.method public constructor <init>(I)V
.locals 0
iput p1, p0, Lorg/webrtc/CameraEnumerationAndroid$1;->val$requestedFps:I
const/4 p1, 0x0
invoke-direct {p0, p1}, Lorg/webrtc/CameraEnumerationAndroid$ClosestComparator;-><init>(Lorg/webrtc/CameraEnumerationAndroid$1;)V
return-void
.end method
.method private progressivePenalty(IIII)I
.locals 0
if-ge p1, p2, :cond_0
mul-int p1, p1, p3
goto :goto_0
:cond_0
mul-int p3, p3, p2
sub-int/2addr p1, p2
mul-int p1, p1, p4
add-int/2addr p1, p3
:goto_0
return p1
.end method
# virtual methods
.method public bridge synthetic diff(Ljava/lang/Object;)I
.locals 0
check-cast p1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
invoke-virtual {p0, p1}, Lorg/webrtc/CameraEnumerationAndroid$1;->diff(Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;)I
move-result p1
return p1
.end method
.method public diff(Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;)I
.locals 4
iget v0, p1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->min:I
const/16 v1, 0x1f40
const/4 v2, 0x1
const/4 v3, 0x4
invoke-direct {p0, v0, v1, v2, v3}, Lorg/webrtc/CameraEnumerationAndroid$1;->progressivePenalty(IIII)I
move-result v0
iget v1, p0, Lorg/webrtc/CameraEnumerationAndroid$1;->val$requestedFps:I
mul-int/lit16 v1, v1, 0x3e8
iget p1, p1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->max:I
sub-int/2addr v1, p1
invoke-static {v1}, Ljava/lang/Math;->abs(I)I
move-result p1
const/16 v1, 0x1388
const/4 v3, 0x3
invoke-direct {p0, p1, v1, v2, v3}, Lorg/webrtc/CameraEnumerationAndroid$1;->progressivePenalty(IIII)I
move-result p1
add-int/2addr v0, p1
return v0
.end method

View file

@ -0,0 +1,86 @@
.class public final Lorg/webrtc/CameraEnumerationAndroid$2;
.super Lorg/webrtc/CameraEnumerationAndroid$ClosestComparator;
.source "CameraEnumerationAndroid.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lorg/webrtc/CameraEnumerationAndroid;->getClosestSupportedSize(Ljava/util/List;II)Lorg/webrtc/Size;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/webrtc/CameraEnumerationAndroid$ClosestComparator<",
"Lorg/webrtc/Size;",
">;"
}
.end annotation
# instance fields
.field public final synthetic val$requestedHeight:I
.field public final synthetic val$requestedWidth:I
# direct methods
.method public constructor <init>(II)V
.locals 0
iput p1, p0, Lorg/webrtc/CameraEnumerationAndroid$2;->val$requestedWidth:I
iput p2, p0, Lorg/webrtc/CameraEnumerationAndroid$2;->val$requestedHeight:I
const/4 p1, 0x0
invoke-direct {p0, p1}, Lorg/webrtc/CameraEnumerationAndroid$ClosestComparator;-><init>(Lorg/webrtc/CameraEnumerationAndroid$1;)V
return-void
.end method
# virtual methods
.method public bridge synthetic diff(Ljava/lang/Object;)I
.locals 0
check-cast p1, Lorg/webrtc/Size;
invoke-virtual {p0, p1}, Lorg/webrtc/CameraEnumerationAndroid$2;->diff(Lorg/webrtc/Size;)I
move-result p1
return p1
.end method
.method public diff(Lorg/webrtc/Size;)I
.locals 2
iget v0, p0, Lorg/webrtc/CameraEnumerationAndroid$2;->val$requestedWidth:I
iget v1, p1, Lorg/webrtc/Size;->width:I
sub-int/2addr v0, v1
invoke-static {v0}, Ljava/lang/Math;->abs(I)I
move-result v0
iget v1, p0, Lorg/webrtc/CameraEnumerationAndroid$2;->val$requestedHeight:I
iget p1, p1, Lorg/webrtc/Size;->height:I
sub-int/2addr v1, p1
invoke-static {v1}, Ljava/lang/Math;->abs(I)I
move-result p1
add-int/2addr p1, v0
return p1
.end method

View file

@ -0,0 +1,128 @@
.class public Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
.super Ljava/lang/Object;
.source "CameraEnumerationAndroid.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "FramerateRange"
.end annotation
# instance fields
.field public max:I
.field public min:I
# direct methods
.method public constructor <init>(II)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput p1, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->min:I
iput p2, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->max:I
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 3
instance-of v0, p1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
const/4 v1, 0x0
if-nez v0, :cond_0
return v1
:cond_0
check-cast p1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
iget v0, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->min:I
iget v2, p1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->min:I
if-ne v0, v2, :cond_1
iget v0, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->max:I
iget p1, p1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->max:I
if-ne v0, p1, :cond_1
const/4 v1, 0x1
:cond_1
return v1
.end method
.method public hashCode()I
.locals 2
iget v0, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->min:I
const v1, 0x10001
mul-int v0, v0, v1
add-int/lit8 v0, v0, 0x1
iget v1, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->max:I
add-int/2addr v0, v1
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 3
const-string v0, "["
invoke-static {v0}, Lf/e/c/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->min:I
int-to-float v1, v1
const/high16 v2, 0x447a0000 # 1000.0f
div-float/2addr v1, v2
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
const-string v1, ":"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->max:I
int-to-float v1, v1
div-float/2addr v1, v2
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(F)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
return-object v0
.end method

View file

@ -0,0 +1,223 @@
.class public Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
.super Ljava/lang/Object;
.source "CameraEnumerationAndroid.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CameraEnumerationAndroid;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "CaptureFormat"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
}
.end annotation
# instance fields
.field public final framerate:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
.field public final height:I
.field public final imageFormat:I
.field public final width:I
# direct methods
.method public constructor <init>(IIII)V
.locals 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/16 v0, 0x11
iput v0, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->imageFormat:I
iput p1, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->width:I
iput p2, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->height:I
new-instance p1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
invoke-direct {p1, p3, p4}, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;-><init>(II)V
iput-object p1, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->framerate:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
return-void
.end method
.method public constructor <init>(IILorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;)V
.locals 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/16 v0, 0x11
iput v0, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->imageFormat:I
iput p1, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->width:I
iput p2, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->height:I
iput-object p3, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->framerate:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
return-void
.end method
.method public static frameSize(III)I
.locals 1
const/16 v0, 0x11
if-ne p2, v0, :cond_0
mul-int p0, p0, p1
invoke-static {p2}, Landroid/graphics/ImageFormat;->getBitsPerPixel(I)I
move-result p1
mul-int p1, p1, p0
div-int/lit8 p1, p1, 0x8
return p1
:cond_0
new-instance p0, Ljava/lang/UnsupportedOperationException;
const-string p1, "Don\'t know how to calculate the frame size of non-NV21 image formats."
invoke-direct {p0, p1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw p0
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 3
instance-of v0, p1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
const/4 v1, 0x0
if-nez v0, :cond_0
return v1
:cond_0
check-cast p1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
iget v0, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->width:I
iget v2, p1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->width:I
if-ne v0, v2, :cond_1
iget v0, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->height:I
iget v2, p1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->height:I
if-ne v0, v2, :cond_1
iget-object v0, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->framerate:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
iget-object p1, p1, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->framerate:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
invoke-virtual {v0, p1}, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_1
const/4 v1, 0x1
:cond_1
return v1
.end method
.method public frameSize()I
.locals 3
iget v0, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->width:I
iget v1, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->height:I
const/16 v2, 0x11
invoke-static {v0, v1, v2}, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->frameSize(III)I
move-result v0
return v0
.end method
.method public hashCode()I
.locals 2
iget v0, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->width:I
const v1, 0xffd9
mul-int v0, v0, v1
iget v1, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->height:I
add-int/2addr v0, v1
mul-int/lit16 v0, v0, 0xfb
add-int/lit8 v0, v0, 0x1
iget-object v1, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->framerate:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
invoke-virtual {v1}, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;->hashCode()I
move-result v1
add-int/2addr v1, v0
return v1
.end method
.method public toString()Ljava/lang/String;
.locals 2
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
iget v1, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->width:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, "x"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->height: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-object v1, p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;->framerate:Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View file

@ -0,0 +1,77 @@
.class public abstract Lorg/webrtc/CameraEnumerationAndroid$ClosestComparator;
.super Ljava/lang/Object;
.source "CameraEnumerationAndroid.java"
# interfaces
.implements Ljava/util/Comparator;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CameraEnumerationAndroid;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x409
name = "ClosestComparator"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;",
"Ljava/util/Comparator<",
"TT;>;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public synthetic constructor <init>(Lorg/webrtc/CameraEnumerationAndroid$1;)V
.locals 0
invoke-direct {p0}, Lorg/webrtc/CameraEnumerationAndroid$ClosestComparator;-><init>()V
return-void
.end method
# virtual methods
.method public compare(Ljava/lang/Object;Ljava/lang/Object;)I
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(TT;TT;)I"
}
.end annotation
invoke-virtual {p0, p1}, Lorg/webrtc/CameraEnumerationAndroid$ClosestComparator;->diff(Ljava/lang/Object;)I
move-result p1
invoke-virtual {p0, p2}, Lorg/webrtc/CameraEnumerationAndroid$ClosestComparator;->diff(Ljava/lang/Object;)I
move-result p2
sub-int/2addr p1, p2
return p1
.end method
.method public abstract diff(Ljava/lang/Object;)I
.annotation system Ldalvik/annotation/Signature;
value = {
"(TT;)I"
}
.end annotation
.end method

View file

@ -0,0 +1,330 @@
.class public Lorg/webrtc/CameraEnumerationAndroid;
.super Ljava/lang/Object;
.source "CameraEnumerationAndroid.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/webrtc/CameraEnumerationAndroid$ClosestComparator;,
Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;
}
.end annotation
# static fields
.field public static final COMMON_RESOLUTIONS:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Lorg/webrtc/Size;",
">;"
}
.end annotation
.end field
.field public static final TAG:Ljava/lang/String; = "CameraEnumerationAndroid"
# direct methods
.method public static constructor <clinit>()V
.locals 7
new-instance v0, Ljava/util/ArrayList;
const/16 v1, 0x14
new-array v1, v1, [Lorg/webrtc/Size;
new-instance v2, Lorg/webrtc/Size;
const/16 v3, 0xa0
const/16 v4, 0x78
invoke-direct {v2, v3, v4}, Lorg/webrtc/Size;-><init>(II)V
const/4 v4, 0x0
aput-object v2, v1, v4
new-instance v2, Lorg/webrtc/Size;
const/16 v4, 0xf0
invoke-direct {v2, v4, v3}, Lorg/webrtc/Size;-><init>(II)V
const/4 v3, 0x1
aput-object v2, v1, v3
new-instance v2, Lorg/webrtc/Size;
const/16 v3, 0x140
invoke-direct {v2, v3, v4}, Lorg/webrtc/Size;-><init>(II)V
const/4 v5, 0x2
aput-object v2, v1, v5
new-instance v2, Lorg/webrtc/Size;
const/16 v5, 0x190
invoke-direct {v2, v5, v4}, Lorg/webrtc/Size;-><init>(II)V
const/4 v4, 0x3
aput-object v2, v1, v4
new-instance v2, Lorg/webrtc/Size;
const/16 v4, 0x1e0
invoke-direct {v2, v4, v3}, Lorg/webrtc/Size;-><init>(II)V
const/4 v3, 0x4
aput-object v2, v1, v3
new-instance v2, Lorg/webrtc/Size;
const/16 v3, 0x280
const/16 v5, 0x168
invoke-direct {v2, v3, v5}, Lorg/webrtc/Size;-><init>(II)V
const/4 v5, 0x5
aput-object v2, v1, v5
new-instance v2, Lorg/webrtc/Size;
invoke-direct {v2, v3, v4}, Lorg/webrtc/Size;-><init>(II)V
const/4 v5, 0x6
aput-object v2, v1, v5
new-instance v2, Lorg/webrtc/Size;
const/16 v5, 0x300
invoke-direct {v2, v5, v4}, Lorg/webrtc/Size;-><init>(II)V
const/4 v5, 0x7
aput-object v2, v1, v5
new-instance v2, Lorg/webrtc/Size;
const/16 v5, 0x356
invoke-direct {v2, v5, v4}, Lorg/webrtc/Size;-><init>(II)V
const/16 v4, 0x8
aput-object v2, v1, v4
new-instance v2, Lorg/webrtc/Size;
const/16 v4, 0x320
const/16 v5, 0x258
invoke-direct {v2, v4, v5}, Lorg/webrtc/Size;-><init>(II)V
const/16 v4, 0x9
aput-object v2, v1, v4
new-instance v2, Lorg/webrtc/Size;
const/16 v4, 0x3c0
const/16 v6, 0x21c
invoke-direct {v2, v4, v6}, Lorg/webrtc/Size;-><init>(II)V
const/16 v6, 0xa
aput-object v2, v1, v6
new-instance v2, Lorg/webrtc/Size;
invoke-direct {v2, v4, v3}, Lorg/webrtc/Size;-><init>(II)V
const/16 v3, 0xb
aput-object v2, v1, v3
new-instance v2, Lorg/webrtc/Size;
const/16 v3, 0x400
const/16 v4, 0x240
invoke-direct {v2, v3, v4}, Lorg/webrtc/Size;-><init>(II)V
const/16 v4, 0xc
aput-object v2, v1, v4
new-instance v2, Lorg/webrtc/Size;
invoke-direct {v2, v3, v5}, Lorg/webrtc/Size;-><init>(II)V
const/16 v4, 0xd
aput-object v2, v1, v4
new-instance v2, Lorg/webrtc/Size;
const/16 v4, 0x500
const/16 v5, 0x2d0
invoke-direct {v2, v4, v5}, Lorg/webrtc/Size;-><init>(II)V
const/16 v5, 0xe
aput-object v2, v1, v5
new-instance v2, Lorg/webrtc/Size;
invoke-direct {v2, v4, v3}, Lorg/webrtc/Size;-><init>(II)V
const/16 v3, 0xf
aput-object v2, v1, v3
new-instance v2, Lorg/webrtc/Size;
const/16 v3, 0x780
const/16 v4, 0x438
invoke-direct {v2, v3, v4}, Lorg/webrtc/Size;-><init>(II)V
const/16 v4, 0x10
aput-object v2, v1, v4
new-instance v2, Lorg/webrtc/Size;
const/16 v4, 0x5a0
invoke-direct {v2, v3, v4}, Lorg/webrtc/Size;-><init>(II)V
const/16 v3, 0x11
aput-object v2, v1, v3
new-instance v2, Lorg/webrtc/Size;
const/16 v3, 0xa00
invoke-direct {v2, v3, v4}, Lorg/webrtc/Size;-><init>(II)V
const/16 v3, 0x12
aput-object v2, v1, v3
new-instance v2, Lorg/webrtc/Size;
const/16 v3, 0xf00
const/16 v4, 0x870
invoke-direct {v2, v3, v4}, Lorg/webrtc/Size;-><init>(II)V
const/16 v3, 0x13
aput-object v2, v1, v3
invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
sput-object v0, Lorg/webrtc/CameraEnumerationAndroid;->COMMON_RESOLUTIONS:Ljava/util/ArrayList;
return-void
.end method
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static getClosestSupportedFramerateRange(Ljava/util/List;I)Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;",
">;I)",
"Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;"
}
.end annotation
new-instance v0, Lorg/webrtc/CameraEnumerationAndroid$1;
invoke-direct {v0, p1}, Lorg/webrtc/CameraEnumerationAndroid$1;-><init>(I)V
invoke-static {p0, v0}, Ljava/util/Collections;->min(Ljava/util/Collection;Ljava/util/Comparator;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange;
return-object p0
.end method
.method public static getClosestSupportedSize(Ljava/util/List;II)Lorg/webrtc/Size;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lorg/webrtc/Size;",
">;II)",
"Lorg/webrtc/Size;"
}
.end annotation
new-instance v0, Lorg/webrtc/CameraEnumerationAndroid$2;
invoke-direct {v0, p1, p2}, Lorg/webrtc/CameraEnumerationAndroid$2;-><init>(II)V
invoke-static {p0, v0}, Ljava/util/Collections;->min(Ljava/util/Collection;Ljava/util/Comparator;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Lorg/webrtc/Size;
return-object p0
.end method
.method public static reportCameraResolution(Lorg/webrtc/Histogram;Lorg/webrtc/Size;)V
.locals 1
sget-object v0, Lorg/webrtc/CameraEnumerationAndroid;->COMMON_RESOLUTIONS:Ljava/util/ArrayList;
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->indexOf(Ljava/lang/Object;)I
move-result p1
add-int/lit8 p1, p1, 0x1
invoke-virtual {p0, p1}, Lorg/webrtc/Histogram;->addSample(I)V
return-void
.end method

View file

@ -0,0 +1,30 @@
.class public interface abstract Lorg/webrtc/CameraEnumerator;
.super Ljava/lang/Object;
.source "CameraEnumerator.java"
# virtual methods
.method public abstract createCapturer(Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;)Lorg/webrtc/CameraVideoCapturer;
.end method
.method public abstract getDeviceNames()[Ljava/lang/String;
.end method
.method public abstract getSupportedFormats(Ljava/lang/String;)Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
")",
"Ljava/util/List<",
"Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat;",
">;"
}
.end annotation
.end method
.method public abstract isBackFacing(Ljava/lang/String;)Z
.end method
.method public abstract isFrontFacing(Ljava/lang/String;)Z
.end method

View file

@ -0,0 +1,22 @@
.class public interface abstract Lorg/webrtc/CameraSession$CreateSessionCallback;
.super Ljava/lang/Object;
.source "CameraSession.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CameraSession;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "CreateSessionCallback"
.end annotation
# virtual methods
.method public abstract onDone(Lorg/webrtc/CameraSession;)V
.end method
.method public abstract onFailure(Lorg/webrtc/CameraSession$FailureType;Ljava/lang/String;)V
.end method

View file

@ -0,0 +1,31 @@
.class public interface abstract Lorg/webrtc/CameraSession$Events;
.super Ljava/lang/Object;
.source "CameraSession.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CameraSession;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "Events"
.end annotation
# virtual methods
.method public abstract onCameraClosed(Lorg/webrtc/CameraSession;)V
.end method
.method public abstract onCameraDisconnected(Lorg/webrtc/CameraSession;)V
.end method
.method public abstract onCameraError(Lorg/webrtc/CameraSession;Ljava/lang/String;)V
.end method
.method public abstract onCameraOpening()V
.end method
.method public abstract onFrameCaptured(Lorg/webrtc/CameraSession;Lorg/webrtc/VideoFrame;)V
.end method

View file

@ -0,0 +1,111 @@
.class public final enum Lorg/webrtc/CameraSession$FailureType;
.super Ljava/lang/Enum;
.source "CameraSession.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CameraSession;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4019
name = "FailureType"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Enum<",
"Lorg/webrtc/CameraSession$FailureType;",
">;"
}
.end annotation
# static fields
.field public static final synthetic $VALUES:[Lorg/webrtc/CameraSession$FailureType;
.field public static final enum DISCONNECTED:Lorg/webrtc/CameraSession$FailureType;
.field public static final enum ERROR:Lorg/webrtc/CameraSession$FailureType;
# direct methods
.method public static constructor <clinit>()V
.locals 5
new-instance v0, Lorg/webrtc/CameraSession$FailureType;
const-string v1, "ERROR"
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lorg/webrtc/CameraSession$FailureType;-><init>(Ljava/lang/String;I)V
sput-object v0, Lorg/webrtc/CameraSession$FailureType;->ERROR:Lorg/webrtc/CameraSession$FailureType;
new-instance v0, Lorg/webrtc/CameraSession$FailureType;
const-string v1, "DISCONNECTED"
const/4 v3, 0x1
invoke-direct {v0, v1, v3}, Lorg/webrtc/CameraSession$FailureType;-><init>(Ljava/lang/String;I)V
sput-object v0, Lorg/webrtc/CameraSession$FailureType;->DISCONNECTED:Lorg/webrtc/CameraSession$FailureType;
const/4 v1, 0x2
new-array v1, v1, [Lorg/webrtc/CameraSession$FailureType;
sget-object v4, Lorg/webrtc/CameraSession$FailureType;->ERROR:Lorg/webrtc/CameraSession$FailureType;
aput-object v4, v1, v2
aput-object v0, v1, v3
sput-object v1, Lorg/webrtc/CameraSession$FailureType;->$VALUES:[Lorg/webrtc/CameraSession$FailureType;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;I)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method public static valueOf(Ljava/lang/String;)Lorg/webrtc/CameraSession$FailureType;
.locals 1
const-class v0, Lorg/webrtc/CameraSession$FailureType;
invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
move-result-object p0
check-cast p0, Lorg/webrtc/CameraSession$FailureType;
return-object p0
.end method
.method public static values()[Lorg/webrtc/CameraSession$FailureType;
.locals 1
sget-object v0, Lorg/webrtc/CameraSession$FailureType;->$VALUES:[Lorg/webrtc/CameraSession$FailureType;
invoke-virtual {v0}, [Lorg/webrtc/CameraSession$FailureType;->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lorg/webrtc/CameraSession$FailureType;
return-object v0
.end method

View file

@ -0,0 +1,18 @@
.class public interface abstract Lorg/webrtc/CameraSession;
.super Ljava/lang/Object;
.source "CameraSession.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/webrtc/CameraSession$Events;,
Lorg/webrtc/CameraSession$CreateSessionCallback;,
Lorg/webrtc/CameraSession$FailureType;
}
.end annotation
# virtual methods
.method public abstract stop()V
.end method

View file

@ -0,0 +1,34 @@
.class public interface abstract Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
.super Ljava/lang/Object;
.source "CameraVideoCapturer.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CameraVideoCapturer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "CameraEventsHandler"
.end annotation
# virtual methods
.method public abstract onCameraClosed()V
.end method
.method public abstract onCameraDisconnected()V
.end method
.method public abstract onCameraError(Ljava/lang/String;)V
.end method
.method public abstract onCameraFreezed(Ljava/lang/String;)V
.end method
.method public abstract onCameraOpening(Ljava/lang/String;)V
.end method
.method public abstract onFirstFrameAvailable()V
.end method

View file

@ -0,0 +1,183 @@
.class public Lorg/webrtc/CameraVideoCapturer$CameraStatistics$1;
.super Ljava/lang/Object;
.source "CameraVideoCapturer.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
# direct methods
.method public constructor <init>(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics$1;->this$0:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 4
iget-object v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics$1;->this$0:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
invoke-static {v0}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->access$000(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)I
move-result v0
int-to-float v0, v0
const/high16 v1, 0x447a0000 # 1000.0f
mul-float v0, v0, v1
const/high16 v1, 0x44fa0000 # 2000.0f
div-float/2addr v0, v1
invoke-static {v0}, Ljava/lang/Math;->round(F)I
move-result v0
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Camera fps: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v0, "."
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "CameraStatistics"
invoke-static {v1, v0}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
iget-object v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics$1;->this$0:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
invoke-static {v0}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->access$000(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)I
move-result v0
const/4 v2, 0x0
if-nez v0, :cond_1
iget-object v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics$1;->this$0:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
invoke-static {v0}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->access$104(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)I
iget-object v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics$1;->this$0:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
invoke-static {v0}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->access$100(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)I
move-result v0
mul-int/lit16 v0, v0, 0x7d0
const/16 v3, 0xfa0
if-lt v0, v3, :cond_2
iget-object v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics$1;->this$0:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
invoke-static {v0}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->access$200(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
move-result-object v0
if-eqz v0, :cond_2
const-string v0, "Camera freezed."
invoke-static {v1, v0}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
iget-object v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics$1;->this$0:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
invoke-static {v0}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->access$300(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)Lorg/webrtc/SurfaceTextureHelper;
move-result-object v0
invoke-virtual {v0}, Lorg/webrtc/SurfaceTextureHelper;->isTextureInUse()Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics$1;->this$0:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
invoke-static {v0}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->access$200(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
move-result-object v0
const-string v1, "Camera failure. Client must return video buffers."
invoke-interface {v0, v1}, Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;->onCameraFreezed(Ljava/lang/String;)V
goto :goto_0
:cond_0
iget-object v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics$1;->this$0:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
invoke-static {v0}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->access$200(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
move-result-object v0
const-string v1, "Camera failure."
invoke-interface {v0, v1}, Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;->onCameraFreezed(Ljava/lang/String;)V
:goto_0
return-void
:cond_1
iget-object v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics$1;->this$0:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
invoke-static {v0, v2}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->access$102(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;I)I
:cond_2
iget-object v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics$1;->this$0:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
invoke-static {v0, v2}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->access$002(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;I)I
iget-object v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics$1;->this$0:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
invoke-static {v0}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->access$300(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)Lorg/webrtc/SurfaceTextureHelper;
move-result-object v0
invoke-virtual {v0}, Lorg/webrtc/SurfaceTextureHelper;->getHandler()Landroid/os/Handler;
move-result-object v0
const-wide/16 v1, 0x7d0
invoke-virtual {v0, p0, v1, v2}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
return-void
.end method

View file

@ -0,0 +1,208 @@
.class public Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
.super Ljava/lang/Object;
.source "CameraVideoCapturer.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CameraVideoCapturer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "CameraStatistics"
.end annotation
# static fields
.field public static final CAMERA_FREEZE_REPORT_TIMOUT_MS:I = 0xfa0
.field public static final CAMERA_OBSERVER_PERIOD_MS:I = 0x7d0
.field public static final TAG:Ljava/lang/String; = "CameraStatistics"
# instance fields
.field public final cameraObserver:Ljava/lang/Runnable;
.field public final eventsHandler:Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
.field public frameCount:I
.field public freezePeriodCount:I
.field public final surfaceTextureHelper:Lorg/webrtc/SurfaceTextureHelper;
# direct methods
.method public constructor <init>(Lorg/webrtc/SurfaceTextureHelper;Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;)V
.locals 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics$1;
invoke-direct {v0, p0}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics$1;-><init>(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)V
iput-object v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->cameraObserver:Ljava/lang/Runnable;
if-eqz p1, :cond_0
iput-object p1, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->surfaceTextureHelper:Lorg/webrtc/SurfaceTextureHelper;
iput-object p2, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->eventsHandler:Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
const/4 p2, 0x0
iput p2, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->frameCount:I
iput p2, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->freezePeriodCount:I
invoke-virtual {p1}, Lorg/webrtc/SurfaceTextureHelper;->getHandler()Landroid/os/Handler;
move-result-object p1
iget-object p2, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->cameraObserver:Ljava/lang/Runnable;
const-wide/16 v0, 0x7d0
invoke-virtual {p1, p2, v0, v1}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
return-void
:cond_0
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string p2, "SurfaceTextureHelper is null"
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public static synthetic access$000(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)I
.locals 0
iget p0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->frameCount:I
return p0
.end method
.method public static synthetic access$002(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;I)I
.locals 0
iput p1, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->frameCount:I
return p1
.end method
.method public static synthetic access$100(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)I
.locals 0
iget p0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->freezePeriodCount:I
return p0
.end method
.method public static synthetic access$102(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;I)I
.locals 0
iput p1, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->freezePeriodCount:I
return p1
.end method
.method public static synthetic access$104(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)I
.locals 1
iget v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->freezePeriodCount:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->freezePeriodCount:I
return v0
.end method
.method public static synthetic access$200(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
.locals 0
iget-object p0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->eventsHandler:Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
return-object p0
.end method
.method public static synthetic access$300(Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)Lorg/webrtc/SurfaceTextureHelper;
.locals 0
iget-object p0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->surfaceTextureHelper:Lorg/webrtc/SurfaceTextureHelper;
return-object p0
.end method
.method private checkThread()V
.locals 2
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->surfaceTextureHelper:Lorg/webrtc/SurfaceTextureHelper;
invoke-virtual {v1}, Lorg/webrtc/SurfaceTextureHelper;->getHandler()Landroid/os/Handler;
move-result-object v1
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_0
return-void
:cond_0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Wrong thread"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
# virtual methods
.method public addFrame()V
.locals 1
invoke-direct {p0}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->checkThread()V
iget v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->frameCount:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->frameCount:I
return-void
.end method
.method public release()V
.locals 2
iget-object v0, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->surfaceTextureHelper:Lorg/webrtc/SurfaceTextureHelper;
invoke-virtual {v0}, Lorg/webrtc/SurfaceTextureHelper;->getHandler()Landroid/os/Handler;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->cameraObserver:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
return-void
.end method

View file

@ -0,0 +1,22 @@
.class public interface abstract Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
.super Ljava/lang/Object;
.source "CameraVideoCapturer.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CameraVideoCapturer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "CameraSwitchHandler"
.end annotation
# virtual methods
.method public abstract onCameraSwitchDone(Z)V
.end method
.method public abstract onCameraSwitchError(Ljava/lang/String;)V
.end method

View file

@ -0,0 +1,25 @@
.class public interface abstract Lorg/webrtc/CameraVideoCapturer$MediaRecorderHandler;
.super Ljava/lang/Object;
.source "CameraVideoCapturer.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CameraVideoCapturer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "MediaRecorderHandler"
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
# virtual methods
.method public abstract onMediaRecorderError(Ljava/lang/String;)V
.end method
.method public abstract onMediaRecorderSuccess()V
.end method

View file

@ -0,0 +1,32 @@
.class public interface abstract Lorg/webrtc/CameraVideoCapturer;
.super Ljava/lang/Object;
.source "CameraVideoCapturer.java"
# interfaces
.implements Lorg/webrtc/VideoCapturer;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/webrtc/CameraVideoCapturer$CameraStatistics;,
Lorg/webrtc/CameraVideoCapturer$MediaRecorderHandler;,
Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;,
Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
}
.end annotation
# virtual methods
.method public abstract addMediaRecorderToCamera(Landroid/media/MediaRecorder;Lorg/webrtc/CameraVideoCapturer$MediaRecorderHandler;)V
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.end method
.method public abstract removeMediaRecorderFromCamera(Lorg/webrtc/CameraVideoCapturer$MediaRecorderHandler;)V
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.end method
.method public abstract switchCamera(Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
.end method

View file

@ -0,0 +1,14 @@
.class public interface abstract Lorg/webrtc/CapturerObserver;
.super Ljava/lang/Object;
.source "CapturerObserver.java"
# virtual methods
.method public abstract onCapturerStarted(Z)V
.end method
.method public abstract onCapturerStopped()V
.end method
.method public abstract onFrameCaptured(Lorg/webrtc/VideoFrame;)V
.end method

View file

@ -0,0 +1,48 @@
.class public Lorg/webrtc/ContextUtils;
.super Ljava/lang/Object;
.source "ContextUtils.java"
# static fields
.field public static final TAG:Ljava/lang/String; = "ContextUtils"
.field public static applicationContext:Landroid/content/Context;
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static getApplicationContext()Landroid/content/Context;
.locals 1
.annotation runtime Ljava/lang/Deprecated;
.end annotation
sget-object v0, Lorg/webrtc/ContextUtils;->applicationContext:Landroid/content/Context;
return-object v0
.end method
.method public static initialize(Landroid/content/Context;)V
.locals 1
if-eqz p0, :cond_0
sput-object p0, Lorg/webrtc/ContextUtils;->applicationContext:Landroid/content/Context;
return-void
:cond_0
new-instance p0, Ljava/lang/IllegalArgumentException;
const-string v0, "Application context cannot be null for ContextUtils.initialize."
invoke-direct {p0, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p0
.end method

View file

@ -0,0 +1,14 @@
.class public synthetic Lorg/webrtc/CryptoOptions$1;
.super Ljava/lang/Object;
.source "CryptoOptions.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CryptoOptions;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1009
name = null
.end annotation

View file

@ -0,0 +1,98 @@
.class public Lorg/webrtc/CryptoOptions$Builder;
.super Ljava/lang/Object;
.source "CryptoOptions.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CryptoOptions;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Builder"
.end annotation
# instance fields
.field public enableAes128Sha1_32CryptoCipher:Z
.field public enableEncryptedRtpHeaderExtensions:Z
.field public enableGcmCryptoSuites:Z
.field public requireFrameEncryption:Z
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public synthetic constructor <init>(Lorg/webrtc/CryptoOptions$1;)V
.locals 0
invoke-direct {p0}, Lorg/webrtc/CryptoOptions$Builder;-><init>()V
return-void
.end method
# virtual methods
.method public createCryptoOptions()Lorg/webrtc/CryptoOptions;
.locals 7
new-instance v6, Lorg/webrtc/CryptoOptions;
iget-boolean v1, p0, Lorg/webrtc/CryptoOptions$Builder;->enableGcmCryptoSuites:Z
iget-boolean v2, p0, Lorg/webrtc/CryptoOptions$Builder;->enableAes128Sha1_32CryptoCipher:Z
iget-boolean v3, p0, Lorg/webrtc/CryptoOptions$Builder;->enableEncryptedRtpHeaderExtensions:Z
iget-boolean v4, p0, Lorg/webrtc/CryptoOptions$Builder;->requireFrameEncryption:Z
const/4 v5, 0x0
move-object v0, v6
invoke-direct/range {v0 .. v5}, Lorg/webrtc/CryptoOptions;-><init>(ZZZZLorg/webrtc/CryptoOptions$1;)V
return-object v6
.end method
.method public setEnableAes128Sha1_32CryptoCipher(Z)Lorg/webrtc/CryptoOptions$Builder;
.locals 0
iput-boolean p1, p0, Lorg/webrtc/CryptoOptions$Builder;->enableAes128Sha1_32CryptoCipher:Z
return-object p0
.end method
.method public setEnableEncryptedRtpHeaderExtensions(Z)Lorg/webrtc/CryptoOptions$Builder;
.locals 0
iput-boolean p1, p0, Lorg/webrtc/CryptoOptions$Builder;->enableEncryptedRtpHeaderExtensions:Z
return-object p0
.end method
.method public setEnableGcmCryptoSuites(Z)Lorg/webrtc/CryptoOptions$Builder;
.locals 0
iput-boolean p1, p0, Lorg/webrtc/CryptoOptions$Builder;->enableGcmCryptoSuites:Z
return-object p0
.end method
.method public setRequireFrameEncryption(Z)Lorg/webrtc/CryptoOptions$Builder;
.locals 0
iput-boolean p1, p0, Lorg/webrtc/CryptoOptions$Builder;->requireFrameEncryption:Z
return-object p0
.end method

View file

@ -0,0 +1,55 @@
.class public final Lorg/webrtc/CryptoOptions$SFrame;
.super Ljava/lang/Object;
.source "CryptoOptions.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CryptoOptions;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "SFrame"
.end annotation
# instance fields
.field public final requireFrameEncryption:Z
.field public final synthetic this$0:Lorg/webrtc/CryptoOptions;
# direct methods
.method public constructor <init>(Lorg/webrtc/CryptoOptions;Z)V
.locals 0
iput-object p1, p0, Lorg/webrtc/CryptoOptions$SFrame;->this$0:Lorg/webrtc/CryptoOptions;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-boolean p2, p0, Lorg/webrtc/CryptoOptions$SFrame;->requireFrameEncryption:Z
return-void
.end method
.method public synthetic constructor <init>(Lorg/webrtc/CryptoOptions;ZLorg/webrtc/CryptoOptions$1;)V
.locals 0
invoke-direct {p0, p1, p2}, Lorg/webrtc/CryptoOptions$SFrame;-><init>(Lorg/webrtc/CryptoOptions;Z)V
return-void
.end method
# virtual methods
.method public getRequireFrameEncryption()Z
.locals 1
.annotation build Lorg/webrtc/CalledByNative;
value = "SFrame"
.end annotation
iget-boolean v0, p0, Lorg/webrtc/CryptoOptions$SFrame;->requireFrameEncryption:Z
return v0
.end method

View file

@ -0,0 +1,85 @@
.class public final Lorg/webrtc/CryptoOptions$Srtp;
.super Ljava/lang/Object;
.source "CryptoOptions.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/CryptoOptions;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "Srtp"
.end annotation
# instance fields
.field public final enableAes128Sha1_32CryptoCipher:Z
.field public final enableEncryptedRtpHeaderExtensions:Z
.field public final enableGcmCryptoSuites:Z
.field public final synthetic this$0:Lorg/webrtc/CryptoOptions;
# direct methods
.method public constructor <init>(Lorg/webrtc/CryptoOptions;ZZZ)V
.locals 0
iput-object p1, p0, Lorg/webrtc/CryptoOptions$Srtp;->this$0:Lorg/webrtc/CryptoOptions;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-boolean p2, p0, Lorg/webrtc/CryptoOptions$Srtp;->enableGcmCryptoSuites:Z
iput-boolean p3, p0, Lorg/webrtc/CryptoOptions$Srtp;->enableAes128Sha1_32CryptoCipher:Z
iput-boolean p4, p0, Lorg/webrtc/CryptoOptions$Srtp;->enableEncryptedRtpHeaderExtensions:Z
return-void
.end method
.method public synthetic constructor <init>(Lorg/webrtc/CryptoOptions;ZZZLorg/webrtc/CryptoOptions$1;)V
.locals 0
invoke-direct {p0, p1, p2, p3, p4}, Lorg/webrtc/CryptoOptions$Srtp;-><init>(Lorg/webrtc/CryptoOptions;ZZZ)V
return-void
.end method
# virtual methods
.method public getEnableAes128Sha1_32CryptoCipher()Z
.locals 1
.annotation build Lorg/webrtc/CalledByNative;
value = "Srtp"
.end annotation
iget-boolean v0, p0, Lorg/webrtc/CryptoOptions$Srtp;->enableAes128Sha1_32CryptoCipher:Z
return v0
.end method
.method public getEnableEncryptedRtpHeaderExtensions()Z
.locals 1
.annotation build Lorg/webrtc/CalledByNative;
value = "Srtp"
.end annotation
iget-boolean v0, p0, Lorg/webrtc/CryptoOptions$Srtp;->enableEncryptedRtpHeaderExtensions:Z
return v0
.end method
.method public getEnableGcmCryptoSuites()Z
.locals 1
.annotation build Lorg/webrtc/CalledByNative;
value = "Srtp"
.end annotation
iget-boolean v0, p0, Lorg/webrtc/CryptoOptions$Srtp;->enableGcmCryptoSuites:Z
return v0
.end method

View file

@ -0,0 +1,97 @@
.class public final Lorg/webrtc/CryptoOptions;
.super Ljava/lang/Object;
.source "CryptoOptions.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/webrtc/CryptoOptions$Builder;,
Lorg/webrtc/CryptoOptions$SFrame;,
Lorg/webrtc/CryptoOptions$Srtp;
}
.end annotation
# instance fields
.field public final sframe:Lorg/webrtc/CryptoOptions$SFrame;
.field public final srtp:Lorg/webrtc/CryptoOptions$Srtp;
# direct methods
.method public constructor <init>(ZZZZ)V
.locals 7
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v6, Lorg/webrtc/CryptoOptions$Srtp;
const/4 v5, 0x0
move-object v0, v6
move-object v1, p0
move v2, p1
move v3, p2
move v4, p3
invoke-direct/range {v0 .. v5}, Lorg/webrtc/CryptoOptions$Srtp;-><init>(Lorg/webrtc/CryptoOptions;ZZZLorg/webrtc/CryptoOptions$1;)V
iput-object v6, p0, Lorg/webrtc/CryptoOptions;->srtp:Lorg/webrtc/CryptoOptions$Srtp;
new-instance p1, Lorg/webrtc/CryptoOptions$SFrame;
const/4 p2, 0x0
invoke-direct {p1, p0, p4, p2}, Lorg/webrtc/CryptoOptions$SFrame;-><init>(Lorg/webrtc/CryptoOptions;ZLorg/webrtc/CryptoOptions$1;)V
iput-object p1, p0, Lorg/webrtc/CryptoOptions;->sframe:Lorg/webrtc/CryptoOptions$SFrame;
return-void
.end method
.method public synthetic constructor <init>(ZZZZLorg/webrtc/CryptoOptions$1;)V
.locals 0
invoke-direct {p0, p1, p2, p3, p4}, Lorg/webrtc/CryptoOptions;-><init>(ZZZZ)V
return-void
.end method
.method public static builder()Lorg/webrtc/CryptoOptions$Builder;
.locals 2
new-instance v0, Lorg/webrtc/CryptoOptions$Builder;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lorg/webrtc/CryptoOptions$Builder;-><init>(Lorg/webrtc/CryptoOptions$1;)V
return-object v0
.end method
# virtual methods
.method public getSFrame()Lorg/webrtc/CryptoOptions$SFrame;
.locals 1
.annotation build Lorg/webrtc/CalledByNative;
.end annotation
iget-object v0, p0, Lorg/webrtc/CryptoOptions;->sframe:Lorg/webrtc/CryptoOptions$SFrame;
return-object v0
.end method
.method public getSrtp()Lorg/webrtc/CryptoOptions$Srtp;
.locals 1
.annotation build Lorg/webrtc/CalledByNative;
.end annotation
iget-object v0, p0, Lorg/webrtc/CryptoOptions;->srtp:Lorg/webrtc/CryptoOptions$Srtp;
return-object v0
.end method

View file

@ -0,0 +1,37 @@
.class public Lorg/webrtc/DataChannel$Buffer;
.super Ljava/lang/Object;
.source "DataChannel.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/DataChannel;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Buffer"
.end annotation
# instance fields
.field public final binary:Z
.field public final data:Ljava/nio/ByteBuffer;
# direct methods
.method public constructor <init>(Ljava/nio/ByteBuffer;Z)V
.locals 0
.annotation build Lorg/webrtc/CalledByNative;
value = "Buffer"
.end annotation
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lorg/webrtc/DataChannel$Buffer;->data:Ljava/nio/ByteBuffer;
iput-boolean p2, p0, Lorg/webrtc/DataChannel$Buffer;->binary:Z
return-void
.end method

View file

@ -0,0 +1,122 @@
.class public Lorg/webrtc/DataChannel$Init;
.super Ljava/lang/Object;
.source "DataChannel.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/DataChannel;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Init"
.end annotation
# instance fields
.field public id:I
.field public maxRetransmitTimeMs:I
.field public maxRetransmits:I
.field public negotiated:Z
.field public ordered:Z
.field public protocol:Ljava/lang/String;
# direct methods
.method public constructor <init>()V
.locals 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x1
iput-boolean v0, p0, Lorg/webrtc/DataChannel$Init;->ordered:Z
const/4 v0, -0x1
iput v0, p0, Lorg/webrtc/DataChannel$Init;->maxRetransmitTimeMs:I
iput v0, p0, Lorg/webrtc/DataChannel$Init;->maxRetransmits:I
const-string v1, ""
iput-object v1, p0, Lorg/webrtc/DataChannel$Init;->protocol:Ljava/lang/String;
iput v0, p0, Lorg/webrtc/DataChannel$Init;->id:I
return-void
.end method
# virtual methods
.method public getId()I
.locals 1
.annotation build Lorg/webrtc/CalledByNative;
value = "Init"
.end annotation
iget v0, p0, Lorg/webrtc/DataChannel$Init;->id:I
return v0
.end method
.method public getMaxRetransmitTimeMs()I
.locals 1
.annotation build Lorg/webrtc/CalledByNative;
value = "Init"
.end annotation
iget v0, p0, Lorg/webrtc/DataChannel$Init;->maxRetransmitTimeMs:I
return v0
.end method
.method public getMaxRetransmits()I
.locals 1
.annotation build Lorg/webrtc/CalledByNative;
value = "Init"
.end annotation
iget v0, p0, Lorg/webrtc/DataChannel$Init;->maxRetransmits:I
return v0
.end method
.method public getNegotiated()Z
.locals 1
.annotation build Lorg/webrtc/CalledByNative;
value = "Init"
.end annotation
iget-boolean v0, p0, Lorg/webrtc/DataChannel$Init;->negotiated:Z
return v0
.end method
.method public getOrdered()Z
.locals 1
.annotation build Lorg/webrtc/CalledByNative;
value = "Init"
.end annotation
iget-boolean v0, p0, Lorg/webrtc/DataChannel$Init;->ordered:Z
return v0
.end method
.method public getProtocol()Ljava/lang/String;
.locals 1
.annotation build Lorg/webrtc/CalledByNative;
value = "Init"
.end annotation
iget-object v0, p0, Lorg/webrtc/DataChannel$Init;->protocol:Ljava/lang/String;
return-object v0
.end method

View file

@ -0,0 +1,34 @@
.class public interface abstract Lorg/webrtc/DataChannel$Observer;
.super Ljava/lang/Object;
.source "DataChannel.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/DataChannel;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "Observer"
.end annotation
# virtual methods
.method public abstract onBufferedAmountChange(J)V
.annotation build Lorg/webrtc/CalledByNative;
value = "Observer"
.end annotation
.end method
.method public abstract onMessage(Lorg/webrtc/DataChannel$Buffer;)V
.annotation build Lorg/webrtc/CalledByNative;
value = "Observer"
.end annotation
.end method
.method public abstract onStateChange()V
.annotation build Lorg/webrtc/CalledByNative;
value = "Observer"
.end annotation
.end method

View file

@ -0,0 +1,158 @@
.class public final enum Lorg/webrtc/DataChannel$State;
.super Ljava/lang/Enum;
.source "DataChannel.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/DataChannel;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4019
name = "State"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Enum<",
"Lorg/webrtc/DataChannel$State;",
">;"
}
.end annotation
# static fields
.field public static final synthetic $VALUES:[Lorg/webrtc/DataChannel$State;
.field public static final enum CLOSED:Lorg/webrtc/DataChannel$State;
.field public static final enum CLOSING:Lorg/webrtc/DataChannel$State;
.field public static final enum CONNECTING:Lorg/webrtc/DataChannel$State;
.field public static final enum OPEN:Lorg/webrtc/DataChannel$State;
# direct methods
.method public static constructor <clinit>()V
.locals 7
new-instance v0, Lorg/webrtc/DataChannel$State;
const-string v1, "CONNECTING"
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lorg/webrtc/DataChannel$State;-><init>(Ljava/lang/String;I)V
sput-object v0, Lorg/webrtc/DataChannel$State;->CONNECTING:Lorg/webrtc/DataChannel$State;
new-instance v0, Lorg/webrtc/DataChannel$State;
const-string v1, "OPEN"
const/4 v3, 0x1
invoke-direct {v0, v1, v3}, Lorg/webrtc/DataChannel$State;-><init>(Ljava/lang/String;I)V
sput-object v0, Lorg/webrtc/DataChannel$State;->OPEN:Lorg/webrtc/DataChannel$State;
new-instance v0, Lorg/webrtc/DataChannel$State;
const-string v1, "CLOSING"
const/4 v4, 0x2
invoke-direct {v0, v1, v4}, Lorg/webrtc/DataChannel$State;-><init>(Ljava/lang/String;I)V
sput-object v0, Lorg/webrtc/DataChannel$State;->CLOSING:Lorg/webrtc/DataChannel$State;
new-instance v0, Lorg/webrtc/DataChannel$State;
const-string v1, "CLOSED"
const/4 v5, 0x3
invoke-direct {v0, v1, v5}, Lorg/webrtc/DataChannel$State;-><init>(Ljava/lang/String;I)V
sput-object v0, Lorg/webrtc/DataChannel$State;->CLOSED:Lorg/webrtc/DataChannel$State;
const/4 v1, 0x4
new-array v1, v1, [Lorg/webrtc/DataChannel$State;
sget-object v6, Lorg/webrtc/DataChannel$State;->CONNECTING:Lorg/webrtc/DataChannel$State;
aput-object v6, v1, v2
sget-object v2, Lorg/webrtc/DataChannel$State;->OPEN:Lorg/webrtc/DataChannel$State;
aput-object v2, v1, v3
sget-object v2, Lorg/webrtc/DataChannel$State;->CLOSING:Lorg/webrtc/DataChannel$State;
aput-object v2, v1, v4
aput-object v0, v1, v5
sput-object v1, Lorg/webrtc/DataChannel$State;->$VALUES:[Lorg/webrtc/DataChannel$State;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;I)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method public static fromNativeIndex(I)Lorg/webrtc/DataChannel$State;
.locals 1
.annotation build Lorg/webrtc/CalledByNative;
value = "State"
.end annotation
invoke-static {}, Lorg/webrtc/DataChannel$State;->values()[Lorg/webrtc/DataChannel$State;
move-result-object v0
aget-object p0, v0, p0
return-object p0
.end method
.method public static valueOf(Ljava/lang/String;)Lorg/webrtc/DataChannel$State;
.locals 1
const-class v0, Lorg/webrtc/DataChannel$State;
invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
move-result-object p0
check-cast p0, Lorg/webrtc/DataChannel$State;
return-object p0
.end method
.method public static values()[Lorg/webrtc/DataChannel$State;
.locals 1
sget-object v0, Lorg/webrtc/DataChannel$State;->$VALUES:[Lorg/webrtc/DataChannel$State;
invoke-virtual {v0}, [Lorg/webrtc/DataChannel$State;->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lorg/webrtc/DataChannel$State;
return-object v0
.end method

View file

@ -0,0 +1,230 @@
.class public Lorg/webrtc/DataChannel;
.super Ljava/lang/Object;
.source "DataChannel.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/webrtc/DataChannel$State;,
Lorg/webrtc/DataChannel$Observer;,
Lorg/webrtc/DataChannel$Buffer;,
Lorg/webrtc/DataChannel$Init;
}
.end annotation
# instance fields
.field public nativeDataChannel:J
.field public nativeObserver:J
# direct methods
.method public constructor <init>(J)V
.locals 0
.annotation build Lorg/webrtc/CalledByNative;
.end annotation
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-wide p1, p0, Lorg/webrtc/DataChannel;->nativeDataChannel:J
return-void
.end method
.method private checkDataChannelExists()V
.locals 5
iget-wide v0, p0, Lorg/webrtc/DataChannel;->nativeDataChannel:J
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-eqz v4, :cond_0
return-void
:cond_0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "DataChannel has been disposed."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private native nativeBufferedAmount()J
.end method
.method private native nativeClose()V
.end method
.method private native nativeId()I
.end method
.method private native nativeLabel()Ljava/lang/String;
.end method
.method private native nativeRegisterObserver(Lorg/webrtc/DataChannel$Observer;)J
.end method
.method private native nativeSend([BZ)Z
.end method
.method private native nativeState()Lorg/webrtc/DataChannel$State;
.end method
.method private native nativeUnregisterObserver(J)V
.end method
# virtual methods
.method public bufferedAmount()J
.locals 2
invoke-direct {p0}, Lorg/webrtc/DataChannel;->checkDataChannelExists()V
invoke-direct {p0}, Lorg/webrtc/DataChannel;->nativeBufferedAmount()J
move-result-wide v0
return-wide v0
.end method
.method public close()V
.locals 0
invoke-direct {p0}, Lorg/webrtc/DataChannel;->checkDataChannelExists()V
invoke-direct {p0}, Lorg/webrtc/DataChannel;->nativeClose()V
return-void
.end method
.method public dispose()V
.locals 2
invoke-direct {p0}, Lorg/webrtc/DataChannel;->checkDataChannelExists()V
iget-wide v0, p0, Lorg/webrtc/DataChannel;->nativeDataChannel:J
invoke-static {v0, v1}, Lorg/webrtc/JniCommon;->nativeReleaseRef(J)V
const-wide/16 v0, 0x0
iput-wide v0, p0, Lorg/webrtc/DataChannel;->nativeDataChannel:J
return-void
.end method
.method public getNativeDataChannel()J
.locals 2
.annotation build Lorg/webrtc/CalledByNative;
.end annotation
iget-wide v0, p0, Lorg/webrtc/DataChannel;->nativeDataChannel:J
return-wide v0
.end method
.method public id()I
.locals 1
invoke-direct {p0}, Lorg/webrtc/DataChannel;->checkDataChannelExists()V
invoke-direct {p0}, Lorg/webrtc/DataChannel;->nativeId()I
move-result v0
return v0
.end method
.method public label()Ljava/lang/String;
.locals 1
invoke-direct {p0}, Lorg/webrtc/DataChannel;->checkDataChannelExists()V
invoke-direct {p0}, Lorg/webrtc/DataChannel;->nativeLabel()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public registerObserver(Lorg/webrtc/DataChannel$Observer;)V
.locals 5
invoke-direct {p0}, Lorg/webrtc/DataChannel;->checkDataChannelExists()V
iget-wide v0, p0, Lorg/webrtc/DataChannel;->nativeObserver:J
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-eqz v4, :cond_0
invoke-direct {p0, v0, v1}, Lorg/webrtc/DataChannel;->nativeUnregisterObserver(J)V
:cond_0
invoke-direct {p0, p1}, Lorg/webrtc/DataChannel;->nativeRegisterObserver(Lorg/webrtc/DataChannel$Observer;)J
move-result-wide v0
iput-wide v0, p0, Lorg/webrtc/DataChannel;->nativeObserver:J
return-void
.end method
.method public send(Lorg/webrtc/DataChannel$Buffer;)Z
.locals 2
invoke-direct {p0}, Lorg/webrtc/DataChannel;->checkDataChannelExists()V
iget-object v0, p1, Lorg/webrtc/DataChannel$Buffer;->data:Ljava/nio/ByteBuffer;
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->remaining()I
move-result v0
new-array v0, v0, [B
iget-object v1, p1, Lorg/webrtc/DataChannel$Buffer;->data:Ljava/nio/ByteBuffer;
invoke-virtual {v1, v0}, Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;
iget-boolean p1, p1, Lorg/webrtc/DataChannel$Buffer;->binary:Z
invoke-direct {p0, v0, p1}, Lorg/webrtc/DataChannel;->nativeSend([BZ)Z
move-result p1
return p1
.end method
.method public state()Lorg/webrtc/DataChannel$State;
.locals 1
invoke-direct {p0}, Lorg/webrtc/DataChannel;->checkDataChannelExists()V
invoke-direct {p0}, Lorg/webrtc/DataChannel;->nativeState()Lorg/webrtc/DataChannel$State;
move-result-object v0
return-object v0
.end method
.method public unregisterObserver()V
.locals 2
invoke-direct {p0}, Lorg/webrtc/DataChannel;->checkDataChannelExists()V
iget-wide v0, p0, Lorg/webrtc/DataChannel;->nativeObserver:J
invoke-direct {p0, v0, v1}, Lorg/webrtc/DataChannel;->nativeUnregisterObserver(J)V
return-void
.end method

View file

@ -0,0 +1,185 @@
.class public Lorg/webrtc/DefaultVideoDecoderFactory;
.super Ljava/lang/Object;
.source "DefaultVideoDecoderFactory.java"
# interfaces
.implements Lorg/webrtc/VideoDecoderFactory;
# instance fields
.field public final hardwareVideoDecoderFactory:Lorg/webrtc/VideoDecoderFactory;
.field public final platformSoftwareVideoDecoderFactory:Lorg/webrtc/VideoDecoderFactory;
.field public final softwareVideoDecoderFactory:Lorg/webrtc/VideoDecoderFactory;
# direct methods
.method public constructor <init>(Lorg/webrtc/EglBase$Context;)V
.locals 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Lorg/webrtc/SoftwareVideoDecoderFactory;
invoke-direct {v0}, Lorg/webrtc/SoftwareVideoDecoderFactory;-><init>()V
iput-object v0, p0, Lorg/webrtc/DefaultVideoDecoderFactory;->softwareVideoDecoderFactory:Lorg/webrtc/VideoDecoderFactory;
new-instance v0, Lorg/webrtc/HardwareVideoDecoderFactory;
invoke-direct {v0, p1}, Lorg/webrtc/HardwareVideoDecoderFactory;-><init>(Lorg/webrtc/EglBase$Context;)V
iput-object v0, p0, Lorg/webrtc/DefaultVideoDecoderFactory;->hardwareVideoDecoderFactory:Lorg/webrtc/VideoDecoderFactory;
new-instance v0, Lorg/webrtc/PlatformSoftwareVideoDecoderFactory;
invoke-direct {v0, p1}, Lorg/webrtc/PlatformSoftwareVideoDecoderFactory;-><init>(Lorg/webrtc/EglBase$Context;)V
iput-object v0, p0, Lorg/webrtc/DefaultVideoDecoderFactory;->platformSoftwareVideoDecoderFactory:Lorg/webrtc/VideoDecoderFactory;
return-void
.end method
.method public constructor <init>(Lorg/webrtc/VideoDecoderFactory;)V
.locals 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Lorg/webrtc/SoftwareVideoDecoderFactory;
invoke-direct {v0}, Lorg/webrtc/SoftwareVideoDecoderFactory;-><init>()V
iput-object v0, p0, Lorg/webrtc/DefaultVideoDecoderFactory;->softwareVideoDecoderFactory:Lorg/webrtc/VideoDecoderFactory;
iput-object p1, p0, Lorg/webrtc/DefaultVideoDecoderFactory;->hardwareVideoDecoderFactory:Lorg/webrtc/VideoDecoderFactory;
const/4 p1, 0x0
iput-object p1, p0, Lorg/webrtc/DefaultVideoDecoderFactory;->platformSoftwareVideoDecoderFactory:Lorg/webrtc/VideoDecoderFactory;
return-void
.end method
# virtual methods
.method public synthetic createDecoder(Ljava/lang/String;)Lorg/webrtc/VideoDecoder;
.locals 0
.annotation runtime Ljava/lang/Deprecated;
.end annotation
invoke-static {p0, p1}, Lf0/c/l0;->$default$createDecoder(Lorg/webrtc/VideoDecoderFactory;Ljava/lang/String;)Lorg/webrtc/VideoDecoder;
move-result-object p1
return-object p1
.end method
.method public createDecoder(Lorg/webrtc/VideoCodecInfo;)Lorg/webrtc/VideoDecoder;
.locals 3
iget-object v0, p0, Lorg/webrtc/DefaultVideoDecoderFactory;->softwareVideoDecoderFactory:Lorg/webrtc/VideoDecoderFactory;
invoke-interface {v0, p1}, Lorg/webrtc/VideoDecoderFactory;->createDecoder(Lorg/webrtc/VideoCodecInfo;)Lorg/webrtc/VideoDecoder;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/DefaultVideoDecoderFactory;->hardwareVideoDecoderFactory:Lorg/webrtc/VideoDecoderFactory;
invoke-interface {v1, p1}, Lorg/webrtc/VideoDecoderFactory;->createDecoder(Lorg/webrtc/VideoCodecInfo;)Lorg/webrtc/VideoDecoder;
move-result-object v1
if-nez v0, :cond_0
iget-object v2, p0, Lorg/webrtc/DefaultVideoDecoderFactory;->platformSoftwareVideoDecoderFactory:Lorg/webrtc/VideoDecoderFactory;
if-eqz v2, :cond_0
invoke-interface {v2, p1}, Lorg/webrtc/VideoDecoderFactory;->createDecoder(Lorg/webrtc/VideoCodecInfo;)Lorg/webrtc/VideoDecoder;
move-result-object v0
:cond_0
if-eqz v1, :cond_1
if-eqz v0, :cond_1
new-instance p1, Lorg/webrtc/VideoDecoderFallback;
invoke-direct {p1, v0, v1}, Lorg/webrtc/VideoDecoderFallback;-><init>(Lorg/webrtc/VideoDecoder;Lorg/webrtc/VideoDecoder;)V
return-object p1
:cond_1
if-eqz v1, :cond_2
goto :goto_0
:cond_2
move-object v1, v0
:goto_0
return-object v1
.end method
.method public getSupportedCodecs()[Lorg/webrtc/VideoCodecInfo;
.locals 2
new-instance v0, Ljava/util/LinkedHashSet;
invoke-direct {v0}, Ljava/util/LinkedHashSet;-><init>()V
iget-object v1, p0, Lorg/webrtc/DefaultVideoDecoderFactory;->softwareVideoDecoderFactory:Lorg/webrtc/VideoDecoderFactory;
invoke-interface {v1}, Lorg/webrtc/VideoDecoderFactory;->getSupportedCodecs()[Lorg/webrtc/VideoCodecInfo;
move-result-object v1
invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/util/LinkedHashSet;->addAll(Ljava/util/Collection;)Z
iget-object v1, p0, Lorg/webrtc/DefaultVideoDecoderFactory;->hardwareVideoDecoderFactory:Lorg/webrtc/VideoDecoderFactory;
invoke-interface {v1}, Lorg/webrtc/VideoDecoderFactory;->getSupportedCodecs()[Lorg/webrtc/VideoCodecInfo;
move-result-object v1
invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/util/LinkedHashSet;->addAll(Ljava/util/Collection;)Z
iget-object v1, p0, Lorg/webrtc/DefaultVideoDecoderFactory;->platformSoftwareVideoDecoderFactory:Lorg/webrtc/VideoDecoderFactory;
if-eqz v1, :cond_0
invoke-interface {v1}, Lorg/webrtc/VideoDecoderFactory;->getSupportedCodecs()[Lorg/webrtc/VideoCodecInfo;
move-result-object v1
invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/util/LinkedHashSet;->addAll(Ljava/util/Collection;)Z
:cond_0
invoke-virtual {v0}, Ljava/util/LinkedHashSet;->size()I
move-result v1
new-array v1, v1, [Lorg/webrtc/VideoCodecInfo;
invoke-virtual {v0, v1}, Ljava/util/LinkedHashSet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lorg/webrtc/VideoCodecInfo;
return-object v0
.end method

View file

@ -0,0 +1,132 @@
.class public Lorg/webrtc/DefaultVideoEncoderFactory;
.super Ljava/lang/Object;
.source "DefaultVideoEncoderFactory.java"
# interfaces
.implements Lorg/webrtc/VideoEncoderFactory;
# instance fields
.field public final hardwareVideoEncoderFactory:Lorg/webrtc/VideoEncoderFactory;
.field public final softwareVideoEncoderFactory:Lorg/webrtc/VideoEncoderFactory;
# direct methods
.method public constructor <init>(Lorg/webrtc/EglBase$Context;ZZ)V
.locals 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Lorg/webrtc/SoftwareVideoEncoderFactory;
invoke-direct {v0}, Lorg/webrtc/SoftwareVideoEncoderFactory;-><init>()V
iput-object v0, p0, Lorg/webrtc/DefaultVideoEncoderFactory;->softwareVideoEncoderFactory:Lorg/webrtc/VideoEncoderFactory;
new-instance v0, Lorg/webrtc/HardwareVideoEncoderFactory;
invoke-direct {v0, p1, p2, p3}, Lorg/webrtc/HardwareVideoEncoderFactory;-><init>(Lorg/webrtc/EglBase$Context;ZZ)V
iput-object v0, p0, Lorg/webrtc/DefaultVideoEncoderFactory;->hardwareVideoEncoderFactory:Lorg/webrtc/VideoEncoderFactory;
return-void
.end method
.method public constructor <init>(Lorg/webrtc/VideoEncoderFactory;)V
.locals 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Lorg/webrtc/SoftwareVideoEncoderFactory;
invoke-direct {v0}, Lorg/webrtc/SoftwareVideoEncoderFactory;-><init>()V
iput-object v0, p0, Lorg/webrtc/DefaultVideoEncoderFactory;->softwareVideoEncoderFactory:Lorg/webrtc/VideoEncoderFactory;
iput-object p1, p0, Lorg/webrtc/DefaultVideoEncoderFactory;->hardwareVideoEncoderFactory:Lorg/webrtc/VideoEncoderFactory;
return-void
.end method
# virtual methods
.method public createEncoder(Lorg/webrtc/VideoCodecInfo;)Lorg/webrtc/VideoEncoder;
.locals 2
iget-object v0, p0, Lorg/webrtc/DefaultVideoEncoderFactory;->softwareVideoEncoderFactory:Lorg/webrtc/VideoEncoderFactory;
invoke-interface {v0, p1}, Lorg/webrtc/VideoEncoderFactory;->createEncoder(Lorg/webrtc/VideoCodecInfo;)Lorg/webrtc/VideoEncoder;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/DefaultVideoEncoderFactory;->hardwareVideoEncoderFactory:Lorg/webrtc/VideoEncoderFactory;
invoke-interface {v1, p1}, Lorg/webrtc/VideoEncoderFactory;->createEncoder(Lorg/webrtc/VideoCodecInfo;)Lorg/webrtc/VideoEncoder;
move-result-object p1
if-eqz p1, :cond_0
if-eqz v0, :cond_0
new-instance v1, Lorg/webrtc/VideoEncoderFallback;
invoke-direct {v1, v0, p1}, Lorg/webrtc/VideoEncoderFallback;-><init>(Lorg/webrtc/VideoEncoder;Lorg/webrtc/VideoEncoder;)V
return-object v1
:cond_0
if-eqz p1, :cond_1
move-object v0, p1
:cond_1
return-object v0
.end method
.method public getSupportedCodecs()[Lorg/webrtc/VideoCodecInfo;
.locals 2
new-instance v0, Ljava/util/LinkedHashSet;
invoke-direct {v0}, Ljava/util/LinkedHashSet;-><init>()V
iget-object v1, p0, Lorg/webrtc/DefaultVideoEncoderFactory;->softwareVideoEncoderFactory:Lorg/webrtc/VideoEncoderFactory;
invoke-interface {v1}, Lorg/webrtc/VideoEncoderFactory;->getSupportedCodecs()[Lorg/webrtc/VideoCodecInfo;
move-result-object v1
invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/util/LinkedHashSet;->addAll(Ljava/util/Collection;)Z
iget-object v1, p0, Lorg/webrtc/DefaultVideoEncoderFactory;->hardwareVideoEncoderFactory:Lorg/webrtc/VideoEncoderFactory;
invoke-interface {v1}, Lorg/webrtc/VideoEncoderFactory;->getSupportedCodecs()[Lorg/webrtc/VideoCodecInfo;
move-result-object v1
invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/util/LinkedHashSet;->addAll(Ljava/util/Collection;)Z
invoke-virtual {v0}, Ljava/util/LinkedHashSet;->size()I
move-result v1
new-array v1, v1, [Lorg/webrtc/VideoCodecInfo;
invoke-virtual {v0, v1}, Ljava/util/LinkedHashSet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lorg/webrtc/VideoCodecInfo;
return-object v0
.end method

View file

@ -0,0 +1,145 @@
.class public Lorg/webrtc/DtmfSender;
.super Ljava/lang/Object;
.source "DtmfSender.java"
# instance fields
.field public nativeDtmfSender:J
# direct methods
.method public constructor <init>(J)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-wide p1, p0, Lorg/webrtc/DtmfSender;->nativeDtmfSender:J
return-void
.end method
.method private checkDtmfSenderExists()V
.locals 5
iget-wide v0, p0, Lorg/webrtc/DtmfSender;->nativeDtmfSender:J
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-eqz v4, :cond_0
return-void
:cond_0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "DtmfSender has been disposed."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static native nativeCanInsertDtmf(J)Z
.end method
.method public static native nativeDuration(J)I
.end method
.method public static native nativeInsertDtmf(JLjava/lang/String;II)Z
.end method
.method public static native nativeInterToneGap(J)I
.end method
.method public static native nativeTones(J)Ljava/lang/String;
.end method
# virtual methods
.method public canInsertDtmf()Z
.locals 2
invoke-direct {p0}, Lorg/webrtc/DtmfSender;->checkDtmfSenderExists()V
iget-wide v0, p0, Lorg/webrtc/DtmfSender;->nativeDtmfSender:J
invoke-static {v0, v1}, Lorg/webrtc/DtmfSender;->nativeCanInsertDtmf(J)Z
move-result v0
return v0
.end method
.method public dispose()V
.locals 2
invoke-direct {p0}, Lorg/webrtc/DtmfSender;->checkDtmfSenderExists()V
iget-wide v0, p0, Lorg/webrtc/DtmfSender;->nativeDtmfSender:J
invoke-static {v0, v1}, Lorg/webrtc/JniCommon;->nativeReleaseRef(J)V
const-wide/16 v0, 0x0
iput-wide v0, p0, Lorg/webrtc/DtmfSender;->nativeDtmfSender:J
return-void
.end method
.method public duration()I
.locals 2
invoke-direct {p0}, Lorg/webrtc/DtmfSender;->checkDtmfSenderExists()V
iget-wide v0, p0, Lorg/webrtc/DtmfSender;->nativeDtmfSender:J
invoke-static {v0, v1}, Lorg/webrtc/DtmfSender;->nativeDuration(J)I
move-result v0
return v0
.end method
.method public insertDtmf(Ljava/lang/String;II)Z
.locals 2
invoke-direct {p0}, Lorg/webrtc/DtmfSender;->checkDtmfSenderExists()V
iget-wide v0, p0, Lorg/webrtc/DtmfSender;->nativeDtmfSender:J
invoke-static {v0, v1, p1, p2, p3}, Lorg/webrtc/DtmfSender;->nativeInsertDtmf(JLjava/lang/String;II)Z
move-result p1
return p1
.end method
.method public interToneGap()I
.locals 2
invoke-direct {p0}, Lorg/webrtc/DtmfSender;->checkDtmfSenderExists()V
iget-wide v0, p0, Lorg/webrtc/DtmfSender;->nativeDtmfSender:J
invoke-static {v0, v1}, Lorg/webrtc/DtmfSender;->nativeInterToneGap(J)I
move-result v0
return v0
.end method
.method public tones()Ljava/lang/String;
.locals 2
invoke-direct {p0}, Lorg/webrtc/DtmfSender;->checkDtmfSenderExists()V
iget-wide v0, p0, Lorg/webrtc/DtmfSender;->nativeDtmfSender:J
invoke-static {v0, v1}, Lorg/webrtc/DtmfSender;->nativeTones(J)Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View file

@ -0,0 +1,245 @@
.class public Lorg/webrtc/DynamicBitrateAdjuster;
.super Lorg/webrtc/BaseBitrateAdjuster;
.source "DynamicBitrateAdjuster.java"
# static fields
.field public static final BITRATE_ADJUSTMENT_MAX_SCALE:D = 4.0
.field public static final BITRATE_ADJUSTMENT_SEC:D = 3.0
.field public static final BITRATE_ADJUSTMENT_STEPS:I = 0x14
.field public static final BITS_PER_BYTE:D = 8.0
# instance fields
.field public bitrateAdjustmentScaleExp:I
.field public deviationBytes:D
.field public timeSinceLastAdjustmentMs:D
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Lorg/webrtc/BaseBitrateAdjuster;-><init>()V
return-void
.end method
.method private getBitrateAdjustmentScale()D
.locals 4
iget v0, p0, Lorg/webrtc/DynamicBitrateAdjuster;->bitrateAdjustmentScaleExp:I
int-to-double v0, v0
const-wide/high16 v2, 0x4034000000000000L # 20.0
div-double/2addr v0, v2
const-wide/high16 v2, 0x4010000000000000L # 4.0
invoke-static {v2, v3, v0, v1}, Ljava/lang/Math;->pow(DD)D
move-result-wide v0
return-wide v0
.end method
# virtual methods
.method public getAdjustedBitrateBps()I
.locals 4
iget v0, p0, Lorg/webrtc/BaseBitrateAdjuster;->targetBitrateBps:I
int-to-double v0, v0
invoke-direct {p0}, Lorg/webrtc/DynamicBitrateAdjuster;->getBitrateAdjustmentScale()D
move-result-wide v2
mul-double v0, v0, v2
double-to-int v0, v0
return v0
.end method
.method public reportEncodedFrame(I)V
.locals 12
iget v0, p0, Lorg/webrtc/BaseBitrateAdjuster;->targetFps:I
if-nez v0, :cond_0
return-void
:cond_0
iget v1, p0, Lorg/webrtc/BaseBitrateAdjuster;->targetBitrateBps:I
int-to-double v2, v1
const-wide/high16 v4, 0x4020000000000000L # 8.0
div-double/2addr v2, v4
int-to-double v6, v0
div-double/2addr v2, v6
iget-wide v6, p0, Lorg/webrtc/DynamicBitrateAdjuster;->deviationBytes:D
int-to-double v8, p1
sub-double/2addr v8, v2
add-double/2addr v8, v6
iput-wide v8, p0, Lorg/webrtc/DynamicBitrateAdjuster;->deviationBytes:D
iget-wide v2, p0, Lorg/webrtc/DynamicBitrateAdjuster;->timeSinceLastAdjustmentMs:D
const-wide v6, 0x408f400000000000L # 1000.0
int-to-double v10, v0
div-double/2addr v6, v10
add-double/2addr v6, v2
iput-wide v6, p0, Lorg/webrtc/DynamicBitrateAdjuster;->timeSinceLastAdjustmentMs:D
int-to-double v0, v1
div-double/2addr v0, v4
const-wide/high16 v2, 0x4008000000000000L # 3.0
mul-double v2, v2, v0
invoke-static {v8, v9, v2, v3}, Ljava/lang/Math;->min(DD)D
move-result-wide v4
iput-wide v4, p0, Lorg/webrtc/DynamicBitrateAdjuster;->deviationBytes:D
neg-double v2, v2
invoke-static {v4, v5, v2, v3}, Ljava/lang/Math;->max(DD)D
move-result-wide v2
iput-wide v2, p0, Lorg/webrtc/DynamicBitrateAdjuster;->deviationBytes:D
iget-wide v4, p0, Lorg/webrtc/DynamicBitrateAdjuster;->timeSinceLastAdjustmentMs:D
const-wide v6, 0x40a7700000000000L # 3000.0
cmpg-double p1, v4, v6
if-gtz p1, :cond_1
return-void
:cond_1
const-wide/high16 v4, 0x3fe0000000000000L # 0.5
cmpl-double p1, v2, v0
if-lez p1, :cond_2
div-double/2addr v2, v0
add-double/2addr v2, v4
double-to-int p1, v2
iget v2, p0, Lorg/webrtc/DynamicBitrateAdjuster;->bitrateAdjustmentScaleExp:I
sub-int/2addr v2, p1
iput v2, p0, Lorg/webrtc/DynamicBitrateAdjuster;->bitrateAdjustmentScaleExp:I
const/16 p1, -0x14
invoke-static {v2, p1}, Ljava/lang/Math;->max(II)I
move-result p1
iput p1, p0, Lorg/webrtc/DynamicBitrateAdjuster;->bitrateAdjustmentScaleExp:I
iput-wide v0, p0, Lorg/webrtc/DynamicBitrateAdjuster;->deviationBytes:D
goto :goto_0
:cond_2
neg-double v6, v0
cmpg-double p1, v2, v6
if-gez p1, :cond_3
neg-double v2, v2
div-double/2addr v2, v0
add-double/2addr v2, v4
double-to-int p1, v2
iget v0, p0, Lorg/webrtc/DynamicBitrateAdjuster;->bitrateAdjustmentScaleExp:I
add-int/2addr v0, p1
iput v0, p0, Lorg/webrtc/DynamicBitrateAdjuster;->bitrateAdjustmentScaleExp:I
const/16 p1, 0x14
invoke-static {v0, p1}, Ljava/lang/Math;->min(II)I
move-result p1
iput p1, p0, Lorg/webrtc/DynamicBitrateAdjuster;->bitrateAdjustmentScaleExp:I
iput-wide v6, p0, Lorg/webrtc/DynamicBitrateAdjuster;->deviationBytes:D
:cond_3
:goto_0
const-wide/16 v0, 0x0
iput-wide v0, p0, Lorg/webrtc/DynamicBitrateAdjuster;->timeSinceLastAdjustmentMs:D
return-void
.end method
.method public setTargets(II)V
.locals 5
iget v0, p0, Lorg/webrtc/BaseBitrateAdjuster;->targetBitrateBps:I
if-lez v0, :cond_0
if-ge p1, v0, :cond_0
iget-wide v1, p0, Lorg/webrtc/DynamicBitrateAdjuster;->deviationBytes:D
int-to-double v3, p1
mul-double v1, v1, v3
int-to-double v3, v0
div-double/2addr v1, v3
iput-wide v1, p0, Lorg/webrtc/DynamicBitrateAdjuster;->deviationBytes:D
:cond_0
invoke-super {p0, p1, p2}, Lorg/webrtc/BaseBitrateAdjuster;->setTargets(II)V
return-void
.end method

View file

@ -0,0 +1,19 @@
.class public interface abstract Lorg/webrtc/EglBase$Context;
.super Ljava/lang/Object;
.source "EglBase.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/EglBase;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "Context"
.end annotation
# virtual methods
.method public abstract getNativeEglContext()J
.end method

View file

@ -0,0 +1,200 @@
.class public interface abstract Lorg/webrtc/EglBase;
.super Ljava/lang/Object;
.source "EglBase.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/webrtc/EglBase$Context;
}
.end annotation
# static fields
.field public static final CONFIG_PIXEL_BUFFER:[I
.field public static final CONFIG_PIXEL_RGBA_BUFFER:[I
.field public static final CONFIG_PLAIN:[I
.field public static final CONFIG_RECORDABLE:[I
.field public static final CONFIG_RGBA:[I
.field public static final EGL_OPENGL_ES2_BIT:I = 0x4
.field public static final EGL_RECORDABLE_ANDROID:I = 0x3142
.field public static final lock:Ljava/lang/Object;
# direct methods
.method public static constructor <clinit>()V
.locals 2
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Lorg/webrtc/EglBase;->lock:Ljava/lang/Object;
const/16 v0, 0x9
new-array v0, v0, [I
fill-array-data v0, :array_0
sput-object v0, Lorg/webrtc/EglBase;->CONFIG_PLAIN:[I
const/16 v0, 0xb
new-array v1, v0, [I
fill-array-data v1, :array_1
sput-object v1, Lorg/webrtc/EglBase;->CONFIG_RGBA:[I
new-array v1, v0, [I
fill-array-data v1, :array_2
sput-object v1, Lorg/webrtc/EglBase;->CONFIG_PIXEL_BUFFER:[I
const/16 v1, 0xd
new-array v1, v1, [I
fill-array-data v1, :array_3
sput-object v1, Lorg/webrtc/EglBase;->CONFIG_PIXEL_RGBA_BUFFER:[I
new-array v0, v0, [I
fill-array-data v0, :array_4
sput-object v0, Lorg/webrtc/EglBase;->CONFIG_RECORDABLE:[I
return-void
nop
:array_0
.array-data 4
0x3024
0x8
0x3023
0x8
0x3022
0x8
0x3040
0x4
0x3038
.end array-data
:array_1
.array-data 4
0x3024
0x8
0x3023
0x8
0x3022
0x8
0x3021
0x8
0x3040
0x4
0x3038
.end array-data
:array_2
.array-data 4
0x3024
0x8
0x3023
0x8
0x3022
0x8
0x3040
0x4
0x3033
0x1
0x3038
.end array-data
:array_3
.array-data 4
0x3024
0x8
0x3023
0x8
0x3022
0x8
0x3021
0x8
0x3040
0x4
0x3033
0x1
0x3038
.end array-data
:array_4
.array-data 4
0x3024
0x8
0x3023
0x8
0x3022
0x8
0x3040
0x4
0x3142
0x1
0x3038
.end array-data
.end method
# virtual methods
.method public abstract createDummyPbufferSurface()V
.end method
.method public abstract createPbufferSurface(II)V
.end method
.method public abstract createSurface(Landroid/graphics/SurfaceTexture;)V
.end method
.method public abstract createSurface(Landroid/view/Surface;)V
.end method
.method public abstract detachCurrent()V
.end method
.method public abstract getEglBaseContext()Lorg/webrtc/EglBase$Context;
.end method
.method public abstract hasSurface()Z
.end method
.method public abstract makeCurrent()V
.end method
.method public abstract release()V
.end method
.method public abstract releaseSurface()V
.end method
.method public abstract surfaceHeight()I
.end method
.method public abstract surfaceWidth()I
.end method
.method public abstract swapBuffers()V
.end method
.method public abstract swapBuffers(J)V
.end method

View file

@ -0,0 +1,129 @@
.class public Lorg/webrtc/EglBase10$1FakeSurfaceHolder;
.super Ljava/lang/Object;
.source "EglBase10.java"
# interfaces
.implements Landroid/view/SurfaceHolder;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lorg/webrtc/EglBase10;->createSurface(Landroid/view/Surface;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "FakeSurfaceHolder"
.end annotation
# instance fields
.field public final surface:Landroid/view/Surface;
.field public final synthetic this$0:Lorg/webrtc/EglBase10;
# direct methods
.method public constructor <init>(Lorg/webrtc/EglBase10;Landroid/view/Surface;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/EglBase10$1FakeSurfaceHolder;->this$0:Lorg/webrtc/EglBase10;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p2, p0, Lorg/webrtc/EglBase10$1FakeSurfaceHolder;->surface:Landroid/view/Surface;
return-void
.end method
# virtual methods
.method public addCallback(Landroid/view/SurfaceHolder$Callback;)V
.locals 0
return-void
.end method
.method public getSurface()Landroid/view/Surface;
.locals 1
iget-object v0, p0, Lorg/webrtc/EglBase10$1FakeSurfaceHolder;->surface:Landroid/view/Surface;
return-object v0
.end method
.method public getSurfaceFrame()Landroid/graphics/Rect;
.locals 1
const/4 v0, 0x0
return-object v0
.end method
.method public isCreating()Z
.locals 1
const/4 v0, 0x0
return v0
.end method
.method public lockCanvas()Landroid/graphics/Canvas;
.locals 1
const/4 v0, 0x0
return-object v0
.end method
.method public lockCanvas(Landroid/graphics/Rect;)Landroid/graphics/Canvas;
.locals 0
const/4 p1, 0x0
return-object p1
.end method
.method public removeCallback(Landroid/view/SurfaceHolder$Callback;)V
.locals 0
return-void
.end method
.method public setFixedSize(II)V
.locals 0
return-void
.end method
.method public setFormat(I)V
.locals 0
return-void
.end method
.method public setKeepScreenOn(Z)V
.locals 0
return-void
.end method
.method public setSizeFromLayout()V
.locals 0
return-void
.end method
.method public setType(I)V
.locals 0
.annotation runtime Ljava/lang/Deprecated;
.end annotation
return-void
.end method
.method public unlockCanvasAndPost(Landroid/graphics/Canvas;)V
.locals 0
return-void
.end method

View file

@ -0,0 +1,51 @@
.class public Lorg/webrtc/EglBase10$Context;
.super Ljava/lang/Object;
.source "EglBase10.java"
# interfaces
.implements Lorg/webrtc/EglBase$Context;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/EglBase10;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Context"
.end annotation
# instance fields
.field public final eglContext:Ljavax/microedition/khronos/egl/EGLContext;
# direct methods
.method public constructor <init>(Ljavax/microedition/khronos/egl/EGLContext;)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lorg/webrtc/EglBase10$Context;->eglContext:Ljavax/microedition/khronos/egl/EGLContext;
return-void
.end method
.method public static synthetic access$000(Lorg/webrtc/EglBase10$Context;)Ljavax/microedition/khronos/egl/EGLContext;
.locals 0
iget-object p0, p0, Lorg/webrtc/EglBase10$Context;->eglContext:Ljavax/microedition/khronos/egl/EGLContext;
return-object p0
.end method
# virtual methods
.method public getNativeEglContext()J
.locals 2
const-wide/16 v0, 0x0
return-wide v0
.end method

View file

@ -0,0 +1,976 @@
.class public Lorg/webrtc/EglBase10;
.super Ljava/lang/Object;
.source "EglBase10.java"
# interfaces
.implements Lorg/webrtc/EglBase;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/webrtc/EglBase10$Context;
}
.end annotation
# static fields
.field public static final EGL_CONTEXT_CLIENT_VERSION:I = 0x3098
# instance fields
.field public final egl:Ljavax/microedition/khronos/egl/EGL10;
.field public eglConfig:Ljavax/microedition/khronos/egl/EGLConfig;
.field public eglContext:Ljavax/microedition/khronos/egl/EGLContext;
.field public eglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
.field public eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
# direct methods
.method public constructor <init>(Lorg/webrtc/EglBase10$Context;[I)V
.locals 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
sget-object v0, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_SURFACE:Ljavax/microedition/khronos/egl/EGLSurface;
iput-object v0, p0, Lorg/webrtc/EglBase10;->eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
invoke-static {}, Ljavax/microedition/khronos/egl/EGLContext;->getEGL()Ljavax/microedition/khronos/egl/EGL;
move-result-object v0
check-cast v0, Ljavax/microedition/khronos/egl/EGL10;
iput-object v0, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
invoke-direct {p0}, Lorg/webrtc/EglBase10;->getEglDisplay()Ljavax/microedition/khronos/egl/EGLDisplay;
move-result-object v0
iput-object v0, p0, Lorg/webrtc/EglBase10;->eglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
invoke-direct {p0, v0, p2}, Lorg/webrtc/EglBase10;->getEglConfig(Ljavax/microedition/khronos/egl/EGLDisplay;[I)Ljavax/microedition/khronos/egl/EGLConfig;
move-result-object p2
iput-object p2, p0, Lorg/webrtc/EglBase10;->eglConfig:Ljavax/microedition/khronos/egl/EGLConfig;
iget-object v0, p0, Lorg/webrtc/EglBase10;->eglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
invoke-direct {p0, p1, v0, p2}, Lorg/webrtc/EglBase10;->createEglContext(Lorg/webrtc/EglBase10$Context;Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;)Ljavax/microedition/khronos/egl/EGLContext;
move-result-object p1
iput-object p1, p0, Lorg/webrtc/EglBase10;->eglContext:Ljavax/microedition/khronos/egl/EGLContext;
return-void
.end method
.method private checkIsNotReleased()V
.locals 2
iget-object v0, p0, Lorg/webrtc/EglBase10;->eglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
sget-object v1, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_DISPLAY:Ljavax/microedition/khronos/egl/EGLDisplay;
if-eq v0, v1, :cond_0
iget-object v0, p0, Lorg/webrtc/EglBase10;->eglContext:Ljavax/microedition/khronos/egl/EGLContext;
sget-object v1, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_CONTEXT:Ljavax/microedition/khronos/egl/EGLContext;
if-eq v0, v1, :cond_0
iget-object v0, p0, Lorg/webrtc/EglBase10;->eglConfig:Ljavax/microedition/khronos/egl/EGLConfig;
if-eqz v0, :cond_0
return-void
:cond_0
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "This object has been released"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private createEglContext(Lorg/webrtc/EglBase10$Context;Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;)Ljavax/microedition/khronos/egl/EGLContext;
.locals 3
if-eqz p1, :cond_1
invoke-static {p1}, Lorg/webrtc/EglBase10$Context;->access$000(Lorg/webrtc/EglBase10$Context;)Ljavax/microedition/khronos/egl/EGLContext;
move-result-object v0
sget-object v1, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_CONTEXT:Ljavax/microedition/khronos/egl/EGLContext;
if-eq v0, v1, :cond_0
goto :goto_0
:cond_0
new-instance p1, Ljava/lang/RuntimeException;
const-string p2, "Invalid sharedContext"
invoke-direct {p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
:cond_1
:goto_0
const/4 v0, 0x3
new-array v0, v0, [I
fill-array-data v0, :array_0
if-nez p1, :cond_2
sget-object p1, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_CONTEXT:Ljavax/microedition/khronos/egl/EGLContext;
goto :goto_1
:cond_2
invoke-static {p1}, Lorg/webrtc/EglBase10$Context;->access$000(Lorg/webrtc/EglBase10$Context;)Ljavax/microedition/khronos/egl/EGLContext;
move-result-object p1
:goto_1
sget-object v1, Lorg/webrtc/EglBase;->lock:Ljava/lang/Object;
monitor-enter v1
:try_start_0
iget-object v2, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
invoke-interface {v2, p2, p3, p1, v0}, Ljavax/microedition/khronos/egl/EGL10;->eglCreateContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljavax/microedition/khronos/egl/EGLContext;[I)Ljavax/microedition/khronos/egl/EGLContext;
move-result-object p1
monitor-exit v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
sget-object p2, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_CONTEXT:Ljavax/microedition/khronos/egl/EGLContext;
if-eq p1, p2, :cond_3
return-object p1
:cond_3
new-instance p1, Ljava/lang/RuntimeException;
const-string p2, "Failed to create EGL context: 0x"
invoke-static {p2}, Lf/e/c/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p2
iget-object p3, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
invoke-interface {p3}, Ljavax/microedition/khronos/egl/EGL10;->eglGetError()I
move-result p3
invoke-static {p3}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object p3
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
:catchall_0
move-exception p1
:try_start_1
monitor-exit v1
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
throw p1
nop
:array_0
.array-data 4
0x3098
0x2
0x3038
.end array-data
.end method
.method private createSurfaceInternal(Ljava/lang/Object;)V
.locals 4
instance-of v0, p1, Landroid/view/SurfaceHolder;
if-nez v0, :cond_1
instance-of v0, p1, Landroid/graphics/SurfaceTexture;
if-eqz v0, :cond_0
goto :goto_0
:cond_0
new-instance p1, Ljava/lang/IllegalStateException;
const-string v0, "Input must be either a SurfaceHolder or SurfaceTexture"
invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
:cond_1
:goto_0
invoke-direct {p0}, Lorg/webrtc/EglBase10;->checkIsNotReleased()V
iget-object v0, p0, Lorg/webrtc/EglBase10;->eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
sget-object v1, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_SURFACE:Ljavax/microedition/khronos/egl/EGLSurface;
if-ne v0, v1, :cond_3
const/4 v0, 0x1
new-array v0, v0, [I
const/4 v1, 0x0
const/16 v2, 0x3038
aput v2, v0, v1
iget-object v1, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
iget-object v2, p0, Lorg/webrtc/EglBase10;->eglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
iget-object v3, p0, Lorg/webrtc/EglBase10;->eglConfig:Ljavax/microedition/khronos/egl/EGLConfig;
invoke-interface {v1, v2, v3, p1, v0}, Ljavax/microedition/khronos/egl/EGL10;->eglCreateWindowSurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljava/lang/Object;[I)Ljavax/microedition/khronos/egl/EGLSurface;
move-result-object p1
iput-object p1, p0, Lorg/webrtc/EglBase10;->eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
sget-object v0, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_SURFACE:Ljavax/microedition/khronos/egl/EGLSurface;
if-eq p1, v0, :cond_2
return-void
:cond_2
new-instance p1, Ljava/lang/RuntimeException;
const-string v0, "Failed to create window surface: 0x"
invoke-static {v0}, Lf/e/c/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
invoke-interface {v1}, Ljavax/microedition/khronos/egl/EGL10;->eglGetError()I
move-result v1
invoke-static {v1}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object 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-direct {p1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
:cond_3
new-instance p1, Ljava/lang/RuntimeException;
const-string v0, "Already has an EGLSurface"
invoke-direct {p1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method private getEglConfig(Ljavax/microedition/khronos/egl/EGLDisplay;[I)Ljavax/microedition/khronos/egl/EGLConfig;
.locals 8
const/4 v0, 0x1
new-array v7, v0, [Ljavax/microedition/khronos/egl/EGLConfig;
new-array v0, v0, [I
iget-object v1, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
const/4 v5, 0x1
move-object v2, p1
move-object v3, p2
move-object v4, v7
move-object v6, v0
invoke-interface/range {v1 .. v6}, Ljavax/microedition/khronos/egl/EGL10;->eglChooseConfig(Ljavax/microedition/khronos/egl/EGLDisplay;[I[Ljavax/microedition/khronos/egl/EGLConfig;I[I)Z
move-result p1
if-eqz p1, :cond_2
const/4 p1, 0x0
aget p2, v0, p1
if-lez p2, :cond_1
aget-object p1, v7, p1
if-eqz p1, :cond_0
return-object p1
:cond_0
new-instance p1, Ljava/lang/RuntimeException;
const-string p2, "eglChooseConfig returned null"
invoke-direct {p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
:cond_1
new-instance p1, Ljava/lang/RuntimeException;
const-string p2, "Unable to find any matching EGL config"
invoke-direct {p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
:cond_2
new-instance p1, Ljava/lang/RuntimeException;
const-string p2, "eglChooseConfig failed: 0x"
invoke-static {p2}, Lf/e/c/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p2
iget-object v0, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
invoke-interface {v0}, Ljavax/microedition/khronos/egl/EGL10;->eglGetError()I
move-result v0
invoke-static {v0}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object v0
invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method private getEglDisplay()Ljavax/microedition/khronos/egl/EGLDisplay;
.locals 3
iget-object v0, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
sget-object v1, Ljavax/microedition/khronos/egl/EGL10;->EGL_DEFAULT_DISPLAY:Ljava/lang/Object;
invoke-interface {v0, v1}, Ljavax/microedition/khronos/egl/EGL10;->eglGetDisplay(Ljava/lang/Object;)Ljavax/microedition/khronos/egl/EGLDisplay;
move-result-object v0
sget-object v1, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_DISPLAY:Ljavax/microedition/khronos/egl/EGLDisplay;
if-eq v0, v1, :cond_1
const/4 v1, 0x2
new-array v1, v1, [I
iget-object v2, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
invoke-interface {v2, v0, v1}, Ljavax/microedition/khronos/egl/EGL10;->eglInitialize(Ljavax/microedition/khronos/egl/EGLDisplay;[I)Z
move-result v1
if-eqz v1, :cond_0
return-object v0
:cond_0
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Unable to initialize EGL10: 0x"
invoke-static {v1}, Lf/e/c/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v2, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
invoke-interface {v2}, Ljavax/microedition/khronos/egl/EGL10;->eglGetError()I
move-result v2
invoke-static {v2}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
:cond_1
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Unable to get EGL10 display: 0x"
invoke-static {v1}, Lf/e/c/a/a;->E(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v2, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
invoke-interface {v2}, Ljavax/microedition/khronos/egl/EGL10;->eglGetError()I
move-result v2
invoke-static {v2}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.end method
# virtual methods
.method public createDummyPbufferSurface()V
.locals 1
const/4 v0, 0x1
invoke-virtual {p0, v0, v0}, Lorg/webrtc/EglBase10;->createPbufferSurface(II)V
return-void
.end method
.method public createPbufferSurface(II)V
.locals 4
invoke-direct {p0}, Lorg/webrtc/EglBase10;->checkIsNotReleased()V
iget-object v0, p0, Lorg/webrtc/EglBase10;->eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
sget-object v1, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_SURFACE:Ljavax/microedition/khronos/egl/EGLSurface;
if-ne v0, v1, :cond_1
const/4 v0, 0x5
new-array v0, v0, [I
const/4 v1, 0x0
const/16 v2, 0x3057
aput v2, v0, v1
const/4 v1, 0x1
aput p1, v0, v1
const/4 v1, 0x2
const/16 v2, 0x3056
aput v2, v0, v1
const/4 v1, 0x3
aput p2, v0, v1
const/4 v1, 0x4
const/16 v2, 0x3038
aput v2, v0, v1
iget-object v1, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
iget-object v2, p0, Lorg/webrtc/EglBase10;->eglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
iget-object v3, p0, Lorg/webrtc/EglBase10;->eglConfig:Ljavax/microedition/khronos/egl/EGLConfig;
invoke-interface {v1, v2, v3, v0}, Ljavax/microedition/khronos/egl/EGL10;->eglCreatePbufferSurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;[I)Ljavax/microedition/khronos/egl/EGLSurface;
move-result-object v0
iput-object v0, p0, Lorg/webrtc/EglBase10;->eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
sget-object v1, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_SURFACE:Ljavax/microedition/khronos/egl/EGLSurface;
if-eq v0, v1, :cond_0
return-void
:cond_0
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Failed to create pixel buffer surface with size "
const-string v2, "x"
const-string v3, ": 0x"
invoke-static {v1, p1, v2, p2, v3}, Lf/e/c/a/a;->G(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p1
iget-object p2, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
invoke-interface {p2}, Ljavax/microedition/khronos/egl/EGL10;->eglGetError()I
move-result p2
invoke-static {p2}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object 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-direct {v0, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
:cond_1
new-instance p1, Ljava/lang/RuntimeException;
const-string p2, "Already has an EGLSurface"
invoke-direct {p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public createSurface(Landroid/graphics/SurfaceTexture;)V
.locals 0
invoke-direct {p0, p1}, Lorg/webrtc/EglBase10;->createSurfaceInternal(Ljava/lang/Object;)V
return-void
.end method
.method public createSurface(Landroid/view/Surface;)V
.locals 1
new-instance v0, Lorg/webrtc/EglBase10$1FakeSurfaceHolder;
invoke-direct {v0, p0, p1}, Lorg/webrtc/EglBase10$1FakeSurfaceHolder;-><init>(Lorg/webrtc/EglBase10;Landroid/view/Surface;)V
invoke-direct {p0, v0}, Lorg/webrtc/EglBase10;->createSurfaceInternal(Ljava/lang/Object;)V
return-void
.end method
.method public detachCurrent()V
.locals 6
sget-object v0, Lorg/webrtc/EglBase;->lock:Ljava/lang/Object;
monitor-enter v0
:try_start_0
iget-object v1, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
iget-object v2, p0, Lorg/webrtc/EglBase10;->eglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
sget-object v3, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_SURFACE:Ljavax/microedition/khronos/egl/EGLSurface;
sget-object v4, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_SURFACE:Ljavax/microedition/khronos/egl/EGLSurface;
sget-object v5, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_CONTEXT:Ljavax/microedition/khronos/egl/EGLContext;
invoke-interface {v1, v2, v3, v4, v5}, Ljavax/microedition/khronos/egl/EGL10;->eglMakeCurrent(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;Ljavax/microedition/khronos/egl/EGLSurface;Ljavax/microedition/khronos/egl/EGLContext;)Z
move-result v1
if-eqz v1, :cond_0
monitor-exit v0
return-void
:cond_0
new-instance v1, Ljava/lang/RuntimeException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "eglDetachCurrent failed: 0x"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
invoke-interface {v3}, Ljavax/microedition/khronos/egl/EGL10;->eglGetError()I
move-result v3
invoke-static {v3}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v1
:catchall_0
move-exception v1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v1
.end method
.method public getEglBaseContext()Lorg/webrtc/EglBase$Context;
.locals 2
new-instance v0, Lorg/webrtc/EglBase10$Context;
iget-object v1, p0, Lorg/webrtc/EglBase10;->eglContext:Ljavax/microedition/khronos/egl/EGLContext;
invoke-direct {v0, v1}, Lorg/webrtc/EglBase10$Context;-><init>(Ljavax/microedition/khronos/egl/EGLContext;)V
return-object v0
.end method
.method public hasSurface()Z
.locals 2
iget-object v0, p0, Lorg/webrtc/EglBase10;->eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
sget-object v1, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_SURFACE:Ljavax/microedition/khronos/egl/EGLSurface;
if-eq v0, v1, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public makeCurrent()V
.locals 6
invoke-direct {p0}, Lorg/webrtc/EglBase10;->checkIsNotReleased()V
iget-object v0, p0, Lorg/webrtc/EglBase10;->eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
sget-object v1, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_SURFACE:Ljavax/microedition/khronos/egl/EGLSurface;
if-eq v0, v1, :cond_1
sget-object v0, Lorg/webrtc/EglBase;->lock:Ljava/lang/Object;
monitor-enter v0
:try_start_0
iget-object v1, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
iget-object v2, p0, Lorg/webrtc/EglBase10;->eglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
iget-object v3, p0, Lorg/webrtc/EglBase10;->eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
iget-object v4, p0, Lorg/webrtc/EglBase10;->eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
iget-object v5, p0, Lorg/webrtc/EglBase10;->eglContext:Ljavax/microedition/khronos/egl/EGLContext;
invoke-interface {v1, v2, v3, v4, v5}, Ljavax/microedition/khronos/egl/EGL10;->eglMakeCurrent(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;Ljavax/microedition/khronos/egl/EGLSurface;Ljavax/microedition/khronos/egl/EGLContext;)Z
move-result v1
if-eqz v1, :cond_0
monitor-exit v0
return-void
:cond_0
new-instance v1, Ljava/lang/RuntimeException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "eglMakeCurrent failed: 0x"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
invoke-interface {v3}, Ljavax/microedition/khronos/egl/EGL10;->eglGetError()I
move-result v3
invoke-static {v3}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v1
:catchall_0
move-exception v1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v1
:cond_1
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "No EGLSurface - can\'t make current"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public release()V
.locals 3
invoke-direct {p0}, Lorg/webrtc/EglBase10;->checkIsNotReleased()V
invoke-virtual {p0}, Lorg/webrtc/EglBase10;->releaseSurface()V
invoke-virtual {p0}, Lorg/webrtc/EglBase10;->detachCurrent()V
iget-object v0, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
iget-object v1, p0, Lorg/webrtc/EglBase10;->eglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
iget-object v2, p0, Lorg/webrtc/EglBase10;->eglContext:Ljavax/microedition/khronos/egl/EGLContext;
invoke-interface {v0, v1, v2}, Ljavax/microedition/khronos/egl/EGL10;->eglDestroyContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLContext;)Z
iget-object v0, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
iget-object v1, p0, Lorg/webrtc/EglBase10;->eglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
invoke-interface {v0, v1}, Ljavax/microedition/khronos/egl/EGL10;->eglTerminate(Ljavax/microedition/khronos/egl/EGLDisplay;)Z
sget-object v0, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_CONTEXT:Ljavax/microedition/khronos/egl/EGLContext;
iput-object v0, p0, Lorg/webrtc/EglBase10;->eglContext:Ljavax/microedition/khronos/egl/EGLContext;
sget-object v0, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_DISPLAY:Ljavax/microedition/khronos/egl/EGLDisplay;
iput-object v0, p0, Lorg/webrtc/EglBase10;->eglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
const/4 v0, 0x0
iput-object v0, p0, Lorg/webrtc/EglBase10;->eglConfig:Ljavax/microedition/khronos/egl/EGLConfig;
return-void
.end method
.method public releaseSurface()V
.locals 3
iget-object v0, p0, Lorg/webrtc/EglBase10;->eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
sget-object v1, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_SURFACE:Ljavax/microedition/khronos/egl/EGLSurface;
if-eq v0, v1, :cond_0
iget-object v1, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
iget-object v2, p0, Lorg/webrtc/EglBase10;->eglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
invoke-interface {v1, v2, v0}, Ljavax/microedition/khronos/egl/EGL10;->eglDestroySurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;)Z
sget-object v0, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_SURFACE:Ljavax/microedition/khronos/egl/EGLSurface;
iput-object v0, p0, Lorg/webrtc/EglBase10;->eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
:cond_0
return-void
.end method
.method public surfaceHeight()I
.locals 5
const/4 v0, 0x1
new-array v0, v0, [I
iget-object v1, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
iget-object v2, p0, Lorg/webrtc/EglBase10;->eglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
iget-object v3, p0, Lorg/webrtc/EglBase10;->eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
const/16 v4, 0x3056
invoke-interface {v1, v2, v3, v4, v0}, Ljavax/microedition/khronos/egl/EGL10;->eglQuerySurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;I[I)Z
const/4 v1, 0x0
aget v0, v0, v1
return v0
.end method
.method public surfaceWidth()I
.locals 5
const/4 v0, 0x1
new-array v0, v0, [I
iget-object v1, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
iget-object v2, p0, Lorg/webrtc/EglBase10;->eglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
iget-object v3, p0, Lorg/webrtc/EglBase10;->eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
const/16 v4, 0x3057
invoke-interface {v1, v2, v3, v4, v0}, Ljavax/microedition/khronos/egl/EGL10;->eglQuerySurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;I[I)Z
const/4 v1, 0x0
aget v0, v0, v1
return v0
.end method
.method public swapBuffers()V
.locals 4
invoke-direct {p0}, Lorg/webrtc/EglBase10;->checkIsNotReleased()V
iget-object v0, p0, Lorg/webrtc/EglBase10;->eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
sget-object v1, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_SURFACE:Ljavax/microedition/khronos/egl/EGLSurface;
if-eq v0, v1, :cond_0
sget-object v0, Lorg/webrtc/EglBase;->lock:Ljava/lang/Object;
monitor-enter v0
:try_start_0
iget-object v1, p0, Lorg/webrtc/EglBase10;->egl:Ljavax/microedition/khronos/egl/EGL10;
iget-object v2, p0, Lorg/webrtc/EglBase10;->eglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
iget-object v3, p0, Lorg/webrtc/EglBase10;->eglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
invoke-interface {v1, v2, v3}, Ljavax/microedition/khronos/egl/EGL10;->eglSwapBuffers(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;)Z
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
:cond_0
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "No EGLSurface - can\'t swap buffers"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public swapBuffers(J)V
.locals 0
invoke-virtual {p0}, Lorg/webrtc/EglBase10;->swapBuffers()V
return-void
.end method

View file

@ -0,0 +1,78 @@
.class public Lorg/webrtc/EglBase14$Context;
.super Ljava/lang/Object;
.source "EglBase14.java"
# interfaces
.implements Lorg/webrtc/EglBase$Context;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/EglBase14;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Context"
.end annotation
# instance fields
.field public final egl14Context:Landroid/opengl/EGLContext;
# direct methods
.method public constructor <init>(Landroid/opengl/EGLContext;)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lorg/webrtc/EglBase14$Context;->egl14Context:Landroid/opengl/EGLContext;
return-void
.end method
.method public static synthetic access$100(Lorg/webrtc/EglBase14$Context;)Landroid/opengl/EGLContext;
.locals 0
iget-object p0, p0, Lorg/webrtc/EglBase14$Context;->egl14Context:Landroid/opengl/EGLContext;
return-object p0
.end method
# virtual methods
.method public getNativeEglContext()J
.locals 2
.annotation build Landroid/annotation/TargetApi;
value = 0x15
.end annotation
invoke-static {}, Lorg/webrtc/EglBase14;->access$000()I
move-result v0
const/16 v1, 0x15
if-lt v0, v1, :cond_0
iget-object v0, p0, Lorg/webrtc/EglBase14$Context;->egl14Context:Landroid/opengl/EGLContext;
invoke-virtual {v0}, Landroid/opengl/EGLContext;->getNativeHandle()J
move-result-wide v0
goto :goto_0
:cond_0
iget-object v0, p0, Lorg/webrtc/EglBase14$Context;->egl14Context:Landroid/opengl/EGLContext;
invoke-virtual {v0}, Landroid/opengl/EGLContext;->getHandle()I
move-result v0
int-to-long v0, v0
:goto_0
return-wide v0
.end method

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,23 @@
.class public Lorg/webrtc/EglHelper;
.super Ljava/lang/Object;
.source "EglHelper.java"
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static create()Lorg/webrtc/EglBase;
.locals 1
invoke-static {}, Lf0/c/i0;->a()Lorg/webrtc/EglBase;
move-result-object v0
return-object v0
.end method

View file

@ -0,0 +1,110 @@
.class public Lorg/webrtc/EglRenderer$1;
.super Ljava/lang/Object;
.source "EglRenderer.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/EglRenderer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/EglRenderer;
# direct methods
.method public constructor <init>(Lorg/webrtc/EglRenderer;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/EglRenderer$1;->this$0:Lorg/webrtc/EglRenderer;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 6
iget-object v0, p0, Lorg/webrtc/EglRenderer$1;->this$0:Lorg/webrtc/EglRenderer;
invoke-static {v0}, Lorg/webrtc/EglRenderer;->access$100(Lorg/webrtc/EglRenderer;)V
iget-object v0, p0, Lorg/webrtc/EglRenderer$1;->this$0:Lorg/webrtc/EglRenderer;
invoke-static {v0}, Lorg/webrtc/EglRenderer;->access$200(Lorg/webrtc/EglRenderer;)Ljava/lang/Object;
move-result-object v0
monitor-enter v0
:try_start_0
iget-object v1, p0, Lorg/webrtc/EglRenderer$1;->this$0:Lorg/webrtc/EglRenderer;
invoke-static {v1}, Lorg/webrtc/EglRenderer;->access$300(Lorg/webrtc/EglRenderer;)Landroid/os/Handler;
move-result-object v1
if-eqz v1, :cond_0
iget-object v1, p0, Lorg/webrtc/EglRenderer$1;->this$0:Lorg/webrtc/EglRenderer;
invoke-static {v1}, Lorg/webrtc/EglRenderer;->access$300(Lorg/webrtc/EglRenderer;)Landroid/os/Handler;
move-result-object v1
iget-object v2, p0, Lorg/webrtc/EglRenderer$1;->this$0:Lorg/webrtc/EglRenderer;
invoke-static {v2}, Lorg/webrtc/EglRenderer;->access$400(Lorg/webrtc/EglRenderer;)Ljava/lang/Runnable;
move-result-object v2
invoke-virtual {v1, v2}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
iget-object v1, p0, Lorg/webrtc/EglRenderer$1;->this$0:Lorg/webrtc/EglRenderer;
invoke-static {v1}, Lorg/webrtc/EglRenderer;->access$300(Lorg/webrtc/EglRenderer;)Landroid/os/Handler;
move-result-object v1
iget-object v2, p0, Lorg/webrtc/EglRenderer$1;->this$0:Lorg/webrtc/EglRenderer;
invoke-static {v2}, Lorg/webrtc/EglRenderer;->access$400(Lorg/webrtc/EglRenderer;)Ljava/lang/Runnable;
move-result-object v2
sget-object v3, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
const-wide/16 v4, 0x4
invoke-virtual {v3, v4, v5}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J
move-result-wide v3
invoke-virtual {v1, v2, v3, v4}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
: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

View file

@ -0,0 +1,67 @@
.class public Lorg/webrtc/EglRenderer$2;
.super Ljava/lang/Object;
.source "EglRenderer.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lorg/webrtc/EglRenderer;->init(Lorg/webrtc/EglBase$Context;[ILorg/webrtc/RendererCommon$GlDrawer;Z)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/EglRenderer;
# direct methods
.method public constructor <init>(Lorg/webrtc/EglRenderer;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/EglRenderer$2;->this$0:Lorg/webrtc/EglRenderer;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
iget-object v0, p0, Lorg/webrtc/EglRenderer$2;->this$0:Lorg/webrtc/EglRenderer;
invoke-static {v0}, Lorg/webrtc/EglRenderer;->access$200(Lorg/webrtc/EglRenderer;)Ljava/lang/Object;
move-result-object v0
monitor-enter v0
:try_start_0
iget-object v1, p0, Lorg/webrtc/EglRenderer$2;->this$0:Lorg/webrtc/EglRenderer;
const/4 v2, 0x0
invoke-static {v1, v2}, Lorg/webrtc/EglRenderer;->access$302(Lorg/webrtc/EglRenderer;Landroid/os/Handler;)Landroid/os/Handler;
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

View file

@ -0,0 +1,192 @@
.class public Lorg/webrtc/EglRenderer$EglSurfaceCreation;
.super Ljava/lang/Object;
.source "EglRenderer.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/EglRenderer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "EglSurfaceCreation"
.end annotation
# instance fields
.field public surface:Ljava/lang/Object;
.field public final synthetic this$0:Lorg/webrtc/EglRenderer;
# direct methods
.method public constructor <init>(Lorg/webrtc/EglRenderer;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/EglRenderer$EglSurfaceCreation;->this$0:Lorg/webrtc/EglRenderer;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public synthetic constructor <init>(Lorg/webrtc/EglRenderer;Lorg/webrtc/EglRenderer$1;)V
.locals 0
invoke-direct {p0, p1}, Lorg/webrtc/EglRenderer$EglSurfaceCreation;-><init>(Lorg/webrtc/EglRenderer;)V
return-void
.end method
# virtual methods
.method public declared-synchronized run()V
.locals 3
monitor-enter p0
:try_start_0
iget-object v0, p0, Lorg/webrtc/EglRenderer$EglSurfaceCreation;->surface:Ljava/lang/Object;
if-eqz v0, :cond_2
iget-object v0, p0, Lorg/webrtc/EglRenderer$EglSurfaceCreation;->this$0:Lorg/webrtc/EglRenderer;
invoke-static {v0}, Lorg/webrtc/EglRenderer;->access$000(Lorg/webrtc/EglRenderer;)Lorg/webrtc/EglBase;
move-result-object v0
if-eqz v0, :cond_2
iget-object v0, p0, Lorg/webrtc/EglRenderer$EglSurfaceCreation;->this$0:Lorg/webrtc/EglRenderer;
invoke-static {v0}, Lorg/webrtc/EglRenderer;->access$000(Lorg/webrtc/EglRenderer;)Lorg/webrtc/EglBase;
move-result-object v0
invoke-interface {v0}, Lorg/webrtc/EglBase;->hasSurface()Z
move-result v0
if-nez v0, :cond_2
iget-object v0, p0, Lorg/webrtc/EglRenderer$EglSurfaceCreation;->surface:Ljava/lang/Object;
instance-of v0, v0, Landroid/view/Surface;
if-eqz v0, :cond_0
iget-object v0, p0, Lorg/webrtc/EglRenderer$EglSurfaceCreation;->this$0:Lorg/webrtc/EglRenderer;
invoke-static {v0}, Lorg/webrtc/EglRenderer;->access$000(Lorg/webrtc/EglRenderer;)Lorg/webrtc/EglBase;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/EglRenderer$EglSurfaceCreation;->surface:Ljava/lang/Object;
check-cast v1, Landroid/view/Surface;
invoke-interface {v0, v1}, Lorg/webrtc/EglBase;->createSurface(Landroid/view/Surface;)V
goto :goto_0
:cond_0
iget-object v0, p0, Lorg/webrtc/EglRenderer$EglSurfaceCreation;->surface:Ljava/lang/Object;
instance-of v0, v0, Landroid/graphics/SurfaceTexture;
if-eqz v0, :cond_1
iget-object v0, p0, Lorg/webrtc/EglRenderer$EglSurfaceCreation;->this$0:Lorg/webrtc/EglRenderer;
invoke-static {v0}, Lorg/webrtc/EglRenderer;->access$000(Lorg/webrtc/EglRenderer;)Lorg/webrtc/EglBase;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/EglRenderer$EglSurfaceCreation;->surface:Ljava/lang/Object;
check-cast v1, Landroid/graphics/SurfaceTexture;
invoke-interface {v0, v1}, Lorg/webrtc/EglBase;->createSurface(Landroid/graphics/SurfaceTexture;)V
:goto_0
iget-object v0, p0, Lorg/webrtc/EglRenderer$EglSurfaceCreation;->this$0:Lorg/webrtc/EglRenderer;
invoke-static {v0}, Lorg/webrtc/EglRenderer;->access$000(Lorg/webrtc/EglRenderer;)Lorg/webrtc/EglBase;
move-result-object v0
invoke-interface {v0}, Lorg/webrtc/EglBase;->makeCurrent()V
const/16 v0, 0xcf5
const/4 v1, 0x1
invoke-static {v0, v1}, Landroid/opengl/GLES20;->glPixelStorei(II)V
goto :goto_1
:cond_1
new-instance v0, Ljava/lang/IllegalStateException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Invalid surface: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Lorg/webrtc/EglRenderer$EglSurfaceCreation;->surface:Ljava/lang/Object;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
:cond_2
:goto_1
monitor-exit p0
return-void
:catchall_0
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized setSurface(Ljava/lang/Object;)V
.locals 0
monitor-enter p0
:try_start_0
iput-object p1, p0, Lorg/webrtc/EglRenderer$EglSurfaceCreation;->surface:Ljava/lang/Object;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
monitor-exit p0
return-void
:catchall_0
move-exception p1
monitor-exit p0
throw p1
.end method

View file

@ -0,0 +1,19 @@
.class public interface abstract Lorg/webrtc/EglRenderer$FrameListener;
.super Ljava/lang/Object;
.source "EglRenderer.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/EglRenderer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "FrameListener"
.end annotation
# virtual methods
.method public abstract onFrame(Landroid/graphics/Bitmap;)V
.end method

View file

@ -0,0 +1,42 @@
.class public Lorg/webrtc/EglRenderer$FrameListenerAndParams;
.super Ljava/lang/Object;
.source "EglRenderer.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/EglRenderer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "FrameListenerAndParams"
.end annotation
# instance fields
.field public final applyFpsReduction:Z
.field public final drawer:Lorg/webrtc/RendererCommon$GlDrawer;
.field public final listener:Lorg/webrtc/EglRenderer$FrameListener;
.field public final scale:F
# direct methods
.method public constructor <init>(Lorg/webrtc/EglRenderer$FrameListener;FLorg/webrtc/RendererCommon$GlDrawer;Z)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lorg/webrtc/EglRenderer$FrameListenerAndParams;->listener:Lorg/webrtc/EglRenderer$FrameListener;
iput p2, p0, Lorg/webrtc/EglRenderer$FrameListenerAndParams;->scale:F
iput-object p3, p0, Lorg/webrtc/EglRenderer$FrameListenerAndParams;->drawer:Lorg/webrtc/RendererCommon$GlDrawer;
iput-boolean p4, p0, Lorg/webrtc/EglRenderer$FrameListenerAndParams;->applyFpsReduction:Z
return-void
.end method

View file

@ -0,0 +1,58 @@
.class public Lorg/webrtc/EglRenderer$HandlerWithExceptionCallback;
.super Landroid/os/Handler;
.source "EglRenderer.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/EglRenderer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "HandlerWithExceptionCallback"
.end annotation
# instance fields
.field public final exceptionCallback:Ljava/lang/Runnable;
# direct methods
.method public constructor <init>(Landroid/os/Looper;Ljava/lang/Runnable;)V
.locals 0
invoke-direct {p0, p1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object p2, p0, Lorg/webrtc/EglRenderer$HandlerWithExceptionCallback;->exceptionCallback:Ljava/lang/Runnable;
return-void
.end method
# virtual methods
.method public dispatchMessage(Landroid/os/Message;)V
.locals 2
:try_start_0
invoke-super {p0, p1}, Landroid/os/Handler;->dispatchMessage(Landroid/os/Message;)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
return-void
:catch_0
move-exception p1
const-string v0, "EglRenderer"
const-string v1, "Exception on EglRenderer thread"
invoke-static {v0, v1, p1}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
iget-object v0, p0, Lorg/webrtc/EglRenderer$HandlerWithExceptionCallback;->exceptionCallback:Ljava/lang/Runnable;
invoke-interface {v0}, Ljava/lang/Runnable;->run()V
throw p1
.end method

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,13 @@
.class public Lorg/webrtc/Empty;
.super Ljava/lang/Object;
.source "Empty.java"
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

View file

@ -0,0 +1,14 @@
.class public synthetic Lorg/webrtc/EncodedImage$1;
.super Ljava/lang/Object;
.source "EncodedImage.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/EncodedImage;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1009
name = null
.end annotation

View file

@ -0,0 +1,162 @@
.class public Lorg/webrtc/EncodedImage$Builder;
.super Ljava/lang/Object;
.source "EncodedImage.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/EncodedImage;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Builder"
.end annotation
# instance fields
.field public buffer:Ljava/nio/ByteBuffer;
.field public captureTimeNs:J
.field public completeFrame:Z
.field public encodedHeight:I
.field public encodedWidth:I
.field public frameType:Lorg/webrtc/EncodedImage$FrameType;
.field public qp:Ljava/lang/Integer;
.field public rotation:I
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public synthetic constructor <init>(Lorg/webrtc/EncodedImage$1;)V
.locals 0
invoke-direct {p0}, Lorg/webrtc/EncodedImage$Builder;-><init>()V
return-void
.end method
# virtual methods
.method public createEncodedImage()Lorg/webrtc/EncodedImage;
.locals 12
new-instance v11, Lorg/webrtc/EncodedImage;
iget-object v1, p0, Lorg/webrtc/EncodedImage$Builder;->buffer:Ljava/nio/ByteBuffer;
iget v2, p0, Lorg/webrtc/EncodedImage$Builder;->encodedWidth:I
iget v3, p0, Lorg/webrtc/EncodedImage$Builder;->encodedHeight:I
iget-wide v4, p0, Lorg/webrtc/EncodedImage$Builder;->captureTimeNs:J
iget-object v6, p0, Lorg/webrtc/EncodedImage$Builder;->frameType:Lorg/webrtc/EncodedImage$FrameType;
iget v7, p0, Lorg/webrtc/EncodedImage$Builder;->rotation:I
iget-boolean v8, p0, Lorg/webrtc/EncodedImage$Builder;->completeFrame:Z
iget-object v9, p0, Lorg/webrtc/EncodedImage$Builder;->qp:Ljava/lang/Integer;
const/4 v10, 0x0
move-object v0, v11
invoke-direct/range {v0 .. v10}, Lorg/webrtc/EncodedImage;-><init>(Ljava/nio/ByteBuffer;IIJLorg/webrtc/EncodedImage$FrameType;IZLjava/lang/Integer;Lorg/webrtc/EncodedImage$1;)V
return-object v11
.end method
.method public setBuffer(Ljava/nio/ByteBuffer;)Lorg/webrtc/EncodedImage$Builder;
.locals 0
iput-object p1, p0, Lorg/webrtc/EncodedImage$Builder;->buffer:Ljava/nio/ByteBuffer;
return-object p0
.end method
.method public setCaptureTimeMs(J)Lorg/webrtc/EncodedImage$Builder;
.locals 1
.annotation runtime Ljava/lang/Deprecated;
.end annotation
sget-object v0, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {v0, p1, p2}, Ljava/util/concurrent/TimeUnit;->toNanos(J)J
move-result-wide p1
iput-wide p1, p0, Lorg/webrtc/EncodedImage$Builder;->captureTimeNs:J
return-object p0
.end method
.method public setCaptureTimeNs(J)Lorg/webrtc/EncodedImage$Builder;
.locals 0
iput-wide p1, p0, Lorg/webrtc/EncodedImage$Builder;->captureTimeNs:J
return-object p0
.end method
.method public setCompleteFrame(Z)Lorg/webrtc/EncodedImage$Builder;
.locals 0
iput-boolean p1, p0, Lorg/webrtc/EncodedImage$Builder;->completeFrame:Z
return-object p0
.end method
.method public setEncodedHeight(I)Lorg/webrtc/EncodedImage$Builder;
.locals 0
iput p1, p0, Lorg/webrtc/EncodedImage$Builder;->encodedHeight:I
return-object p0
.end method
.method public setEncodedWidth(I)Lorg/webrtc/EncodedImage$Builder;
.locals 0
iput p1, p0, Lorg/webrtc/EncodedImage$Builder;->encodedWidth:I
return-object p0
.end method
.method public setFrameType(Lorg/webrtc/EncodedImage$FrameType;)Lorg/webrtc/EncodedImage$Builder;
.locals 0
iput-object p1, p0, Lorg/webrtc/EncodedImage$Builder;->frameType:Lorg/webrtc/EncodedImage$FrameType;
return-object p0
.end method
.method public setQp(Ljava/lang/Integer;)Lorg/webrtc/EncodedImage$Builder;
.locals 0
iput-object p1, p0, Lorg/webrtc/EncodedImage$Builder;->qp:Ljava/lang/Integer;
return-object p0
.end method
.method public setRotation(I)Lorg/webrtc/EncodedImage$Builder;
.locals 0
iput p1, p0, Lorg/webrtc/EncodedImage$Builder;->rotation:I
return-object p0
.end method

View file

@ -0,0 +1,191 @@
.class public final enum Lorg/webrtc/EncodedImage$FrameType;
.super Ljava/lang/Enum;
.source "EncodedImage.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/EncodedImage;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4019
name = "FrameType"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Enum<",
"Lorg/webrtc/EncodedImage$FrameType;",
">;"
}
.end annotation
# static fields
.field public static final synthetic $VALUES:[Lorg/webrtc/EncodedImage$FrameType;
.field public static final enum EmptyFrame:Lorg/webrtc/EncodedImage$FrameType;
.field public static final enum VideoFrameDelta:Lorg/webrtc/EncodedImage$FrameType;
.field public static final enum VideoFrameKey:Lorg/webrtc/EncodedImage$FrameType;
# instance fields
.field public final nativeIndex:I
# direct methods
.method public static constructor <clinit>()V
.locals 7
new-instance v0, Lorg/webrtc/EncodedImage$FrameType;
const-string v1, "EmptyFrame"
const/4 v2, 0x0
invoke-direct {v0, v1, v2, v2}, Lorg/webrtc/EncodedImage$FrameType;-><init>(Ljava/lang/String;II)V
sput-object v0, Lorg/webrtc/EncodedImage$FrameType;->EmptyFrame:Lorg/webrtc/EncodedImage$FrameType;
new-instance v0, Lorg/webrtc/EncodedImage$FrameType;
const-string v1, "VideoFrameKey"
const/4 v3, 0x1
const/4 v4, 0x3
invoke-direct {v0, v1, v3, v4}, Lorg/webrtc/EncodedImage$FrameType;-><init>(Ljava/lang/String;II)V
sput-object v0, Lorg/webrtc/EncodedImage$FrameType;->VideoFrameKey:Lorg/webrtc/EncodedImage$FrameType;
new-instance v0, Lorg/webrtc/EncodedImage$FrameType;
const-string v1, "VideoFrameDelta"
const/4 v5, 0x2
const/4 v6, 0x4
invoke-direct {v0, v1, v5, v6}, Lorg/webrtc/EncodedImage$FrameType;-><init>(Ljava/lang/String;II)V
sput-object v0, Lorg/webrtc/EncodedImage$FrameType;->VideoFrameDelta:Lorg/webrtc/EncodedImage$FrameType;
new-array v1, v4, [Lorg/webrtc/EncodedImage$FrameType;
sget-object v4, Lorg/webrtc/EncodedImage$FrameType;->EmptyFrame:Lorg/webrtc/EncodedImage$FrameType;
aput-object v4, v1, v2
sget-object v2, Lorg/webrtc/EncodedImage$FrameType;->VideoFrameKey:Lorg/webrtc/EncodedImage$FrameType;
aput-object v2, v1, v3
aput-object v0, v1, v5
sput-object v1, Lorg/webrtc/EncodedImage$FrameType;->$VALUES:[Lorg/webrtc/EncodedImage$FrameType;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;II)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)V"
}
.end annotation
invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
iput p3, p0, Lorg/webrtc/EncodedImage$FrameType;->nativeIndex:I
return-void
.end method
.method public static fromNativeIndex(I)Lorg/webrtc/EncodedImage$FrameType;
.locals 5
.annotation build Lorg/webrtc/CalledByNative;
value = "FrameType"
.end annotation
invoke-static {}, Lorg/webrtc/EncodedImage$FrameType;->values()[Lorg/webrtc/EncodedImage$FrameType;
move-result-object v0
array-length v1, v0
const/4 v2, 0x0
:goto_0
if-ge v2, v1, :cond_1
aget-object v3, v0, v2
invoke-virtual {v3}, Lorg/webrtc/EncodedImage$FrameType;->getNative()I
move-result v4
if-ne v4, p0, :cond_0
return-object v3
:cond_0
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_1
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Unknown native frame type: "
invoke-static {v1, p0}, Lf/e/c/a/a;->i(Ljava/lang/String;I)Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static valueOf(Ljava/lang/String;)Lorg/webrtc/EncodedImage$FrameType;
.locals 1
const-class v0, Lorg/webrtc/EncodedImage$FrameType;
invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
move-result-object p0
check-cast p0, Lorg/webrtc/EncodedImage$FrameType;
return-object p0
.end method
.method public static values()[Lorg/webrtc/EncodedImage$FrameType;
.locals 1
sget-object v0, Lorg/webrtc/EncodedImage$FrameType;->$VALUES:[Lorg/webrtc/EncodedImage$FrameType;
invoke-virtual {v0}, [Lorg/webrtc/EncodedImage$FrameType;->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lorg/webrtc/EncodedImage$FrameType;
return-object v0
.end method
# virtual methods
.method public getNative()I
.locals 1
iget v0, p0, Lorg/webrtc/EncodedImage$FrameType;->nativeIndex:I
return v0
.end method

View file

@ -0,0 +1,88 @@
.class public Lorg/webrtc/EncodedImage;
.super Ljava/lang/Object;
.source "EncodedImage.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/webrtc/EncodedImage$Builder;,
Lorg/webrtc/EncodedImage$FrameType;
}
.end annotation
# instance fields
.field public final buffer:Ljava/nio/ByteBuffer;
.field public final captureTimeMs:J
.field public final captureTimeNs:J
.field public final completeFrame:Z
.field public final encodedHeight:I
.field public final encodedWidth:I
.field public final frameType:Lorg/webrtc/EncodedImage$FrameType;
.field public final qp:Ljava/lang/Integer;
.field public final rotation:I
# direct methods
.method public constructor <init>(Ljava/nio/ByteBuffer;IIJLorg/webrtc/EncodedImage$FrameType;IZLjava/lang/Integer;)V
.locals 0
.annotation build Lorg/webrtc/CalledByNative;
.end annotation
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lorg/webrtc/EncodedImage;->buffer:Ljava/nio/ByteBuffer;
iput p2, p0, Lorg/webrtc/EncodedImage;->encodedWidth:I
iput p3, p0, Lorg/webrtc/EncodedImage;->encodedHeight:I
sget-object p1, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {p1, p4, p5}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J
move-result-wide p1
iput-wide p1, p0, Lorg/webrtc/EncodedImage;->captureTimeMs:J
iput-wide p4, p0, Lorg/webrtc/EncodedImage;->captureTimeNs:J
iput-object p6, p0, Lorg/webrtc/EncodedImage;->frameType:Lorg/webrtc/EncodedImage$FrameType;
iput p7, p0, Lorg/webrtc/EncodedImage;->rotation:I
iput-boolean p8, p0, Lorg/webrtc/EncodedImage;->completeFrame:Z
iput-object p9, p0, Lorg/webrtc/EncodedImage;->qp:Ljava/lang/Integer;
return-void
.end method
.method public synthetic constructor <init>(Ljava/nio/ByteBuffer;IIJLorg/webrtc/EncodedImage$FrameType;IZLjava/lang/Integer;Lorg/webrtc/EncodedImage$1;)V
.locals 0
invoke-direct/range {p0 .. p9}, Lorg/webrtc/EncodedImage;-><init>(Ljava/nio/ByteBuffer;IIJLorg/webrtc/EncodedImage$FrameType;IZLjava/lang/Integer;)V
return-void
.end method
.method public static builder()Lorg/webrtc/EncodedImage$Builder;
.locals 2
new-instance v0, Lorg/webrtc/EncodedImage$Builder;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lorg/webrtc/EncodedImage$Builder;-><init>(Lorg/webrtc/EncodedImage$1;)V
return-object v0
.end method

View file

@ -0,0 +1,8 @@
.class public interface abstract Lorg/webrtc/FecControllerFactoryFactoryInterface;
.super Ljava/lang/Object;
.source "FecControllerFactoryFactoryInterface.java"
# virtual methods
.method public abstract createNative()J
.end method

View file

@ -0,0 +1,42 @@
.class public Lorg/webrtc/FileVideoCapturer$1;
.super Ljava/util/TimerTask;
.source "FileVideoCapturer.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/FileVideoCapturer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lorg/webrtc/FileVideoCapturer;
# direct methods
.method public constructor <init>(Lorg/webrtc/FileVideoCapturer;)V
.locals 0
iput-object p1, p0, Lorg/webrtc/FileVideoCapturer$1;->this$0:Lorg/webrtc/FileVideoCapturer;
invoke-direct {p0}, Ljava/util/TimerTask;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 1
iget-object v0, p0, Lorg/webrtc/FileVideoCapturer$1;->this$0:Lorg/webrtc/FileVideoCapturer;
invoke-virtual {v0}, Lorg/webrtc/FileVideoCapturer;->tick()V
return-void
.end method

View file

@ -0,0 +1,22 @@
.class public interface abstract Lorg/webrtc/FileVideoCapturer$VideoReader;
.super Ljava/lang/Object;
.source "FileVideoCapturer.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/FileVideoCapturer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "VideoReader"
.end annotation
# virtual methods
.method public abstract close()V
.end method
.method public abstract getNextFrame()Lorg/webrtc/VideoFrame;
.end method

View file

@ -0,0 +1,473 @@
.class public Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;
.super Ljava/lang/Object;
.source "FileVideoCapturer.java"
# interfaces
.implements Lorg/webrtc/FileVideoCapturer$VideoReader;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/webrtc/FileVideoCapturer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "VideoReaderY4M"
.end annotation
# static fields
.field public static final FRAME_DELIMETER_LENGTH:I = 0x6
.field public static final TAG:Ljava/lang/String; = "VideoReaderY4M"
.field public static final Y4M_FRAME_DELIMETER:Ljava/lang/String; = "FRAME"
# instance fields
.field public final frameHeight:I
.field public final frameWidth:I
.field public final mediaFile:Ljava/io/RandomAccessFile;
.field public final mediaFileChannel:Ljava/nio/channels/FileChannel;
.field public final videoStart:J
# direct methods
.method public constructor <init>(Ljava/lang/String;)V
.locals 10
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Ljava/io/RandomAccessFile;
const-string v1, "r"
invoke-direct {v0, p1, v1}, Ljava/io/RandomAccessFile;-><init>(Ljava/lang/String;Ljava/lang/String;)V
iput-object v0, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->mediaFile:Ljava/io/RandomAccessFile;
invoke-virtual {v0}, Ljava/io/RandomAccessFile;->getChannel()Ljava/nio/channels/FileChannel;
move-result-object v0
iput-object v0, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->mediaFileChannel:Ljava/nio/channels/FileChannel;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
:goto_0
iget-object v1, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->mediaFile:Ljava/io/RandomAccessFile;
invoke-virtual {v1}, Ljava/io/RandomAccessFile;->read()I
move-result v1
const/4 v2, -0x1
if-eq v1, v2, :cond_8
const/16 v2, 0xa
if-ne v1, v2, :cond_7
iget-object p1, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->mediaFileChannel:Ljava/nio/channels/FileChannel;
invoke-virtual {p1}, Ljava/nio/channels/FileChannel;->position()J
move-result-wide v1
iput-wide v1, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->videoStart:J
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string v0, "[ ]"
invoke-virtual {p1, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object p1
array-length v0, p1
const/4 v1, 0x0
const-string v2, ""
const/4 v3, 0x0
const/4 v4, 0x0
const/4 v5, 0x0
:goto_1
const/4 v6, 0x1
if-ge v3, v0, :cond_3
aget-object v7, p1, v3
invoke-virtual {v7, v1}, Ljava/lang/String;->charAt(I)C
move-result v8
const/16 v9, 0x43
if-eq v8, v9, :cond_2
const/16 v9, 0x48
if-eq v8, v9, :cond_1
const/16 v9, 0x57
if-eq v8, v9, :cond_0
goto :goto_2
:cond_0
invoke-virtual {v7, v6}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v4
goto :goto_2
:cond_1
invoke-virtual {v7, v6}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v5
invoke-static {v5}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v5
goto :goto_2
:cond_2
invoke-virtual {v7, v6}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
:goto_2
add-int/lit8 v3, v3, 0x1
goto :goto_1
:cond_3
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "Color space: "
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string v0, "VideoReaderY4M"
invoke-static {v0, p1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
const-string p1, "420"
invoke-virtual {v2, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-nez p1, :cond_5
const-string p1, "420mpeg2"
invoke-virtual {v2, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_4
goto :goto_3
:cond_4
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string v0, "Does not support any other color space than I420 or I420mpeg2"
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
:cond_5
:goto_3
rem-int/lit8 p1, v4, 0x2
if-eq p1, v6, :cond_6
rem-int/lit8 p1, v5, 0x2
if-eq p1, v6, :cond_6
iput v4, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->frameWidth:I
iput v5, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->frameHeight:I
const-string p1, "frame dim: ("
const-string v1, ", "
const-string v2, ")"
invoke-static {p1, v4, v1, v5, v2}, Lf/e/c/a/a;->l(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-static {v0, p1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
:cond_6
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string v0, "Does not support odd width or height"
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
:cond_7
int-to-char v1, v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto/16 :goto_0
:cond_8
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Found end of file before end of header for file: "
invoke-static {v1, p1}, Lf/e/c/a/a;->q(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.end method
# virtual methods
.method public close()V
.locals 3
:try_start_0
iget-object v0, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->mediaFile:Ljava/io/RandomAccessFile;
invoke-virtual {v0}, Ljava/io/RandomAccessFile;->close()V
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception v0
const-string v1, "VideoReaderY4M"
const-string v2, "Problem closing file"
invoke-static {v1, v2, v0}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:goto_0
return-void
.end method
.method public getNextFrame()Lorg/webrtc/VideoFrame;
.locals 10
sget-object v0, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v1
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/TimeUnit;->toNanos(J)J
move-result-wide v0
iget v2, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->frameWidth:I
iget v3, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->frameHeight:I
invoke-static {v2, v3}, Lorg/webrtc/JavaI420Buffer;->allocate(II)Lorg/webrtc/JavaI420Buffer;
move-result-object v2
invoke-virtual {v2}, Lorg/webrtc/JavaI420Buffer;->getDataY()Ljava/nio/ByteBuffer;
move-result-object v3
invoke-virtual {v2}, Lorg/webrtc/JavaI420Buffer;->getDataU()Ljava/nio/ByteBuffer;
move-result-object v4
invoke-virtual {v2}, Lorg/webrtc/JavaI420Buffer;->getDataV()Ljava/nio/ByteBuffer;
move-result-object v5
iget v6, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->frameHeight:I
add-int/lit8 v6, v6, 0x1
div-int/lit8 v6, v6, 0x2
invoke-virtual {v2}, Lorg/webrtc/JavaI420Buffer;->getStrideY()I
invoke-virtual {v2}, Lorg/webrtc/JavaI420Buffer;->getStrideU()I
invoke-virtual {v2}, Lorg/webrtc/JavaI420Buffer;->getStrideV()I
:try_start_0
sget v6, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->FRAME_DELIMETER_LENGTH:I
invoke-static {v6}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v6
iget-object v7, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->mediaFileChannel:Ljava/nio/channels/FileChannel;
invoke-virtual {v7, v6}, Ljava/nio/channels/FileChannel;->read(Ljava/nio/ByteBuffer;)I
move-result v7
sget v8, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->FRAME_DELIMETER_LENGTH:I
if-ge v7, v8, :cond_1
iget-object v7, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->mediaFileChannel:Ljava/nio/channels/FileChannel;
iget-wide v8, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->videoStart:J
invoke-virtual {v7, v8, v9}, Ljava/nio/channels/FileChannel;->position(J)Ljava/nio/channels/FileChannel;
iget-object v7, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->mediaFileChannel:Ljava/nio/channels/FileChannel;
invoke-virtual {v7, v6}, Ljava/nio/channels/FileChannel;->read(Ljava/nio/ByteBuffer;)I
move-result v7
sget v8, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->FRAME_DELIMETER_LENGTH:I
if-lt v7, v8, :cond_0
goto :goto_0
:cond_0
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Error looping video"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
:cond_1
:goto_0
new-instance v7, Ljava/lang/String;
invoke-virtual {v6}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v6
const-string v8, "US-ASCII"
invoke-static {v8}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
move-result-object v8
invoke-direct {v7, v6, v8}, Ljava/lang/String;-><init>([BLjava/nio/charset/Charset;)V
const-string v6, "FRAME\n"
invoke-virtual {v7, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_2
iget-object v6, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->mediaFileChannel:Ljava/nio/channels/FileChannel;
invoke-virtual {v6, v3}, Ljava/nio/channels/FileChannel;->read(Ljava/nio/ByteBuffer;)I
iget-object v3, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->mediaFileChannel:Ljava/nio/channels/FileChannel;
invoke-virtual {v3, v4}, Ljava/nio/channels/FileChannel;->read(Ljava/nio/ByteBuffer;)I
iget-object v3, p0, Lorg/webrtc/FileVideoCapturer$VideoReaderY4M;->mediaFileChannel:Ljava/nio/channels/FileChannel;
invoke-virtual {v3, v5}, Ljava/nio/channels/FileChannel;->read(Ljava/nio/ByteBuffer;)I
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
new-instance v3, Lorg/webrtc/VideoFrame;
const/4 v4, 0x0
invoke-direct {v3, v2, v4, v0, v1}, Lorg/webrtc/VideoFrame;-><init>(Lorg/webrtc/VideoFrame$Buffer;IJ)V
return-object v3
:cond_2
:try_start_1
new-instance v0, Ljava/lang/RuntimeException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Frames should be delimited by FRAME plus newline, found delimter was: \'"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "\'"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_1
.catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_0
:catch_0
move-exception v0
new-instance v1, Ljava/lang/RuntimeException;
invoke-direct {v1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw v1
.end method

Some files were not shown because too many files have changed in this diff Show more