Commit Graph

250 Commits

Author SHA1 Message Date
Matthew Gregan
ae6d257365 Bug 1103824 - Back out changeset for causing regression reported in bug 1176499. 2015-06-23 17:02:51 -07:00
Matthew Gregan
51211a85c8 Bug 1103824 - Ensure first initialization of IAudioClient happens on STA thread. r=padenot 2015-05-14 18:33:23 +12:00
Ted Mielczarek
76c24ff659 bug 1171072 - make libcubeb build on iOS. r=kinetik 2015-02-06 14:50:40 -05:00
Benjamin Chen
934afca670 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
bd1e80cba6 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
c92c020b89 Bug 1157835: Remove the MSVC_ENABLE_PGO flag from the build system. r=glandium 2015-04-27 19:59:27 -04:00
Chris Pearce
7fa1167ea3 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
baaccf16c7 Bug 1155624 - follow up: MSVC requires including <algorithm> for std::max. CLOSED TREE 2015-04-20 18:41:12 +02:00
Jacek Caban
536522e0b0 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
ac681956ad Bug 979705 - Fix typo. 2015-04-20 17:05:26 +02:00
Paul17041993
be04eccf84 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
81c945300f Backed out changeset c511ccad7676 (bug 979705) for bustage on a CLOSED TREE 2015-04-20 16:44:41 +02:00
Paul17041993
a94a33d24c 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
04bd4586cb 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
64571538d7 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
7c97f168a6 Bug 1134977 - Release IAudioStreamVolume when closing WASAPI stream. Refixes bug 1109802. r=padenot 2015-04-02 10:08:07 +13:00
Matthew Gregan
7ce379889f 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
deb1ad625a Bug 1144087 - "Audio glitches on OpenBSD caused by rounding errors." r=kinetik 2015-03-18 12:19:00 +01:00
Matthew Gregan
00f0163e46 Bug 1142746 - Make unexpected SL_PLAYEVENT_HEADATMARKER notification non-fatal. r=brsun 2015-03-17 13:30:40 +13:00
Ryan VanderMeulen
4311846b80 Backed out changeset 7a53ee0cc3ae (bug 1136360) for Windows mochitest crashes. 2015-03-16 15:04:51 -04:00
Paul Adenot
cce8353510 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
22dda7e265 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
c1533d6866 Bug 1135878 - Simply post-error cleanup logic in WASAPI cubeb backend. r=padenot 2015-02-24 13:42:33 +13:00
Matthew Gregan
bfd5b15175 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
73eff55c70 Bug 1124411 - Add timeout when calling WaitForMultipleObjects to wallpaper over a deadlock. r=kinetik 2015-02-19 19:35:07 +13:00
Matthew Gregan
105a5fe5a9 Bug 1134102 - Move cubeb's stream reconfiguration to render thread. r=padenot 2015-02-18 18:43:07 +13:00
Paul Adenot
2132f349ef 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
f14f01de7c 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
63e02bda77 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
9517cb9f1d Bug 1132257 - Update cubeb from upstream. r=padenot 2015-02-17 11:52:59 +13:00
Matthew Gregan
35e54d290f Bug 1131788 - cubeb: Unable to use InterlockedAdd64 on MSVC2010 (and mingw). r=padenot 2015-02-10 17:45:00 +13:00
David Major
a5abfe834e Bug 1131871 - auto_com should only uninitialize when successful. r=padenot
--HG--
extra : rebase_source : 4af27a3e50b68ad1ee4d869b1a3bee3eeb4a1141
2015-02-12 10:33:45 +13:00
Paul Adenot
e5c574e0b2 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
e9ac689033 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
cfbcf68e03 Backed out changeset 2f46afa97421 (bug 1127213) for another bustage on a CLOSED TREE 2015-02-09 16:51:14 +01:00
Paul Adenot
68db274ab2 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
4f8d3e1d1b 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
f750a7bdbf Bug 698079 - Synthetize the clock when using WASAPI to prevent A/V desynchronization issues when switching the default audio output device. r=kinetik
--HG--
extra : rebase_source : c50798149111b680b4565798d33d43e6e062fb2c
2015-01-19 14:17:52 +01:00
Paul Adenot
f2a853a96e 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.

--HG--
extra : rebase_source : 94df344aecca0f940ba7216275176763336beb96
2015-01-19 14:16:36 +01:00
Paul Adenot
07eea1333a Bug 1108455 - r=kinetik 2014-12-16 18:45:40 +01:00
Matthew Gregan
a7e934fc97 Bug 1109802 - Release IAudioStreamVolume after use in libcubeb's WASAPI backend. r=padenot 2014-12-11 12:17:19 +13:00
Matthew Gregan
f151c28311 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
a07a4a99c6 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
517fafa83b 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
d667f4bb59 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
18999eced5 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
ea4267665d 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
Matthew Gregan
827d0770b4 Bug 1074004 - Fix WebMioData implementation in TestWebMWriter. r=giles 2014-09-29 13:13:21 +13:00
JW Wang
787d7762f5 Bug 1038091 - Pause the player instead of stopping it to avoid resetting playback position and resulting in audio clock going backward. r=kinetik 2014-09-28 19:36:00 -04:00
Gian-Carlo Pascutto
2d486eeb3a Bug 1059573 - Add an option to use hardware AEC for WebRTC. r=jesup,ted 2014-09-24 19:11:58 +02:00