mirror of
https://github.com/beard7n/bsdports.git
synced 2026-04-15 21:11:17 +02:00
445 lines
14 KiB
Plaintext
445 lines
14 KiB
Plaintext
# Allow more config/external/ libs built against system-wide version.
|
|
|
|
diff --git config/Makefile.in config/Makefile.in
|
|
index 5383399..0410004 100644
|
|
--- config/Makefile.in
|
|
+++ config/Makefile.in
|
|
@@ -77,6 +77,11 @@ export:: $(export-preqs)
|
|
-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
|
|
-DMOZ_NATIVE_GRAPHITE2=$(MOZ_NATIVE_GRAPHITE2) \
|
|
-DMOZ_NATIVE_HARFBUZZ=$(MOZ_NATIVE_HARFBUZZ) \
|
|
+ -DMOZ_NATIVE_OGG=$(MOZ_NATIVE_OGG) \
|
|
+ -DMOZ_NATIVE_THEORA=$(MOZ_NATIVE_THEORA) \
|
|
+ -DMOZ_NATIVE_VORBIS=$(MOZ_NATIVE_VORBIS) \
|
|
+ -DMOZ_NATIVE_TREMOR=$(MOZ_NATIVE_TREMOR) \
|
|
+ -DMOZ_NATIVE_SOUNDTOUCH=$(MOZ_NATIVE_SOUNDTOUCH) \
|
|
$(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers
|
|
$(INSTALL) system_wrappers $(DIST)
|
|
|
|
diff --git config/external/moz.build config/external/moz.build
|
|
index f67c5c7..eb909ce 100644
|
|
--- config/external/moz.build
|
|
+++ config/external/moz.build
|
|
@@ -19,10 +19,16 @@ if CONFIG['MOZ_UPDATER']:
|
|
# There's no "native brotli" yet, but probably in the future...
|
|
external_dirs += ['modules/brotli']
|
|
|
|
-if CONFIG['MOZ_VORBIS']:
|
|
+if not CONFIG['MOZ_NATIVE_OGG']:
|
|
+ external_dirs += ['media/libogg']
|
|
+
|
|
+if not CONFIG['MOZ_NATIVE_THEORA']:
|
|
+ external_dirs += ['media/libtheora']
|
|
+
|
|
+if CONFIG['MOZ_VORBIS'] and not CONFIG['MOZ_NATIVE_VORBIS']:
|
|
external_dirs += ['media/libvorbis']
|
|
|
|
-if CONFIG['MOZ_TREMOR']:
|
|
+if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_NATIVE_TREMOR']:
|
|
external_dirs += ['media/libtremor']
|
|
|
|
if CONFIG['MOZ_WEBM']:
|
|
@@ -37,15 +46,15 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ
|
|
if not CONFIG['MOZ_NATIVE_PNG']:
|
|
external_dirs += ['media/libpng']
|
|
|
|
+if not CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
|
|
+ external_dirs += ['media/libsoundtouch']
|
|
+
|
|
external_dirs += [
|
|
'media/kiss_fft',
|
|
'media/libcubeb',
|
|
- 'media/libogg',
|
|
'media/libopus',
|
|
- 'media/libtheora',
|
|
'media/libspeex_resampler',
|
|
'media/libstagefright',
|
|
- 'media/libsoundtouch',
|
|
]
|
|
|
|
DIRS += ['../../' + i for i in external_dirs]
|
|
diff --git config/system-headers config/system-headers
|
|
index bef567c..9807c29 100644
|
|
--- config/system-headers
|
|
+++ config/system-headers
|
|
@@ -1364,3 +1363,17 @@ graphite2/Segment.h
|
|
harfbuzz/hb-ot.h
|
|
harfbuzz/hb.h
|
|
#endif
|
|
+#if MOZ_NATIVE_OGG==1
|
|
+ogg/ogg.h
|
|
+ogg/os_types.h
|
|
+#endif
|
|
+#if MOZ_NATIVE_THEORA==1
|
|
+theora/theoradec.h
|
|
+#endif
|
|
+#if MOZ_NATIVE_VORBIS==1
|
|
+vorbis/codec.h
|
|
+vorbis/vorbisenc.h
|
|
+#endif
|
|
+#if MOZ_NATIVE_TREMOR==1
|
|
+tremor/ivorbiscodec.h
|
|
+#endif
|
|
diff --git configure.in configure.in
|
|
index 87db361..7947626 100644
|
|
--- configure.in
|
|
+++ configure.in
|
|
@@ -5223,6 +5223,111 @@ if test "${ac_cv_c_attribute_aligned}" !
|
|
fi
|
|
|
|
dnl ========================================================
|
|
+dnl Check for libogg
|
|
+dnl ========================================================
|
|
+
|
|
+MOZ_ARG_WITH_BOOL(system-ogg,
|
|
+[ --with-system-ogg Use system libogg (located with pkgconfig)],
|
|
+MOZ_NATIVE_OGG=1,
|
|
+MOZ_NATIVE_OGG=)
|
|
+
|
|
+if test -n "$MOZ_NATIVE_OGG"; then
|
|
+ PKG_CHECK_MODULES(MOZ_OGG, ogg >= 1.2.1)
|
|
+
|
|
+ _SAVE_LIBS=$LIBS
|
|
+ LIBS="$LIBS $MOZ_OGG_LIBS"
|
|
+ AC_CHECK_FUNC(ogg_set_mem_functions, [],
|
|
+ [AC_DEFINE(MOZ_OGG_NO_MEM_REPORTING)])
|
|
+ LIBS=$_SAVE_LIBS
|
|
+fi
|
|
+
|
|
+AC_SUBST(MOZ_NATIVE_OGG)
|
|
+
|
|
+dnl ========================================================
|
|
+dnl Check for libvorbis
|
|
+dnl ========================================================
|
|
+
|
|
+MOZ_ARG_WITH_BOOL(system-vorbis,
|
|
+[ --with-system-vorbis Use system libvorbis (located with pkgconfig)],
|
|
+MOZ_NATIVE_VORBIS=1,
|
|
+MOZ_NATIVE_VORBIS=)
|
|
+
|
|
+if test -n "$MOZ_NATIVE_VORBIS"; then
|
|
+ PKG_CHECK_MODULES(MOZ_VORBIS, vorbis vorbisenc >= 1.3.5)
|
|
+fi
|
|
+
|
|
+AC_SUBST(MOZ_NATIVE_VORBIS)
|
|
+
|
|
+dnl ========================================================
|
|
+dnl Check for integer-only libvorbis aka tremor
|
|
+dnl ========================================================
|
|
+
|
|
+MOZ_ARG_WITH_BOOL(system-tremor,
|
|
+[ --with-system-tremor Use system libtremor (located with pkgconfig)],
|
|
+MOZ_NATIVE_TREMOR=1,
|
|
+MOZ_NATIVE_TREMOR=)
|
|
+
|
|
+if test -n "$MOZ_NATIVE_TREMOR"; then
|
|
+ PKG_CHECK_MODULES(MOZ_TREMOR, vorbisidec >= 1.2.1)
|
|
+fi
|
|
+
|
|
+AC_SUBST(MOZ_NATIVE_TREMOR)
|
|
+
|
|
+dnl ========================================================
|
|
+dnl Check for libtheora
|
|
+dnl ========================================================
|
|
+
|
|
+MOZ_ARG_WITH_BOOL(system-theora,
|
|
+[ --with-system-theora Use system libtheora (located with pkgconfig)],
|
|
+MOZ_NATIVE_THEORA=1,
|
|
+MOZ_NATIVE_THEORA=)
|
|
+
|
|
+if test -n "$MOZ_NATIVE_THEORA"; then
|
|
+ PKG_CHECK_MODULES(MOZ_THEORA, theora >= 1.2)
|
|
+fi
|
|
+
|
|
+AC_SUBST(MOZ_NATIVE_THEORA)
|
|
+
|
|
+dnl ========================================================
|
|
+dnl Check for libSoundTouch
|
|
+dnl ========================================================
|
|
+
|
|
+MOZ_ARG_WITH_BOOL(system-soundtouch,
|
|
+[ --with-system-soundtouch Use system libSoundTouch (located with pkgconfig)],
|
|
+MOZ_NATIVE_SOUNDTOUCH=1,
|
|
+MOZ_NATIVE_SOUNDTOUCH=)
|
|
+
|
|
+if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then
|
|
+ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.9.0)
|
|
+
|
|
+ AC_LANG_SAVE
|
|
+ AC_LANG_CPLUSPLUS
|
|
+ _SAVE_CXXFLAGS=$CXXFLAGS
|
|
+ CXXFLAGS="$CXXFLAGS $MOZ_SOUNDTOUCH_CFLAGS"
|
|
+ AC_CACHE_CHECK(for soundtouch sample type,
|
|
+ ac_cv_soundtouch_sample_type,
|
|
+ [AC_TRY_COMPILE([#include <SoundTouch.h>
|
|
+ #ifndef SOUNDTOUCH_INTEGER_SAMPLES
|
|
+ #error soundtouch expects float samples
|
|
+ #endif],
|
|
+ [],
|
|
+ [ac_cv_soundtouch_sample_type=short],
|
|
+ [ac_cv_soundtouch_sample_type=float])])
|
|
+ CXXFLAGS=$_SAVE_CXXFLAGS
|
|
+ AC_LANG_RESTORE
|
|
+
|
|
+ if test \( -n "$MOZ_SAMPLE_TYPE_S16" -a "$ac_cv_soundtouch_sample_type" != short \) \
|
|
+ -o \( -n "$MOZ_SAMPLE_TYPE_FLOAT32" -a "$ac_cv_soundtouch_sample_type" != float \) ; then
|
|
+ AC_MSG_ERROR([SoundTouch library is built with incompatible sample type. Either rebuild the library with/without --enable-integer-samples, chase default Mozilla sample type or remove --with-system-soundtouch.])
|
|
+ fi
|
|
+fi
|
|
+
|
|
+if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then
|
|
+ AC_DEFINE(MOZ_NATIVE_SOUNDTOUCH)
|
|
+fi
|
|
+AC_SUBST(MOZ_NATIVE_SOUNDTOUCH)
|
|
+
|
|
+dnl ========================================================
|
|
dnl = Disable VP8 decoder support
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(webm,
|
|
diff --git dom/media/AudioStream.cpp dom/media/AudioStream.cpp
|
|
index 2127256..1ec09fe 100644
|
|
--- dom/media/AudioStream.cpp
|
|
+++ dom/media/AudioStream.cpp
|
|
@@ -129,7 +129,9 @@ AudioStream::AudioStream()
|
|
, mOutChannels(0)
|
|
, mWritten(0)
|
|
, mAudioClock(this)
|
|
+#ifndef MOZ_NATIVE_SOUNDTOUCH
|
|
, mTimeStretcher(nullptr)
|
|
+#endif
|
|
, mDumpFile(nullptr)
|
|
, mBytesPerFrame(0)
|
|
, mState(INITIALIZED)
|
|
@@ -152,9 +154,11 @@ AudioStream::~AudioStream()
|
|
if (mDumpFile) {
|
|
fclose(mDumpFile);
|
|
}
|
|
+#ifndef MOZ_NATIVE_SOUNDTOUCH
|
|
if (mTimeStretcher) {
|
|
soundtouch::destroySoundTouchObj(mTimeStretcher);
|
|
}
|
|
+#endif
|
|
}
|
|
|
|
size_t
|
|
@@ -177,7 +181,11 @@ nsresult AudioStream::EnsureTimeStretcherInitializedUnlocked()
|
|
{
|
|
mMonitor.AssertCurrentThreadOwns();
|
|
if (!mTimeStretcher) {
|
|
+#ifdef MOZ_NATIVE_SOUNDTOUCH
|
|
+ mTimeStretcher = new soundtouch::SoundTouch();
|
|
+#else
|
|
mTimeStretcher = soundtouch::createSoundTouchObj();
|
|
+#endif
|
|
mTimeStretcher->setSampleRate(mInRate);
|
|
mTimeStretcher->setChannels(mOutChannels);
|
|
mTimeStretcher->setPitch(1.0);
|
|
diff --git dom/media/AudioStream.h dom/media/AudioStream.h
|
|
index a552e3e..02b80b1 100644
|
|
--- dom/media/AudioStream.h
|
|
+++ dom/media/AudioStream.h
|
|
@@ -15,7 +15,11 @@
|
|
#include "mozilla/RefPtr.h"
|
|
#include "mozilla/UniquePtr.h"
|
|
#include "CubebUtils.h"
|
|
+#ifdef MOZ_NATIVE_SOUNDTOUCH
|
|
+#include "soundtouch/SoundTouch.h"
|
|
+#else
|
|
#include "soundtouch/SoundTouchFactory.h"
|
|
+#endif
|
|
|
|
namespace mozilla {
|
|
|
|
@@ -277,7 +277,11 @@ private:
|
|
// Number of frames written to the buffers.
|
|
int64_t mWritten;
|
|
AudioClock mAudioClock;
|
|
+#ifdef MOZ_NATIVE_SOUNDTOUCH
|
|
+ nsAutoPtr<soundtouch::SoundTouch> mTimeStretcher;
|
|
+#else
|
|
soundtouch::SoundTouch* mTimeStretcher;
|
|
+#endif
|
|
|
|
// Stream start time for stream open delay telemetry.
|
|
TimeStamp mStartTime;
|
|
diff --git dom/media/moz.build dom/media/moz.build
|
|
index 7526cff..e0a0ca0 100644
|
|
--- dom/media/moz.build
|
|
+++ dom/media/moz.build
|
|
@@ -212,3 +212,18 @@ if CONFIG['ANDROID_VERSION'] > '15':
|
|
|
|
CFLAGS += CONFIG['GSTREAMER_CFLAGS']
|
|
CXXFLAGS += CONFIG['GSTREAMER_CFLAGS']
|
|
+
|
|
+if CONFIG['MOZ_NATIVE_OGG']:
|
|
+ CXXFLAGS += CONFIG['MOZ_OGG_CFLAGS']
|
|
+
|
|
+if CONFIG['MOZ_NATIVE_THEORA']:
|
|
+ CXXFLAGS += CONFIG['MOZ_THEORA_CFLAGS']
|
|
+
|
|
+if CONFIG['MOZ_NATIVE_VORBIS']:
|
|
+ CXXFLAGS += CONFIG['MOZ_VORBIS_CFLAGS']
|
|
+
|
|
+if CONFIG['MOZ_NATIVE_TREMOR']:
|
|
+ CXXFLAGS += CONFIG['MOZ_TREMOR_CFLAGS']
|
|
+
|
|
+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
|
|
+ CXXFLAGS += CONFIG['MOZ_SOUNDTOUCH_CFLAGS']
|
|
diff --git media/libogg/README_MOZILLA media/libogg/README_MOZILLA
|
|
index 0833e4d..7ece97b 100644
|
|
--- media/libogg/README_MOZILLA
|
|
+++ media/libogg/README_MOZILLA
|
|
@@ -6,3 +6,6 @@ The svn revision number used was r17287.
|
|
The int-types.patch address a bug that config_types.h generated from
|
|
Linux platform can't be used on OpenSolaris directly see Mozilla bug
|
|
449754
|
|
+
|
|
+The in-tree copy may be omitted during build by --with-system-ogg.
|
|
+Keep version in configure.in in sync on updates.
|
|
diff --git media/libsoundtouch/README_MOZILLA media/libsoundtouch/README_MOZILLA
|
|
index bfd4b1a..15b158d 100644
|
|
--- media/libsoundtouch/README_MOZILLA
|
|
+++ media/libsoundtouch/README_MOZILLA
|
|
@@ -6,3 +6,5 @@ The whole library is not used, only the relevant files are imported in the tree,
|
|
using the script `update.sh`. Some changes have been made to the files, using
|
|
the patch `moz-libsoundtouch.patch`. We also use a custom soundtouch_config.h.
|
|
|
|
+The in-tree copy may be omitted during build by --with-system-soundtouch.
|
|
+Keep version in configure.in in sync on updates.
|
|
diff --git media/libsoundtouch/src/soundtouch_perms.h media/libsoundtouch/src/soundtouch_perms.h
|
|
index 0af2fe6..d80c145 100644
|
|
--- media/libsoundtouch/src/soundtouch_perms.h
|
|
+++ media/libsoundtouch/src/soundtouch_perms.h
|
|
@@ -12,7 +12,9 @@
|
|
|
|
#pragma GCC visibility push(default)
|
|
#include "SoundTouch.h"
|
|
+#ifndef MOZ_NATIVE_SOUNDTOUCH
|
|
#include "SoundTouchFactory.h"
|
|
+#endif
|
|
#pragma GCC visibility pop
|
|
|
|
#endif // MOZILLA_SOUNDTOUCH_PERMS_H
|
|
diff --git media/libtheora/README_MOZILLA media/libtheora/README_MOZILLA
|
|
index d48dbfa..f08a2ed 100644
|
|
--- media/libtheora/README_MOZILLA
|
|
+++ media/libtheora/README_MOZILLA
|
|
@@ -3,3 +3,6 @@ using the update.sh script. The changes made were those applied by update.sh,
|
|
the addition/update of Makefile.in files for the Mozilla build system.
|
|
|
|
The subversion revision used was r17578.
|
|
+
|
|
+The in-tree copy may be omitted during build by --with-system-theora.
|
|
+Keep version in configure.in in sync on updates.
|
|
diff --git media/libtheora/moz.build media/libtheora/moz.build
|
|
index 14265b1..3069e99 100644
|
|
--- media/libtheora/moz.build
|
|
+++ media/libtheora/moz.build
|
|
@@ -21,6 +21,9 @@ if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
|
|
# The encoder is currently not included.
|
|
DEFINES['THEORA_DISABLE_ENCODE'] = True
|
|
|
|
+if CONFIG['MOZ_NATIVE_OGG']:
|
|
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
|
|
+
|
|
# Suppress warnings in third-party code.
|
|
if CONFIG['GNU_CC']:
|
|
CFLAGS += ['-Wno-type-limits']
|
|
diff --git media/libtremor/README_MOZILLA media/libtremor/README_MOZILLA
|
|
index ee67b53..3f34a09 100644
|
|
--- media/libtremor/README_MOZILLA
|
|
+++ media/libtremor/README_MOZILLA
|
|
@@ -5,3 +5,6 @@ Makefile.in files for the Mozilla build system.
|
|
|
|
The upstream release used was http://svn.xiph.org/trunk/Tremor/
|
|
The subversion revision used was r17547.
|
|
+
|
|
+The in-tree copy may be omitted during build by --with-system-tremor.
|
|
+Keep version in configure.in in sync on updates.
|
|
diff --git media/libtremor/moz.build media/libtremor/moz.build
|
|
index 31831ba..a03d576 100644
|
|
--- media/libtremor/moz.build
|
|
+++ media/libtremor/moz.build
|
|
@@ -6,3 +6,5 @@
|
|
|
|
DIRS += ['include/tremor', 'lib']
|
|
|
|
+if CONFIG['MOZ_NATIVE_OGG']:
|
|
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
|
|
diff --git media/libvorbis/README_MOZILLA media/libvorbis/README_MOZILLA
|
|
index 7c7454c..55baedd 100644
|
|
--- media/libvorbis/README_MOZILLA
|
|
+++ media/libvorbis/README_MOZILLA
|
|
@@ -8,3 +8,6 @@ https://svn.xiph.org/tags/vorbis/libvorbis-1.3.4@19059
|
|
|
|
Some files are renamed during the copy to prevent clashes with object
|
|
file names with other Mozilla libraries.
|
|
+
|
|
+The in-tree copy may be omitted during build by --with-system-vorbis.
|
|
+Keep version in configure.in in sync on updates.
|
|
diff --git media/libvorbis/moz.build media/libvorbis/moz.build
|
|
index 919b99e..cc776f7 100644
|
|
--- media/libvorbis/moz.build
|
|
+++ media/libvorbis/moz.build
|
|
@@ -55,3 +55,6 @@ FINAL_LIBRARY = 'gkmedias'
|
|
# Suppress warnings in third-party code.
|
|
if CONFIG['GNU_CC']:
|
|
CFLAGS += ['-Wno-uninitialized']
|
|
+
|
|
+if CONFIG['MOZ_NATIVE_OGG']:
|
|
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
|
|
diff --git toolkit/library/moz.build toolkit/library/moz.build
|
|
index d42137a..695e75a8 100644
|
|
--- toolkit/library/moz.build
|
|
+++ toolkit/library/moz.build
|
|
@@ -178,6 +178,21 @@ if CONFIG['MOZ_NATIVE_PNG']:
|
|
if CONFIG['MOZ_NATIVE_HUNSPELL']:
|
|
OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']
|
|
|
|
+if CONFIG['MOZ_NATIVE_OGG']:
|
|
+ OS_LIBS += CONFIG['MOZ_OGG_LIBS']
|
|
+
|
|
+if CONFIG['MOZ_NATIVE_THEORA']:
|
|
+ OS_LIBS += CONFIG['MOZ_THEORA_LIBS']
|
|
+
|
|
+if CONFIG['MOZ_NATIVE_VORBIS']:
|
|
+ OS_LIBS += CONFIG['MOZ_VORBIS_LIBS']
|
|
+
|
|
+if CONFIG['MOZ_NATIVE_TREMOR']:
|
|
+ OS_LIBS += CONFIG['MOZ_TREMOR_LIBS']
|
|
+
|
|
+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
|
|
+ OS_LIBS += CONFIG['MOZ_SOUNDTOUCH_LIBS']
|
|
+
|
|
if CONFIG['MOZ_NATIVE_LIBEVENT']:
|
|
OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS']
|
|
|
|
diff --git xpcom/build/XPCOMInit.cpp xpcom/build/XPCOMInit.cpp
|
|
index 2cf281e..6d7af0e 100644
|
|
--- xpcom/build/XPCOMInit.cpp
|
|
+++ xpcom/build/XPCOMInit.cpp
|
|
@@ -138,7 +138,9 @@ extern nsresult nsStringInputStreamConstructor(nsISupports*, REFNSIID, void**);
|
|
#include "mozilla/VisualEventTracer.h"
|
|
#endif
|
|
|
|
+#ifndef MOZ_OGG_NO_MEM_REPORTING
|
|
#include "ogg/ogg.h"
|
|
+#endif
|
|
#if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
|
|
#include "vpx_mem/vpx_mem.h"
|
|
#endif
|
|
@@ -651,11 +653,13 @@ NS_InitXPCOM2(nsIServiceManager** aResult,
|
|
// this oddness.
|
|
mozilla::SetICUMemoryFunctions();
|
|
|
|
+#ifndef MOZ_OGG_NO_MEM_REPORTING
|
|
// Do the same for libogg.
|
|
ogg_set_mem_functions(OggReporter::CountingMalloc,
|
|
OggReporter::CountingCalloc,
|
|
OggReporter::CountingRealloc,
|
|
OggReporter::CountingFree);
|
|
+#endif
|
|
|
|
#if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
|
|
// And for VPX.
|