diff options
-rw-r--r-- | common/java/com/android/common/LegacyHttpDateTime.java | 225 | ||||
-rw-r--r-- | common/java/com/android/common/OperationScheduler.java | 3 | ||||
-rw-r--r-- | common/tests/Android.mk | 2 | ||||
-rw-r--r-- | framesequence/jni/Android.mk | 12 | ||||
-rw-r--r-- | framesequence/samples/FrameSequenceSamples/Android.mk (renamed from framesequence/samples/RastermillSamples/Android.mk) | 2 | ||||
-rw-r--r-- | framesequence/samples/FrameSequenceSamples/AndroidManifest.xml (renamed from framesequence/samples/RastermillSamples/AndroidManifest.xml) | 4 | ||||
-rw-r--r-- | framesequence/samples/FrameSequenceSamples/build.xml (renamed from framesequence/samples/RastermillSamples/build.xml) | 0 | ||||
-rw-r--r-- | framesequence/samples/FrameSequenceSamples/proguard.flags (renamed from framesequence/samples/RastermillSamples/proguard.flags) | 0 | ||||
-rw-r--r-- | framesequence/samples/FrameSequenceSamples/project.properties (renamed from framesequence/samples/RastermillSamples/project.properties) | 0 | ||||
-rw-r--r-- | framesequence/samples/FrameSequenceSamples/res/drawable-hdpi/ic_launcher.png (renamed from framesequence/samples/RastermillSamples/res/drawable-hdpi/ic_launcher.png) | bin | 9397 -> 9397 bytes | |||
-rw-r--r-- | framesequence/samples/FrameSequenceSamples/res/drawable-mdpi/ic_launcher.png (renamed from framesequence/samples/RastermillSamples/res/drawable-mdpi/ic_launcher.png) | bin | 5237 -> 5237 bytes | |||
-rw-r--r-- | framesequence/samples/FrameSequenceSamples/res/drawable-xhdpi/ic_launcher.png (renamed from framesequence/samples/RastermillSamples/res/drawable-xhdpi/ic_launcher.png) | bin | 14383 -> 14383 bytes | |||
-rw-r--r-- | framesequence/samples/FrameSequenceSamples/res/layout/basic_test_activity.xml (renamed from framesequence/samples/RastermillSamples/res/layout/basic_test_activity.xml) | 0 | ||||
-rw-r--r-- | framesequence/samples/FrameSequenceSamples/res/raw/animated_gif.gif (renamed from framesequence/samples/RastermillSamples/res/raw/animated.gif) | bin | 34978 -> 34978 bytes | |||
-rw-r--r-- | framesequence/samples/FrameSequenceSamples/res/raw/animated_webp.webp | bin | 0 -> 380850 bytes | |||
-rw-r--r-- | framesequence/samples/FrameSequenceSamples/res/values/strings.xml (renamed from framesequence/samples/RastermillSamples/res/values/strings.xml) | 2 | ||||
-rw-r--r-- | framesequence/samples/FrameSequenceSamples/res/values/styles.xml (renamed from framesequence/samples/RastermillSamples/res/values/styles.xml) | 0 | ||||
-rw-r--r-- | framesequence/samples/FrameSequenceSamples/src/com/android/framesequence/samples/FrameSequenceTest.java (renamed from framesequence/samples/RastermillSamples/src/com/android/rastermill/samples/AnimatedGifTest.java) | 11 | ||||
-rw-r--r-- | framesequence/samples/FrameSequenceSamples/src/com/android/framesequence/samples/SamplesList.java (renamed from framesequence/samples/RastermillSamples/src/com/android/rastermill/samples/SamplesList.java) | 15 | ||||
-rw-r--r-- | framesequence/src/android/support/rastermill/FrameSequenceDrawable.java | 3 | ||||
-rw-r--r-- | variablespeed/jni/Android.mk | 9 | ||||
-rw-r--r-- | variablespeed/jni/ring_buffer.cc | 4 |
22 files changed, 262 insertions, 30 deletions
diff --git a/common/java/com/android/common/LegacyHttpDateTime.java b/common/java/com/android/common/LegacyHttpDateTime.java new file mode 100644 index 0000000..9b902d6 --- /dev/null +++ b/common/java/com/android/common/LegacyHttpDateTime.java @@ -0,0 +1,225 @@ +/* + * Copyright (C) 2007 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.common; + +import android.text.format.Time; + +import java.util.Calendar; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Helper for parsing an HTTP date. + */ +final class LegacyHttpDateTime { + + /* + * Regular expression for parsing HTTP-date. + * + * Wdy, DD Mon YYYY HH:MM:SS GMT + * RFC 822, updated by RFC 1123 + * + * Weekday, DD-Mon-YY HH:MM:SS GMT + * RFC 850, obsoleted by RFC 1036 + * + * Wdy Mon DD HH:MM:SS YYYY + * ANSI C's asctime() format + * + * with following variations + * + * Wdy, DD-Mon-YYYY HH:MM:SS GMT + * Wdy, (SP)D Mon YYYY HH:MM:SS GMT + * Wdy,DD Mon YYYY HH:MM:SS GMT + * Wdy, DD-Mon-YY HH:MM:SS GMT + * Wdy, DD Mon YYYY HH:MM:SS -HHMM + * Wdy, DD Mon YYYY HH:MM:SS + * Wdy Mon (SP)D HH:MM:SS YYYY + * Wdy Mon DD HH:MM:SS YYYY GMT + * + * HH can be H if the first digit is zero. + * + * Mon can be the full name of the month. + */ + private static final String HTTP_DATE_RFC_REGEXP = + "([0-9]{1,2})[- ]([A-Za-z]{3,9})[- ]([0-9]{2,4})[ ]" + + "([0-9]{1,2}:[0-9][0-9]:[0-9][0-9])"; + + private static final String HTTP_DATE_ANSIC_REGEXP = + "[ ]([A-Za-z]{3,9})[ ]+([0-9]{1,2})[ ]" + + "([0-9]{1,2}:[0-9][0-9]:[0-9][0-9])[ ]([0-9]{2,4})"; + + /** + * The compiled version of the HTTP-date regular expressions. + */ + private static final Pattern HTTP_DATE_RFC_PATTERN = + Pattern.compile(HTTP_DATE_RFC_REGEXP); + private static final Pattern HTTP_DATE_ANSIC_PATTERN = + Pattern.compile(HTTP_DATE_ANSIC_REGEXP); + + private static class TimeOfDay { + TimeOfDay(int h, int m, int s) { + this.hour = h; + this.minute = m; + this.second = s; + } + + int hour; + int minute; + int second; + } + + public static long parse(String timeString) + throws IllegalArgumentException { + + int date = 1; + int month = Calendar.JANUARY; + int year = 1970; + TimeOfDay timeOfDay; + + Matcher rfcMatcher = HTTP_DATE_RFC_PATTERN.matcher(timeString); + if (rfcMatcher.find()) { + date = getDate(rfcMatcher.group(1)); + month = getMonth(rfcMatcher.group(2)); + year = getYear(rfcMatcher.group(3)); + timeOfDay = getTime(rfcMatcher.group(4)); + } else { + Matcher ansicMatcher = HTTP_DATE_ANSIC_PATTERN.matcher(timeString); + if (ansicMatcher.find()) { + month = getMonth(ansicMatcher.group(1)); + date = getDate(ansicMatcher.group(2)); + timeOfDay = getTime(ansicMatcher.group(3)); + year = getYear(ansicMatcher.group(4)); + } else { + throw new IllegalArgumentException(); + } + } + + // FIXME: Y2038 BUG! + if (year >= 2038) { + year = 2038; + month = Calendar.JANUARY; + date = 1; + } + + Time time = new Time(Time.TIMEZONE_UTC); + time.set(timeOfDay.second, timeOfDay.minute, timeOfDay.hour, date, + month, year); + return time.toMillis(false /* use isDst */); + } + + private static int getDate(String dateString) { + if (dateString.length() == 2) { + return (dateString.charAt(0) - '0') * 10 + + (dateString.charAt(1) - '0'); + } else { + return (dateString.charAt(0) - '0'); + } + } + + /* + * jan = 9 + 0 + 13 = 22 + * feb = 5 + 4 + 1 = 10 + * mar = 12 + 0 + 17 = 29 + * apr = 0 + 15 + 17 = 32 + * may = 12 + 0 + 24 = 36 + * jun = 9 + 20 + 13 = 42 + * jul = 9 + 20 + 11 = 40 + * aug = 0 + 20 + 6 = 26 + * sep = 18 + 4 + 15 = 37 + * oct = 14 + 2 + 19 = 35 + * nov = 13 + 14 + 21 = 48 + * dec = 3 + 4 + 2 = 9 + */ + private static int getMonth(String monthString) { + int hash = Character.toLowerCase(monthString.charAt(0)) + + Character.toLowerCase(monthString.charAt(1)) + + Character.toLowerCase(monthString.charAt(2)) - 3 * 'a'; + switch (hash) { + case 22: + return Calendar.JANUARY; + case 10: + return Calendar.FEBRUARY; + case 29: + return Calendar.MARCH; + case 32: + return Calendar.APRIL; + case 36: + return Calendar.MAY; + case 42: + return Calendar.JUNE; + case 40: + return Calendar.JULY; + case 26: + return Calendar.AUGUST; + case 37: + return Calendar.SEPTEMBER; + case 35: + return Calendar.OCTOBER; + case 48: + return Calendar.NOVEMBER; + case 9: + return Calendar.DECEMBER; + default: + throw new IllegalArgumentException(); + } + } + + private static int getYear(String yearString) { + if (yearString.length() == 2) { + int year = (yearString.charAt(0) - '0') * 10 + + (yearString.charAt(1) - '0'); + if (year >= 70) { + return year + 1900; + } else { + return year + 2000; + } + } else if (yearString.length() == 3) { + // According to RFC 2822, three digit years should be added to 1900. + int year = (yearString.charAt(0) - '0') * 100 + + (yearString.charAt(1) - '0') * 10 + + (yearString.charAt(2) - '0'); + return year + 1900; + } else if (yearString.length() == 4) { + return (yearString.charAt(0) - '0') * 1000 + + (yearString.charAt(1) - '0') * 100 + + (yearString.charAt(2) - '0') * 10 + + (yearString.charAt(3) - '0'); + } else { + return 1970; + } + } + + private static TimeOfDay getTime(String timeString) { + // HH might be H + int i = 0; + int hour = timeString.charAt(i++) - '0'; + if (timeString.charAt(i) != ':') + hour = hour * 10 + (timeString.charAt(i++) - '0'); + // Skip ':' + i++; + + int minute = (timeString.charAt(i++) - '0') * 10 + + (timeString.charAt(i++) - '0'); + // Skip ':' + i++; + + int second = (timeString.charAt(i++) - '0') * 10 + + (timeString.charAt(i++) - '0'); + + return new TimeOfDay(hour, minute, second); + } +} diff --git a/common/java/com/android/common/OperationScheduler.java b/common/java/com/android/common/OperationScheduler.java index 22dfe41..217b244 100644 --- a/common/java/com/android/common/OperationScheduler.java +++ b/common/java/com/android/common/OperationScheduler.java @@ -17,7 +17,6 @@ package com.android.common; import android.content.SharedPreferences; -import android.net.http.AndroidHttpClient; import android.text.format.Time; import java.util.Map; @@ -275,7 +274,7 @@ public class OperationScheduler { return true; } catch (NumberFormatException nfe) { try { - setMoratoriumTimeMillis(AndroidHttpClient.parseDate(retryAfter)); + setMoratoriumTimeMillis(LegacyHttpDateTime.parse(retryAfter)); return true; } catch (IllegalArgumentException iae) { return false; diff --git a/common/tests/Android.mk b/common/tests/Android.mk index 7425552..58ba01b 100644 --- a/common/tests/Android.mk +++ b/common/tests/Android.mk @@ -19,7 +19,7 @@ LOCAL_CERTIFICATE := platform LOCAL_JAVA_LIBRARIES := android.test.runner LOCAL_MODULE_TAGS := tests LOCAL_PACKAGE_NAME := AndroidCommonTests -LOCAL_SDK_VERSION := current +LOCAL_SDK_VERSION := 8 LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_STATIC_JAVA_LIBRARIES := android-common diff --git a/framesequence/jni/Android.mk b/framesequence/jni/Android.mk index e9d0ec5..7353436 100644 --- a/framesequence/jni/Android.mk +++ b/framesequence/jni/Android.mk @@ -19,13 +19,12 @@ include $(CLEAR_VARS) ## Main library -LOCAL_STATIC_LIBRARIES += libgif libwebp-decode +LOCAL_STATIC_LIBRARIES = libgif LOCAL_LDFLAGS := -llog -ljnigraphics LOCAL_C_INCLUDES := \ - external/giflib \ - external/webp/include + external/giflib LOCAL_MODULE := libframesequence LOCAL_SRC_FILES := \ @@ -33,11 +32,16 @@ LOCAL_SRC_FILES := \ FrameSequence.cpp \ FrameSequenceJNI.cpp \ FrameSequence_gif.cpp \ - FrameSequence_webp.cpp \ JNIHelpers.cpp \ Registry.cpp \ Stream.cpp +ifeq ($(FRAMESEQUENCE_INCLUDE_WEBP),true) + LOCAL_C_INCLUDES += external/webp/include + LOCAL_SRC_FILES += FrameSequence_webp.cpp + LOCAL_STATIC_LIBRARIES += libwebp-decode +endif + LOCAL_CFLAGS += -Wall -Wno-unused-parameter -Wno-unused-variable -Wno-overloaded-virtual LOCAL_CFLAGS += -fvisibility=hidden diff --git a/framesequence/samples/RastermillSamples/Android.mk b/framesequence/samples/FrameSequenceSamples/Android.mk index bb8920f..fff4a15 100644 --- a/framesequence/samples/RastermillSamples/Android.mk +++ b/framesequence/samples/FrameSequenceSamples/Android.mk @@ -35,6 +35,6 @@ LOCAL_SDK_VERSION := 19 LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, res) LOCAL_AAPT_FLAGS := --auto-add-overlay -LOCAL_AAPT_FLAGS += --extra-packages com.android.rastermill.samples +LOCAL_AAPT_FLAGS += --extra-packages com.android.framesequence.samples include $(BUILD_PACKAGE) diff --git a/framesequence/samples/RastermillSamples/AndroidManifest.xml b/framesequence/samples/FrameSequenceSamples/AndroidManifest.xml index b554021..d614631 100644 --- a/framesequence/samples/RastermillSamples/AndroidManifest.xml +++ b/framesequence/samples/FrameSequenceSamples/AndroidManifest.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.android.rastermill.samples" + package="com.android.framesequence.samples" android:versionCode="1" android:versionName="1.0" > @@ -20,7 +20,7 @@ <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> - <activity android:name=".AnimatedGifTest" /> + <activity android:name=".FrameSequenceTest" /> </application> </manifest> diff --git a/framesequence/samples/RastermillSamples/build.xml b/framesequence/samples/FrameSequenceSamples/build.xml index 5e55b4e..5e55b4e 100644 --- a/framesequence/samples/RastermillSamples/build.xml +++ b/framesequence/samples/FrameSequenceSamples/build.xml diff --git a/framesequence/samples/RastermillSamples/proguard.flags b/framesequence/samples/FrameSequenceSamples/proguard.flags index 4acde2d..4acde2d 100644 --- a/framesequence/samples/RastermillSamples/proguard.flags +++ b/framesequence/samples/FrameSequenceSamples/proguard.flags diff --git a/framesequence/samples/RastermillSamples/project.properties b/framesequence/samples/FrameSequenceSamples/project.properties index ce39f2d..ce39f2d 100644 --- a/framesequence/samples/RastermillSamples/project.properties +++ b/framesequence/samples/FrameSequenceSamples/project.properties diff --git a/framesequence/samples/RastermillSamples/res/drawable-hdpi/ic_launcher.png b/framesequence/samples/FrameSequenceSamples/res/drawable-hdpi/ic_launcher.png Binary files differindex 96a442e..96a442e 100644 --- a/framesequence/samples/RastermillSamples/res/drawable-hdpi/ic_launcher.png +++ b/framesequence/samples/FrameSequenceSamples/res/drawable-hdpi/ic_launcher.png diff --git a/framesequence/samples/RastermillSamples/res/drawable-mdpi/ic_launcher.png b/framesequence/samples/FrameSequenceSamples/res/drawable-mdpi/ic_launcher.png Binary files differindex 359047d..359047d 100644 --- a/framesequence/samples/RastermillSamples/res/drawable-mdpi/ic_launcher.png +++ b/framesequence/samples/FrameSequenceSamples/res/drawable-mdpi/ic_launcher.png diff --git a/framesequence/samples/RastermillSamples/res/drawable-xhdpi/ic_launcher.png b/framesequence/samples/FrameSequenceSamples/res/drawable-xhdpi/ic_launcher.png Binary files differindex 71c6d76..71c6d76 100644 --- a/framesequence/samples/RastermillSamples/res/drawable-xhdpi/ic_launcher.png +++ b/framesequence/samples/FrameSequenceSamples/res/drawable-xhdpi/ic_launcher.png diff --git a/framesequence/samples/RastermillSamples/res/layout/basic_test_activity.xml b/framesequence/samples/FrameSequenceSamples/res/layout/basic_test_activity.xml index 0b9a2df..0b9a2df 100644 --- a/framesequence/samples/RastermillSamples/res/layout/basic_test_activity.xml +++ b/framesequence/samples/FrameSequenceSamples/res/layout/basic_test_activity.xml diff --git a/framesequence/samples/RastermillSamples/res/raw/animated.gif b/framesequence/samples/FrameSequenceSamples/res/raw/animated_gif.gif Binary files differindex 51baf15..51baf15 100644 --- a/framesequence/samples/RastermillSamples/res/raw/animated.gif +++ b/framesequence/samples/FrameSequenceSamples/res/raw/animated_gif.gif diff --git a/framesequence/samples/FrameSequenceSamples/res/raw/animated_webp.webp b/framesequence/samples/FrameSequenceSamples/res/raw/animated_webp.webp Binary files differnew file mode 100644 index 0000000..25c6a4d --- /dev/null +++ b/framesequence/samples/FrameSequenceSamples/res/raw/animated_webp.webp diff --git a/framesequence/samples/RastermillSamples/res/values/strings.xml b/framesequence/samples/FrameSequenceSamples/res/values/strings.xml index 811c979..dc0962e 100644 --- a/framesequence/samples/RastermillSamples/res/values/strings.xml +++ b/framesequence/samples/FrameSequenceSamples/res/values/strings.xml @@ -3,7 +3,7 @@ <!-- NOTE: all strings should be marked as translatable=false, since this sample app is for testing, and won't be shipped --> - <string name="app_name" translatable="false">Rastermill Samples</string> + <string name="app_name" translatable="false">FrameSequence Samples</string> <string name="action_settings" translatable="false">Settings</string> <string name="start" translatable="false">start</string> diff --git a/framesequence/samples/RastermillSamples/res/values/styles.xml b/framesequence/samples/FrameSequenceSamples/res/values/styles.xml index 737bdc3..737bdc3 100644 --- a/framesequence/samples/RastermillSamples/res/values/styles.xml +++ b/framesequence/samples/FrameSequenceSamples/res/values/styles.xml diff --git a/framesequence/samples/RastermillSamples/src/com/android/rastermill/samples/AnimatedGifTest.java b/framesequence/samples/FrameSequenceSamples/src/com/android/framesequence/samples/FrameSequenceTest.java index 2328975..5587dc6 100644 --- a/framesequence/samples/RastermillSamples/src/com/android/rastermill/samples/AnimatedGifTest.java +++ b/framesequence/samples/FrameSequenceSamples/src/com/android/framesequence/samples/FrameSequenceTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.rastermill.samples; +package com.android.framesequence.samples; import android.app.Activity; import android.graphics.Bitmap; @@ -27,8 +27,9 @@ import android.widget.Toast; import java.io.InputStream; import java.util.HashSet; -public class AnimatedGifTest extends Activity { +public class FrameSequenceTest extends Activity { FrameSequenceDrawable mDrawable; + int mResourceId; // This provider is entirely unnecessary, just here to validate the acquire/release process private class CheckingProvider implements FrameSequenceDrawable.BitmapProvider { @@ -59,6 +60,8 @@ public class AnimatedGifTest extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + mResourceId = getIntent().getIntExtra("resourceId", R.raw.animated_gif); + setContentView(R.layout.basic_test_activity); findViewById(R.id.start).setOnClickListener(new View.OnClickListener() { @Override @@ -91,7 +94,7 @@ public class AnimatedGifTest extends Activity { super.onResume(); ImageView imageView = (ImageView) findViewById(R.id.imageview); - InputStream is = getResources().openRawResource(R.raw.animated); + InputStream is = getResources().openRawResource(mResourceId); FrameSequence fs = FrameSequence.decodeStream(is); mDrawable = new FrameSequenceDrawable(fs, mProvider); @@ -99,7 +102,7 @@ public class AnimatedGifTest extends Activity { @Override public void onFinished(FrameSequenceDrawable drawable) { Toast.makeText(getApplicationContext(), - "THE ANIMATION HAS FINISHED", Toast.LENGTH_SHORT).show(); + "The animation has finished", Toast.LENGTH_SHORT).show(); } }); imageView.setImageDrawable(mDrawable); diff --git a/framesequence/samples/RastermillSamples/src/com/android/rastermill/samples/SamplesList.java b/framesequence/samples/FrameSequenceSamples/src/com/android/framesequence/samples/SamplesList.java index 0447537..c67b83c 100644 --- a/framesequence/samples/RastermillSamples/src/com/android/rastermill/samples/SamplesList.java +++ b/framesequence/samples/FrameSequenceSamples/src/com/android/framesequence/samples/SamplesList.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.rastermill.samples; +package com.android.framesequence.samples; import android.app.ListActivity; import android.content.Intent; @@ -31,17 +31,20 @@ public class SamplesList extends ListActivity { static final String KEY_NAME = "name"; static final String KEY_CLASS = "clazz"; + static final String KEY_RESOURCE = "res"; - static Map<String,?> makeSample(String name, Class<?> activity) { + static Map<String,?> makeSample(String name, Class<?> activity, int resourceId) { Map<String,Object> ret = new HashMap<String,Object>(); ret.put(KEY_NAME, name); ret.put(KEY_CLASS, activity); + ret.put(KEY_RESOURCE, resourceId); return ret; } @SuppressWarnings("serial") static final ArrayList<Map<String,?>> SAMPLES = new ArrayList<Map<String,?>>() {{ - add(makeSample("Animation Test", AnimatedGifTest.class)); + add(makeSample("GIF animation", FrameSequenceTest.class, R.raw.animated_gif)); + add(makeSample("WEBP animation", FrameSequenceTest.class, R.raw.animated_webp)); }}; @Override @@ -55,7 +58,11 @@ public class SamplesList extends ListActivity { @Override protected void onListItemClick(ListView l, View v, int position, long id) { Class<?> clazz = (Class<?>) SAMPLES.get(position).get(KEY_CLASS); - startActivity(new Intent(this, clazz)); + int resourceId = ((Integer) SAMPLES.get(position).get(KEY_RESOURCE)).intValue(); + + Intent intent = new Intent(this, clazz); + intent.putExtra("resourceId", resourceId); + startActivity(intent); } } diff --git a/framesequence/src/android/support/rastermill/FrameSequenceDrawable.java b/framesequence/src/android/support/rastermill/FrameSequenceDrawable.java index cda0cfe..351b8a3 100644 --- a/framesequence/src/android/support/rastermill/FrameSequenceDrawable.java +++ b/framesequence/src/android/support/rastermill/FrameSequenceDrawable.java @@ -270,9 +270,6 @@ public class FrameSequenceDrawable extends Drawable implements Animatable, Runna protected void finalize() throws Throwable { try { mFrameSequenceState.destroy(); - if (!mDestroyed) { - destroy(); - } } finally { super.finalize(); } diff --git a/variablespeed/jni/Android.mk b/variablespeed/jni/Android.mk index 0a7818a..98b9325 100644 --- a/variablespeed/jni/Android.mk +++ b/variablespeed/jni/Android.mk @@ -14,10 +14,9 @@ # LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk # TODO: Remove the .cc extension, just .cpp. -# TODO: Change module name to use underscores not hyphens. -# TODO: Work out if the log and android libs are needed. # Add in extra warnings. LOCAL_CFLAGS += -Wall @@ -36,14 +35,10 @@ LOCAL_SRC_FILES := \ LOCAL_C_INCLUDES := \ $(call include-path-for, wilhelm) \ - external/stlport/stlport \ - bionic \ LOCAL_SHARED_LIBRARIES := \ libOpenSLES \ - libstlport \ - libutils \ - libcutils \ liblog \ +LOCAL_CLANG := true include $(BUILD_SHARED_LIBRARY) diff --git a/variablespeed/jni/ring_buffer.cc b/variablespeed/jni/ring_buffer.cc index fb014d3..61c1490 100644 --- a/variablespeed/jni/ring_buffer.cc +++ b/variablespeed/jni/ring_buffer.cc @@ -16,6 +16,8 @@ #include "ring_buffer.h" +#include <algorithm> + #include "integral_types.h" namespace video_editing { @@ -68,7 +70,7 @@ int RingBuffer::overhead() const { } int64 RingBuffer::GetTail() const { - return *min_element(readers_.begin(), readers_.end()); + return *std::min_element(readers_.begin(), readers_.end()); } int64 RingBuffer::Tell(int reader) const { |