From owner-svn-ports-head@freebsd.org Mon Sep 19 21:58:55 2016 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 86CCCBE05A9; Mon, 19 Sep 2016 21:58:55 +0000 (UTC) (envelope-from jbeich@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 32D268E; Mon, 19 Sep 2016 21:58:55 +0000 (UTC) (envelope-from jbeich@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u8JLwsOd066605; Mon, 19 Sep 2016 21:58:54 GMT (envelope-from jbeich@FreeBSD.org) Received: (from jbeich@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u8JLwrhj066595; Mon, 19 Sep 2016 21:58:53 GMT (envelope-from jbeich@FreeBSD.org) Message-Id: <201609192158.u8JLwrhj066595@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jbeich set sender to jbeich@FreeBSD.org using -f From: Jan Beich Date: Mon, 19 Sep 2016 21:58:53 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r422465 - in head: mail/thunderbird mail/thunderbird/files www/firefox www/firefox-esr www/firefox-esr/files www/firefox/files www/libxul www/libxul/files www/seamonkey www/seamonkey/files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Sep 2016 21:58:55 -0000 Author: jbeich Date: Mon Sep 19 21:58:53 2016 New Revision: 422465 URL: https://svnweb.freebsd.org/changeset/ports/422465 Log: 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 Modified: head/mail/thunderbird/Makefile (contents, props changed) head/mail/thunderbird/files/patch-bug1021761 (contents, props changed) head/www/firefox-esr/Makefile (contents, props changed) head/www/firefox-esr/files/patch-bug1021761 (contents, props changed) head/www/firefox/Makefile (contents, props changed) head/www/firefox/files/patch-bug1021761 (contents, props changed) head/www/libxul/Makefile (contents, props changed) head/www/libxul/files/patch-bug1021761 (contents, props changed) head/www/seamonkey/Makefile (contents, props changed) head/www/seamonkey/files/patch-bug1021761 (contents, props changed) Modified: head/mail/thunderbird/Makefile ============================================================================== --- head/mail/thunderbird/Makefile Mon Sep 19 21:58:39 2016 (r422464) +++ head/mail/thunderbird/Makefile Mon Sep 19 21:58:53 2016 (r422465) @@ -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 Modified: head/mail/thunderbird/files/patch-bug1021761 ============================================================================== --- head/mail/thunderbird/files/patch-bug1021761 Mon Sep 19 21:58:39 2016 (r422464) +++ head/mail/thunderbird/files/patch-bug1021761 Mon Sep 19 21:58:53 2016 (r422465) @@ -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; ifloating) { + 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 Modified: head/www/firefox-esr/Makefile ============================================================================== --- head/www/firefox-esr/Makefile Mon Sep 19 21:58:39 2016 (r422464) +++ head/www/firefox-esr/Makefile Mon Sep 19 21:58:53 2016 (r422465) @@ -4,7 +4,7 @@ PORTNAME= firefox DISTVERSION= 45.4.0 DISTVERSIONSUFFIX=esr.source -PORTREVISION= 2 +PORTREVISION= 3 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \ Modified: head/www/firefox-esr/files/patch-bug1021761 ============================================================================== --- head/www/firefox-esr/files/patch-bug1021761 Mon Sep 19 21:58:39 2016 (r422464) +++ head/www/firefox-esr/files/patch-bug1021761 Mon Sep 19 21:58:53 2016 (r422465) @@ -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 +++ 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; ifloating) { + 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 +--- media/libcubeb/tests/moz.build ++++ 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 +--- media/libcubeb/update.sh ++++ 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 --- media/webrtc/signaling/test/common.build Modified: head/www/firefox/Makefile ============================================================================== --- head/www/firefox/Makefile Mon Sep 19 21:58:39 2016 (r422464) +++ head/www/firefox/Makefile Mon Sep 19 21:58:53 2016 (r422465) @@ -4,7 +4,7 @@ PORTNAME= firefox DISTVERSION= 49.0 DISTVERSIONSUFFIX=.source -PORTREVISION= 4 +PORTREVISION= 5 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ Modified: head/www/firefox/files/patch-bug1021761 ============================================================================== --- head/www/firefox/files/patch-bug1021761 Mon Sep 19 21:58:39 2016 (r422464) +++ head/www/firefox/files/patch-bug1021761 Mon Sep 19 21:58:53 2016 (r422465) @@ -23,7 +23,7 @@ index 48e60c0..ec08417 100644 + +dnl If using Linux, Solaris or BSDs, ensure that OSS is available +case "$OS_TARGET" in -+Linux|SunOS|DragonFly|FreeBSD|GNU/kFreeBSD) ++Linux|SunOS|DragonFly|FreeBSD|NetBSD|GNU/kFreeBSD) + MOZ_OSS=1 + ;; +esac @@ -63,7 +63,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 @@ -653,7 +653,7 @@ new file mode 100644 index 0000000..5e38e27 --- /dev/null +++ media/libcubeb/src/cubeb_oss.c -@@ -0,0 +1,412 @@ +@@ -0,0 +1,442 @@ +/* + * Copyright © 2014 Mozilla Foundation + * @@ -780,8 +780,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; @@ -799,6 +799,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; ifloating) { + 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; @@ -911,9 +941,9 @@ index 0000000..5e38e27 + oss_try_set_latency(stream, latency); + + stream->floating = 0; -+ SET(SNDCTL_DSP_CHANNELS, output_stream_params->channels); -+ SET(SNDCTL_DSP_SPEED, output_stream_params->rate); -+ switch (output_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; @@ -1090,6 +1120,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 +--- media/libcubeb/tests/moz.build ++++ 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 +--- media/libcubeb/update.sh ++++ 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 --- media/webrtc/signaling/test/common.build Modified: head/www/libxul/Makefile ============================================================================== --- head/www/libxul/Makefile Mon Sep 19 21:58:39 2016 (r422464) +++ head/www/libxul/Makefile Mon Sep 19 21:58:53 2016 (r422465) @@ -3,7 +3,7 @@ PORTNAME= libxul DISTVERSION= 45.4.0 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES?= www devel MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/source \ MOZILLA/firefox/candidates/${DISTVERSION}esr-candidates/build2/source Modified: head/www/libxul/files/patch-bug1021761 ============================================================================== --- head/www/libxul/files/patch-bug1021761 Mon Sep 19 21:58:39 2016 (r422464) +++ head/www/libxul/files/patch-bug1021761 Mon Sep 19 21:58:53 2016 (r422465) @@ -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 +++ 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; ifloating) { + 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 +--- media/libcubeb/tests/moz.build ++++ 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 +--- media/libcubeb/update.sh ++++ 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 --- media/webrtc/signaling/test/common.build Modified: head/www/seamonkey/Makefile ============================================================================== --- head/www/seamonkey/Makefile Mon Sep 19 21:58:39 2016 (r422464) +++ head/www/seamonkey/Makefile Mon Sep 19 21:58:53 2016 (r422465) @@ -4,7 +4,7 @@ PORTNAME= seamonkey DISTVERSION= 2.39 MOZILLA_VER= 42 # above + 3 -PORTREVISION= 12 +PORTREVISION= 13 CATEGORIES?= www mail news editors irc ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source Modified: head/www/seamonkey/files/patch-bug1021761 ============================================================================== --- head/www/seamonkey/files/patch-bug1021761 Mon Sep 19 21:58:39 2016 (r422464) +++ head/www/seamonkey/files/patch-bug1021761 Mon Sep 19 21:58:53 2016 (r422465) @@ -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 @@ -562,7 +562,7 @@ index a962553..1f780f4 100644 /* get a pcm, disabling resampling, so we get a rate the * hardware/dmix/pulse/etc. supports. */ - r = snd_pcm_open(&pcm, "default", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); -+ r = WRAP(snd_pcm_open)(&pcm, "default", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); ++ r = WRAP(snd_pcm_open)(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0); if (r < 0) { return CUBEB_ERROR; } @@ -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; ifloating) { + 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