.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 ()V .registers 0 .line 25 invoke-static {}, Lpl/droidsonroids/gif/LibraryLoader;->loadLibrary()V return-void .end method .method constructor ()V .registers 1 .line 34 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method constructor (Landroid/content/res/AssetFileDescriptor;)V .registers 6 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 60 invoke-direct {p0}, Ljava/lang/Object;->()V .line 62 :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 65 :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 69 :catch_1a throw v0 .end method .method constructor (Ljava/io/FileDescriptor;)V .registers 5 .annotation system Ldalvik/annotation/Throws; value = { Lpl/droidsonroids/gif/GifIOException; } .end annotation .line 37 invoke-direct {p0}, Ljava/lang/Object;->()V const-wide/16 v0, 0x0 const/4 v2, 0x1 .line 38 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 (Ljava/io/InputStream;)V .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Lpl/droidsonroids/gif/GifIOException; } .end annotation .line 53 invoke-direct {p0}, Ljava/lang/Object;->()V .line 54 invoke-virtual {p1}, Ljava/io/InputStream;->markSupported()Z move-result v0 if-eqz v0, :cond_10 .line 57 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 55 :cond_10 new-instance p1, Ljava/lang/IllegalArgumentException; const-string v0, "InputStream does not support marking" invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 .end method .method constructor (Ljava/lang/String;)V .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Lpl/droidsonroids/gif/GifIOException; } .end annotation .line 49 invoke-direct {p0}, Ljava/lang/Object;->()V .line 50 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 (Ljava/nio/ByteBuffer;)V .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Lpl/droidsonroids/gif/GifIOException; } .end annotation .line 45 invoke-direct {p0}, Ljava/lang/Object;->()V .line 46 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 ([B)V .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Lpl/droidsonroids/gif/GifIOException; } .end annotation .line 41 invoke-direct {p0}, Ljava/lang/Object;->()V .line 42 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 88 :try_start_0 invoke-static {}, Lpl/droidsonroids/gif/GifInfoHandle;->createTempNativeFileDescriptor()I move-result v0 .line 89 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 93 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 95 :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 74 sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v1, 0x1b if-le v0, v1, :cond_1a .line 76 :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 78 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;->(ILjava/lang/String;)V throw p1 .line 81 :cond_1a invoke-static {p0, p3}, Lpl/droidsonroids/gif/GifInfoHandle;->extractNativeFileDescriptor(Ljava/io/FileDescriptor;Z)I move-result p0 .line 83 :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 99 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 100 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;->(Ljava/lang/String;)V return-object p0 .line 102 :cond_16 const-string v0, "r" 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 106 new-instance p1, Lpl/droidsonroids/gif/GifInfoHandle; invoke-direct {p1, p0}, Lpl/droidsonroids/gif/GifInfoHandle;->(Landroid/content/res/AssetFileDescriptor;)V return-object p1 .line 104 :cond_24 new-instance p0, Ljava/io/IOException; new-instance v0, Ljava/lang/StringBuilder; const-string v1, "Could not open AssetFileDescriptor for " invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {p0, p1}, Ljava/io/IOException;->(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 370 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 372 :cond_b new-instance p1, Ljava/lang/IndexOutOfBoundsException; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "Frame index is not in range <0;" invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v0 const/16 v1, 0x3e invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0}, Ljava/lang/IndexOutOfBoundsException;->(Ljava/lang/String;)V throw p1 .end method # virtual methods .method bindSurface(Landroid/view/Surface;[J)V .registers 5 .line 200 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 297 :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 299 invoke-super {p0}, Ljava/lang/Object;->finalize()V return-void :catchall_7 move-exception v0 invoke-super {p0}, Ljava/lang/Object;->finalize()V .line 300 throw v0 .end method .method declared-synchronized getAllocationByteCount()J .registers 3 monitor-enter p0 .line 283 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized getComment()Ljava/lang/String; .registers 3 monitor-enter p0 .line 221 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized getCurrentFrameIndex()I .registers 3 monitor-enter p0 .line 266 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized getCurrentLoop()I .registers 3 monitor-enter p0 .line 270 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized getCurrentPosition()I .registers 3 monitor-enter p0 .line 262 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized getDuration()I .registers 3 monitor-enter p0 .line 258 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized getFrameDuration(I)I .registers 4 monitor-enter p0 .line 320 :try_start_1 invoke-direct {p0, p1}, Lpl/droidsonroids/gif/GifInfoHandle;->throwIfFrameIndexOutOfBounds(I)V .line 321 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 :try_start_d monitor-exit p0 :try_end_e .catchall {:try_start_d .. :try_end_e} :catchall_c throw p1 .end method .method declared-synchronized getHeight()I .registers 3 monitor-enter p0 .line 333 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized getLoopCount()I .registers 3 monitor-enter p0 .line 225 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized getMetadataByteCount()J .registers 3 monitor-enter p0 .line 287 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized getNativeErrorCode()I .registers 3 monitor-enter p0 .line 242 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized getNumberOfFrames()I .registers 3 monitor-enter p0 .line 337 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized getSavedState()[J .registers 3 monitor-enter p0 .line 312 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized getSourceLength()J .registers 3 monitor-enter p0 .line 238 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized getWidth()I .registers 3 monitor-enter p0 .line 329 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method glTexImage2D(II)V .registers 5 .line 345 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 349 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 361 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 308 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized isOpaque()Z .registers 3 monitor-enter p0 .line 341 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized isRecycled()Z .registers 5 monitor-enter p0 .line 291 :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 :try_start_f monitor-exit p0 :try_end_10 .catchall {:try_start_f .. :try_end_10} :catchall_e throw v0 .end method .method declared-synchronized postUnbindSurface()V .registers 3 monitor-enter p0 .line 304 :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 305 monitor-exit p0 return-void :catchall_8 move-exception v0 :try_start_9 monitor-exit p0 :try_end_a .catchall {:try_start_9 .. :try_end_a} :catchall_8 throw v0 .end method .method declared-synchronized recycle()V .registers 3 monitor-enter p0 .line 204 :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 205 iput-wide v0, p0, Lpl/droidsonroids/gif/GifInfoHandle;->gifInfoPtr:J :try_end_a .catchall {:try_start_1 .. :try_end_a} :catchall_c .line 206 monitor-exit p0 return-void :catchall_c move-exception v0 :try_start_d monitor-exit p0 :try_end_e .catchall {:try_start_d .. :try_end_e} :catchall_c throw v0 .end method .method declared-synchronized renderFrame(Landroid/graphics/Bitmap;)J .registers 4 monitor-enter p0 .line 196 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw p1 .end method .method declared-synchronized reset()Z .registers 3 monitor-enter p0 .line 213 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized restoreRemainder()J .registers 3 monitor-enter p0 .line 209 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw v0 .end method .method declared-synchronized restoreSavedState([JLandroid/graphics/Bitmap;)I .registers 5 monitor-enter p0 .line 316 :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 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw p1 .end method .method declared-synchronized saveRemainder()V .registers 3 monitor-enter p0 .line 217 :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 218 monitor-exit p0 return-void :catchall_8 move-exception v0 :try_start_9 monitor-exit p0 :try_end_a .catchall {:try_start_9 .. :try_end_a} :catchall_8 throw v0 .end method .method declared-synchronized seekToFrame(ILandroid/graphics/Bitmap;)V .registers 5 monitor-enter p0 .line 279 :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 280 monitor-exit p0 return-void :catchall_8 move-exception p1 :try_start_9 monitor-exit p0 :try_end_a .catchall {:try_start_9 .. :try_end_a} :catchall_8 throw p1 .end method .method seekToFrameGL(I)V .registers 4 .line 365 invoke-direct {p0, p1}, Lpl/droidsonroids/gif/GifInfoHandle;->throwIfFrameIndexOutOfBounds(I)V .line 366 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 274 :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 275 monitor-exit p0 return-void :catchall_8 move-exception p1 :try_start_9 monitor-exit p0 :try_end_a .catchall {:try_start_9 .. :try_end_a} :catchall_8 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 232 monitor-enter p0 .line 233 :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 234 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 230 :cond_13 new-instance p1, Ljava/lang/IllegalArgumentException; const-string v0, "Loop count of range <0, 65535>" invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 .end method .method setOptions(CZ)V .registers 5 .line 325 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 246 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 252 :cond_12 monitor-enter p0 .line 253 :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 254 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 247 :cond_1d new-instance p1, Ljava/lang/IllegalArgumentException; const-string v0, "Speed factor is not positive" invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 .end method .method startDecoderThread()V .registers 3 .line 353 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 357 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