GifInfoHandle.smali
.class final Lpl/droidsonroids/gif/GifInfoHandle;
.super Ljava/lang/Object;
.source "GifInfoHandle.java"
# instance fields
.field private volatile gifInfoPtr:J
# direct methods
.method static constructor <clinit>()V
.registers 0
.line 27
invoke-static {}, Lpl/droidsonroids/gif/LibraryLoader;->loadLibrary()V
return-void
.end method
.method constructor <init>()V
.registers 1
.line 36
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method constructor <init>(Landroid/content/res/AssetFileDescriptor;)V
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 62
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 64
:try_start_3
invoke-virtual {p1}, Landroid/content/res/AssetFileDescriptor;->getFileDescriptor()Ljava/io/FileDescriptor;
move-result-object v0
invoke-virtual {p1}, Landroid/content/res/AssetFileDescriptor;->getStartOffset()J
move-result-wide v1
const/4 v3, 0x0
invoke-static {v0, v1, v2, v3}, Lpl/droidsonroids/gif/GifInfoHandle;->openFileDescriptor(Ljava/io/FileDescriptor;JZ)J
move-result-wide v0
iput-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
:try_end_12
.catchall {:try_start_3 .. :try_end_12} :catchall_16
.line 67
:try_start_12
invoke-virtual {p1}, Landroid/content/res/AssetFileDescriptor;->close()V
:try_end_15
.catch Ljava/io/IOException; {:try_start_12 .. :try_end_15} :catch_15
:catch_15
return-void
:catchall_16
move-exception v0
:try_start_17
invoke-virtual {p1}, Landroid/content/res/AssetFileDescriptor;->close()V
:try_end_1a
.catch Ljava/io/IOException; {:try_start_17 .. :try_end_1a} :catch_1a
.line 71
:catch_1a
throw v0
.end method
.method constructor <init>(Ljava/io/FileDescriptor;)V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.line 39
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-wide/16 v0, 0x0
const/4 v2, 0x1
.line 40
invoke-static {p1, v0, v1, v2}, Lpl/droidsonroids/gif/GifInfoHandle;->openFileDescriptor(Ljava/io/FileDescriptor;JZ)J
move-result-wide v0
iput-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
return-void
.end method
.method constructor <init>(Ljava/io/InputStream;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.line 55
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 56
invoke-virtual {p1}, Ljava/io/InputStream;->markSupported()Z
move-result v0
if-eqz v0, :cond_10
.line 59
invoke-static {p1}, Lpl/droidsonroids/gif/GifInfoHandle;->openStream(Ljava/io/InputStream;)J
move-result-wide v0
iput-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
return-void
.line 57
:cond_10
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string v0, "InputStream does not support marking"
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method constructor <init>(Ljava/lang/String;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.line 51
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 52
invoke-static {p1}, Lpl/droidsonroids/gif/GifInfoHandle;->openFile(Ljava/lang/String;)J
move-result-wide v0
iput-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
return-void
.end method
.method constructor <init>(Ljava/nio/ByteBuffer;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.line 47
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 48
invoke-static {p1}, Lpl/droidsonroids/gif/GifInfoHandle;->openDirectByteBuffer(Ljava/nio/ByteBuffer;)J
move-result-wide v0
iput-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
return-void
.end method
.method constructor <init>([B)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.line 43
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 44
invoke-static {p1}, Lpl/droidsonroids/gif/GifInfoHandle;->openByteArray([B)J
move-result-wide v0
iput-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
return-void
.end method
.method private static native bindSurface(JLandroid/view/Surface;[J)V
.end method
.method static native createTempNativeFileDescriptor()I
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.end method
.method static native extractNativeFileDescriptor(Ljava/io/FileDescriptor;Z)I
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.end method
.method private static native free(J)V
.end method
.method private static native getAllocationByteCount(J)J
.end method
.method private static native getComment(J)Ljava/lang/String;
.end method
.method private static native getCurrentFrameIndex(J)I
.end method
.method private static native getCurrentLoop(J)I
.end method
.method private static native getCurrentPosition(J)I
.end method
.method private static native getDuration(J)I
.end method
.method private static native getFrameDuration(JI)I
.end method
.method private static native getHeight(J)I
.end method
.method private static native getLoopCount(J)I
.end method
.method private static native getMetadataByteCount(J)J
.end method
.method private static native getNativeErrorCode(J)I
.end method
.method private static getNativeFileDescriptor(Ljava/io/FileDescriptor;Z)I
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;,
Landroid/system/ErrnoException;
}
.end annotation
.line 91
:try_start_0
invoke-static {}, Lpl/droidsonroids/gif/GifInfoHandle;->createTempNativeFileDescriptor()I
move-result v0
.line 92
invoke-static {p0, v0}, Landroid/system/Os;->dup2(Ljava/io/FileDescriptor;I)Ljava/io/FileDescriptor;
:try_end_7
.catchall {:try_start_0 .. :try_end_7} :catchall_d
if-eqz p1, :cond_c
.line 96
invoke-static {p0}, Landroid/system/Os;->close(Ljava/io/FileDescriptor;)V
:cond_c
return v0
:catchall_d
move-exception v0
if-eqz p1, :cond_13
invoke-static {p0}, Landroid/system/Os;->close(Ljava/io/FileDescriptor;)V
.line 98
:cond_13
throw v0
.end method
.method private static native getNumberOfFrames(J)I
.end method
.method private static native getSavedState(J)[J
.end method
.method private static native getSourceLength(J)J
.end method
.method private static native getWidth(J)I
.end method
.method private static native glTexImage2D(JII)V
.end method
.method private static native glTexSubImage2D(JII)V
.end method
.method private static native initTexImageDescriptor(J)V
.end method
.method private static native isAnimationCompleted(J)Z
.end method
.method private static native isOpaque(J)Z
.end method
.method static native openByteArray([B)J
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.end method
.method static native openDirectByteBuffer(Ljava/nio/ByteBuffer;)J
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.end method
.method static native openFile(Ljava/lang/String;)J
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.end method
.method private static openFileDescriptor(Ljava/io/FileDescriptor;JZ)J
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.line 76
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1b
if-le v0, v1, :cond_1a
.line 78
:try_start_6
invoke-static {p0, p3}, Lpl/droidsonroids/gif/GifInfoHandle;->getNativeFileDescriptor(Ljava/io/FileDescriptor;Z)I
move-result p0
:try_end_a
.catch Ljava/lang/Exception; {:try_start_6 .. :try_end_a} :catch_b
goto :goto_1e
:catch_b
move-exception p0
.line 80
new-instance p1, Lpl/droidsonroids/gif/GifIOException;
sget-object p2, Lpl/droidsonroids/gif/GifError;->OPEN_FAILED:Lpl/droidsonroids/gif/GifError;
iget p2, p2, Lpl/droidsonroids/gif/GifError;->errorCode:I
invoke-virtual {p0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object p0
invoke-direct {p1, p2, p0}, Lpl/droidsonroids/gif/GifIOException;-><init>(ILjava/lang/String;)V
throw p1
.line 83
:cond_1a
invoke-static {p0, p3}, Lpl/droidsonroids/gif/GifInfoHandle;->extractNativeFileDescriptor(Ljava/io/FileDescriptor;Z)I
move-result p0
.line 85
:goto_1e
invoke-static {p0, p1, p2}, Lpl/droidsonroids/gif/GifInfoHandle;->openNativeFileDescriptor(IJ)J
move-result-wide p0
return-wide p0
.end method
.method static native openNativeFileDescriptor(IJ)J
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.end method
.method static native openStream(Ljava/io/InputStream;)J
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.end method
.method static openUri(Landroid/content/ContentResolver;Landroid/net/Uri;)Lpl/droidsonroids/gif/GifInfoHandle;
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 102
invoke-virtual {p1}, Landroid/net/Uri;->getScheme()Ljava/lang/String;
move-result-object v0
const-string v1, "file"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_16
.line 103
new-instance p0, Lpl/droidsonroids/gif/GifInfoHandle;
invoke-virtual {p1}, Landroid/net/Uri;->getPath()Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Lpl/droidsonroids/gif/GifInfoHandle;-><init>(Ljava/lang/String;)V
return-object p0
:cond_16
const-string v0, "r"
.line 105
invoke-virtual {p0, p1, v0}, Landroid/content/ContentResolver;->openAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
move-result-object p0
if-eqz p0, :cond_24
.line 109
new-instance p1, Lpl/droidsonroids/gif/GifInfoHandle;
invoke-direct {p1, p0}, Lpl/droidsonroids/gif/GifInfoHandle;-><init>(Landroid/content/res/AssetFileDescriptor;)V
return-object p1
.line 107
:cond_24
new-instance p0, Ljava/io/IOException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Could not open AssetFileDescriptor for "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw p0
.end method
.method private static native postUnbindSurface(J)V
.end method
.method private static native renderFrame(JLandroid/graphics/Bitmap;)J
.end method
.method private static native reset(J)Z
.end method
.method private static native restoreRemainder(J)J
.end method
.method private static native restoreSavedState(J[JLandroid/graphics/Bitmap;)I
.end method
.method private static native saveRemainder(J)V
.end method
.method private static native seekToFrame(JILandroid/graphics/Bitmap;)V
.end method
.method private static native seekToFrameGL(JI)V
.end method
.method private static native seekToTime(JILandroid/graphics/Bitmap;)V
.end method
.method private static native setLoopCount(JC)V
.end method
.method private static native setOptions(JCZ)V
.end method
.method private static native setSpeedFactor(JF)V
.end method
.method private static native startDecoderThread(J)V
.end method
.method private static native stopDecoderThread(J)V
.end method
.method private throwIfFrameIndexOutOfBounds(I)V
.registers 5
.line 373
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getNumberOfFrames(J)I
move-result v0
if-ltz p1, :cond_b
if-ge p1, v0, :cond_b
return-void
.line 375
:cond_b
new-instance p1, Ljava/lang/IndexOutOfBoundsException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Frame index is not in range <0;"
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/16 v0, 0x3e
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Ljava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
throw p1
.end method
# virtual methods
.method bindSurface(Landroid/view/Surface;[J)V
.registers 5
.line 203
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1, p2}, Lpl/droidsonroids/gif/GifInfoHandle;->bindSurface(JLandroid/view/Surface;[J)V
return-void
.end method
.method protected finalize()V
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Throwable;
}
.end annotation
.line 300
:try_start_0
invoke-virtual {p0}, Lpl/droidsonroids/gif/GifInfoHandle;->recycle()V
:try_end_3
.catchall {:try_start_0 .. :try_end_3} :catchall_7
.line 302
invoke-super {p0}, Ljava/lang/Object;->finalize()V
return-void
:catchall_7
move-exception v0
invoke-super {p0}, Ljava/lang/Object;->finalize()V
.line 303
throw v0
.end method
.method declared-synchronized getAllocationByteCount()J
.registers 3
monitor-enter p0
.line 286
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getAllocationByteCount(J)J
move-result-wide v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return-wide v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getComment()Ljava/lang/String;
.registers 3
monitor-enter p0
.line 224
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getComment(J)Ljava/lang/String;
move-result-object v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return-object v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getCurrentFrameIndex()I
.registers 3
monitor-enter p0
.line 269
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getCurrentFrameIndex(J)I
move-result v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getCurrentLoop()I
.registers 3
monitor-enter p0
.line 273
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getCurrentLoop(J)I
move-result v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getCurrentPosition()I
.registers 3
monitor-enter p0
.line 265
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getCurrentPosition(J)I
move-result v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getDuration()I
.registers 3
monitor-enter p0
.line 261
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getDuration(J)I
move-result v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getFrameDuration(I)I
.registers 4
monitor-enter p0
.line 323
:try_start_1
invoke-direct {p0, p1}, Lpl/droidsonroids/gif/GifInfoHandle;->throwIfFrameIndexOutOfBounds(I)V
.line 324
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1}, Lpl/droidsonroids/gif/GifInfoHandle;->getFrameDuration(JI)I
move-result p1
:try_end_a
.catchall {:try_start_1 .. :try_end_a} :catchall_c
monitor-exit p0
return p1
:catchall_c
move-exception p1
monitor-exit p0
throw p1
.end method
.method declared-synchronized getHeight()I
.registers 3
monitor-enter p0
.line 336
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getHeight(J)I
move-result v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getLoopCount()I
.registers 3
monitor-enter p0
.line 228
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getLoopCount(J)I
move-result v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getMetadataByteCount()J
.registers 3
monitor-enter p0
.line 290
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getMetadataByteCount(J)J
move-result-wide v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return-wide v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getNativeErrorCode()I
.registers 3
monitor-enter p0
.line 245
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getNativeErrorCode(J)I
move-result v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getNumberOfFrames()I
.registers 3
monitor-enter p0
.line 340
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getNumberOfFrames(J)I
move-result v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getSavedState()[J
.registers 3
monitor-enter p0
.line 315
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getSavedState(J)[J
move-result-object v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return-object v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getSourceLength()J
.registers 3
monitor-enter p0
.line 241
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getSourceLength(J)J
move-result-wide v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return-wide v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getWidth()I
.registers 3
monitor-enter p0
.line 332
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getWidth(J)I
move-result v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method glTexImage2D(II)V
.registers 5
.line 348
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1, p2}, Lpl/droidsonroids/gif/GifInfoHandle;->glTexImage2D(JII)V
return-void
.end method
.method glTexSubImage2D(II)V
.registers 5
.line 352
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1, p2}, Lpl/droidsonroids/gif/GifInfoHandle;->glTexSubImage2D(JII)V
return-void
.end method
.method initTexImageDescriptor()V
.registers 3
.line 364
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->initTexImageDescriptor(J)V
return-void
.end method
.method declared-synchronized isAnimationCompleted()Z
.registers 3
monitor-enter p0
.line 311
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->isAnimationCompleted(J)Z
move-result v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized isOpaque()Z
.registers 3
monitor-enter p0
.line 344
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->isOpaque(J)Z
move-result v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized isRecycled()Z
.registers 5
monitor-enter p0
.line 294
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_e
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-nez v0, :cond_b
const/4 v0, 0x1
goto :goto_c
:cond_b
const/4 v0, 0x0
:goto_c
monitor-exit p0
return v0
:catchall_e
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized postUnbindSurface()V
.registers 3
monitor-enter p0
.line 307
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->postUnbindSurface(J)V
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_8
.line 308
monitor-exit p0
return-void
:catchall_8
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized recycle()V
.registers 3
monitor-enter p0
.line 207
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->free(J)V
const-wide/16 v0, 0x0
.line 208
iput-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
:try_end_a
.catchall {:try_start_1 .. :try_end_a} :catchall_c
.line 209
monitor-exit p0
return-void
:catchall_c
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized renderFrame(Landroid/graphics/Bitmap;)J
.registers 4
monitor-enter p0
.line 199
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1}, Lpl/droidsonroids/gif/GifInfoHandle;->renderFrame(JLandroid/graphics/Bitmap;)J
move-result-wide v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return-wide v0
:catchall_9
move-exception p1
monitor-exit p0
throw p1
.end method
.method declared-synchronized reset()Z
.registers 3
monitor-enter p0
.line 216
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->reset(J)Z
move-result v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized restoreRemainder()J
.registers 3
monitor-enter p0
.line 212
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->restoreRemainder(J)J
move-result-wide v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return-wide v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized restoreSavedState([JLandroid/graphics/Bitmap;)I
.registers 5
monitor-enter p0
.line 319
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1, p2}, Lpl/droidsonroids/gif/GifInfoHandle;->restoreSavedState(J[JLandroid/graphics/Bitmap;)I
move-result p1
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return p1
:catchall_9
move-exception p1
monitor-exit p0
throw p1
.end method
.method declared-synchronized saveRemainder()V
.registers 3
monitor-enter p0
.line 220
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->saveRemainder(J)V
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_8
.line 221
monitor-exit p0
return-void
:catchall_8
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized seekToFrame(ILandroid/graphics/Bitmap;)V
.registers 5
monitor-enter p0
.line 282
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1, p2}, Lpl/droidsonroids/gif/GifInfoHandle;->seekToFrame(JILandroid/graphics/Bitmap;)V
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_8
.line 283
monitor-exit p0
return-void
:catchall_8
move-exception p1
monitor-exit p0
throw p1
.end method
.method seekToFrameGL(I)V
.registers 4
.line 368
invoke-direct {p0, p1}, Lpl/droidsonroids/gif/GifInfoHandle;->throwIfFrameIndexOutOfBounds(I)V
.line 369
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1}, Lpl/droidsonroids/gif/GifInfoHandle;->seekToFrameGL(JI)V
return-void
.end method
.method declared-synchronized seekToTime(ILandroid/graphics/Bitmap;)V
.registers 5
monitor-enter p0
.line 277
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1, p2}, Lpl/droidsonroids/gif/GifInfoHandle;->seekToTime(JILandroid/graphics/Bitmap;)V
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_8
.line 278
monitor-exit p0
return-void
:catchall_8
move-exception p1
monitor-exit p0
throw p1
.end method
.method setLoopCount(I)V
.registers 4
if-ltz p1, :cond_13
const v0, 0xffff
if-gt p1, v0, :cond_13
.line 235
monitor-enter p0
.line 236
:try_start_8
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
int-to-char p1, p1
invoke-static {v0, v1, p1}, Lpl/droidsonroids/gif/GifInfoHandle;->setLoopCount(JC)V
.line 237
monitor-exit p0
return-void
:catchall_10
move-exception p1
monitor-exit p0
:try_end_12
.catchall {:try_start_8 .. :try_end_12} :catchall_10
throw p1
.line 233
:cond_13
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string v0, "Loop count of range <0, 65535>"
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method setOptions(CZ)V
.registers 5
.line 328
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1, p2}, Lpl/droidsonroids/gif/GifInfoHandle;->setOptions(JCZ)V
return-void
.end method
.method setSpeedFactor(F)V
.registers 4
const/4 v0, 0x0
cmpg-float v0, p1, v0
if-lez v0, :cond_1d
.line 249
invoke-static {p1}, Ljava/lang/Float;->isNaN(F)Z
move-result v0
if-nez v0, :cond_1d
const/high16 v0, 0x30000000
cmpg-float v1, p1, v0
if-gez v1, :cond_12
move p1, v0
.line 255
:cond_12
monitor-enter p0
.line 256
:try_start_13
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1}, Lpl/droidsonroids/gif/GifInfoHandle;->setSpeedFactor(JF)V
.line 257
monitor-exit p0
return-void
:catchall_1a
move-exception p1
monitor-exit p0
:try_end_1c
.catchall {:try_start_13 .. :try_end_1c} :catchall_1a
throw p1
.line 250
:cond_1d
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string v0, "Speed factor is not positive"
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method startDecoderThread()V
.registers 3
.line 356
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->startDecoderThread(J)V
return-void
.end method
.method stopDecoderThread()V
.registers 3
.line 360
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->stopDecoderThread(J)V
return-void
.end method