aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
authorjbeich <jbeich@FreeBSD.org>2016-09-20 05:58:53 +0800
committerjbeich <jbeich@FreeBSD.org>2016-09-20 05:58:53 +0800
commitf78c314fb7b48eaf0d75b78761a1d599cab33b97 (patch)
tree81c47587275f8be50c263ea870820f9ebbada17b /mail
parent6f2fed31b32fa9ed84956bcaf1519e9a43b27825 (diff)
downloadfreebsd-ports-gnome-f78c314fb7b48eaf0d75b78761a1d599cab33b97.tar.gz
freebsd-ports-gnome-f78c314fb7b48eaf0d75b78761a1d599cab33b97.tar.zst
freebsd-ports-gnome-f78c314fb7b48eaf0d75b78761a1d599cab33b97.zip
gecko: update OSS fallback for HTML5 audio
To test deinstall alsa-lib (and pulseaudio) after installing firefox/seamonkey/etc. Before OSS can be exposed as an option WebRTC has to either support it as well or pass build without any audio backends. Changes: https://bugzilla.mozilla.org/show_bug.cgi?id=1021761#c67
Diffstat (limited to 'mail')
-rw-r--r--mail/thunderbird/Makefile2
-rw-r--r--mail/thunderbird/files/patch-bug102176175
2 files changed, 66 insertions, 11 deletions
diff --git a/mail/thunderbird/Makefile b/mail/thunderbird/Makefile
index 6099959b47a9..ad547dcdaf5d 100644
--- a/mail/thunderbird/Makefile
+++ b/mail/thunderbird/Makefile
@@ -3,7 +3,7 @@
PORTNAME= thunderbird
DISTVERSION= 45.3.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= mail news net-im ipv6
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source
diff --git a/mail/thunderbird/files/patch-bug1021761 b/mail/thunderbird/files/patch-bug1021761
index 7cd9cfb5d77f..826912b321c9 100644
--- a/mail/thunderbird/files/patch-bug1021761
+++ b/mail/thunderbird/files/patch-bug1021761
@@ -51,7 +51,7 @@ index 48e60c0..ec08417 100644
+
+ if test "$ac_cv_header_sys_soundcard_h" != "yes" -a \
+ "$ac_cv_header_soundcard_h" != "yes"; then
-+ AC_MSG_ERROR([Need OSS for Ogg, Wave or WebM decoding on $OS_TARGET. Disable with --disable-ogg --disable-wave --disable-webm.])
++ AC_MSG_ERROR([Need OSS for Ogg, Wave or WebM decoding on $OS_TARGET. Disable with --without-oss.])
+ fi
+
+ dnl Assume NetBSD implementation over SunAudio
@@ -643,7 +643,7 @@ new file mode 100644
index 0000000..5e38e27
--- /dev/null
+++ mozilla/media/libcubeb/src/cubeb_oss.c
-@@ -0,0 +1,402 @@
+@@ -0,0 +1,432 @@
+/*
+ * Copyright © 2014 Mozilla Foundation
+ *
@@ -769,8 +769,8 @@ index 0000000..5e38e27
+ return got;
+}
+
-+static void apply_volume(int16_t* buffer, unsigned int n,
-+ float volume, float panning)
++static void apply_volume_int(int16_t* buffer, unsigned int n,
++ float volume, float panning)
+{
+ float left = volume;
+ float right = volume;
@@ -788,6 +788,26 @@ index 0000000..5e38e27
+ }
+}
+
++static void apply_volume_float(float* buffer, unsigned int n,
++ float volume, float panning)
++{
++ float left = volume;
++ float right = volume;
++ unsigned int i;
++ float pan[2];
++ if (panning<0) {
++ right *= (1+panning);
++ } else {
++ left *= (1-panning);
++ }
++ pan[0] = left;
++ pan[1] = right;
++ for(i=0; i<n; i++){
++ buffer[i] = buffer[i]*pan[i%2];
++ }
++}
++
++
+static void *writer(void *stm)
+{
+ cubeb_stream* stream = (cubeb_stream*)stm;
@@ -812,15 +832,25 @@ index 0000000..5e38e27
+ if (stream->floating) {
+ got = run_data_callback(stream, f_buffer,
+ OSS_BUFFER_SIZE/stream->params.channels);
++ apply_volume_float(f_buffer, got*stream->params.channels,
++ stream->volume, stream->panning);
+ for (i=0; i<((unsigned long)got)*stream->params.channels; i++) {
-+ buffer[i] = f_buffer[i]*32767.0;
++ /* Clipping is prefered to overflow */
++ if(f_buffer[i]>=1.0){
++ f_buffer[i]=1.0;
++ }
++ if(f_buffer[i]<=-1.0){
++ f_buffer[i]=-1.0;
++ }
++ /* One might think that multipling by 32767.0 is logical but results in clipping */
++ buffer[i] = f_buffer[i]*32767.0;
+ }
+ } else {
+ got = run_data_callback(stream, buffer,
+ OSS_BUFFER_SIZE/stream->params.channels);
++ apply_volume_int(buffer, got*stream->params.channels,
++ stream->volume, stream->panning);
+ }
-+ apply_volume(buffer, got*stream->params.channels,
-+ stream->volume, stream->panning);
+ if (got<0) {
+ run_state_callback(stream, CUBEB_STATE_ERROR);
+ break;
@@ -891,9 +921,9 @@ index 0000000..5e38e27
+ oss_try_set_latency(stream, latency);
+
+ stream->floating = 0;
-+ SET(SNDCTL_DSP_CHANNELS, stream_params.channels);
-+ SET(SNDCTL_DSP_SPEED, stream_params.rate);
-+ switch (stream_params.format) {
++ SET(SNDCTL_DSP_CHANNELS, stream->params.channels);
++ SET(SNDCTL_DSP_SPEED, stream->params.rate);
++ switch (stream->params.format) {
+ case CUBEB_SAMPLE_S16LE:
+ SET(SNDCTL_DSP_SETFMT, AFMT_S16_LE);
+ break;
@@ -1070,6 +1100,31 @@ index 8b7a0dd..31212ce 100644
+CFLAGS += CONFIG['MOZ_OSS_CFLAGS']
CFLAGS += CONFIG['MOZ_ALSA_CFLAGS']
CFLAGS += CONFIG['MOZ_PULSEAUDIO_CFLAGS']
+
+diff --git media/libcubeb/tests/moz.build media/libcubeb/tests/moz.build
+index 1b17c7b..48b56c2 100644
+--- mozilla/media/libcubeb/tests/moz.build
++++ mozilla/media/libcubeb/tests/moz.build
+@@ -73,7 +73,6 @@ elif CONFIG['OS_TARGET'] == 'OpenBSD':
+ 'sndio',
+ ]
+ else:
+- OS_LIBS += CONFIG['MOZ_ALSA_LIBS']
+ OS_LIBS += CONFIG['MOZ_PULSEAUDIO_LIBS']
+
+ if CONFIG['GNU_CXX']:
+diff --git media/libcubeb/update.sh media/libcubeb/update.sh
+index a96badd..2f9585e 100755
+--- mozilla/media/libcubeb/update.sh
++++ mozilla/media/libcubeb/update.sh
+@@ -10,6 +10,7 @@ cp $1/src/cubeb_audiounit.c src
+ cp $1/src/cubeb_pulse.c src
+ cp $1/src/cubeb_sndio.c src
+ cp $1/src/cubeb_opensl.c src
++cp $1/src/cubeb_oss.c src
+ cp $1/src/cubeb_audiotrack.c src
+ cp $1/src/cubeb_wasapi.cpp src
+ cp $1/src/cubeb_resampler.h src
diff --git media/webrtc/signaling/test/common.build media/webrtc/signaling/test/common.build
index 991f03f..3d99eb5 100644
--- mozilla/media/webrtc/signaling/test/common.build