Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
superdump authored and sancane committed Jun 8, 2015
1 parent 16a054d commit 635b497
Show file tree
Hide file tree
Showing 63 changed files with 13,789 additions and 0 deletions.
Empty file added .gitmodules
Empty file.
22 changes: 22 additions & 0 deletions COPYING
@@ -0,0 +1,22 @@
Copyright (c) 2014, Ericsson AB. All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
OF SUCH DAMAGE.
12 changes: 12 additions & 0 deletions Makefile.am
@@ -0,0 +1,12 @@
SUBDIRS = sys gst ext

ACLOCAL_AMFLAGS = -I m4

DISTCLEANFILES = aclocal.m4 compile config.guess config.h.in config.sub \
depcomp gtk-doc.make m4 install-sh ltmain.sh missing

CLEANFILES = build out

GITIGNOREFILES = gst-build-* .build_successful_tag_file.txt

-include $(top_srcdir)/git.mk
8 changes: 8 additions & 0 deletions TODO
@@ -0,0 +1,8 @@
This git is currently ongoing build-related changes. We are moving from a build environment where all plugins are build as separate projects
into a autotools build which builds all plugins at the same go. Therefore there are files that still exists in this git but that are to be
considered as obsolete. Such files includes, but might nog be restricted to, build files such as build-android.sh etc. in respective projects.

The new build uses build.sh and setup-env.sh in the root folder as well as configure.ac in the root folder. Then Makefile.am's are used in
all different projects to create Makefiles.

In the long run this should be fixed so that openwebrtc-gst-plugins is a autotool build and nothing else.
8 changes: 8 additions & 0 deletions autogen.sh
@@ -0,0 +1,8 @@
#!/bin/bash -e

mkdir -p m4 # seems to be needed when building from a clean checkout.
autoreconf --verbose --force --install --make || {
echo 'autogen.sh failed';
exit 1;
}

223 changes: 223 additions & 0 deletions configure.ac
@@ -0,0 +1,223 @@

dnl required version of autoconf
AC_PREREQ([2.68])

AC_INIT([openwebrtc-gst-plugins],[0.10.0])

dnl required versions of gstreamer and plugins-base
GST_REQUIRED=0.10.16
GSTPB_REQUIRED=0.10.16

AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])

dnl required version of automake
AM_INIT_AUTOMAKE([1.10 foreign])

dnl enable mainainer mode by default
AM_MAINTAINER_MODE([enable])

dnl check for tools (compiler etc.)
AC_PROG_CC
AC_PROG_CXX
AC_PROG_OBJC
AM_PROG_AS

dnl required version of libtool
LT_PREREQ([2.2.6])
LT_INIT

dnl Check for the required version of GStreamer core (and gst-plugins-base)
dnl This will export GST_CFLAGS and GST_LIBS variables for use in Makefile.am
PKG_CHECK_MODULES(GST, [
gstreamer-1.0 >= $GST_REQUIRED
gstreamer-base-1.0 >= $GST_REQUIRED
gstreamer-controller-1.0 >= $GST_REQUIRED
gstreamer-video-1.0 >= $GST_REQUIRED
gstreamer-basevideo-1.0 >= $GST_REQUIRED
], [
AC_SUBST(GST_CFLAGS)
AC_SUBST(GST_OBJCFLAGS)
AC_SUBST(GST_LIBS)
], [
AC_MSG_ERROR([
You need to install or upgrade the GStreamer development
packages on your system. On debian-based systems these are
libgstreamer0.10-dev and libgstreamer-plugins-base0.10-dev.
on RPM-based systems gstreamer0.10-devel, libgstreamer0.10-devel
or similar. The minimum version required is $GST_REQUIRED.
])
])

dnl Set target platform
AM_CONDITIONAL(TARGET_PLATFORM_IOS, test "x$host_alias" = "xarm-apple-darwin10")
AM_CONDITIONAL(TARGET_PLATFORM_ANDROID, test "x$host_alias" = "xarm-linux-androideabi")
AM_CONDITIONAL(TARGET_PLATFORM_LINUX, test "x$host_alias" = "xx86_64-unknown-linux")
AM_CONDITIONAL(TARGET_PLATFORM_OSX, test "x$host_alias" = "xx86_64-apple-darwin")
AM_CONDITIONAL(TARGET_PLATFORM_IOS_SIMULATOR, test "x$host_alias" = "xi386-apple-darwin10")

dnl check if compiler understands -Wall (if yes, add -Wall to GST_CFLAGS)
AC_MSG_CHECKING([to see if compiler understands -Wall])
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Wall"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ ], [ ])], [
GST_CFLAGS="$GST_CFLAGS -Wall"
AC_MSG_RESULT([yes])
], [
AC_MSG_RESULT([no])
])

dnl openh264 support?
AC_MSG_CHECKING([whether to build openh264 plugins or not])
AC_ARG_WITH([openh264],
[AS_HELP_STRING([--with-openh264],
[build openh264 plugins @<:@default=check@:>@])],
[],
[with_openh264=check])
AC_MSG_RESULT($with_openh264)
AM_CONDITIONAL([BUILD_OPENH264], [test "$with_openh264" != no])
AM_COND_IF([BUILD_OPENH264],
AC_CONFIG_FILES([ext/openh264/Makefile ext/openh264/src/Makefile]))

dnl build static plugins or not
AC_MSG_CHECKING([whether to build static plugins or not])
AC_ARG_ENABLE(
static-plugins,
AC_HELP_STRING(
[--enable-static-plugins],
[build static plugins @<:@default=no@:>@]),
[AS_CASE(
[$enableval], [no], [], [yes], [],
[AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
[enable_static_plugins=no])
AC_MSG_RESULT([$enable_static_plugins])
if test "x$enable_static_plugins" = xyes; then
AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
[Define if static plugins should be built])
fi
AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")


dnl build android sys
AC_MSG_CHECKING([whether to build system plugins for android or not])
AC_ARG_ENABLE(
android-plugins,
AC_HELP_STRING(
[--enable-android-plugins],
[build android plugins @<:@default=no@:>@]),
[AS_CASE(
[$enableval], [no], [], [yes], [],
[AC_MSG_ERROR([bad value "$enableval" for --enable-android-plugins])])],
[enable_android_plugins=no])
AC_MSG_RESULT([$enable_android_plugins])
if test "x$enable_android_plugins" = xyes; then
AC_DEFINE(BUILD_ANDROID_PLUGINS, 1,
[Define if android plugins should be built])
AC_PATH_PROG(DX, dx)
if test -z "$DX"; then
AC_MSG_ERROR([You need 'dx' from the Android SDK (not found in path $PATH and \$DX is not set)])
fi
AC_PATH_PROG(JAVAC, javac)
if test -z "$JAVAC"; then
AC_MSG_ERROR([You need 'javac' to build the Android plugins])
fi
AC_PATH_PROG(XXD, xxd)
if test -z "$XXD"; then
AC_MSG_ERROR([You need 'xxd' to build the Android plugins])
fi
dx_path=`AS_DIRNAME(["$DX"])`
ANDROID_CLASSPATH="$dx_path/../../platforms/android-19/android.jar"
if ! test -f "$ANDROID_CLASSPATH"; then
AC_MSG_ERROR([Android API level 19 not found in the SDK])
fi
AC_SUBST(ANDROID_CLASSPATH)
fi
AM_CONDITIONAL(BUILD_ANDROID_PLUGINS, test "x$enable_android_plugins" = "xyes")
AM_COND_IF([BUILD_ANDROID_PLUGINS],
AC_CONFIG_FILES([sys/androidvideo/Makefile sys/androidvideo/video-source/Makefile]))

dnl Check if osx plugins should be built
AC_MSG_CHECKING([whether to build system plugins for osx or not])
AC_ARG_ENABLE(
osx-plugins,
AC_HELP_STRING(
[--enable-osx-plugins],
[build osx plugins @<:@default=no@:>@]),
[AS_CASE(
[$enableval], [no], [], [yes], [],
[AC_MSG_ERROR([bad value "$enableval" for --enable-osx-plugins])])],
[enable_osx_plugins=no])
AC_MSG_RESULT([$enable_osx_plugins])
if test "x$enable_osx_plugins" = xyes; then
AC_DEFINE(BUILD_OSX_PLUGINS, 1,
[Define if osx plugins should be built])
fi
AM_CONDITIONAL(BUILD_OSX_PLUGINS, test "x$enable_osx_plugins" = "xyes")


dnl Check if linux plugins should be built
AC_MSG_CHECKING([whether to build system plugins for linux or not])
AC_ARG_ENABLE(
linux-plugins,
AC_HELP_STRING(
[--enable-linux-plugins],
[build linux plugins @<:@default=no@:>@]),
[AS_CASE(
[$enableval], [no], [], [yes], [],
[AC_MSG_ERROR([bad value "$enableval" for --enable-linux-plugins])])],
[enable_linux_plugins=no])
AC_MSG_RESULT([$enable_linux_plugins])
if test "x$enable_linux_plugins" = xyes; then
AC_DEFINE(BUILD_LINUX_PLUGINS, 1,
[Define if linux plugins should be built])
fi
AM_CONDITIONAL(BUILD_LINUX_PLUGINS, test "x$enable_linux_plugins" = "xyes")

dnl Release build
AC_MSG_CHECKING([whether to build debug or release])
AC_ARG_ENABLE(
debug,
AC_HELP_STRING(
[--enable-debug],
[build debug @<:@default=no@:>@]),
[AS_CASE(
[$enableval], [no], [], [yes], [],
[AC_MSG_ERROR([bad value "$enableval" for --enable-debug])])],
[enable_debug=no])
AC_MSG_RESULT([$enable_debug])
if test "x$enable_debug" = xyes; then
AC_DEFINE(ENABLE_DEBUG, 1, [Define if debug should be built])
fi
AM_CONDITIONAL(ENABLE_DEBUG, test "x$enable_debug" = "xyes")

dnl Only build ercolorspace for android or ios builds.
AC_MSG_CHECKING([whether to build ercolorspace])
AC_ARG_ENABLE(
colorspace-converter,
AC_HELP_STRING(
[--enable-colorspace-converter],
[build colorspace converter @<:@default=no@:>@]),
[AS_CASE(
[$enableval], [no], [], [yes], [],
[AC_MSG_ERROR([bad value "$enableval" for --enable-colorspace-converter])])],
[enable_colorspace_converter=no])
AC_MSG_RESULT([$enable_colorspace_converter])
AM_CONDITIONAL(BUILD_ERCOLORSPACE, [ test "x$enable_colorspace_converter" = "xyes" ])
AM_COND_IF([BUILD_ERCOLORSPACE],
AC_CONFIG_FILES([gst/ercolorspace/Makefile]))

dnl set the plugindir where plugins should be installed (for src/Makefile.am)
if test "x${prefix}" = "x$HOME"; then
plugindir="$HOME/.gstreamer-1.0/plugins"
else
plugindir="\$(libdir)/gstreamer-1.0"
fi
AC_SUBST(plugindir)

dnl set proper LDFLAGS for plugins
GST_PLUGIN_LDFLAGS='-module -avoid-version -export-symbols-regex [_]*\(gst_\|Gst\|GST_\).*'
AC_SUBST(GST_PLUGIN_LDFLAGS)

AC_CONFIG_FILES([Makefile ext/Makefile ext/erdtls/Makefile gst/Makefile sys/Makefile tests/Makefile tests/icles/Makefile \
gst/videorepair/Makefile])
AC_OUTPUT
7 changes: 7 additions & 0 deletions ext/Makefile.am
@@ -0,0 +1,7 @@
if BUILD_OPENH264
openh264_SUBDIRS=openh264
endif

SUBDIRS=erdtls $(openh264_SUBDIRS)
DIST_SUBDIRS = $(SUBDIRS) # needed since we are doing a out of tree build.
-include $(top_srcdir)/git.mk
39 changes: 39 additions & 0 deletions ext/erdtls/Makefile.am
@@ -0,0 +1,39 @@
plugin_LTLIBRARIES = libgsterdtls.la

libgsterdtls_la_SOURCES = \
src/plugin.c \
src/gsterdtlsdec.c \
src/gsterdtlsenc.c \
src/gsterdtlssrtpdemux.c \
src/gsterdtlssrtpbin.c \
src/gsterdtlssrtpdec.c \
src/gsterdtlssrtpenc.c \
src/erdtlsagent.c \
src/erdtlsconnection.c \
src/erdtlscertificate.c

libgsterdtls_la_CFLAGS = \
$(GST_PLUGINS_BASE_CFLAGS) \
$(GST_BASE_CFLAGS) \
$(GST_CFLAGS) \
$(OPENSSL_CFLAGS) \
-DER_DTLS_USE_GST_LOG=1

if !GST_PLUGIN_BUILD_STATIC
libgsterdtls_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) $(OPENSSL_LIBS)
libgsterdtls_la_LIBTOOLFLAGS = --tag=disable-static
endif

noinst_HEADERS = \
src/gsterdtlsdec.h \
src/gsterdtlsenc.h \
src/gsterdtlssrtpdemux.h \
src/gsterdtlssrtpbin.h \
src/gsterdtlssrtpdec.h \
src/gsterdtlssrtpenc.h \
src/erdtlsagent.h \
src/erdtlsconnection.h \
src/erdtlscertificate.h \
src/erdtlscommon.h

-include $(top_srcdir)/git.mk

0 comments on commit 635b497

Please sign in to comment.