Skip to content
Snippets Groups Projects
Commit 59b4e07d authored by Boris Grozev's avatar Boris Grozev
Browse files

Adds a 'libvpx' target used to build the (soon to be added) jnvpx library....

Adds a 'libvpx' target used to build the (soon to be added) jnvpx library. Reverts the instruction for building the jnffmpeg library, since libvpx won't have to be compiled into it anymore.
parent 5c24d49d
No related branches found
No related tags found
No related merge requests found
......@@ -261,7 +261,6 @@
<fail message="ffmpeg repository not set!" unless="ffmpeg" />
<fail message="x264 repository not set!" unless="x264" />
<fail message="lame repository not set!" unless="lame" />
<fail message="libvpx repository not set!" unless="libvpx" />
<cc outtype="shared" name="gcc" outfile="${native_install_dir}/jnffmpeg" objdir="${obj}">
<!-- common compiler flags -->
......@@ -279,7 +278,6 @@
<linkerarg value="-L${ffmpeg}/libavformat" />
<linkerarg value="-L${ffmpeg}/libavutil" />
<linkerarg value="-L${ffmpeg}/libswscale" />
<linkerarg value="-L${libvpx}" />
<!--
Depending on the way that lame is built, libmp3lame.a may be in
libmp3lame/ or libmp3lame/.libs/.
......@@ -299,7 +297,6 @@
<linkerarg value="-lswscale" location="end" />
<linkerarg value="-lmp3lame" location="end" />
<linkerarg value="-lx264" location="end" />
<linkerarg value="-lvpx" location="end" />
<!-- Linux specific flags -->
<compilerarg value="-I${system.JAVA_HOME}/include" if="is.running.linux" />
......@@ -658,6 +655,75 @@
</cc>
</target>
<target name="libvpx" description="Build the libvpx shared library" depends="init-native">
<fail message="libvpx repository not set!" unless="libvpx"/>
<cc outtype="shared" name="gcc"
objdir="${obj}"
outfile="${native_install_dir}/jnvpx">
<!-- common compiler flags -->
<compilerarg value="-shared" />
<compilerarg value="-Wall" />
<compilerarg value="-fPIC"/>
<compilerarg value="-O2" />
<compilerarg value="-I${libvpx}" unless="is.running.linux"/>
<compilerarg value="-I/usr/include/vpx" if="is.running.linux"/>
<compilerarg value="-D_JNI_IMPLEMENTATION_" />
<linkerarg value="-L${libvpx}" />
<!-- Linux specific flags -->
<compilerarg value="-m32" if="cross_32" unless="is.running.macos" />
<compilerarg value="-m64" if="cross_64" unless="is.running.macos" />
<compilerarg value="-I${system.JAVA_HOME}/include" if="is.running.linux" />
<compilerarg value="-I${system.JAVA_HOME}/include/linux" if="is.running.linux" />
<linkerarg value="-m32" if="cross_32" unless="is.running.macos" />
<linkerarg value="-m64" if="cross_64" unless="is.running.macos" />
<!-- static libraries MUST be at the end otherwise
they will not be added to shared library
-->
<!--<linkerarg value="-Wl,-Bstatic" location="end" if="is.running.linux" />-->
<linkerarg value="-lvpx" location="end" if="is.running.linux" />
<!--<linkerarg value="-Wl,-Bdynamic" location="end" if="is.running.linux" />-->
<!-- Mac OS X specific flags -->
<compilerarg value="-mmacosx-version-min=10.5" if="is.running.macos"/>
<compilerarg value="-arch" if="is.running.macos" />
<compilerarg value="x86_64" if="is.running.macos" />
<compilerarg value="-arch" if="is.running.macos" />
<compilerarg value="i386" if="is.running.macos" />
<compilerarg value="-arch" if="is.running.macos" />
<compilerarg value="ppc" if="is.running.macos" />
<compilerarg value="-I/System/Library/Frameworks/JavaVM.framework/Headers" if="is.running.macos" />
<linkerarg value="-o" location="end" if="is.running.macos" />
<linkerarg value="libjnvpx.jnilib" location="end" if="is.running.macos" />
<linkerarg value="-dynamiclib" if="is.running.macos" />
<linkerarg value="-arch" if="is.running.macos" />
<linkerarg value="x86_64" if="is.running.macos" />
<linkerarg value="-arch" if="is.running.macos" />
<linkerarg value="i386" if="is.running.macos" />
<linkerarg value="-arch" if="is.running.macos" />
<linkerarg value="ppc" if="is.running.macos" />
<linkerarg value="-lvpx" location="end" if="is.running.macos" />
<!-- Windows specific flags -->
<compilerarg value="-I${system.JAVA_HOME}/include" if="is.running.windows" />
<compilerarg value="-I${system.JAVA_HOME}/include/win32" if="is.running.windows" />
<linkerarg value="-ojnvpx.dll" if="is.running.windows" />
<linkerarg value="-Wl,--no-undefined" if="is.running.windows" />
<linkerarg value="-Wl,--kill-at" if="is.running.windows" />
<linkerarg value="-Wl,-Bstatic" location="end" if="is.running.windows" />
<linkerarg value="-lvpx" location="end" if="is.running.windows" />
<fileset dir="${src}/native/vpx" includes="*.c"/>
</cc>
</target>
<!-- compile jnvideo4linux2 library -->
<target name="video4linux2" description="Build jnvideo4linux2 shared library" if="is.running.linux"
depends="init-native">
......
......@@ -51,18 +51,7 @@ NDK_BASE=/../android-ndk-r8c
--sysroot="$NDK_BASE/platforms/android-9/arch-arm/" \
--cross-prefix=$NDK_BASE/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi-
3. libvpx
./configure --disable-unit-tests --disable-examples --disable-docs \
--enable-pic --enable-error-concealment
- If the version used supports vp9, it should be disabled with --disable-vp9,
since we don't need it at the moment.
- Max OS X
Add the following to the configure line:
--target=universal-darwin9-gcc
4. ffmpeg
3. ffmpeg
Apply the following to libavcodec/Makefile
-OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o mpegaudiodecheader.o \
......@@ -78,9 +67,8 @@ Apply the following to libavcodec/Makefile
--enable-libx264 --enable-gpl \
--enable-decoder=h264 --enable-encoder=libx264 --enable-parser=h264 \
--enable-filter=buffer --enable-filter=hflip --enable-filter=scale --enable-filter=nullsink \
--enable-libvpx --enable-encoder=libvpx --enable-decoder=vp8 \
--extra-cflags="-I$MP3LAME_HOME/include -I$X264_HOME -I$LIBVPX_HOME" \
--extra-ldflags="-L$MP3LAME_HOME/libmp3lame -L$MP3LAME_HOME/libmp3lame/.libs -L$X264_HOME -L$LIBVPX_HOME"
--extra-cflags="-I$MP3LAME_HOME/include -I$X264_HOME" \
--extra-ldflags="-L$MP3LAME_HOME/libmp3lame -L$MP3LAME_HOME/libmp3lame/.libs -L$X264_HOME"
- Windows
......@@ -113,7 +101,7 @@ Add the following to the configure line:
Define the environment variable JAVA_HOME so that the JNI headers can be found.
Change the current directory to libjitsi/ and run "ant ffmpeg" passing it
values for the ffmpeg, lame, x264 and libvpx properties which specify the paths
values for the ffmpeg, lame and x264 properties which specify the paths
to the homes of the development trees of the respective libraries.
For creating universal libraries for Mac OS X see the instructions in src/native/build.xml
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment