Commit Graph

253 Commits

Author SHA1 Message Date
JW Wang
dd02890934 Bug 1189866 - revert code that accidentally got into bug 1187817 patch 5. r=me. 2015-08-01 13:58:39 +08:00
JW Wang
0af35fe560 Bug 1187817. Part 5 - assert some code in the audio thread and don't enter the monitor. r=kinetik. 2015-07-31 13:26:06 +08:00
JW Wang
9afacdd82c Bug 1189197 - enqueue a silent frame to kick off the buffer queue callbacks. r=kinetik. 2015-07-31 13:25:59 +08:00
Matthew Gregan
b0a98f661f Bug 1103824 - Back out changeset for causing regression reported in bug 1176499. 2015-06-23 17:02:51 -07:00
Matthew Gregan
4a86a9bc10 Bug 1103824 - Ensure first initialization of IAudioClient happens on STA thread. r=padenot 2015-05-14 18:33:23 +12:00
Ted Mielczarek
fe4092720a bug 1171072 - make libcubeb build on iOS. r=kinetik 2015-02-06 14:50:40 -05:00
Benjamin Chen
e2e98f6828 Bug 1165963 - Fix regression by bug 1104643: Detect "over compensation" and reset the anchor. r=padenot 2015-06-02 17:27:09 +08:00
Benjamin Chen
05d3e3d64c Bug 1104643 - Interpolate the audio clock by system clock if the qudio clock is not going forward. r=padenot 2015-05-05 16:00:14 +08:00
David Major
ed6ca74f4f Bug 1157835: Remove the MSVC_ENABLE_PGO flag from the build system. r=glandium 2015-04-27 19:59:27 -04:00
Chris Pearce
4aa83eaea9 Bug 1136360 - Backout 3920b67e97a3 to fix A/V sync regressions (bug 1148299 & bug 1157886). r=backout 2015-04-28 11:37:33 +12:00
Jacek Caban
df6dbaa8a7 Bug 1155624 - follow up: MSVC requires including <algorithm> for std::max. CLOSED TREE 2015-04-20 18:41:12 +02:00
Jacek Caban
a33ef4a63c Bug 1155624 - Use std::max instead of max macro in cubeb_wasapi.cpp. r=kinetik 2015-04-20 18:18:56 +02:00
Paul Adenot
8c5829b980 Bug 979705 - Fix typo. 2015-04-20 17:05:26 +02:00
Paul17041993
2af31c5b7f Bug 979705 - Re-write the upmixing functions in the WASAPI cubeb backend to fix mono audio and surround compatibility. r=padenot 2015-04-20 15:58:27 +02:00
Carsten "Tomcat" Book
9292d28542 Backed out changeset c511ccad7676 (bug 979705) for bustage on a CLOSED TREE 2015-04-20 16:44:41 +02:00
Paul17041993
510aeb0311 Bug 979705 - Re-write the upmixing functions in the WASAPI cubeb backend to fix mono audio and surround compatibility. r=padenot 2015-04-20 15:58:27 +02:00
Paul Adenot
8c600ca84e Bug 1136360 - Take into account the output device latency in the clock, and be more robust about rounding error accumulation, in cubeb_wasapi.cpp. r=kinetik 2015-03-16 18:12:38 +01:00
Matthew Gregan
4fc21b3855 Bug 1144199 - Require multiple consecutive timeouts to accumulate before triggering timeout error handling in libcubeb's WASAPI backend; this avoids spurious timeout errors triggered by system sleep/wake cycles. r=padenot 2015-04-11 13:24:52 +12:00
Matthew Gregan
9cfaa9f421 Bug 1134977 - Release IAudioStreamVolume when closing WASAPI stream. Refixes bug 1109802. r=padenot 2015-04-02 10:08:07 +13:00
Matthew Gregan
7c58f24efc Bug 1143968 - Allow a cubeb_stream in error to be stopped without triggering a fatal assert. r=padenot 2015-03-18 15:23:19 +13:00
Alexandre Ratchov
157ac815f9 Bug 1144087 - "Audio glitches on OpenBSD caused by rounding errors." r=kinetik 2015-03-18 12:19:00 +01:00
Matthew Gregan
cc687d3c79 Bug 1142746 - Make unexpected SL_PLAYEVENT_HEADATMARKER notification non-fatal. r=brsun 2015-03-17 13:30:40 +13:00
Ryan VanderMeulen
52711c3d87 Backed out changeset 7a53ee0cc3ae (bug 1136360) for Windows mochitest crashes. 2015-03-16 15:04:51 -04:00
Paul Adenot
2d95627b11 Bug 1136360 - Take into account the output device latency in the clock, and be more robust about rounding error accumulation, in cubeb_wasapi.cpp. r=kinetik 2015-03-16 18:12:38 +01:00
Matthew Gregan
08abd3d433 Bug 1136107 - Handle reconfiguring audio device if it went away while the stream was stopped. r=padenot 2015-03-02 18:07:43 +13:00
Matthew Gregan
f2307b8011 Bug 1135878 - Simply post-error cleanup logic in WASAPI cubeb backend. r=padenot 2015-02-24 13:42:33 +13:00
Matthew Gregan
1b8685913f Bug 1133386 - Introduce an XASSERT() macro to libcubeb rather than (ab)using assert(). r=padenot f=dmajor 2015-02-20 13:42:14 +13:00
Paul Adenot
6ebc006367 Bug 1124411 - Add timeout when calling WaitForMultipleObjects to wallpaper over a deadlock. r=kinetik 2015-02-19 19:35:07 +13:00
Matthew Gregan
11b8535276 Bug 1134102 - Move cubeb's stream reconfiguration to render thread. r=padenot 2015-02-18 18:43:07 +13:00
Paul Adenot
c0397fa4b7 Bug 1133190 - Don't use auto_unlock in paths where lock is being destroyed. r=kinetik 2015-02-19 19:35:06 +13:00
Paul Adenot
389746ec78 Bug 1132034 - Properly round the number of frame for the accumulating clock in WASAPI. r=kinetik 2015-02-19 19:35:06 +13:00
Matthew Gregan
092fdd407d Bug 1134078 - Don't restart stopped cubeb streams when handling device change notifications. r=padenot 2015-02-18 16:06:55 +13:00
Matthew Gregan
2bf339f2a9 Bug 1132257 - Update cubeb from upstream. r=padenot 2015-02-17 11:52:59 +13:00
Matthew Gregan
9d80ee47b6 Bug 1131788 - cubeb: Unable to use InterlockedAdd64 on MSVC2010 (and mingw). r=padenot 2015-02-10 17:45:00 +13:00
David Major
1ccaf82726 Bug 1131871 - auto_com should only uninitialize when successful. r=padenot 2015-02-12 10:33:45 +13:00
Paul Adenot
318ed9a8bd Bug 1131768 - Unlock before tearing down the stream in case of error, to avoid recursive locking. r=kinetik 2015-02-11 00:12:09 +01:00
Paul Adenot
3830f5aad3 Bug 1127213 - Fix various issues with the device change notification in the WASAPI cubeb backend. r=kinetik
This patch does the following:
- Introduces an owned_critical_section object to be able to assert that a
  current thread owns a critical section
- Change the auto_lock to use the above, add auto_unlock (basically like the
  Gecko AutoEnter/AutoExit things)
- Fix an issue during audio output device switch where the clock would use the
  old sample rate. Apparently I did not notice this because my headset and the
  sound card on this laptop have the same rate
- Check that we could acquire a device_enumerator in the ctor before
  deallocating in the dtor, as that can happen if a ton of streams are running at
  once (I had this issue running the full mochitest suite)
- Stop getting another device_enumator in unregister_notification_client, fixing a leak
- Assert that setup_wasapi_stream and close_wasapi_stream are called with the lock held, this was the cause of the crash for this bug
- Make close_wasapi_stream clear out its state to make sure setup_wasapi_stream
  and close_wasapi_stream are called in the right order (especially, not two
  setup_wasapi_stream without close in between, since that would leak stuff)
- In wasapi_stream_destroy, unregister the notification client before destroying
  the CRITICAL_SECTION (this was the cause of a crash I duped against this bug)
2015-02-09 14:42:43 +01:00
Carsten "Tomcat" Book
8da798492b Backed out changeset 2f46afa97421 (bug 1127213) for another bustage on a CLOSED TREE 2015-02-09 16:51:14 +01:00
Paul Adenot
3800ae52f4 Bug 1123768 - Backout bug 1108455 to avoid truncating the end of audio streams on Vista+. r=kinetik 2015-02-09 14:43:03 +01:00
Paul Adenot
c566e5e21b Bug 1127213 - Fix various issues with the device change notification in the WASAPI cubeb backend. r=kinetik
This patch does the following:
- Introduces an owned_critical_section object to be able to assert that a
  current thread owns a critical section
- Change the auto_lock to use the above, add auto_unlock (basically like the
  Gecko AutoEnter/AutoExit things)
- Fix an issue during audio output device switch where the clock would use the
  old sample rate. Apparently I did not notice this because my headset and the
  sound card on this laptop have the same rate
- Check that we could acquire a device_enumerator in the ctor before
  deallocating in the dtor, as that can happen if a ton of streams are running at
  once (I had this issue running the full mochitest suite)
- Stop getting another device_enumator in unregister_notification_client, fixing a leak
- Assert that setup_wasapi_stream and close_wasapi_stream are called with the lock held, this was the cause of the crash for this bug
- Make close_wasapi_stream clear out its state to make sure setup_wasapi_stream
  and close_wasapi_stream are called in the right order (especially, not two
  setup_wasapi_stream without close in between, since that would leak stuff)
- In wasapi_stream_destroy, unregister the notification client before destroying
  the CRITICAL_SECTION (this was the cause of a crash I duped against this bug)
2015-02-09 14:42:43 +01:00
Paul Adenot
7139796035 Bug 698079 - Synthetize the clock when using WASAPI to prevent A/V desynchronization issues when switching the default audio output device. r=kinetik 2015-01-19 14:17:52 +01:00
Paul Adenot
4789e9828a Bug 698079 - When using the WASAPI backend, always output audio to the default audio device. r=kinetik
This is implemented by detecting when the default audio output device changes,
stopping the current stream, and starting a new one using the new default audio
output device.
2015-01-19 14:16:36 +01:00
Paul Adenot
7668a042e0 Bug 1108455 - r=kinetik 2014-12-16 18:45:40 +01:00
Matthew Gregan
09def86a90 Bug 1109802 - Release IAudioStreamVolume after use in libcubeb's WASAPI backend. r=padenot 2014-12-11 12:17:19 +13:00
Matthew Gregan
f2754755d5 Bug 1105901 - Update cubeb from upstream to pick up compilation fix for glibc 2.20. r=padenot
--HG--
extra : rebase_source : cb04020b3c502f51e2411b1984bb42d8423d524b
2014-12-02 12:04:16 +13:00
Paul Adenot
4264f93f66 Bug 1083664 - Disable an assert in cubeb_audiounit.c for investigation.
--HG--
extra : rebase_source : d46b6fb9d3da9a45ea94435a15bfc3bfee85e9d3
2014-11-12 20:05:05 +01:00
Matthew Gregan
e92942a07e Bug 1092859 - Always use soft volume in WinMM cubeb backend. r=padenot
waveOutSetVolume adjusts the system (or app, on Vista up, but we only use
WinMM on XP) "PCM Volume" rather than a per-waveOut volume, which means any
audio stream we adjust the volume on has an undesirable higher-level effect.
Fix this by dropping the support for waveOutSetVolume and always using the
soft volume support.

While here, fix a bug in the soft volume code where float32 samples are
handled.
2014-11-11 12:38:54 +13:00
Mike Hommey
21ec48314e Bug 1077148 part 4 - Add and use new moz.build templates for Gecko programs and libraries. r=gps
There are, sadly, many combinations of linkage in use throughout the tree.
The main differentiator, though, is between program/libraries related to
Gecko or not. Kind of. Some need mozglue, some don't. Some need dependent
linkage, some standalone.

Anyways, these new templates remove the need to manually define the
right dependencies against xpcomglue, nspr, mozalloc and mozglue
in most cases.

Places that build programs and were resetting MOZ_GLUE_PROGRAM_LDFLAGS
or that build libraries and were resetting MOZ_GLUE_LDFLAGS can now
just not use those Gecko-specific templates.
2014-10-30 13:06:12 +09:00
Matthew Gregan
2fe2d95e6c Bug 1074010 - Update cubeb from upstream. r=padenot
--HG--
rename : media/libcubeb/README => media/libcubeb/README.md
2014-09-29 13:19:09 +13:00
Fabian Raetz
25ba5af908 Bug 1085127 - cubeb_sndio.c: error when compiling with debug enabled (undeclared identifier "false") - include stdbool.h r=kinetik 2014-10-21 15:59:55 +02:00