diff options
author | Chris Craik <ccraik@google.com> | 2015-05-14 23:42:54 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-05-14 23:42:54 +0000 |
commit | c0b3917d2fe361b42e457b775055cd27e907726c (patch) | |
tree | cfb52991264d531d220b7003b143fb6ddf46b285 | |
parent | 77142b8ec88219bfc3d45193501e4d04dc6b179e (diff) | |
parent | 49640ea5d631a3acc67b248889e7a7da187d4a07 (diff) | |
download | android_frameworks_ex-c0b3917d2fe361b42e457b775055cd27e907726c.tar.gz android_frameworks_ex-c0b3917d2fe361b42e457b775055cd27e907726c.tar.bz2 android_frameworks_ex-c0b3917d2fe361b42e457b775055cd27e907726c.zip |
am 49640ea5: am 55882370: Merge "Move min framerate behavior to Java"
* commit '49640ea5d631a3acc67b248889e7a7da187d4a07':
Move min framerate behavior to Java
-rw-r--r-- | framesequence/jni/FrameSequence_gif.cpp | 11 | ||||
-rw-r--r-- | framesequence/src/android/support/rastermill/FrameSequenceDrawable.java | 12 |
2 files changed, 13 insertions, 10 deletions
diff --git a/framesequence/jni/FrameSequence_gif.cpp b/framesequence/jni/FrameSequence_gif.cpp index 2188c53..f8d37f4 100644 --- a/framesequence/jni/FrameSequence_gif.cpp +++ b/framesequence/jni/FrameSequence_gif.cpp @@ -23,11 +23,6 @@ #define GIF_DEBUG 0 -// These constants are chosen to imitate common browser behavior -// Note that 0 delay is undefined behavior in the gif standard -static const long MIN_DELAY_MS = 20; -static const long DEFAULT_DELAY_MS = 100; - static int streamReader(GifFileType* fileType, GifByteType* out, int size) { Stream* stream = (Stream*) fileType->UserData; return (int) stream->read(out, size); @@ -38,11 +33,7 @@ static Color8888 gifColorToColor8888(const GifColorType& color) { } static long getDelayMs(GraphicsControlBlock& gcb) { - long delayMs = gcb.DelayTime * 10; - if (delayMs < MIN_DELAY_MS) { - return DEFAULT_DELAY_MS; - } - return delayMs; + return gcb.DelayTime * 10; } static bool willBeCleared(const GraphicsControlBlock& gcb) { diff --git a/framesequence/src/android/support/rastermill/FrameSequenceDrawable.java b/framesequence/src/android/support/rastermill/FrameSequenceDrawable.java index 2228b1d..5158bc0 100644 --- a/framesequence/src/android/support/rastermill/FrameSequenceDrawable.java +++ b/framesequence/src/android/support/rastermill/FrameSequenceDrawable.java @@ -30,6 +30,15 @@ import android.os.Process; import android.os.SystemClock; public class FrameSequenceDrawable extends Drawable implements Animatable, Runnable { + /** + * These constants are chosen to imitate common browser behavior for WebP/GIF. + * If other decoders are added, this behavior should be moved into the WebP/GIF decoders. + * + * Note that 0 delay is undefined behavior in the GIF standard. + */ + private static final long MIN_DELAY_MS = 20; + private static final long DEFAULT_DELAY_MS = 100; + private static final Object sLock = new Object(); private static HandlerThread sDecodingThread; private static Handler sDecodingThreadHandler; @@ -160,6 +169,9 @@ public class FrameSequenceDrawable extends Drawable implements Animatable, Runna } int lastFrame = nextFrame - 2; long invalidateTimeMs = mFrameSequenceState.getFrame(nextFrame, bitmap, lastFrame); + if (invalidateTimeMs < MIN_DELAY_MS) { + invalidateTimeMs = DEFAULT_DELAY_MS; + } boolean schedule = false; Bitmap bitmapToRelease = null; |