]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-8867: build using in tree libvpx, vpx no longer optional and does not use system...
authorMichael Jerris <mike@jerris.com>
Wed, 24 Feb 2016 23:43:21 +0000 (18:43 -0500)
committerMichael Jerris <mike@jerris.com>
Wed, 24 Feb 2016 23:44:11 +0000 (18:44 -0500)
27 files changed:
Makefile.am
build/modules.conf.in
build/modules.conf.most
conf/insideout/autoload_configs/modules.conf.xml
conf/rayo/autoload_configs/modules.conf.xml
conf/sbc/autoload_configs/modules.conf.xml
conf/testing/autoload_configs/modules.conf.xml
conf/vanilla/autoload_configs/modules.conf.xml
configure.ac
debian/control-modules
freeswitch.spec
libs/.gitignore
libs/libvpx/.gitignore [new file with mode: 0644]
libs/libvpx/configure [new file with mode: 0755]
src/include/switch_image.h
src/mod/applications/mod_av/Makefile.am
src/mod/applications/mod_cv/Makefile.am
src/mod/applications/mod_fsv/Makefile.am
src/mod/applications/mod_mp4v2/Makefile.am
src/mod/codecs/mod_openh264/Makefile.am
src/mod/codecs/mod_vpx/Makefile.am [deleted file]
src/mod/codecs/mod_vpx/README [deleted file]
src/mod/formats/mod_imagick/Makefile.am
src/mod/formats/mod_vlc/Makefile.am
src/switch_core_video.c
src/switch_loadable_module.c
src/switch_vpx.c [moved from src/mod/codecs/mod_vpx/mod_vpx.c with 99% similarity]

index e0a10b218ae3eb5b8313e34a9390e513375b7c2c..73a6f47be8bd32de36e0e528ecfca3c3c812e332 100644 (file)
@@ -27,7 +27,7 @@ AM_LIBAPU_LIBS := $(subst $(switch_builddir)/,,$(shell ./libs/apr-util/apu-1-con
 endif
 
 AM_CFLAGS   = $(SWITCH_AM_CFLAGS) $(SWITCH_ANSI_CFLAGS) 
-AM_CPPFLAGS = $(SWITCH_AM_CXXFLAGS) -I$(switch_srcdir)/libs/sofia-sip/libsofia-sip-ua/sdp -I$(switch_srcdir)/libs/sofia-sip/libsofia-sip-ua/su -I$(switch_builddir)/libs/sofia-sip/libsofia-sip-ua/su
+AM_CPPFLAGS = -I$(switch_srcdir)/libs/libvpx $(SWITCH_AM_CXXFLAGS) -I$(switch_srcdir)/libs/sofia-sip/libsofia-sip-ua/sdp -I$(switch_srcdir)/libs/sofia-sip/libsofia-sip-ua/su -I$(switch_builddir)/libs/sofia-sip/libsofia-sip-ua/su
 AM_LDFLAGS  = $(SWITCH_AM_LDFLAGS) $(AM_LIBAPR_LDFLAGS) $(AM_LIBAPU_LDFLAGS)
 
 DEFAULT_SOUNDS=en-us-callie-8000
@@ -120,9 +120,10 @@ CORE_CFLAGS += -I$(switch_srcdir)/libs/srtp/crypto/include -Ilibs/srtp/crypto/in
 CORE_CFLAGS += -I$(switch_builddir)/libs/spandsp/src -I$(switch_srcdir)/libs/spandsp/src 
 CORE_CFLAGS += -I$(switch_builddir)/libs/tiff-4.0.2/libtiff -I$(switch_srcdir)/libs/tiff-4.0.2/libtiff
 CORE_CFLAGS += -DSWITCH_HAVE_YUV
+CORE_CFLAGS += -DSWITCH_HAVE_VPX
 
 APR_LIBS   = $(AM_LIBAPU_LIBS) $(AM_LIBAPR_LIBS)
-CORE_LIBS=
+CORE_LIBS=libs/libvpx/libvpx.a
 if SYSTEM_APRUTIL
 CORE_LIBS += $(AM_LIBAPU_LINKLIBTOOL)
 else
@@ -151,10 +152,6 @@ if HAVE_PNG
 CORE_CFLAGS += -DSWITCH_HAVE_PNG $(LIBPNG_CFLAGS)
 endif
 
-if HAVE_VPX
-CORE_CFLAGS += -DSWITCH_HAVE_VPX $(VPX_CFLAGS)
-endif
-
 if HAVE_FREETYPE
 CORE_CFLAGS += -DSWITCH_HAVE_FREETYPE $(LIBFREETYPE_CFLAGS)
 endif
@@ -201,9 +198,9 @@ libfreeswitch_libyuv_la_CPPFLAGS = -O2 -fomit-frame-pointer -Ilibs/libyuv/includ
 CORE_LIBS+=libfreeswitch_libyuv.la
 
 lib_LTLIBRARIES                 = libfreeswitch.la
-libfreeswitch_la_CFLAGS  = $(CORE_CFLAGS) $(SQLITE_CFLAGS) $(FREETYPE_CFLAGS) $(CURL_CFLAGS) $(PCRE_CFLAGS) $(SPEEX_CFLAGS) $(LIBEDIT_CFLAGS) $(openssl_CFLAGS) $(VPX_CFLAGS) $(AM_CFLAGS)
+libfreeswitch_la_CFLAGS  = $(CORE_CFLAGS) $(SQLITE_CFLAGS) $(FREETYPE_CFLAGS) $(CURL_CFLAGS) $(PCRE_CFLAGS) $(SPEEX_CFLAGS) $(LIBEDIT_CFLAGS) $(openssl_CFLAGS)  $(AM_CFLAGS)
 libfreeswitch_la_LDFLAGS = -version-info 1:0:0 $(AM_LDFLAGS) $(PLATFORM_CORE_LDFLAGS) -no-undefined
-libfreeswitch_la_LIBADD  = $(CORE_LIBS) $(APR_LIBS) $(SQLITE_LIBS) $(FREETYPE_LIBS) $(CURL_LIBS) $(PCRE_LIBS) $(SPEEX_LIBS) $(LIBEDIT_LIBS) $(openssl_LIBS) $(VPX_LIBS) $(PLATFORM_CORE_LIBS)
+libfreeswitch_la_LIBADD  = $(CORE_LIBS) $(APR_LIBS) $(SQLITE_LIBS) $(FREETYPE_LIBS) $(CURL_LIBS) $(PCRE_LIBS) $(SPEEX_LIBS) $(LIBEDIT_LIBS) $(openssl_LIBS) $(PLATFORM_CORE_LIBS)
 libfreeswitch_la_DEPENDENCIES = $(BUILT_SOURCES)
 
 if HAVE_PNG
@@ -347,6 +344,7 @@ libfreeswitch_la_SOURCES = \
        src/switch_curl.c \
        src/switch_hashtable.c\
        src/switch_utf8.c \
+       src/switch_vpx.c \
        libs/libtpl-1.5/src/tpl.c \
        libs/libteletone/src/libteletone_detect.c \
        libs/libteletone/src/libteletone_generate.c \
@@ -517,6 +515,12 @@ libs/libedit/src/.libs/libedit.a:
 libs/libzrtp/libzrtp.a:
        cd libs/libzrtp && $(MAKE)
 
+libs/libvpx/Makefile:
+       cd libs/libvpx && sh ./configure --enable-pic --disable-docs --disable-examples --disable-install-bins --disable-install-srcs --disable-unit-tests
+
+libs/libvpx/libvpx.a: libs/libvpx/Makefile
+       @cd libs/libvpx && $(MAKE)
+
 libs/sofia-sip/Makefile:
        cd libs/sofia-sip && sh ./configure.gnu $(MY_DEFAULT_ARGS)
 
index f87353c193064dadb1a3a116a97685b439ef5418..9c1a6d4ac0358080d6c0c4ed747d6ddf98c73768 100644 (file)
@@ -75,7 +75,6 @@ codecs/mod_opus
 #codecs/mod_silk
 #codecs/mod_siren
 #codecs/mod_theora
-codecs/mod_vpx
 dialplans/mod_dialplan_asterisk
 #dialplans/mod_dialplan_directory
 dialplans/mod_dialplan_xml
index a4201706c8d67edf19f4b162691efd9b2a6d0db4..3becf53b28bd11f53b6ef6ee050c5d54fd80cbee 100644 (file)
@@ -74,7 +74,6 @@ codecs/mod_sangoma_codec
 codecs/mod_silk
 codecs/mod_siren
 codecs/mod_theora
-codecs/mod_vpx
 dialplans/mod_dialplan_asterisk
 dialplans/mod_dialplan_directory
 dialplans/mod_dialplan_xml
index 22f35c6cf344f8784d70a02052c5b63c0b826c4a..3e2b09cdcbcb0406023d0949c50cdbc3bdddd3d0 100644 (file)
@@ -63,7 +63,6 @@
     <load module="mod_amr"/>
     <!--<load module="mod_ilbc"/>-->
     <load module="mod_h26x"/>
-    <load module="mod_vpx"/>
     <!--<load module="mod_siren"/>-->
 
     <!-- File Format Interfaces -->
index 3a2ace10ade32fb853849cf1615ff129af303ff0..f6c58680bc80809d26a6178d43caa3b83547b597 100644 (file)
@@ -30,7 +30,6 @@
     <load module="mod_opus"/>
     <load module="mod_ilbc"/>
     <load module="mod_h26x"/>
-    <load module="mod_vpx"/>
 
     <!-- File Format Interfaces -->
     <load module="mod_sndfile"/>
index 940c82b7a98854aa5e2f5ac509b7630f8e937179..579b1d33bebb33f1aef68e4f1eab91551a723bc6 100644 (file)
@@ -42,7 +42,6 @@
     <load module="mod_amr"/>
     <!--<load module="mod_ilbc"/>-->
     <load module="mod_h26x"/>
-    <load module="mod_vpx"/>
     <!--<load module="mod_siren"/>-->
 
     <!-- Timers -->
index f0e099661f59ee14a083b7e65558daed6789f7b0..9849ce2d94e941f77149a32f34d0539e061bb6f7 100644 (file)
@@ -23,7 +23,6 @@
     <load module="mod_g723_1"/>
     <load module="mod_g729"/>
     <load module="mod_amr"/>
-    <load module="mod_vpx"/>
     <load module="mod_opus"/>
     <load module="mod_sndfile"/>
     <load module="mod_native_file"/>
index 54371536602f4001383c4c39e81f896aee0d5d0b..c850d7365f4a44e33947ec46ce61af67c810a301 100644 (file)
@@ -94,7 +94,6 @@
     <load module="mod_amr"/>
     <!--<load module="mod_ilbc"/>-->
     <!--<load module="mod_h26x"/>-->
-    <load module="mod_vpx"/>
     <load module="mod_b64"/>
     <!--<load module="mod_siren"/>-->
     <!--<load module="mod_isac"/>-->
index 6e877320532742f1a62b08b5c62bf19c2a6c6f26..9238dbdef398876f781f2eb257a68a74db886a36 100644 (file)
@@ -895,8 +895,6 @@ CPPFLAGS="$save_CPPFLAGS"
 
 AX_HAVE_CPU_SET
 
-AC_CHECK_LIB(vpx, vpx_img_alloc, [AC_DEFINE(HAVE_VPX, 1, [Define if you have vpx()])])
-
 AC_CHECK_LIB(rt, clock_gettime, [AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Define if you have clock_gettime()])])
 AC_CHECK_LIB(rt, clock_getres, [AC_DEFINE(HAVE_CLOCK_GETRES, 1, [Define if you have clock_getres()])])
 AC_CHECK_LIB(rt, clock_nanosleep, [AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define if you have clock_nanosleep()])])
@@ -1268,32 +1266,6 @@ PKG_CHECK_MODULES([SNDFILE], [sndfile >= 1.0.20],[
   AM_CONDITIONAL([HAVE_SNDFILE],[true])],[
   AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_SNDFILE],[false])])
 
-ac_cv_have_vpx=no
-PKG_CHECK_MODULES([VPX], [vpx2 >= 1.5.0],[
-  ac_cv_have_vpx=yes],[
-    PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0],[
-      ac_cv_have_vpx=yes],[
-      AC_MSG_RESULT([no]); ac_cv_have_vpx=no])])
-
-vpx_atleast_15=no
-
-if test x"$ac_cv_have_vpx" = xyes; then
-AC_MSG_CHECKING(whether libvpx is at least version 1.5)
-save_CPPFLAGS="${CPPFLAGS}"
-CPPFLAGS="${VPX_CFLAGS} ${save_CPPFLAGS}"
-AC_TRY_COMPILE([
-#include <vpx/vpx_image.h>
-], [vpx_color_range_t foo = VPX_CR_FULL_RANGE;],[vpx_atleast_15=yes],[vpx_atleast_15=no])
-AC_MSG_RESULT($vpx_atleast_15)
-CPPFLAGS="${save_CPPFLAGS}"
-fi
-
-AM_CONDITIONAL([HAVE_VPX],[test "x$vpx_atleast_15" != "xno"])
-
-SWITCH_AM_CFLAGS="$VPX_CFLAGS $SWITCH_AM_CFLAGS"
-SWITCH_AM_CXXFLAGS="$VPX_CFLAGS $SWITCH_AM_CXXFLAGS"
-SWITCH_AM_CPPFLAGS="$VPX_CFLAGS $SWITCH_AM_CPPFLAGS"
-
 PKG_CHECK_MODULES([MPG123], [libmpg123 >= 1.20.1],[
   AM_CONDITIONAL([HAVE_MPG123],[true])],[
   AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_MPG123],[false])])
@@ -1775,7 +1747,6 @@ AC_CONFIG_FILES([Makefile
                src/mod/codecs/mod_siren/Makefile
                src/mod/codecs/mod_skel_codec/Makefile
                src/mod/codecs/mod_theora/Makefile
-               src/mod/codecs/mod_vpx/Makefile
                src/mod/dialplans/mod_dialplan_asterisk/Makefile
                src/mod/dialplans/mod_dialplan_directory/Makefile
                src/mod/dialplans/mod_dialplan_xml/Makefile
index 66c040f5d284581b3d3f00ec97b1b59ff67cc846..28d6aea2d069146d10e5f2de315348bcdd877470 100644 (file)
@@ -377,10 +377,6 @@ Module: codecs/mod_theora
 Description: mod_theora
  Adds mod_theora.
 
-Module: codecs/mod_vpx
-Description: VP8/VP9 video codec
- This module adds the VP8 video codec, also known as WebM.
-
 Module: codecs/mod_yuv
 Description: Adds mod_yuv
  Adds mod_yuv.
index a3917b413d05d0b7b1fd82381404e7cb9582a170..8d1b02a7013413273f2db0953fabd1e7b0f5d5d3 100644 (file)
@@ -1462,7 +1462,7 @@ ASR_TTS_MODULES="asr_tts/mod_flite asr_tts/mod_pocketsphinx asr_tts/mod_tts_comm
 ######################################################################################################################
 CODECS_MODULES="codecs/mod_amr codecs/mod_amrwb codecs/mod_bv codecs/mod_codec2 codecs/mod_g723_1 \
                codecs/mod_g729 codecs/mod_h26x codecs/mod_ilbc codecs/mod_isac codecs/mod_mp4v codecs/mod_opus codecs/mod_silk \
-               codecs/mod_siren codecs/mod_theora codecs/mod_vpx"
+               codecs/mod_siren codecs/mod_theora"
 #
 %if %{build_sng_tc}
 CODECS_MODULES+="codecs/mod_sangoma_codec"
@@ -2174,9 +2174,6 @@ fi
 %files codec-mp4v
 %{MODINSTDIR}/mod_mp4v.so*
 
-%files codec-vpx
-%{MODINSTDIR}/mod_vpx.so*
-
 %files codec-opus
 %{MODINSTDIR}/mod_opus.so*
 %config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/opus.conf.xml
index 9da77e16e96e8ed0168bd8df0fb014616f396148..a567a236730ee985f5faaa4bf77aafe31f8d305b 100644 (file)
@@ -6,7 +6,6 @@ config.log
 config.nice
 config.status
 config.sub
-configure
 depcomp
 install-sh
 libtool
@@ -829,3 +828,15 @@ unimrcp/build/compile
 /ldns/
 /portaudio/
 portaudio.*.log
+apr-util/configure
+apr-util/xml/expat/configure
+apr/configure
+iksemel/configure
+libdingaling/configure
+libyuv/Makefile
+libyuv/convert
+sofia-sip/configure
+spandsp/configure
+srtp/configure
+tiff-4.0.2/configure
+unimrcp/configure
diff --git a/libs/libvpx/.gitignore b/libs/libvpx/.gitignore
new file mode 100644 (file)
index 0000000..9fed8d5
--- /dev/null
@@ -0,0 +1,14 @@
+*.d
+.bins
+.docs
+Makefile
+config.mk
+libs-*.mk
+vp8_rtcd.h
+vp9_rtcd.h
+vpx_config.asm
+vpx_config.c
+vpx_config.h
+vpx_dsp_rtcd.h
+vpx_scale_rtcd.h
+vpx_version.h
diff --git a/libs/libvpx/configure b/libs/libvpx/configure
new file mode 100755 (executable)
index 0000000..095cddf
--- /dev/null
@@ -0,0 +1,749 @@
+#!/bin/sh
+##
+##  configure
+##
+##  This script is the front-end to the build system. It provides a similar
+##  interface to standard configure scripts with some extra bits for dealing
+##  with toolchains that differ from the standard POSIX interface and
+##  for extracting subsets of the source tree. In theory, reusable parts
+##  of this script were intended to live in build/make/configure.sh,
+##  but in practice, the line is pretty blurry.
+##
+##  This build system is based in part on the FFmpeg configure script.
+##
+
+#source_path="`dirname \"$0\"`"
+source_path=${0%/*}
+. "${source_path}/build/make/configure.sh"
+
+show_help(){
+    show_help_pre
+    cat << EOF
+Advanced options:
+  ${toggle_libs}                  libraries
+  ${toggle_examples}              examples
+  ${toggle_docs}                  documentation
+  ${toggle_unit_tests}            unit tests
+  ${toggle_decode_perf_tests}     build decoder perf tests with unit tests
+  ${toggle_encode_perf_tests}     build encoder perf tests with unit tests
+  --cpu=CPU                       tune for the specified CPU (ARM: cortex-a8, X86: sse3)
+  --libc=PATH                     path to alternate libc
+  --size-limit=WxH                max size to allow in the decoder
+  --as={yasm|nasm|auto}           use specified assembler [auto, yasm preferred]
+  --sdk-path=PATH                 path to root of sdk (android builds only)
+  ${toggle_codec_srcs}            in/exclude codec library source code
+  ${toggle_debug_libs}            in/exclude debug version of libraries
+  ${toggle_static_msvcrt}         use static MSVCRT (VS builds only)
+  ${toggle_vp9_highbitdepth}      use VP9 high bit depth (10/12) profiles
+  ${toggle_better_hw_compatibility}
+                                  enable encoder to produce streams with better
+                                  hardware decoder compatibility
+  ${toggle_vp8}                   VP8 codec support
+  ${toggle_vp9}                   VP9 codec support
+  ${toggle_vp10}                  VP10 codec support
+  ${toggle_internal_stats}        output of encoder internal stats for debug, if supported (encoders)
+  ${toggle_postproc}              postprocessing
+  ${toggle_vp9_postproc}          vp9 specific postprocessing
+  ${toggle_multithread}           multithreaded encoding and decoding
+  ${toggle_spatial_resampling}    spatial sampling (scaling) support
+  ${toggle_realtime_only}         enable this option while building for real-time encoding
+  ${toggle_onthefly_bitpacking}   enable on-the-fly bitpacking in real-time encoding
+  ${toggle_error_concealment}     enable this option to get a decoder which is able to conceal losses
+  ${toggle_coefficient_range_checking}
+                                  enable decoder to check if intermediate
+                                  transform coefficients are in valid range
+  ${toggle_runtime_cpu_detect}    runtime cpu detection
+  ${toggle_shared}                shared library support
+  ${toggle_static}                static library support
+  ${toggle_small}                 favor smaller size over speed
+  ${toggle_postproc_visualizer}   macro block / block level visualizers
+  ${toggle_multi_res_encoding}    enable multiple-resolution encoding
+  ${toggle_temporal_denoising}    enable temporal denoising and disable the spatial denoiser
+  ${toggle_vp9_temporal_denoising}
+                                  enable vp9 temporal denoising
+  ${toggle_webm_io}               enable input from and output to WebM container
+  ${toggle_libyuv}                enable libyuv
+
+Codecs:
+  Codecs can be selectively enabled or disabled individually, or by family:
+      --disable-<codec>
+  is equivalent to:
+      --disable-<codec>-encoder
+      --disable-<codec>-decoder
+
+  Codecs available in this distribution:
+EOF
+#restore editor state '
+
+    family="";
+    last_family="";
+    c="";
+    str="";
+    for c in ${CODECS}; do
+        family=${c%_*}
+        if [ "${family}" != "${last_family}" ]; then
+            [ -z "${str}" ] || echo "${str}"
+            str="$(printf '    %10s:' ${family})"
+        fi
+        str="${str} $(printf '%10s' ${c#*_})"
+        last_family=${family}
+    done
+    echo "${str}"
+    show_help_post
+}
+
+##
+## BEGIN APPLICATION SPECIFIC CONFIGURATION
+##
+
+# all_platforms is a list of all supported target platforms. Maintain
+# alphabetically by architecture, generic-gnu last.
+all_platforms="${all_platforms} armv6-darwin-gcc"
+all_platforms="${all_platforms} armv6-linux-rvct"
+all_platforms="${all_platforms} armv6-linux-gcc"
+all_platforms="${all_platforms} armv6-none-rvct"
+all_platforms="${all_platforms} arm64-darwin-gcc"
+all_platforms="${all_platforms} armv7-android-gcc"   #neon Cortex-A8
+all_platforms="${all_platforms} armv7-darwin-gcc"    #neon Cortex-A8
+all_platforms="${all_platforms} armv7-linux-rvct"    #neon Cortex-A8
+all_platforms="${all_platforms} armv7-linux-gcc"     #neon Cortex-A8
+all_platforms="${all_platforms} armv7-none-rvct"     #neon Cortex-A8
+all_platforms="${all_platforms} armv7-win32-vs11"
+all_platforms="${all_platforms} armv7-win32-vs12"
+all_platforms="${all_platforms} armv7-win32-vs14"
+all_platforms="${all_platforms} armv7s-darwin-gcc"
+all_platforms="${all_platforms} mips32-linux-gcc"
+all_platforms="${all_platforms} mips64-linux-gcc"
+all_platforms="${all_platforms} sparc-solaris-gcc"
+all_platforms="${all_platforms} x86-android-gcc"
+all_platforms="${all_platforms} x86-darwin8-gcc"
+all_platforms="${all_platforms} x86-darwin8-icc"
+all_platforms="${all_platforms} x86-darwin9-gcc"
+all_platforms="${all_platforms} x86-darwin9-icc"
+all_platforms="${all_platforms} x86-darwin10-gcc"
+all_platforms="${all_platforms} x86-darwin11-gcc"
+all_platforms="${all_platforms} x86-darwin12-gcc"
+all_platforms="${all_platforms} x86-darwin13-gcc"
+all_platforms="${all_platforms} x86-darwin14-gcc"
+all_platforms="${all_platforms} x86-darwin15-gcc"
+all_platforms="${all_platforms} x86-iphonesimulator-gcc"
+all_platforms="${all_platforms} x86-linux-gcc"
+all_platforms="${all_platforms} x86-linux-icc"
+all_platforms="${all_platforms} x86-os2-gcc"
+all_platforms="${all_platforms} x86-solaris-gcc"
+all_platforms="${all_platforms} x86-win32-gcc"
+all_platforms="${all_platforms} x86-win32-vs7"
+all_platforms="${all_platforms} x86-win32-vs8"
+all_platforms="${all_platforms} x86-win32-vs9"
+all_platforms="${all_platforms} x86-win32-vs10"
+all_platforms="${all_platforms} x86-win32-vs11"
+all_platforms="${all_platforms} x86-win32-vs12"
+all_platforms="${all_platforms} x86-win32-vs14"
+all_platforms="${all_platforms} x86_64-android-gcc"
+all_platforms="${all_platforms} x86_64-darwin9-gcc"
+all_platforms="${all_platforms} x86_64-darwin10-gcc"
+all_platforms="${all_platforms} x86_64-darwin11-gcc"
+all_platforms="${all_platforms} x86_64-darwin12-gcc"
+all_platforms="${all_platforms} x86_64-darwin13-gcc"
+all_platforms="${all_platforms} x86_64-darwin14-gcc"
+all_platforms="${all_platforms} x86_64-darwin15-gcc"
+all_platforms="${all_platforms} x86_64-iphonesimulator-gcc"
+all_platforms="${all_platforms} x86_64-linux-gcc"
+all_platforms="${all_platforms} x86_64-linux-icc"
+all_platforms="${all_platforms} x86_64-solaris-gcc"
+all_platforms="${all_platforms} x86_64-win64-gcc"
+all_platforms="${all_platforms} x86_64-win64-vs8"
+all_platforms="${all_platforms} x86_64-win64-vs9"
+all_platforms="${all_platforms} x86_64-win64-vs10"
+all_platforms="${all_platforms} x86_64-win64-vs11"
+all_platforms="${all_platforms} x86_64-win64-vs12"
+all_platforms="${all_platforms} x86_64-win64-vs14"
+all_platforms="${all_platforms} generic-gnu"
+
+# all_targets is a list of all targets that can be configured
+# note that these should be in dependency order for now.
+all_targets="libs examples docs"
+
+# all targets available are enabled, by default.
+for t in ${all_targets}; do
+    [ -f "${source_path}/${t}.mk" ] && enable_feature ${t}
+done
+
+if ! perl --version >/dev/null; then
+    die "Perl is required to build"
+fi
+
+
+if [ "`cd \"${source_path}\" && pwd`" != "`pwd`" ]; then
+  # test to see if source_path already configured
+  if [ -f "${source_path}/vpx_config.h" ]; then
+    die "source directory already configured; run 'make distclean' there first"
+  fi
+fi
+
+# check installed doxygen version
+doxy_version=$(doxygen --version 2>/dev/null)
+doxy_major=${doxy_version%%.*}
+if [ ${doxy_major:-0} -ge 1 ]; then
+    doxy_version=${doxy_version#*.}
+    doxy_minor=${doxy_version%%.*}
+    doxy_patch=${doxy_version##*.}
+
+    [ $doxy_major -gt 1 ] && enable_feature doxygen
+    [ $doxy_minor -gt 5 ] && enable_feature doxygen
+    [ $doxy_minor -eq 5 ] && [ $doxy_patch -ge 3 ] && enable_feature doxygen
+fi
+
+# disable codecs when their source directory does not exist
+[ -d "${source_path}/vp8" ] || disable_feature vp8
+[ -d "${source_path}/vp9" ] || disable_feature vp9
+[ -d "${source_path}/vp10" ] || disable_feature vp10
+
+# disable vp10 codec by default
+disable_feature vp10
+
+# install everything except the sources, by default. sources will have
+# to be enabled when doing dist builds, since that's no longer a common
+# case.
+enabled doxygen && enable_feature install_docs
+enable_feature install_bins
+enable_feature install_libs
+
+enable_feature static
+enable_feature optimizations
+enable_feature dependency_tracking
+enable_feature spatial_resampling
+enable_feature multithread
+enable_feature os_support
+enable_feature temporal_denoising
+
+CODECS="
+    vp8_encoder
+    vp8_decoder
+    vp9_encoder
+    vp9_decoder
+    vp10_encoder
+    vp10_decoder
+"
+CODEC_FAMILIES="
+    vp8
+    vp9
+    vp10
+"
+
+ARCH_LIST="
+    arm
+    mips
+    x86
+    x86_64
+"
+ARCH_EXT_LIST_X86="
+    mmx
+    sse
+    sse2
+    sse3
+    ssse3
+    sse4_1
+    avx
+    avx2
+"
+ARCH_EXT_LIST="
+    edsp
+    media
+    neon
+    neon_asm
+
+    mips32
+    dspr2
+    msa
+    mips64
+
+    ${ARCH_EXT_LIST_X86}
+"
+HAVE_LIST="
+    ${ARCH_EXT_LIST}
+    vpx_ports
+    pthread_h
+    unistd_h
+"
+EXPERIMENT_LIST="
+    spatial_svc
+    fp_mb_stats
+    emulate_hardware
+    misc_fixes
+"
+CONFIG_LIST="
+    dependency_tracking
+    external_build
+    install_docs
+    install_bins
+    install_libs
+    install_srcs
+    use_x86inc
+    debug
+    gprof
+    gcov
+    rvct
+    gcc
+    msvs
+    pic
+    big_endian
+
+    codec_srcs
+    debug_libs
+
+    dequant_tokens
+    dc_recon
+    runtime_cpu_detect
+    postproc
+    vp9_postproc
+    multithread
+    internal_stats
+    ${CODECS}
+    ${CODEC_FAMILIES}
+    encoders
+    decoders
+    static_msvcrt
+    spatial_resampling
+    realtime_only
+    onthefly_bitpacking
+    error_concealment
+    shared
+    static
+    small
+    postproc_visualizer
+    os_support
+    unit_tests
+    webm_io
+    libyuv
+    decode_perf_tests
+    encode_perf_tests
+    multi_res_encoding
+    temporal_denoising
+    vp9_temporal_denoising
+    coefficient_range_checking
+    vp9_highbitdepth
+    better_hw_compatibility
+    experimental
+    size_limit
+    ${EXPERIMENT_LIST}
+"
+CMDLINE_SELECT="
+    dependency_tracking
+    external_build
+    extra_warnings
+    werror
+    install_docs
+    install_bins
+    install_libs
+    install_srcs
+    debug
+    gprof
+    gcov
+    pic
+    use_x86inc
+    optimizations
+    ccache
+    runtime_cpu_detect
+    thumb
+
+    libs
+    examples
+    docs
+    libc
+    as
+    size_limit
+    codec_srcs
+    debug_libs
+
+    dequant_tokens
+    dc_recon
+    postproc
+    vp9_postproc
+    multithread
+    internal_stats
+    ${CODECS}
+    ${CODEC_FAMILIES}
+    static_msvcrt
+    spatial_resampling
+    realtime_only
+    onthefly_bitpacking
+    error_concealment
+    shared
+    static
+    small
+    postproc_visualizer
+    unit_tests
+    webm_io
+    libyuv
+    decode_perf_tests
+    encode_perf_tests
+    multi_res_encoding
+    temporal_denoising
+    vp9_temporal_denoising
+    coefficient_range_checking
+    better_hw_compatibility
+    vp9_highbitdepth
+    experimental
+"
+
+process_cmdline() {
+    for opt do
+        optval="${opt#*=}"
+        case "$opt" in
+        --disable-codecs) for c in ${CODECS}; do disable_feature $c; done ;;
+        --enable-?*|--disable-?*)
+        eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'`
+        if echo "${EXPERIMENT_LIST}" | grep "^ *$option\$" >/dev/null; then
+            if enabled experimental; then
+                ${action}_feature $option
+            else
+                log_echo "Ignoring $opt -- not in experimental mode."
+            fi
+        else
+            process_common_cmdline $opt
+        fi
+        ;;
+        *) process_common_cmdline "$opt"
+        ;;
+        esac
+    done
+}
+
+post_process_cmdline() {
+    c=""
+
+    # If the codec family is disabled, disable all components of that family.
+    # If the codec family is enabled, enable all components of that family.
+    log_echo "Configuring selected codecs"
+    for c in ${CODECS}; do
+        disabled ${c%%_*} && disable_feature ${c}
+        enabled ${c%%_*} && enable_feature ${c}
+    done
+
+    # Enable all detected codecs, if they haven't been disabled
+    for c in ${CODECS}; do soft_enable $c; done
+
+    # Enable the codec family if any component of that family is enabled
+    for c in ${CODECS}; do
+        enabled $c && enable_feature ${c%_*}
+    done
+
+    # Set the {en,de}coders variable if any algorithm in that class is enabled
+    for c in ${CODECS}; do
+        enabled ${c} && enable_feature ${c##*_}s
+    done
+}
+
+
+process_targets() {
+    enabled child || write_common_config_banner
+    write_common_target_config_h ${BUILD_PFX}vpx_config.h
+    write_common_config_targets
+
+    # Calculate the default distribution name, based on the enabled features
+    cf=""
+    DIST_DIR=vpx
+    for cf in $CODEC_FAMILIES; do
+        if enabled ${cf}_encoder && enabled ${cf}_decoder; then
+            DIST_DIR="${DIST_DIR}-${cf}"
+        elif enabled ${cf}_encoder; then
+            DIST_DIR="${DIST_DIR}-${cf}cx"
+        elif enabled ${cf}_decoder; then
+            DIST_DIR="${DIST_DIR}-${cf}dx"
+        fi
+    done
+    enabled debug_libs && DIST_DIR="${DIST_DIR}-debug"
+    enabled codec_srcs && DIST_DIR="${DIST_DIR}-src"
+    ! enabled postproc && ! enabled vp9_postproc && DIST_DIR="${DIST_DIR}-nopost"
+    ! enabled multithread && DIST_DIR="${DIST_DIR}-nomt"
+    ! enabled install_docs && DIST_DIR="${DIST_DIR}-nodocs"
+    DIST_DIR="${DIST_DIR}-${tgt_isa}-${tgt_os}"
+    case "${tgt_os}" in
+    win*) enabled static_msvcrt && DIST_DIR="${DIST_DIR}mt" || DIST_DIR="${DIST_DIR}md"
+          DIST_DIR="${DIST_DIR}-${tgt_cc}"
+          ;;
+    esac
+    if [ -f "${source_path}/build/make/version.sh" ]; then
+        ver=`"$source_path/build/make/version.sh" --bare "$source_path"`
+        DIST_DIR="${DIST_DIR}-${ver}"
+        VERSION_STRING=${ver}
+        ver=${ver%%-*}
+        VERSION_PATCH=${ver##*.}
+        ver=${ver%.*}
+        VERSION_MINOR=${ver##*.}
+        ver=${ver#v}
+        VERSION_MAJOR=${ver%.*}
+    fi
+    enabled child || cat <<EOF >> config.mk
+
+PREFIX=${prefix}
+ifeq (\$(MAKECMDGOALS),dist)
+DIST_DIR?=${DIST_DIR}
+else
+DIST_DIR?=\$(DESTDIR)${prefix}
+endif
+LIBSUBDIR=${libdir##${prefix}/}
+
+VERSION_STRING=${VERSION_STRING}
+
+VERSION_MAJOR=${VERSION_MAJOR}
+VERSION_MINOR=${VERSION_MINOR}
+VERSION_PATCH=${VERSION_PATCH}
+
+CONFIGURE_ARGS=${CONFIGURE_ARGS}
+EOF
+    enabled child || echo "CONFIGURE_ARGS?=${CONFIGURE_ARGS}" >> config.mk
+
+    #
+    # Write makefiles for all enabled targets
+    #
+    for tgt in libs examples docs solution; do
+        tgt_fn="$tgt-$toolchain.mk"
+
+        if enabled $tgt; then
+            echo "Creating makefiles for ${toolchain} ${tgt}"
+            write_common_target_config_mk $tgt_fn ${BUILD_PFX}vpx_config.h
+            #write_${tgt}_config
+        fi
+    done
+
+}
+
+process_detect() {
+    if enabled shared; then
+        # Can only build shared libs on a subset of platforms. Doing this check
+        # here rather than at option parse time because the target auto-detect
+        # magic happens after the command line has been parsed.
+        if ! enabled linux && ! enabled os2; then
+            if enabled gnu; then
+                echo "--enable-shared is only supported on ELF; assuming this is OK"
+            else
+                die "--enable-shared only supported on ELF and OS/2 for now"
+            fi
+        fi
+    fi
+    if [ -z "$CC" ] || enabled external_build; then
+        echo "Bypassing toolchain for environment detection."
+        enable_feature external_build
+        check_header() {
+            log fake_check_header "$@"
+            header=$1
+            shift
+            var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'`
+            disable_feature $var
+            # Headers common to all environments
+            case $header in
+                stdio.h)
+                    true;
+                ;;
+                *)
+                    result=false
+                    for d in "$@"; do
+                        [ -f "${d##-I}/$header" ] && result=true && break
+                    done
+                    ${result:-true}
+            esac && enable_feature $var
+
+            # Specialize windows and POSIX environments.
+            case $toolchain in
+                *-win*-*)
+                    # Don't check for any headers in Windows builds.
+                    false
+                ;;
+                *)
+                    case $header in
+                        pthread.h) true;;
+                        unistd.h) true;;
+                        *) false;;
+                    esac && enable_feature $var
+            esac
+            enabled $var
+        }
+        check_ld() {
+            true
+        }
+    fi
+    check_header stdio.h || die "Unable to invoke compiler: ${CC} ${CFLAGS}"
+    check_ld <<EOF || die "Toolchain is unable to link executables"
+int main(void) {return 0;}
+EOF
+    # check system headers
+    check_header pthread.h
+    check_header unistd.h # for sysconf(3) and friends.
+
+    check_header vpx/vpx_integer.h -I${source_path} && enable_feature vpx_ports
+}
+
+process_toolchain() {
+    process_common_toolchain
+
+    # Enable some useful compiler flags
+    if enabled gcc; then
+        enabled werror && check_add_cflags -Werror
+        check_add_cflags -Wall
+        check_add_cflags -Wdeclaration-after-statement
+        check_add_cflags -Wdisabled-optimization
+        check_add_cflags -Wpointer-arith
+        check_add_cflags -Wtype-limits
+        check_add_cflags -Wcast-qual
+        check_add_cflags -Wvla
+        check_add_cflags -Wimplicit-function-declaration
+        check_add_cflags -Wuninitialized
+        check_add_cflags -Wunused-variable
+        case ${CC} in
+          *clang*)
+              # libvpx and/or clang have issues with aliasing:
+              # https://code.google.com/p/webm/issues/detail?id=603
+              # work around them until they are fixed
+              check_add_cflags -fno-strict-aliasing
+          ;;
+          *) check_add_cflags -Wunused-but-set-variable ;;
+        esac
+        if enabled mips || [ -z "${INLINE}" ]; then
+          enabled extra_warnings || check_add_cflags -Wno-unused-function
+        else
+          check_add_cflags -Wunused-function
+        fi
+    fi
+
+    if enabled icc; then
+        enabled werror && check_add_cflags -Werror
+        check_add_cflags -Wall
+        check_add_cflags -Wpointer-arith
+
+        # ICC has a number of floating point optimizations that we disable
+        # in favor of deterministic output WRT to other compilers
+        add_cflags -fp-model precise
+    fi
+
+    # Enable extra, harmless warnings. These might provide additional insight
+    # to what the compiler is doing and why, but in general, but they shouldn't
+    # be treated as fatal, even if we're treating warnings as errors.
+    GCC_EXTRA_WARNINGS="
+        -Wdisabled-optimization
+        -Winline
+    "
+    enabled gcc && EXTRA_WARNINGS="${GCC_EXTRA_WARNINGS}"
+    RVCT_EXTRA_WARNINGS="
+        --remarks
+    "
+    enabled rvct && EXTRA_WARNINGS="${RVCT_EXTRA_WARNINGS}"
+    if enabled extra_warnings; then
+        for w in ${EXTRA_WARNINGS}; do
+            check_add_cflags ${w}
+            enabled gcc && enabled werror && check_add_cflags -Wno-error=${w}
+        done
+    fi
+
+    # ccache only really works on gcc toolchains
+    enabled gcc || soft_disable ccache
+    if enabled mips; then
+        enable_feature dequant_tokens
+        enable_feature dc_recon
+    fi
+
+    if enabled internal_stats; then
+        enable_feature vp9_postproc
+    fi
+
+    # Enable the postbuild target if building for visual studio.
+    case "$tgt_cc" in
+        vs*) enable_feature msvs
+             enable_feature solution
+             vs_version=${tgt_cc##vs}
+             case $vs_version in
+             [789])
+                 VCPROJ_SFX=vcproj
+                 gen_vcproj_cmd=${source_path}/build/make/gen_msvs_proj.sh
+                 ;;
+             10|11|12|14)
+                 VCPROJ_SFX=vcxproj
+                 gen_vcproj_cmd=${source_path}/build/make/gen_msvs_vcxproj.sh
+                 enabled werror && gen_vcproj_cmd="${gen_vcproj_cmd} --enable-werror"
+                 ;;
+             esac
+             all_targets="${all_targets} solution"
+             INLINE="__forceinline"
+        ;;
+    esac
+
+    # Other toolchain specific defaults
+    case $toolchain in x86*) soft_enable postproc;; esac
+
+    if enabled postproc_visualizer; then
+        enabled postproc || die "postproc_visualizer requires postproc to be enabled"
+    fi
+
+    # Enable unit tests by default if we have a working C++ compiler.
+    case "$toolchain" in
+        *-vs*)
+            soft_enable unit_tests
+            soft_enable webm_io
+            soft_enable libyuv
+        ;;
+        *-android-*)
+            soft_enable webm_io
+            soft_enable libyuv
+            # GTestLog must be modified to use Android logging utilities.
+        ;;
+        *-darwin-*)
+            # iOS/ARM builds do not work with gtest. This does not match
+            # x86 targets.
+        ;;
+        *-iphonesimulator-*)
+            soft_enable webm_io
+            soft_enable libyuv
+        ;;
+        *-win*)
+            # Some mingw toolchains don't have pthread available by default.
+            # Treat these more like visual studio where threading in gtest
+            # would be disabled for the same reason.
+            check_cxx "$@" <<EOF && soft_enable unit_tests
+int z;
+EOF
+            check_cxx "$@" <<EOF && soft_enable webm_io
+int z;
+EOF
+            check_cxx "$@" <<EOF && soft_enable libyuv
+int z;
+EOF
+        ;;
+        *)
+            enabled pthread_h && check_cxx "$@" <<EOF && soft_enable unit_tests
+int z;
+EOF
+            check_cxx "$@" <<EOF && soft_enable webm_io
+int z;
+EOF
+            check_cxx "$@" <<EOF && soft_enable libyuv
+int z;
+EOF
+        ;;
+    esac
+    # libwebm needs to be linked with C++ standard library
+    enabled webm_io && LD=${CXX}
+
+    # append any user defined extra cflags
+    if [ -n "${extra_cflags}" ] ; then
+        check_add_cflags ${extra_cflags} || \
+        die "Requested extra CFLAGS '${extra_cflags}' not supported by compiler"
+    fi
+    if [ -n "${extra_cxxflags}" ]; then
+        check_add_cxxflags ${extra_cxxflags} || \
+        die "Requested extra CXXFLAGS '${extra_cxxflags}' not supported by compiler"
+    fi
+}
+
+
+##
+## END APPLICATION SPECIFIC CONFIGURATION
+##
+CONFIGURE_ARGS="$@"
+process "$@"
+print_webm_license ${BUILD_PFX}vpx_config.c "/*" " */"
+cat <<EOF >> ${BUILD_PFX}vpx_config.c
+#include "vpx/vpx_codec.h"
+static const char* const cfg = "$CONFIGURE_ARGS";
+const char *vpx_codec_build_config(void) {return cfg;}
+EOF
index e9e952c4895a50ad1e436710589ed788f473fed0..7958c69806ed0fbefdcca9ce1b075a5eb734d815 100644 (file)
@@ -28,7 +28,7 @@ extern "C" {
    * types, removing or reassigning enums, adding/removing/rearranging
    * fields to structures
    */
-#define VPX_IMAGE_ABI_VERSION (3) /**<\hideinitializer*/
+#define VPX_IMAGE_ABI_VERSION (4) /**<\hideinitializer*/
 
 
 #define VPX_IMG_FMT_PLANAR     0x100  /**< Image is a planar format. */
index 52c1c5340910dae821d916c4fc67ada0a0683e0c..261985c7a9c410c1910768041b0075f1ff5f8ff0 100644 (file)
@@ -1,7 +1,6 @@
 include $(top_srcdir)/build/modmake.rulesam
 MODNAME=mod_av
 
-if HAVE_VPX
 if HAVE_AVFORMAT
 
 mod_LTLIBRARIES = mod_av.la
@@ -16,10 +15,3 @@ all: error
 error:
        $(error You must install libavformat-dev to build mod_av)
 endif
-
-else
-install: error
-all: error
-error:
-       $(error You must install libvpx2-dev to build mod_av)
-endif
index 9f62055f6403ee1823128241a13b196ceb06cd57..a01bc92569732c14e70c3a3938a0a74adaa0c112 100644 (file)
@@ -1,7 +1,6 @@
 include $(top_srcdir)/build/modmake.rulesam
 MODNAME=mod_cv
 
-if HAVE_VPX
 if HAVE_OPENCV
 
 mod_LTLIBRARIES = mod_cv.la
@@ -16,10 +15,3 @@ all: error
 error:
        $(error You must install libopencv-dev to build mod_cv)
 endif
-
-else
-install: error
-all: error
-error:
-       $(error You must install libvpx2-dev to build mod_cv)
-endif
index 900d72bd7ceaa3e6a178e3353d874037ebb2c9ab..dd75a2f0816f5f1587033148c57e9cf03c65295d 100644 (file)
@@ -1,17 +1,8 @@
 include $(top_srcdir)/build/modmake.rulesam
 MODNAME=mod_fsv
 
-if HAVE_VPX
-
 mod_LTLIBRARIES = mod_fsv.la
 mod_fsv_la_SOURCES  = mod_fsv.c
 mod_fsv_la_CFLAGS   = $(AM_CFLAGS)
 mod_fsv_la_LIBADD   = $(switch_builddir)/libfreeswitch.la
 mod_fsv_la_LDFLAGS  = -avoid-version -module -no-undefined -shared
-
-else
-install: error
-all: error
-error:
-       $(error You must install libvpx2-dev to build mod_fsv)
-endif
index 7bd8ee9aeef6770fbe4f1a41eac45137fe923b69..f8b8bec05a7156c94dfdbe52b1f3500fc29052b9 100644 (file)
@@ -1,17 +1,8 @@
 include $(top_srcdir)/build/modmake.rulesam
 MODNAME=mod_mp4v2
 
-if HAVE_VPX
-
 mod_LTLIBRARIES = mod_mp4v2.la
 mod_mp4v2_la_SOURCES  = mod_mp4v2.c
 mod_mp4v2_la_CFLAGS   = $(AM_CFLAGS)
 mod_mp4v2_la_LIBADD   = $(switch_builddir)/libfreeswitch.la
 mod_mp4v2_la_LDFLAGS  = -avoid-version -module -no-undefined -shared -lmp4v2
-
-else
-install: error
-all: error
-error:
-       $(error You must install libvpx2-dev to build mod_mp4v2)
-endif
index f71b90e482a656ba11acd7a153d6ba9a7d31485c..c541e9563f518ebaac531bbb1281b77f63048688 100644 (file)
@@ -1,8 +1,6 @@
 include $(top_srcdir)/build/modmake.rulesam
 MODNAME=mod_openh264
 
-if HAVE_VPX
-
 OPENH264_DIR=/usr/local/
 
 mod_LTLIBRARIES = mod_openh264.la
@@ -10,10 +8,3 @@ mod_openh264_la_SOURCES  = mod_openh264.cpp
 mod_openh264_la_CXXFLAGS   = $(AM_CXXFLAGS) -I$(OPENH264_DIR)/include/wels
 mod_openh264_la_LIBADD   = $(switch_builddir)/libfreeswitch.la
 mod_openh264_la_LDFLAGS  = -L$(OPENH264_DIR)/lib/ -lopenh264 -avoid-version -module -no-undefined -shared
-
-else
-install: error
-all: error
-error:
-       $(error You must install libvpx2-dev to build mod_openh264)
-endif
diff --git a/src/mod/codecs/mod_vpx/Makefile.am b/src/mod/codecs/mod_vpx/Makefile.am
deleted file mode 100644 (file)
index 780b9af..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-include $(top_srcdir)/build/modmake.rulesam
-MODNAME=mod_vpx
-
-if HAVE_VPX
-mod_LTLIBRARIES = mod_vpx.la
-mod_vpx_la_SOURCES  = mod_vpx.c
-mod_vpx_la_LIBADD   = $(switch_builddir)/libfreeswitch.la
-mod_vpx_la_CFLAGS   = $(VPX_CFLAGS) $(SWITCH_AM_CFLAGS)
-mod_vpx_la_LDFLAGS  = $(VPX_LIBS) -avoid-version -module -no-undefined -shared
-else
-install: error
-all: error
-error:
-       $(error You must install your distros libvpx-dev to build mod_vpx)
-endif
diff --git a/src/mod/codecs/mod_vpx/README b/src/mod/codecs/mod_vpx/README
deleted file mode 100644 (file)
index d2ee1f8..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-To build this module I used the following steps:
-
-apt-get install yasm
-git /usr/local/src/
-git clone https://chromium.googlesource.com/webm/libvpx
-cd libvpx/build/
-../configure --enable-pic --enable-shared
-make
-make install
index dcf49efebc458149d97503e612ccec7eccffa20d..19270b6003f0df22989609adf0da77fe609b5c6b 100644 (file)
@@ -1,7 +1,6 @@
 include $(top_srcdir)/build/modmake.rulesam
 MODNAME=mod_imagick
 
-if HAVE_VPX
 if HAVE_MAGICK
 
 mod_LTLIBRARIES = mod_imagick.la
@@ -16,10 +15,3 @@ all: error
 error:
        $(error You must install libmagickcore-dev to build mod_imagick)
 endif
-
-else
-install: error
-all: error
-error:
-       $(error You must install libvpx2-dev to build mod_imagick)
-endif
index 4c111d4793e60ddbf0bbabdd89203668aae3bceb..328fed54b9e0fee7010c91bad797137e788421e2 100644 (file)
@@ -1,7 +1,6 @@
 include $(top_srcdir)/build/modmake.rulesam
 MODNAME=mod_vlc
 
-if HAVE_VPX
 if HAVE_VLC
 
 mod_LTLIBRARIES = mod_vlc.la
@@ -16,10 +15,3 @@ all: error
 error:
        $(error You must install libvlc-dev to build mod_vlc)
 endif
-
-else
-install: error
-all: error
-error:
-       $(error You must install libvpx2-dev to build mod_vlc)
-endif
index e226b9537657d1b104bee42d35b14eea3f2ac883..3e820391bc53ebb38b2859d4507af14f40a04f4b 100644 (file)
@@ -31,8 +31,8 @@
 
 #ifdef SWITCH_HAVE_VPX
 #include "vpx/vpx_image.h"
-#if VPX_IMAGE_ABI_VERSION != (3)
-#error VPX_IMAGE_ABI_VERSION is not (3)
+#if VPX_IMAGE_ABI_VERSION != (4)
+#error VPX_IMAGE_ABI_VERSION is not (4)
 #endif
 #endif
 
index b49af923c49f5d687a697d385971da796aac66e9..9a2635fca81a1e62555406e7b46b0a91dc2d9afe 100644 (file)
@@ -1876,6 +1876,7 @@ SWITCH_DECLARE(switch_status_t) switch_loadable_module_init(switch_bool_t autolo
        switch_loadable_module_load_module("", "CORE_SOFTTIMER_MODULE", SWITCH_FALSE, &err);
        switch_loadable_module_load_module("", "CORE_PCM_MODULE", SWITCH_FALSE, &err);
        switch_loadable_module_load_module("", "CORE_SPEEX_MODULE", SWITCH_FALSE, &err);
+       switch_loadable_module_load_module("", "CORE_VPX_MODULE", SWITCH_FALSE, &err);
 
 
        if ((xml = switch_xml_open_cfg(cf, &cfg, NULL))) {
similarity index 99%
rename from src/mod/codecs/mod_vpx/mod_vpx.c
rename to src/switch_vpx.c
index 8356fce7c4ad103df9a464af76d285827e4b603d..58b7e2e147524c586f0c3daa801c655a4d7a3378 100644 (file)
@@ -241,7 +241,7 @@ static inline int IS_VP8_KEY_FRAME(uint8_t *data)
 #define IS_VP9_START_PKT(byte) ((byte) & 0x02)
 
 SWITCH_MODULE_LOAD_FUNCTION(mod_vpx_load);
-SWITCH_MODULE_DEFINITION(mod_vpx, mod_vpx_load, NULL, NULL);
+SWITCH_MODULE_DEFINITION(CORE_VPX_MODULE, mod_vpx_load, NULL, NULL);
 
 struct vpx_context {
        switch_codec_t *codec;