diff options
author | Jean-Yves Avenard <[email protected]> | 2018-03-19 14:57:07 +0100 |
---|---|---|
committer | Paul Adenot <[email protected]> | 2018-03-19 14:57:07 +0100 |
commit | 789eaaa3b0d77b55e110353972d6713889f510ea (patch) | |
tree | fbeb48958ab83c329193f37c54133c9bc68aac4a /test/test_sanity.cpp | |
parent | c88a484e1aac878419946334c49d35d6948beec7 (diff) | |
download | cubeb-789eaaa3b0d77b55e110353972d6713889f510ea.tar.gz cubeb-789eaaa3b0d77b55e110353972d6713889f510ea.zip |
Multi-channels support for windows/mac/linux (#426)
* Add QUAD and QUAD_LFE layouts.
* Remove dual mono layout.
It makes no sense to have a case for those as the data structure
used (a bitmask) do not allow to represent this channel layout (a
channel can only be present once). As such it was a non-functional
layout
* Fix up cubeb_pulse compilation using C++ keyword.
* Remove the concept of preferred layout.
Channel layout is derived by the content being played. The concept of
preferred layout is meaningless. Either we have a layout defined, or
we don't. There's no in-between.
So we remove it.
* Remove CHANNEL_MONO concept.
* Add cubeb_sample_size convenience method.
* Rework cubeb_mixer.
This completely replace the existing remixer which had serious limitations:
1- Had no memory bound checks
2- Could only downmix 5.1 and 7.1 to stereo.
This mixer allows to convert from any sane layout to any other and work directly on interleaved samples.
This cubeb_mixer doesn't have an API compatible with the previous one.
This commit is non-fonctional, and was split for ease of review.
* Fix remixing on mac, windows and pulse backend.
* Make cubeb_mixer creation infallible.
Rather than ignore nonsensical layouts, we attempt to play it according to the stream channels count instead. The audio data will be played as-is, dropping the extra channels or inserting silence where needed.
* User proper sample size when calculating offsets.
Should the user data be of a different type to what the AudioUnit output is set to, we would have written outside the end of our allocated buffer.
* Fix input mixing and clarify frames vs samples terminology
* If a layout is unknown or invalid, always treat it as plain stereo or mono.
Diffstat (limited to 'test/test_sanity.cpp')
-rw-r--r-- | test/test_sanity.cpp | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/test/test_sanity.cpp b/test/test_sanity.cpp index d3546d6..d33666f 100644 --- a/test/test_sanity.cpp +++ b/test/test_sanity.cpp @@ -114,7 +114,6 @@ TEST(cubeb, context_variables) int r; cubeb * ctx; uint32_t value; - cubeb_channel_layout layout; cubeb_stream_params params; r = common_init(&ctx, "test_context_variables"); @@ -139,11 +138,6 @@ TEST(cubeb, context_variables) ASSERT_TRUE(value > 0); } - r = cubeb_get_preferred_channel_layout(ctx, &layout); - ASSERT_TRUE(r == CUBEB_ERROR_NOT_SUPPORTED || - (r == CUBEB_OK && layout != CUBEB_LAYOUT_UNDEFINED) || - (r == CUBEB_ERROR && layout == CUBEB_LAYOUT_UNDEFINED)); - cubeb_destroy(ctx); } |