Граф коммитов

6 Коммитов

Автор SHA1 Сообщение Дата
khng300 226d383c13
OSS (FreeBSD/illumos) backend (#600)
* ossaudio (FreeBSD currently) backend

The ossaudio backend was rewritten from the sunaudio
backend.

* Fix leaking of mixer_fd in oss_enumerate_devices

* Both input/output can be detected at the same DSP

* Update on device detection during enumeration

* Remove spurious calls to SNDCTL_CARDINFO

* Fix string allocation detection in oss_enumerate_devices

* On FreeBSD, try to open and probe the device's capability in oss_enumerate_devices

* Rewrite oss_io_routine() to implement correctly for all stream directions

* Add preferred device detection for FreeBSD

* Emits stable devid from oss_enumerate_devices on FreeBSD

* Fix SNDCTL_DSP_GETI/OSPACE calls in oss_stream_init

* Use /dev/sndstat instead on FreeBSD for oss_enumerate_devices

* Unify both play and record nfr and take the minimum value between them

* Fix allocating both input/output buffers to input/output-only streams

* Fix clipping issue

* Fix misuse of input_device and output_device in oss_stream_init

* Fix builds on Illumos

* Code refactoring on oss_enumerate_devices

* Improve oss_io_routine for the case when the stream is in both direction

* Use fragsize instead of total buffer size for number of frames

* Probe OSS audio availability in cubeb_init when backend is not specified

* Fix scan-build10 report on src/cubeb_oss.c:285

* Add __DragonFly__ pp macro testing along-side __FreeBSD__

* Move oss_init in default_init[] table right below alsa to respect POLA

* Fix use-after-free of s->mutex in oss_stream_destroy

* Fix inconsistent indentation

* Remove blocks_written from cubeb_stream

* Add LL integer suffix to make 0x80000000 more clear

* Add parsing of /dev/sndstat for hw.snd.verbose > 0 in FreeBSD

* Do device setup in the order of channels, format and speed, according to developer/callorder.html of OSS v4.x API reference

* Add proper latency_frame support for oss_stream_init

* Mark close brackets and close braces NUL in oss_sndstat_line_parse

* Search close brackets and close braces from the end of line in oss_sndstat_line_parse

* Use 32 frames for each fragments in oss_calc_frag_params

* Drop unnecessary #include <sys/sysctl.h>

* Add support for cubeb_channel_layout

* Compilation and scan-build fixes:

* Fix warnings in oss_chn_from_cubeb
* Include cubeb_mixer.h to have cubeb_channel_layout_nb_channels
* Fix potential resource leakage in input_stream_layout->layout does not
match input_stream_params->channels. (The same for
		output_stream_layout)
* Classify cubeb_stream_params::layout and cubeb_stream_params::channels
mismatch as CUBEB_ERROR_INVALID_PARAMETER

* AUDIODEVICE can now override /dev/dsp

AUDIODEVICE was chosen to match the sndio backend.

* Change environment variable AUDIODEVICE to AUDIO_DEVICE in oss backend

* Change the format of cubeb_device_info's friendly_name

This avoids name collision when setting media.cubeb.output_device in
about:config of Firefox. However, I think it makes more sense on
Firefox's side to use device_id instead.

* Fix warning of a missing %d in LOG() in oss_io_routine

* Do not enable OSS compilation when SOUND_VERSION < 0x040000

* Add mutex to serialize access to cubeb_strings in cubeb_oss's cubeb_context

* Change the calculation of fragsize/nfr to match stream latency, with 2 fragments available. By HPS

* Now reuse the same thread for audiostream

* Redo the duplex logic

* Restructure the use of buffers

* Fix problems dealing with draining

* Revert "Fix problems dealing with draining"

This reverts commit 30301ba101.

* Revert "Restructure the use of buffers"

This reverts commit 9823ca889c.

* Revert "Revert "Restructure the use of buffers""

This reverts commit 10dc869b85.

* Revert "Revert "Fix problems dealing with draining""

This reverts commit 9d19b10944.

* Make sure there are at least s->nfr available before calling data_cb

* Kill a signed/unsigned comparison

* Add The FreeBSD Foundation copyright line for recent commits

* Fix race condition when restarting a stream by HPS

Originally, when stopping a stream and immediately starting the stream
again, the start call might be lost.

* Do not signal the doorbell_cv again when a stream is already stopped

This is redundant.

* Revert "Do not signal the doorbell_cv again when a stream is already stopped"

This reverts commit fbdf753fc7.

* Make state changes look more similar to pulse backend

This also allows drained/short-input stream to be resumed without
stopping it first.

* Remove a spurious s->running = false
2020-10-09 19:09:39 +02:00
Matthew Gregan 9ea8137a0a
Switch Travis builds to Ubuntu Xenial (16.04) to pick up a newer MinGW. (#508)
- Newer MinGW fails with std::threads as it defaults to Windows threads -
  force POSIX threads via cmake/toolchain-cross-mingw.cmake.
- Android fails during CMake generation due to incompatible
  cmake/toolchain-cross-android.cmake.  Switch to maintained toolchain file
  inside Android NDK.
- Android toolchain file in 13b NDK is broken.  Upgrade to 19c NDK.
- Upgrade Android API level from 15 to 16 to match Gecko (and minimum
  supported by 19c NDK).
2019-06-04 10:37:06 +12:00
Matthew Gregan 78ae261d00 Update CMake sanitizer submodule to current master.
Fixes TSAN on macOS.
2018-09-17 18:09:50 +12:00
Dan Glastonbury 033b736e69 Setup CMake to compile with Clang/GCC sanitizers.
See https://github.com/arsenm/sanitizers-cmake for more details.
2017-05-22 13:06:17 +12:00
Matthew Gregan fe48f951ca Add Android (API level 15) Travis build. 2016-11-22 15:13:34 +13:00
Matthew Gregan 0aea9e0438 Replace autotools build system with CMake. 2016-10-12 17:06:10 +13:00