Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
fscz committed Feb 17, 2014
1 parent be92109 commit 4877339
Show file tree
Hide file tree
Showing 9,235 changed files with 2,525,787 additions and 0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
11 changes: 11 additions & 0 deletions AndroidManifest.xml
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.appunite.ffmpeg"
android:versionCode="1"
android:versionName="0.0.1" >

<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="17" />

</manifest>
83 changes: 83 additions & 0 deletions build.xml
@@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="FFmpegLibrary" default="help">

<!-- The local.properties file is created and updated by the 'android' tool.
It contains the path to the SDK. It should *NOT* be checked into
Version Control Systems. -->
<property file="local.properties" />

<!-- The ant.properties file can be created by you. It is only edited by the
'android' tool to add properties to it.
This is the place to change some Ant specific build properties.
Here are some properties you may want to change/update:
source.dir
The name of the source directory. Default is 'src'.
out.dir
The name of the output directory. Default is 'bin'.
For other overridable properties, look at the beginning of the rules
files in the SDK, at tools/ant/build.xml
Properties related to the SDK location or the project target should
be updated using the 'android' tool with the 'update' action.
This file is an integral part of the build system for your
application and should be checked into Version Control Systems.
-->
<property file="ant.properties" />

<!-- The project.properties file is created and updated by the 'android'
tool, as well as ADT.
This contains project specific properties such as project target, and library
dependencies. Lower level build properties are stored in ant.properties
(or in .classpath for Eclipse projects).
This file is an integral part of the build system for your
application and should be checked into Version Control Systems. -->
<loadproperties srcFile="project.properties" />

<!-- quick check on sdk.dir -->
<fail
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
unless="sdk.dir"
/>

<!--
Import per project custom build rules if present at the root of the project.
This is the place to put custom intermediary targets such as:
-pre-build
-pre-compile
-post-compile (This is typically used for code obfuscation.
Compiled code location: ${out.classes.absolute.dir}
If this is not done in place, override ${out.dex.input.absolute.dir})
-post-package
-post-build
-pre-clean
-->
<import file="custom_rules.xml" optional="true" />

<!-- Import the actual build file.
To customize existing targets, there are two options:
- Customize only one target:
- copy/paste the target into this file, *before* the
<import> task.
- customize it to your needs.
- Customize the whole content of build.xml
- copy/paste the content of the rules files (minus the top node)
into this file, replacing the <import> task.
- customize to your needs.
***********************
****** IMPORTANT ******
***********************
In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
in order to avoid having your file be overridden by tools such as "android update project"
-->
<!-- version-tag: 1 -->
<import file="${sdk.dir}/tools/ant/build.xml" />

</project>
Binary file added ic_launcher-web.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 29 additions & 0 deletions jni/Android-tropicssl.mk
@@ -0,0 +1,29 @@
#the tropicssl library
include $(CLEAR_VARS)

LOCAL_CFLAGS := -std=gnu99

SRC_FILES := \
aes.c arc4.c base64.c \
bignum.c certs.c debug.c \
des.c dhm.c havege.c \
md2.c md4.c md5.c \
net.c padlock.c rsa.c \
sha1.c sha2.c sha4.c \
ssl_cli.c ssl_srv.c ssl_tls.c \
timing.c x509parse.c xtea.c \
camellia.c
SRC_DIR=tropicssl/library

#disable thumb
LOCAL_ARM_MODE := arm
LOCAL_CFLAGS := -O3

LOCAL_C_INCLUDES := $(LOCAL_PATH)/tropicssl/include/
LOCAL_ALLOW_UNDEFINED_SYMBOLS=false
LOCAL_MODULE := tropicssl
LOCAL_SRC_FILES := $(addprefix $(SRC_DIR)/,$(SRC_FILES))

LOCAL_LDLIBS := -ldl -llog

include $(BUILD_STATIC_LIBRARY)
165 changes: 165 additions & 0 deletions jni/Android.mk
@@ -0,0 +1,165 @@
# Application.mk
# Copyright (c) 2012 Jacek Marchwicki
#
# 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.

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

#presets - do not tuch this
FEATURE_NEON:=
LIBRARY_PROFILER:=
MODULE_ENCRYPT:=

#settings

# add support for encryption
MODULE_ENCRYPT:=yes


#if armeabi-v7a
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
# add neon optimization code (only armeabi-v7a)
FEATURE_NEON:=yes
else

endif

#if armeabi or armeabi-v7a
ifeq ($(TARGET_ARCH_ABI),$(filter $(TARGET_ARCH_ABI),armeabi armeabi-v7a))
# add profiler (only arm)
#LIBRARY_PROFILER:=yes
endif


include $(CLEAR_VARS)
LOCAL_MODULE := ffmpeg-prebuilt
LOCAL_SRC_FILES := ffmpeg-build/$(TARGET_ARCH_ABI)/libffmpeg.so
LOCAL_EXPORT_C_INCLUDES := ffmpeg-build/$(TARGET_ARCH_ABI)/include
LOCAL_EXPORT_LDLIBS := ffmpeg-build/$(TARGET_ARCH_ABI)/libffmpeg.so
LOCAL_PRELINK_MODULE := true
include $(PREBUILT_SHARED_LIBRARY)

ifdef FEATURE_NEON
include $(CLEAR_VARS)
LOCAL_MODULE := ffmpeg-prebuilt-neon
LOCAL_SRC_FILES := ffmpeg-build/$(TARGET_ARCH_ABI)/libffmpeg-neon.so
LOCAL_EXPORT_C_INCLUDES := ffmpeg-build/$(TARGET_ARCH_ABI)-neon/include
LOCAL_EXPORT_LDLIBS := ffmpeg-build/$(TARGET_ARCH_ABI)/libffmpeg-neon.so
LOCAL_PRELINK_MODULE := true
include $(PREBUILT_SHARED_LIBRARY)
endif


#ffmpeg-jni library
include $(CLEAR_VARS)
LOCAL_ALLOW_UNDEFINED_SYMBOLS=false
LOCAL_MODULE := ffmpeg-jni
LOCAL_SRC_FILES := ffmpeg-jni.c player.c audiodecoder.c queue.c helpers.c jni-protocol.c blend.c convert.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/ffmpeg-build/$(TARGET_ARCH_ABI)/include
LOCAL_SHARED_LIBRARY := ffmpeg-prebuilt

#if enabled profiler add it
ifdef LIBRARY_PROFILER
LOCAL_CFLAGS += -pg -g -DPROFILER
LOCAL_STATIC_LIBRARIES += andprof
LOCAL_REQUIRED_MODULES += andprof
endif

LOCAL_CFLAGS += -DLIBYUV
LOCAL_C_INCLUDES += $(LOCAL_PATH)/libyuv/include
LOCAL_CPP_INCLUDES += $(LOCAL_PATH)/libyuv/include
LOCAL_STATIC_LIBRARIES += libyuv_static
LOCAL_REQUIRED_MODULES += libyuv_static

ifdef MODULE_ENCRYPT
LOCAL_CFLAGS += -DMODULE_ENCRYPT
LOCAL_SRC_FILES += aes-protocol.c
LOCAL_C_INCLUDES += $(LOCAL_PATH)/tropicssl/include
LOCAL_STATIC_LIBRARIES += tropicssl
LOCAL_REQUIRED_MODULES += tropicssl
endif

LOCAL_LDLIBS += -landroid
LOCAL_LDLIBS += -llog -ljnigraphics -lz -lm -g $(LOCAL_PATH)/ffmpeg-build/$(TARGET_ARCH_ABI)/libffmpeg.so
include $(BUILD_SHARED_LIBRARY)




ifdef FEATURE_NEON
include $(CLEAR_VARS)
LOCAL_ALLOW_UNDEFINED_SYMBOLS=false
LOCAL_MODULE := ffmpeg-jni-neon
LOCAL_SRC_FILES := ffmpeg-jni.c player.c audiodecoder.c queue.c helpers.c jni-protocol.c blend.c convert.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/ffmpeg-build/$(TARGET_ARCH_ABI)/include
LOCAL_SHARED_LIBRARY := ffmpeg-prebuilt-neon

#if enabled profiler add it
ifdef LIBRARY_PROFILER
LOCAL_CFLAGS += -pg -g -DPROFILER
LOCAL_STATIC_LIBRARIES += andprof
LOCAL_REQUIRED_MODULES += andprof
endif

LOCAL_CFLAGS += -DLIBYUV
LOCAL_C_INCLUDES += $(LOCAL_PATH)/libyuv/include
LOCAL_CPP_INCLUDES += $(LOCAL_PATH)/libyuv/include
LOCAL_STATIC_LIBRARIES += libyuv_static
LOCAL_REQUIRED_MODULES += libyuv_static

ifdef MODULE_ENCRYPT
LOCAL_CFLAGS += -DMODULE_ENCRYPT
LOCAL_SRC_FILES += aes-protocol.c
LOCAL_C_INCLUDES += $(LOCAL_PATH)/tropicssl/include
LOCAL_STATIC_LIBRARIES += tropicssl
LOCAL_REQUIRED_MODULES += tropicssl
endif

LOCAL_LDLIBS += -landroid
LOCAL_LDLIBS += -llog -ljnigraphics -lz -lm -g $(LOCAL_PATH)/ffmpeg-build/$(TARGET_ARCH_ABI)/libffmpeg-neon.so
include $(BUILD_SHARED_LIBRARY)
endif


#nativetester-jni library
include $(CLEAR_VARS)

ifdef FEATURE_VFPV3
LOCAL_CFLAGS += -DFEATURE_VFPV3
endif

ifdef FEATURE_NEON
LOCAL_CFLAGS += -DFEATURE_NEON
endif

LOCAL_ALLOW_UNDEFINED_SYMBOLS=false
LOCAL_MODULE := nativetester-jni
LOCAL_SRC_FILES := nativetester-jni.c nativetester.c
LOCAL_STATIC_LIBRARIES := cpufeatures
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)


#includes
ifdef MODULE_ENCRYPT
include $(LOCAL_PATH)/Android-tropicssl.mk
endif

ifdef LIBRARY_PROFILER
include $(LOCAL_PATH)/android-ndk-profiler-3.1/android-ndk-profiler.mk
endif

include $(call all-makefiles-under,$(LOCAL_PATH))
$(call import-module,cpufeatures)
25 changes: 25 additions & 0 deletions jni/Application.mk
@@ -0,0 +1,25 @@
# Application.mk
# Copyright (c) 2012 Jacek Marchwicki
#
# 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.

# The ARMv7 is significanly faster due to the use of the hardware FPU
#APP_ABI := all
#APP_ABI := armeabi-v7a armeabi x86
#APP_ABI := x86
#APP_ABI := mips
APP_ABI := armeabi-v7a
APP_PLATFORM := android-9
#APP_OPTIM := debug

APP_STL := gnustl_static

0 comments on commit 4877339

Please sign in to comment.