A few more things I forgot to mention:

Web Audio requires non-interleaved channels. I think we should adopt that
everywhere we can. For a buffer that needs to be appended to frequently,
consider AudioSegment and AudioChunk; an AudioSegment is a sequence of
AudioChunks, and each AudioChunk is a sub-interval over a set of immutable
channel buffers.

Web Audio and probably other code can vary the number of channels being
produced moment by moment. This isn't hard to handle (I'm in the process of
fixing up MediaStreamGraph to handle it), but it creates problems for
output. I think we need to extend libcubeb to try to get the "ideal" number
of channels (and, ultimately, layout!) from the OS. (And the ideal rate
too, if we can.) Then for any output stream that can vary its number of
channels, we'll need to create the stream with the ideal number of channels
and up-mix/down-mix as necessary.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
_______________________________________________
dev-media mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-media

Reply via email to