Commit Graph

234 Commits

Author SHA1 Message Date
Matthew Gregan
e0c1488a4c 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
22ad88b8fa Bug 1144087 - "Audio glitches on OpenBSD caused by rounding errors." r=kinetik 2015-03-18 12:19:00 +01:00
Matthew Gregan
7395e6dd6c Bug 1142746 - Make unexpected SL_PLAYEVENT_HEADATMARKER notification non-fatal. r=brsun 2015-03-17 13:30:40 +13:00
Ryan VanderMeulen
0f541272f0 Backed out changeset 7a53ee0cc3ae (bug 1136360) for Windows mochitest crashes.
--HG--
extra : rebase_source : 26d25e99c5b375f4e7a440638f897c9ae3b10e94
2015-03-16 15:04:51 -04:00
Paul Adenot
10f63e4d13 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
ee400f62d6 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
bbfbfbf28c Bug 1135878 - Simply post-error cleanup logic in WASAPI cubeb backend. r=padenot 2015-02-24 13:42:33 +13:00
Matthew Gregan
0bdf32b0cd 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
a6a9beffd3 Bug 1124411 - Add timeout when calling WaitForMultipleObjects to wallpaper over a deadlock. r=kinetik 2015-02-19 19:35:07 +13:00
Matthew Gregan
eda5e9c69f Bug 1134102 - Move cubeb's stream reconfiguration to render thread. r=padenot 2015-02-18 18:43:07 +13:00
Paul Adenot
67200dd25c 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
c3491769e4 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
f7c07beb8f 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
8b8ae2538d Bug 1132257 - Update cubeb from upstream. r=padenot 2015-02-17 11:52:59 +13:00
Matthew Gregan
670653d955 Bug 1131788 - cubeb: Unable to use InterlockedAdd64 on MSVC2010 (and mingw). r=padenot 2015-02-10 17:45:00 +13:00
David Major
5e60171da8 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
c32cf025e7 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
5098817b4c 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
b514443060 Backed out changeset 2f46afa97421 (bug 1127213) for another bustage on a CLOSED TREE 2015-02-09 16:51:14 +01:00
Paul Adenot
14201f3594 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
8b005f3fb1 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
3e77a5e5ed 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
a40d0afff0 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
f1241b66bf Bug 1108455 - r=kinetik 2014-12-16 18:45:40 +01:00
Matthew Gregan
7867c261cc Bug 1109802 - Release IAudioStreamVolume after use in libcubeb's WASAPI backend. r=padenot 2014-12-11 12:17:19 +13:00
Matthew Gregan
73ffa2d5f9 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
6a47f77739 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
652f34cb02 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
47c853314f 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
6e1614d69b 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
49a6738249 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
a7457c180c Bug 1074004 - Fix WebMioData implementation in TestWebMWriter. r=giles 2014-09-29 13:13:21 +13:00
JW Wang
4b96ebb38c 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
6f90e2262a Bug 1059573 - Add an option to use hardware AEC for WebRTC. r=jesup,ted 2014-09-24 19:11:58 +02:00
Matthew Gregan
52c0e70868 Bustage fix (update test to new values) for bd132d164dc9/bug 1065250 on a CLOSED TREE. 2014-09-17 17:08:35 +12:00
Matthew Gregan
2523248976 Bug 847903 - Drop OS X AudioUnit stream limit even further on 10.6 to fix crashtests/691096-1.html 2014-09-17 15:06:30 +12:00
Mike Hommey
0060683747 Bug 1059090 - Don't require SOURCES to be set for CPP_UNIT_TESTS and SIMPLE_PROGRAMS. r=mshal 2014-09-03 14:16:37 +09:00
Mike Hommey
ed70c5f377 Bug 1041941 - Use templates for programs, simple programs, libraries and C++ unit tests. r=gps 2014-09-03 14:10:54 +09:00
Paul Adenot
d693771642 Bug 1062293 - Fix opensl's cubeb backend draining. r=kinetik
This ensures the callback won't be called when draining is done.

--HG--
extra : rebase_source : b876e19d03aa58105eceba341e7a394f1f25473c
2014-09-03 15:54:03 +02:00
JW Wang
fac6627dd8 Bug 1057199 - Fix signed/unsigned error when calculating position in opensl_stream_get_position(). r=cpearce 2014-08-27 02:29:00 -04:00
Paul Adenot
c5abb79941 Bug 848954 - 17 - Increase the size of the stack for the audio threads on Windows. r=kinetik 2014-08-26 17:02:08 +02:00
Paul Adenot
b1ff1946e0 Bug 848954 - Part 12 - Make sure COM is initialized when calling into WASAPI functions. r=kinetik 2014-08-26 17:01:35 +02:00
Landry Breuil
ffbb17e121 Bug 1054176 - fix some warnings about unitialized values and bad assign r=kinetik 2014-08-18 11:38:08 +02:00
Landry Breuil
bb8520b586 Bug 1054176 : fix cubeb sndio build after bug 1027713 r=kinetik 2014-08-18 11:37:30 +02:00
Gabriele Svelto
1299cec0ff Bug 1052923 - Fix the volume conversion in millibels. r=padenot 2014-08-15 11:36:49 +02:00
Paul Adenot
a908862519 Bug 1046592 - Fix bustage.
--HG--
extra : rebase_source : ca08f9c642c8ab6463551cf00ad8f4d9c9be02df
2014-08-08 14:19:14 +02:00
Paul Adenot
16e12feab6 Bug 1046592 - Fix volume computation in cubeb's opensl backend. r=kinetik 2014-08-08 13:26:42 +02:00
Paul Adenot
b73923ad6a Bug 1049478 - Fix volume handling in cubeb's PulseAudio backend: revert to soft-volume when needed. r=kinetik
--HG--
extra : rebase_source : 16c2702a4304047e266c07c02f868510c9860f75
2014-08-08 13:26:02 +02:00
Matthew Gregan
87acb958cd Bug 992238 - Disable test_init_destroy_multiple_contexts_and_streams on Windows 7. r=padenot 2014-08-05 21:57:00 -04:00
Mike Hommey
89777800f9 Bug 1047267 - Move remaining OS_LIBS and EXTRA_LIBS to moz.build. r=gps
* * *
Bug 1047267 - To fold with "Move remaining OS_LIBS and EXTRA_LIBS to moz.build"
2014-08-07 14:21:03 +09:00