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 1
.prologue
.line 21
const/4 v0, 0x0
invoke-static {v0}, Lpl/droidsonroids/gif/q;->a(Landroid/content/Context;)V
.line 22
return-void
.end method
.method constructor <init>()V
.registers 1
.prologue
.line 30
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 31
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
.prologue
.line 56
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 58
: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 v2
invoke-static {v0, v2, v3}, Lpl/droidsonroids/gif/GifInfoHandle;->openFd(Ljava/io/FileDescriptor;J)J
move-result-wide v0
iput-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
:try_end_11
.catchall {:try_start_3 .. :try_end_11} :catchall_15
.line 61
:try_start_11
invoke-virtual {p1}, Landroid/content/res/AssetFileDescriptor;->close()V
:try_end_14
.catch Ljava/io/IOException; {:try_start_11 .. :try_end_14} :catch_1a
.line 66
:goto_14
return-void
.line 60
:catchall_15
move-exception v0
.line 61
:try_start_16
invoke-virtual {p1}, Landroid/content/res/AssetFileDescriptor;->close()V
:try_end_19
.catch Ljava/io/IOException; {:try_start_16 .. :try_end_19} :catch_1c
.line 64
:goto_19
throw v0
.line 62
:catch_1a
move-exception v0
goto :goto_14
:catch_1c
move-exception v1
goto :goto_19
.end method
.method constructor <init>(Ljava/io/FileDescriptor;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.prologue
.line 33
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 34
const-wide/16 v0, 0x0
invoke-static {p1, v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->openFd(Ljava/io/FileDescriptor;J)J
move-result-wide v0
iput-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
.line 35
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
.prologue
.line 49
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 50
invoke-virtual {p1}, Ljava/io/InputStream;->markSupported()Z
move-result v0
if-nez v0, :cond_11
.line 51
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "InputStream does not support marking"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 53
:cond_11
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
.line 54
return-void
.end method
.method constructor <init>(Ljava/lang/String;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.prologue
.line 45
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 46
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
.line 47
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
.prologue
.line 41
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 42
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
.line 43
return-void
.end method
.method constructor <init>([B)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lpl/droidsonroids/gif/GifIOException;
}
.end annotation
.prologue
.line 37
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 38
invoke-static {p1}, Lpl/droidsonroids/gif/GifInfoHandle;->openByteArray([B)J
move-result-wide v0
iput-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
.line 39
return-void
.end method
.method private static native bindSurface(JLandroid/view/Surface;[J)V
.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 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 openFd(Ljava/io/FileDescriptor;J)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 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
.prologue
.line 69
const-string v0, "file"
invoke-virtual {p1}, Landroid/net/Uri;->getScheme()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_16
.line 70
new-instance v0, Lpl/droidsonroids/gif/GifInfoHandle;
invoke-virtual {p1}, Landroid/net/Uri;->getPath()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;-><init>(Ljava/lang/String;)V
.line 72
:goto_15
return-object v0
:cond_16
new-instance v0, Lpl/droidsonroids/gif/GifInfoHandle;
const-string v1, "r"
invoke-virtual {p0, p1, v1}, Landroid/content/ContentResolver;->openAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
move-result-object v1
invoke-direct {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;-><init>(Landroid/content/res/AssetFileDescriptor;)V
goto :goto_15
.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
# virtual methods
.method bindSurface(Landroid/view/Surface;[J)V
.registers 5
.prologue
.line 162
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
.line 163
return-void
.end method
.method protected finalize()V
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Throwable;
}
.end annotation
.prologue
.line 259
: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 261
invoke-super {p0}, Ljava/lang/Object;->finalize()V
.line 263
return-void
.line 261
:catchall_7
move-exception v0
invoke-super {p0}, Ljava/lang/Object;->finalize()V
throw v0
.end method
.method declared-synchronized getAllocationByteCount()J
.registers 3
.prologue
.line 244
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getAllocationByteCount(J)J
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result-wide v0
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
.prologue
.line 183
monitor-enter p0
: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;
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result-object v0
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
.prologue
.line 228
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getCurrentFrameIndex(J)I
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result v0
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getCurrentLoop()I
.registers 3
.prologue
.line 232
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getCurrentLoop(J)I
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result v0
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getCurrentPosition()I
.registers 3
.prologue
.line 224
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getCurrentPosition(J)I
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result v0
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getDuration()I
.registers 3
.prologue
.line 220
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getDuration(J)I
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result v0
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method getFrameDuration(I)I
.registers 4
.param p1 # I
.annotation build Landroid/support/annotation/IntRange;
from = 0x0L
.end annotation
.end param
.prologue
.line 282
monitor-enter p0
.line 283
if-ltz p1, :cond_b
:try_start_3
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-lt p1, v0, :cond_16
.line 284
:cond_b
new-instance v0, Ljava/lang/IndexOutOfBoundsException;
const-string v1, "Frame index is out of bounds"
invoke-direct {v0, v1}, Ljava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
throw v0
.line 287
:catchall_13
move-exception v0
monitor-exit p0
:try_end_15
.catchall {:try_start_3 .. :try_end_15} :catchall_13
throw v0
.line 286
:cond_16
:try_start_16
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1}, Lpl/droidsonroids/gif/GifInfoHandle;->getFrameDuration(JI)I
move-result v0
monitor-exit p0
:try_end_1d
.catchall {:try_start_16 .. :try_end_1d} :catchall_13
return v0
.end method
.method declared-synchronized getHeight()I
.registers 3
.prologue
.line 299
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getHeight(J)I
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result v0
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getLoopCount()I
.registers 3
.prologue
.line 187
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getLoopCount(J)I
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result v0
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getMetadataByteCount()J
.registers 3
.prologue
.line 248
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getMetadataByteCount(J)J
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result-wide v0
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
.prologue
.line 204
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getNativeErrorCode(J)I
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result v0
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getNumberOfFrames()I
.registers 3
.prologue
.line 303
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getNumberOfFrames(J)I
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result v0
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized getSavedState()[J
.registers 3
.prologue
.line 274
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getSavedState(J)[J
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result-object v0
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
.prologue
.line 200
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getSourceLength(J)J
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result-wide v0
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
.prologue
.line 295
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->getWidth(J)I
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result v0
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method glTexImage2D(II)V
.registers 5
.prologue
.line 311
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1, p2}, Lpl/droidsonroids/gif/GifInfoHandle;->glTexImage2D(JII)V
.line 312
return-void
.end method
.method glTexSubImage2D(II)V
.registers 5
.prologue
.line 315
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1, p2}, Lpl/droidsonroids/gif/GifInfoHandle;->glTexSubImage2D(JII)V
.line 316
return-void
.end method
.method initTexImageDescriptor()V
.registers 3
.prologue
.line 327
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->initTexImageDescriptor(J)V
.line 328
return-void
.end method
.method declared-synchronized isAnimationCompleted()Z
.registers 3
.prologue
.line 270
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->isAnimationCompleted(J)Z
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result v0
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized isOpaque()Z
.registers 3
.prologue
.line 307
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->isOpaque(J)Z
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result v0
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized isRecycled()Z
.registers 5
.prologue
.line 252
monitor-enter p0
: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_c
const/4 v0, 0x1
:goto_a
monitor-exit p0
return v0
:cond_c
const/4 v0, 0x0
goto :goto_a
:catchall_e
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized postUnbindSurface()V
.registers 3
.prologue
.line 266
monitor-enter p0
: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 267
monitor-exit p0
return-void
.line 266
:catchall_8
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized recycle()V
.registers 3
.prologue
.line 166
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->free(J)V
.line 167
const-wide/16 v0, 0x0
iput-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
:try_end_a
.catchall {:try_start_1 .. :try_end_a} :catchall_c
.line 168
monitor-exit p0
return-void
.line 166
:catchall_c
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized renderFrame(Landroid/graphics/Bitmap;)J
.registers 4
.prologue
.line 158
monitor-enter p0
: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
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result-wide v0
monitor-exit p0
return-wide v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized reset()Z
.registers 3
.prologue
.line 175
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->reset(J)Z
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result v0
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized restoreRemainder()J
.registers 3
.prologue
.line 171
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->restoreRemainder(J)J
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result-wide v0
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
.prologue
.line 278
monitor-enter p0
: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
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_9
move-result v0
monitor-exit p0
return v0
:catchall_9
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized saveRemainder()V
.registers 3
.prologue
.line 179
monitor-enter p0
: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 180
monitor-exit p0
return-void
.line 179
:catchall_8
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized seekToFrame(ILandroid/graphics/Bitmap;)V
.registers 5
.param p1 # I
.annotation build Landroid/support/annotation/IntRange;
from = 0x0L
to = 0x7fffffffL
.end annotation
.end param
.prologue
.line 240
monitor-enter p0
: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 241
monitor-exit p0
return-void
.line 240
:catchall_8
move-exception v0
monitor-exit p0
throw v0
.end method
.method seekToFrameGL(I)V
.registers 4
.param p1 # I
.annotation build Landroid/support/annotation/IntRange;
from = 0x0L
.end annotation
.end param
.prologue
.line 331
if-ltz p1, :cond_a
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-lt p1, v0, :cond_12
.line 332
:cond_a
new-instance v0, Ljava/lang/IndexOutOfBoundsException;
const-string v1, "Frame index is out of bounds"
invoke-direct {v0, v1}, Ljava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
throw v0
.line 334
:cond_12
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1}, Lpl/droidsonroids/gif/GifInfoHandle;->seekToFrameGL(JI)V
.line 335
return-void
.end method
.method declared-synchronized seekToTime(ILandroid/graphics/Bitmap;)V
.registers 5
.param p1 # I
.annotation build Landroid/support/annotation/IntRange;
from = 0x0L
to = 0x7fffffffL
.end annotation
.end param
.prologue
.line 236
monitor-enter p0
: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 237
monitor-exit p0
return-void
.line 236
:catchall_8
move-exception v0
monitor-exit p0
throw v0
.end method
.method setLoopCount(I)V
.registers 5
.param p1 # I
.annotation build Landroid/support/annotation/IntRange;
from = 0x0L
to = 0xffffL
.end annotation
.end param
.prologue
.line 191
if-ltz p1, :cond_7
const v0, 0xffff
if-le p1, v0, :cond_f
.line 192
:cond_7
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Loop count of range <0, 65535>"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 194
:cond_f
monitor-enter p0
.line 195
:try_start_10
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
int-to-char v2, p1
invoke-static {v0, v1, v2}, Lpl/droidsonroids/gif/GifInfoHandle;->setLoopCount(JC)V
.line 196
monitor-exit p0
.line 197
return-void
.line 196
:catchall_18
move-exception v0
monitor-exit p0
:try_end_1a
.catchall {:try_start_10 .. :try_end_1a} :catchall_18
throw v0
.end method
.method setOptions(CZ)V
.registers 5
.prologue
.line 291
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1, p2}, Lpl/droidsonroids/gif/GifInfoHandle;->setOptions(JCZ)V
.line 292
return-void
.end method
.method setSpeedFactor(F)V
.registers 4
.param p1 # F
.annotation build Landroid/support/annotation/FloatRange;
from = 0.0
fromInclusive = false
.end annotation
.end param
.prologue
const/high16 v0, 0x30000000
.line 208
const/4 v1, 0x0
cmpg-float v1, p1, v1
if-lez v1, :cond_d
invoke-static {p1}, Ljava/lang/Float;->isNaN(F)Z
move-result v1
if-eqz v1, :cond_15
.line 209
:cond_d
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Speed factor is not positive"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 211
:cond_15
cmpg-float v1, p1, v0
if-gez v1, :cond_1a
move p1, v0
.line 214
:cond_1a
monitor-enter p0
.line 215
:try_start_1b
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1, p1}, Lpl/droidsonroids/gif/GifInfoHandle;->setSpeedFactor(JF)V
.line 216
monitor-exit p0
.line 217
return-void
.line 216
:catchall_22
move-exception v0
monitor-exit p0
:try_end_24
.catchall {:try_start_1b .. :try_end_24} :catchall_22
throw v0
.end method
.method startDecoderThread()V
.registers 3
.prologue
.line 319
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->startDecoderThread(J)V
.line 320
return-void
.end method
.method stopDecoderThread()V
.registers 3
.prologue
.line 323
iget-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J
invoke-static {v0, v1}, Lpl/droidsonroids/gif/GifInfoHandle;->stopDecoderThread(J)V
.line 324
return-void
.end method