summaryrefslogtreecommitdiff
path: root/www/firefox/files/patch-bug1687487
diff options
context:
space:
mode:
Diffstat (limited to 'www/firefox/files/patch-bug1687487')
-rw-r--r--www/firefox/files/patch-bug1687487159
1 files changed, 0 insertions, 159 deletions
diff --git a/www/firefox/files/patch-bug1687487 b/www/firefox/files/patch-bug1687487
deleted file mode 100644
index fcccbead6880..000000000000
--- a/www/firefox/files/patch-bug1687487
+++ /dev/null
@@ -1,159 +0,0 @@
-commit f48008ba21c0
-Author: Paul Adenot <paul@paul.cx>
-Date: Tue Jan 19 07:04:00 2021 -0800
-
- Bug 1687487 - Update libcubeb to 4a83932. r=kinetik
----
- media/libcubeb/moz.yaml | 2 +-
- media/libcubeb/src/cubeb_oss.c | 43 ++++++++++++++++++++++++++++++-------
- media/libcubeb/src/cubeb_wasapi.cpp | 24 ++++++++++-----------
- 3 files changed, 48 insertions(+), 21 deletions(-)
-
-diff --git media/libcubeb/moz.yaml media/libcubeb/moz.yaml
-index c90f95e09a0a..c2eea799d1bf 100644
---- media/libcubeb/moz.yaml
-+++ media/libcubeb/moz.yaml
-@@ -19,5 +19,5 @@ origin:
- license: "ISC"
-
- # update.sh will update this value
-- release: "85f1cf48dffd749dd32798681955155e1a1a6ff5 (2020-12-07 08:11:33 +0000)"
-+ release: "4a83932caee16c9ee404b39144620fcbcc7a842f (2021-01-19 16:05:14 +0100)"
-
-diff --git media/libcubeb/src/cubeb_oss.c media/libcubeb/src/cubeb_oss.c
-index 32a4bf6de482..8c44c9e8d08a 100644
---- media/libcubeb/src/cubeb_oss.c
-+++ media/libcubeb/src/cubeb_oss.c
-@@ -781,6 +781,28 @@ oss_put_play_frames(cubeb_stream * s, unsigned int nframes)
- return 0;
- }
-
-+static int
-+oss_wait_playfd_for_space(cubeb_stream * s)
-+{
-+ /* For non-duplex stream we have to wait until we have space in the
-+ * buffer */
-+ int rate = s->play.info.sample_rate;
-+ struct pollfd pfd;
-+
-+ pfd.events = POLLOUT|POLLHUP;
-+ pfd.revents = 0;
-+ pfd.fd = s->play.fd;
-+
-+ if (poll(&pfd, 1, s->nfr * 1000 + rate - 1 / rate) == -1) {
-+ return CUBEB_ERROR;
-+ }
-+
-+ if (pfd.revents & POLLHUP) {
-+ return CUBEB_ERROR;
-+ }
-+ return 0;
-+}
-+
- /* 1 - Stopped by cubeb_stream_stop, otherwise 0 */
- static int
- oss_audio_loop(cubeb_stream * s, cubeb_state *new_state)
-@@ -873,26 +895,31 @@ oss_audio_loop(cubeb_stream * s, cubeb_state *new_state)
- goto breakdown;
- }
-
-- audio_buf_info bi;
- if (play_on) {
-- if (ioctl(s->play.fd, SNDCTL_DSP_GETOSPACE, &bi)) {
-- state = CUBEB_STATE_ERROR;
-- goto breakdown;
-- }
- /*
- * In duplex mode, playback direction drives recording direction to
- * prevent building up latencies.
- */
-+
-+ if (oss_wait_playfd_for_space(s) != 0) {
-+ state = CUBEB_STATE_ERROR;
-+ goto breakdown;
-+ }
-+
-+ audio_buf_info bi;
-+ if (ioctl(s->play.fd, SNDCTL_DSP_GETOSPACE, &bi)) {
-+ state = CUBEB_STATE_ERROR;
-+ goto breakdown;
-+ }
- nfr = bi.fragsize * bi.fragments / s->play.frame_size;
- if (nfr > s->bufframes) {
- nfr = s->bufframes;
- }
-+ } else {
-+ nfr = s->nfr;
- }
-
- if (record_on) {
-- if (nfr == 0) {
-- nfr = s->nfr;
-- }
- if (oss_get_rec_frames(s, nfr) == CUBEB_ERROR) {
- state = CUBEB_STATE_ERROR;
- goto breakdown;
-diff --git media/libcubeb/src/cubeb_wasapi.cpp media/libcubeb/src/cubeb_wasapi.cpp
-index 30a6d06c7e20..b7b337ce7829 100644
---- media/libcubeb/src/cubeb_wasapi.cpp
-+++ media/libcubeb/src/cubeb_wasapi.cpp
-@@ -778,12 +778,6 @@ hns_to_frames(cubeb_stream * stm, REFERENCE_TIME hns)
- return hns_to_frames(get_rate(stm), hns);
- }
-
--REFERENCE_TIME
--frames_to_hns(cubeb_stream * stm, uint32_t frames)
--{
-- return std::ceil(frames * 10000000.0 / get_rate(stm));
--}
--
- REFERENCE_TIME
- frames_to_hns(uint32_t rate, uint32_t frames)
- {
-@@ -1834,7 +1828,8 @@ initialize_iaudioclient2(com_ptr<IAudioClient> & audio_client)
- return CUBEB_OK;
- }
-
--static bool
-+// Not static to suppress a warning.
-+/* static */ bool
- initialize_iaudioclient3(com_ptr<IAudioClient> & audio_client,
- cubeb_stream * stm,
- const com_heap_ptr<WAVEFORMATEX> & mix_format,
-@@ -2185,7 +2180,7 @@ int setup_wasapi_stream_one_side(cubeb_stream * stm,
-
- void wasapi_find_matching_output_device(cubeb_stream * stm) {
- HRESULT hr;
-- cubeb_device_info * input_device;
-+ cubeb_device_info * input_device = nullptr;
- cubeb_device_collection collection;
-
- // Only try to match to an output device if the input device is a bluetooth
-@@ -2207,6 +2202,9 @@ void wasapi_find_matching_output_device(cubeb_stream * stm) {
- }
-
- int rv = wasapi_enumerate_devices(stm->context, (cubeb_device_type)(CUBEB_DEVICE_TYPE_INPUT|CUBEB_DEVICE_TYPE_OUTPUT), &collection);
-+ if (rv != CUBEB_OK) {
-+ return;
-+ }
-
- // Find the input device, and then find the output device with the same group
- // id and the same rate.
-@@ -2220,11 +2218,13 @@ void wasapi_find_matching_output_device(cubeb_stream * stm) {
-
- for (uint32_t i = 0; i < collection.count; i++) {
- cubeb_device_info dev = collection.device[i];
-- if (dev.type == CUBEB_DEVICE_TYPE_OUTPUT &&
-- dev.group_id && !strcmp(dev.group_id, input_device->group_id) &&
-+ if (dev.type == CUBEB_DEVICE_TYPE_OUTPUT && dev.group_id && input_device &&
-+ !strcmp(dev.group_id, input_device->group_id) &&
- dev.default_rate == input_device->default_rate) {
-- LOG("Found matching device for %s: %s", input_device->friendly_name, dev.friendly_name);
-- stm->output_device_id = utf8_to_wstr(reinterpret_cast<char const *>(dev.devid));
-+ LOG("Found matching device for %s: %s", input_device->friendly_name,
-+ dev.friendly_name);
-+ stm->output_device_id =
-+ utf8_to_wstr(reinterpret_cast<char const *>(dev.devid));
- }
- }
-