Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_25606643
ijkplayer
提交
fc70895c
I
ijkplayer
项目概览
qq_25606643
/
ijkplayer
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
ijkplayer
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fc70895c
编写于
10月 21, 2013
作者:
B
bbcallen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ios: use xcrun instead of gcc to support iOS7 sdk
上级
377e10a9
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
173 addition
and
135 deletion
+173
-135
NEWS.md
NEWS.md
+1
-0
ios/compile-ffmpeg.sh
ios/compile-ffmpeg.sh
+71
-24
ios/tools/do-compile-ffmpeg.sh
ios/tools/do-compile-ffmpeg.sh
+101
-111
未找到文件。
NEWS.md
浏览文件 @
fc70895c
Changes between 0.0.7 and 0.0.6:
--------------------------------
-
ios: support build with SDK7
Changes between 0.0.6 and 0.0.5:
--------------------------------
...
...
ios/compile-ffmpeg.sh
浏览文件 @
fc70895c
#! /bin/sh
#----------
# modify for your build tool
# export HAVE_IOS7_SDK=1 to prefer ios sdk7
FF_ALL_ARCHS_IOS6_SDK
=
"armv7 armv7s i386"
FF_ALL_ARCHS_IOS7_SDK
=
"armv7 armv7s arm64 i386"
FF_ALL_ARCHS
=
$FF_ALL_ARCHS_IOS6_SDK
if
[
"
$HAVE_IOS7_SDK
"
==
"1"
]
;
then
FF_ALL_ARCHS
=
$FF_ALL_ARCHS_IOS7_SDK
fi
#----------
UNI_BUILD_ROOT
=
`
pwd
`
UNI_TMP
=
"
$UNI_BUILD_ROOT
/tmp"
UNI_TMP_LLVM_VER_FILE
=
"
$UNI_TMP
/llvm.ver.txt"
FF_TARGET
=
$1
set
-e
#----------
FF_LIBS
=
"libavcodec libavformat libavutil libswscale libswresample"
#----------
echo_archs
()
{
echo
"===================="
echo
"[*] check xcode version"
echo
"===================="
echo
"HAVE_IOS7_SDK =
$HAVE_IOS7_SDK
"
echo
"FF_ALL_ARCHS =
$FF_ALL_ARCHS
"
}
do_lipo
()
{
LIB_FILE
=
$1
lipo
-create
\
-arch
armv7
$UNI_BUILD_ROOT
/build/ffmpeg-armv7/output/lib/
$LIB_FILE
\
-arch
armv7
$UNI_BUILD_ROOT
/build/ffmpeg-armv7s/output/lib/
$LIB_FILE
\
-arch
i386
$UNI_BUILD_ROOT
/build/ffmpeg-i386/output/lib/
$LIB_FILE
\
-output
$UNI_BUILD_ROOT
/build/universal/lib/
$LIB_FILE
}
LIPO_FLAGS
=
for
ARCH
in
$FF_ALL_ARCHS
do
LIPO_FLAGS
=
"
$LIPO_FLAGS
$UNI_BUILD_ROOT
/build/ffmpeg-
$ARCH
/output/lib/
$LIB_FILE
"
done
if
[
"
$FF_TARGET
"
==
"armv7"
-o
"
$FF_TARGET
"
==
"armv7s"
-o
"
$FF_TARGET
"
==
"i386"
]
;
then
sh tools/do-compile-ffmpeg.sh
$FF_TARGET
elif
[
"
$FF_TARGET
"
==
"all"
]
;
then
sh tools/do-compile-ffmpeg.sh armv7
sh tools/do-compile-ffmpeg.sh armv7s
sh tools/do-compile-ffmpeg.sh i386
lipo
-create
$LIPO_FLAGS
-output
$UNI_BUILD_ROOT
/build/universal/lib/
$LIB_FILE
lipo
-info
$UNI_BUILD_ROOT
/build/universal/lib/
$LIB_FILE
}
do_lipo_all
()
{
mkdir
-p
$UNI_BUILD_ROOT
/build/universal/lib
do_lipo libavcodec.a
do_lipo libavformat.a
do
_lipo libavutil.a
do_lipo libswresample.a
do
_lipo libswscale.a
echo
"lipo archs:
$FF_ALL_ARCHS
"
for
FF_LIB
in
$FF_LIBS
do
do_lipo
"
$FF_LIB
.a"
;
do
ne
cp
-R
$UNI_BUILD_ROOT
/build/ffmpeg-armv7/output/include
$UNI_BUILD_ROOT
/build/universal/
}
#----------
if
[
"
$FF_TARGET
"
=
"armv7"
-o
"
$FF_TARGET
"
=
"armv7s"
-o
"
$FF_TARGET
"
=
"arm64"
]
;
then
echo_archs
sh tools/do-compile-ffmpeg.sh
$FF_TARGET
elif
[
"
$FF_TARGET
"
=
"i386"
-o
"
$FF_TARGET
"
=
"x86_64"
]
;
then
echo_archs
sh tools/do-compile-ffmpeg.sh
$FF_TARGET
elif
[
"
$FF_TARGET
"
=
"lipo"
]
;
then
echo_archs
do_lipo_all
elif
[
"
$FF_TARGET
"
=
"all"
]
;
then
echo_archs
for
ARCH
in
$FF_ALL_ARCHS
do
sh tools/do-compile-ffmpeg.sh
$ARCH
done
do_lipo_all
elif
[
"
$FF_TARGET
"
==
"check"
]
;
then
echo_archs
elif
[
"
$FF_TARGET
"
==
"clean"
]
;
then
cd
ffmpeg-armv7
&&
git clean
-xdf
&&
cd
-
cd
ffmpeg-armv7s
&&
git clean
-xdf
&&
cd
-
cd
ffmpeg-i386
&&
git clean
-xdf
&&
cd
-
echo_archs
for
ARCH
in
$FF_ALL_ARCHS
do
cd
ffmpeg-
$ARCH
&&
git clean
-xdf
&&
cd
-
done
else
echo
"You must specific target 'all, clean, armv7, armv7s, i386, ...'.
\n
"
echo
"Usage:"
echo
" compile-ffmpeg.sh armv7|armv7s|arm64|i386|x86_64"
echo
" compile-ffmpeg.sh lipo"
echo
" compile-ffmpeg.sh all"
echo
" compile-ffmpeg.sh clean"
echo
" compile-ffmpeg.sh check"
exit
1
fi
ios/tools/do-compile-ffmpeg.sh
浏览文件 @
fc70895c
...
...
@@ -4,160 +4,150 @@
# https://github.com/kolyvan/kxmovie
# https://github.com/yixia/FFmpeg-Android
# http://git.videolan.org/?p=vlc-ports/android.git;a=summary
# https://github.com/kewlbear/FFmpeg-iOS-build-script/
#--------------------
echo
"===================="
echo
"[*] check
env
"
echo
"[*] check
host
"
echo
"===================="
set
-e
#--------------------
# include
FF_TARGET
=
$1
if
[
-z
"
$FF_TARGET
"
]
;
then
echo
"You must specific target 'armv7, armv7s, ...'.
\n
"
#--------------------
# common defines
FF_ARCH
=
$1
if
[
-z
"
$FF_ARCH
"
]
;
then
echo
"You must specific an architecture 'armv7, armv7s, arm64, i386, x86_64, ...'.
\n
"
exit
1
fi
XCODE_ROOT
=
"/Applications/Xcode4.6.3.app/Contents/Developer/Platforms"
FF_BUILD_ROOT
=
`
pwd
`
FF_TAGET_OS
=
"darwin"
FF_CFG_FLAGS
=
FF_EXTRA_CFLAGS
=
FF_EXTRA_LDFLAGS
=
FF_PLATFORM_NAME
=
FF_SDK_NAME
=
# ffmpeg build params
export
COMMON_FF_CFG_FLAGS
=
source
$FF_BUILD_ROOT
/../tools/ffmpeg-common-profiles.sh
FFMPEG_CFG_FLAGS
=
FFMPEG_CFG_FLAGS
=
"
$FFMPEG_CFG_FLAGS
--arch=
$FF_ARCH
"
FFMPEG_CFG_FLAGS
=
"
$FFMPEG_CFG_FLAGS
--target-os=
$FF_TAGET_OS
"
FFMPEG_CFG_FLAGS
=
"
$FFMPEG_CFG_FLAGS
--enable-static"
FFMPEG_CFG_FLAGS
=
"
$FFMPEG_CFG_FLAGS
--disable-shared"
FFMPEG_CFG_FLAGS
=
"
$FFMPEG_CFG_FLAGS
$COMMON_FF_CFG_FLAGS
"
FFMPEG_EXTRA_CFLAGS
=
# i386, x86_64
FFMPEG_CFG_FLAGS_SIMULATOR
=
FFMPEG_CFG_FLAGS_SIMULATOR
=
"
$FFMPEG_CFG_FLAGS_SIMULATOR
--disable-asm"
FFMPEG_CFG_FLAGS_SIMULATOR
=
"
$FFMPEG_CFG_FLAGS_SIMULATOR
--disable-mmx"
FFMPEG_CFG_FLAGS_SIMULATOR
=
"
$FFMPEG_CFG_FLAGS_SIMULATOR
--assert-level=2"
# armv7, armv7s, arm64
FFMPEG_CFG_FLAGS_ARM
=
FFMPEG_CFG_FLAGS_ARM
=
"
$FFMPEG_CFG_FLAGS_ARM
--enable-pic"
FFMPEG_CFG_FLAGS_ARM
=
"
$FFMPEG_CFG_FLAGS_ARM
--enable-neon"
FFMPEG_CFG_FLAGS_ARM
=
"
$FFMPEG_CFG_FLAGS_ARM
--enable-optimizations"
FFMPEG_CFG_FLAGS_ARM
=
"
$FFMPEG_CFG_FLAGS_ARM
--disable-debug"
FFMPEG_CFG_FLAGS_ARM
=
"
$FFMPEG_CFG_FLAGS_ARM
--enable-small"
echo
"build_root:
$FF_BUILD_ROOT
"
#--------------------
echo
"===================="
echo
"[*] c
onfig target
"
echo
"[*] c
heck gas-preprocessor
"
echo
"===================="
#----- common begin -----
FF_TOOLS_ROOT
=
"
$FF_BUILD_ROOT
/../extra"
# FIXME: REMOVE ME
GAS_PREP_PATH
=
"
$FF_BUILD_ROOT
/../extra/gas-preprocessor/gas-preprocessor.pl"
IPHONE_IOS_FF_PLATFORM_NAME
=
"iPhoneOS.platform"
IPHONE_SIM_FF_PLATFORM_NAME
=
"iPhoneSimulator.platform"
IPHONE_IOS_FF_SDK_NAME
=
"iPhoneOS6.1.sdk"
IPHONE_SIM_FF_SDK_NAME
=
"iPhoneSimulator6.1.sdk"
I386_FF_CFG_FLAGS
=
I386_FF_CFG_FLAGS
=
"
$I386_FF_CFG_FLAGS
--arch=i386"
I386_FF_CFG_FLAGS
=
"
$I386_FF_CFG_FLAGS
--cpu=i386"
I386_FF_CFG_FLAGS
=
"
$I386_FF_CFG_FLAGS
--disable-asm"
I386_FF_CFG_FLAGS
=
"
$I386_FF_CFG_FLAGS
--disable-mmx"
I386_FF_CFG_FLAGS
=
"
$I386_FF_CFG_FLAGS
--assert-level=2"
ARMV7_FF_CFG_FLAGS
=
ARMV7_FF_CFG_FLAGS
=
"
$ARMV7_FF_CFG_FLAGS
--arch=arm"
ARMV7_FF_CFG_FLAGS
=
"
$ARMV7_FF_CFG_FLAGS
--cpu=cortex-a8"
ARMV7_FF_CFG_FLAGS
=
"
$ARMV7_FF_CFG_FLAGS
--enable-pic"
ARMV7_FF_CFG_FLAGS
=
"
$ARMV7_FF_CFG_FLAGS
--enable-neon"
ARMV7_FF_CFG_FLAGS
=
"
$ARMV7_FF_CFG_FLAGS
--enable-optimizations"
ARMV7_FF_CFG_FLAGS
=
"
$ARMV7_FF_CFG_FLAGS
--disable-debug"
ARMV7_FF_CFG_FLAGS
=
"
$ARMV7_FF_CFG_FLAGS
--enable-small"
ARMV7_FF_EXTRA_CFLAGS
=
"-mfpu=neon -mfloat-abi=softfp -mvectorize-with-neon-quad"
ARMV7_FF_EXTRA_LDFLAGS
=
"-Wl"
export
COMMON_FF_CFG_FLAGS
=
source
$FF_BUILD_ROOT
/../tools/ffmpeg-common-profiles.sh
#----- common end -----
if
[
$FF_TARGET
==
"armv7"
]
;
then
echo
"armv7"
FF_BUILD_NAME
=
"ffmpeg-armv7"
FF_PLATFORM_NAME
=
"
$IPHONE_IOS_FF_PLATFORM_NAME
"
FF_SDK_NAME
=
"
$IPHONE_IOS_FF_SDK_NAME
"
export
PATH
=
"
$FF_TOOLS_ROOT
/gas-preprocessor:
$PATH
"
FF_CFG_FLAGS
=
"
$FF_CFG_FLAGS
$ARMV7_FF_CFG_FLAGS
"
echo
"gasp:
$FF_TOOLS_ROOT
/gas-preprocessor/gas-preprocessor.pl
"
FF_EXTRA_CFLAGS
=
"
$FF_EXTRA_CFLAGS
$ARMV7_FF_EXTRA_CFLAGS
-arch armv7"
FF_EXTRA_LDFLAGS
=
"
$FF_EXTRA_LDFLAGS
$ARMV7_FF_EXTRA_LDFLAGS
-arch armv7"
elif
[
$FF_TARGET
==
"armv7s"
]
;
then
echo
"armv7s"
FF_BUILD_NAME
=
"ffmpeg-armv7s"
FF_PLATFORM_NAME
=
"
$IPHONE_IOS_FF_PLATFORM_NAME
"
FF_SDK_NAME
=
"
$IPHONE_IOS_FF_SDK_NAME
"
#--------------------
echo
"===================="
echo
"[*] config arch
$FF_ARCH
"
echo
"===================="
FF_CFG_FLAGS
=
"
$FF_CFG_FLAGS
$ARMV7_FF_CFG_FLAGS
"
FF_BUILD_NAME
=
"unknown"
FF_XCRUN_PLATFORM
=
"iPhoneOS"
FF_XCRUN_SIMULATOR
=
FF_EXTRA_CFLAGS
=
"
$FF_EXTRA_CFLAGS
$ARMV7_FF_EXTRA_CFLAGS
-arch armv7s"
FF_EXTRA_LDFLAGS
=
"
$FF_EXTRA_LDFLAGS
$ARMV7_FF_EXTRA_LDFLAGS
-arch armv7s"
elif
[
$FF_TARGET
==
"i386"
]
;
then
echo
"i386"
if
[
"
$FF_ARCH
"
==
"i386"
]
;
then
FF_BUILD_NAME
=
"ffmpeg-i386"
FF_PLATFORM_NAME
=
"
$IPHONE_SIM_FF_PLATFORM_NAME
"
FF_SDK_NAME
=
"
$IPHONE_SIM_FF_SDK_NAME
"
FF_CFG_FLAGS
=
"
$FF_CFG_FLAGS
$I386_FF_CFG_FLAGS
"
FF_EXTRA_CFLAGS
=
"
$FF_EXTRA_CFLAGS
-arch i386"
FF_EXTRA_LDFLAGS
=
"
$FF_EXTRA_LDFLAGS
-arch i386"
FF_XCRUN_PLATFORM
=
"iPhoneSimulator"
FF_XCRUN_SIMULATOR
=
"-mios-simulator-version-min=5.0"
FFMPEG_CFG_FLAGS
=
"
$FFMPEG_CFG_FLAGS
$FFMPEG_CFG_FLAGS_SIMULATOR
"
elif
[
"
$FF_ARCH
"
==
"x86_64"
]
;
then
FF_BUILD_NAME
=
"ffmpeg-x86_64"
FF_XCRUN_PLATFORM
=
"iPhoneSimulator"
FF_XCRUN_SIMULATOR
=
"-mios-simulator-version-min=7.0"
FFMPEG_CFG_FLAGS
=
"
$FFMPEG_CFG_FLAGS
$FFMPEG_CFG_FLAGS_SIMULATOR
"
elif
[
"
$FF_ARCH
"
==
"armv7"
]
;
then
FF_BUILD_NAME
=
"ffmpeg-armv7"
FFMPEG_CFG_FLAGS
=
"
$FFMPEG_CFG_FLAGS
$FFMPEG_CFG_FLAGS_ARM
"
# FFMPEG_CFG_CPU="--cpu=cortex-a8"
elif
[
"
$FF_ARCH
"
==
"armv7s"
]
;
then
FF_BUILD_NAME
=
"ffmpeg-armv7s"
FFMPEG_CFG_CPU
=
"--cpu=swift"
FFMPEG_CFG_FLAGS
=
"
$FFMPEG_CFG_FLAGS
$FFMPEG_CFG_FLAGS_ARM
"
elif
[
"
$FF_ARCH
"
==
"arm64"
]
;
then
FF_BUILD_NAME
=
"ffmpeg-arm64"
FFMPEG_CFG_FLAGS
=
"
$FFMPEG_CFG_FLAGS
$FFMPEG_CFG_FLAGS_ARM
"
else
echo
"unknown
target
$FF_TARGET
"
;
echo
"unknown
architecture
$FF_ARCH
"
;
exit
1
fi
echo
"build_name:
$FF_BUILD_NAME
"
echo
"platform:
$FF_XCRUN_PLATFORM
"
echo
"simulator:
$FF_XCRUN_SIMULATOR
"
#--------------------
echo
"===================="
echo
"[*] make ios toolchain"
echo
"[*] make ios toolchain
$FF_BUILD_NAME
"
echo
"===================="
FF_SOURCE
=
"
$FF_BUILD_ROOT
/
$FF_BUILD_NAME
"
FF_PREFIX
=
"
$FF_BUILD_ROOT
/build/
$FF_BUILD_NAME
/output"
FF_
BUILD_
SOURCE
=
"
$FF_BUILD_ROOT
/
$FF_BUILD_NAME
"
FF_
BUILD_
PREFIX
=
"
$FF_BUILD_ROOT
/build/
$FF_BUILD_NAME
/output"
FF_PLATFORM_ROOT
=
"
$XCODE_ROOT
/
$FF_PLATFORM_NAME
"
FF_SDK_ROOT
=
"
$FF_PLATFORM_ROOT
/Developer/SDKs/
$FF_SDK_NAME
"
FF_LIB_ROOT
=
"
$FF_PLATFORM_ROOT
/Developer/SDKs/
$FF_SDK_NAME
/usr/lib/system"
FFMPEG_CFG_FLAGS
=
"
$FFMPEG_CFG_FLAGS
--prefix=
$FF_BUILD_PREFIX
"
FF_CC_FLAG
=
"
$FF_PLATFORM_ROOT
/Developer/usr/bin/gcc"
# FIXME: REMOVE ME
FF_AS_FLAG
=
"
$GAS_PREP_PATH
$FF_CC_FLAG
"
echo
"SDK:
$FF_SDK_ROOT
"
mkdir
-p
$FF_BUILD_PREFIX
echo
"build_source:
$FF_BUILD_SOURCE
"
echo
"build_prefix:
$FF_BUILD_PREFIX
"
export
PATH
=
"
$FF_TOOLS_ROOT
/gas-preprocessor:
$PATH
"
FF_CFG_FLAGS
=
"
$FF_CFG_FLAGS
--cc=
$FF_CC_FLAG
"
# FIXME: REMOVE ME
# FF_CFG_FLAGS="$FF_CFG_FLAGS --as=\"$FF_AS_FLAG\""
FF_CFG_FLAGS
=
"
$FF_CFG_FLAGS
--sysroot=
$FF_SDK_ROOT
"
FF_EXTRA_LDFLAGS
=
"
$FF_EXTRA_LDFLAGS
--isysroot=
$FF_SDK_ROOT
-L
$FF_LIB_ROOT
"
mkdir
-p
$FF_PREFIX
#--------------------
echo
"
\n
--------------------"
echo
"[*] c
heck ffmpeg env
"
echo
"[*] c
onfigurate ffmpeg
"
echo
"--------------------"
FF_CFG_FLAGS
=
"
$FF_CFG_FLAGS
$COMMON_FF_CFG_FLAGS
"
FF_CFG_FLAGS
=
"
$FF_CFG_FLAGS
--prefix=
$FF_PREFIX
"
FF_CFG_FLAGS
=
"
$FF_CFG_FLAGS
--target-os=
$FF_TAGET_OS
"
FF_CFG_FLAGS
=
"
$FF_CFG_FLAGS
--enable-static"
FF_CFG_FLAGS
=
"
$FF_CFG_FLAGS
--disable-shared"
FF_XCRUN_SDK
=
`
echo
$FF_XCRUN_PLATFORM
|
tr
'[:upper:]'
'[:lower:]'
`
FF_XCRUN_CC
=
"xcrun -sdk
$FF_XCRUN_SDK
clang"
FFMPEG_CFG_FLAGS
=
"
$FFMPEG_CFG_FLAGS
$FFMPEG_CFG_CPU
"
#--------------------
echo
"
\n
--------------------"
echo
"[*] configurate ffmpeg"
echo
"--------------------"
cd
$FF_SOURCE
FFMPEG_CFLAGS
=
FFMPEG_CFLAGS
=
"
$FFMPEG_CFLAGS
-arch
$FF_ARCH
"
FFMPEG_CFLAGS
=
"
$FFMPEG_CFLAGS
$FF_XCRUN_SIMULATOR
"
FFMPEG_CFLAGS
=
"
$FFMPEG_CFLAGS
$FFMPEG_EXTRA_CFLAGS
"
FFMPEG_CXXFLAGS
=
"
$FFMPEG_CFLAGS
"
FFMPEG_LDFLAGS
=
"
$FFMPEG_CFLAGS
"
cd
$FF_BUILD_SOURCE
if
[
-f
"./config.h"
]
;
then
echo
'reuse configure'
else
echo
"config:
$FF_CFG_FLAGS
"
./configure
$FF_CFG_FLAGS
\
--extra-cflags
=
"
$FF_CFLAGS
$FF_EXTRA_CFLAGS
"
\
--extra-ldflags
=
"
$FF_EXTRA_LDFLAGS
"
echo
"config:
$FFMPEG_CFG_FLAGS
$FF_XCRUN_CC
"
./configure
\
$FFMPEG_CFG_FLAGS
\
--cc
=
"
$FF_XCRUN_CC
"
\
$FFMPEG_CFG_CPU
\
--extra-cflags
=
"
$FFMPEG_CFLAGS
"
\
--extra-cxxflags
=
"
$FFMPEG_CXXFLAGS
"
\
--extra-ldflags
=
"
$FFMPEG_LDFLAGS
"
make clean
fi
...
...
@@ -165,6 +155,6 @@ fi
echo
"
\n
--------------------"
echo
"[*] compile ffmpeg"
echo
"--------------------"
cp
config.
*
$FF_PREFIX
make
$FF_MAKEFLAGS
cp
config.
*
$FF_
BUILD_
PREFIX
make
-j3
make
install
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录