[roll] Roll fuchsia [audio_core] Elminate allocations during the mix loop

This CL eliminates two allocations during the mix loop

1. MixStage::ForEachSource allocates a std::vector to snapshot the set
   of source streams (which need to be snapshot because they may change
   concurrently.

2. ReadableStream::Buffer::dtor_ is a closure that may be allocated on
   the heap, since `fit::default_inline_target_size` is 2 64bit numbers
   while at least one closure needs 3 64bit numbers. To statically
   verify there is no heap allocation, we now use `fit::inline_callback`
   instead of `fit::callback`. This was slightly tricky in ForwardPacket
   because that closure actually contains a ReadableStream::Buffer,
   forming a recursive type (dtor closure -> Buffer -> dtor closure ->
   ...) which makes the compiler believe that the closure may have
   unbounded size. To help the compiler, the forwarded buffer has been
   moved to a field of ReadableStream.

2b. A similar change was made to PipelineStage::Packet::dtor_.

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/708583
Original-Revision: f7d913b804b846826b64503897341cadb5b5f007
GitOrigin-RevId: c4cad11745be0c331df5255bb2d9b918594be45d
Change-Id: I904327a99942499acbfb4f16a2bda26fd1ee3f62
1 file changed
tree: ecf8dcbb7251d5a0a455f30e156b372af6f5722d
  1. infra/
  2. third_party/
  3. cts
  4. firmware
  5. flower
  6. jiri.lock
  7. minimal
  8. prebuilts
  9. README.md
  10. stem
  11. test_durations
  12. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.