[roll] Roll fuchsia [audio_core] mix range checks and object lifetimes

Improve boundary checks, integer arithmetic precision, and object
ownership across audio mixing, DSP sampling, and effect loading
pipelines. Specifically:

- Mixer / MixStage: Cap destination frame count in Mixer::Mix during
  gain ramping to *dest.frame_offset_ptr + kScaleArrLen (960 frames),
  ensuring that sampling operations remain strictly within the
  allocated scale_arr buffer during large mix requests (b/521640280).
- MixStage: Widen block size calculation in MixStage::MixStage from
  32-bit integer multiplication to size_t (b/521640620), preventing
  arithmetic overflow when sizing multi-channel output buffers.
- Sampler: Adjust signed modulo remainder and quotient division in
  Sampler::State::AdvancePositionsBy when dest_frames is negative
  (b/525551854), ensuring source_pos_modulo_ always remains positive and
  strictly less than step_size_denominator_.
- EffectV1: Store instance_name_ as an owning std::string instead of a
  non-owning std::string_view (b/521640738), guaranteeing string
  validity across pipeline reconfigurations and extended lifetimes.

New and updated unit test cases:
- MixStageTest.RampingMixExceedsScaleArrLen
- DynamicRange.RampingMixExceedsScaleArrLen
- MixStageTest.BlockSizeMultiplication
- SamplerStatePositionTest.AdvancePositionsNegativeDestFrames
- EffectV1Test.InstanceNameLifetime

Original-Original-Fixed: 521640280
Original-Original-Fixed: 521640620
Original-Original-Fixed: 525551854
Original-Original-Fixed: 521640738
Test: fx test audio_core_unittests
Test: fx test audio_lib_processing_unittests
Test: fx test audio_effects_loader_unittests
Original-Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1685895
Original-Original-Revision: 3936fdff9d305a7ea40c7379a0f7c41512e87f7a
GitOrigin-RevId: e44ed6558e4cd15ff7f9e6fd71f371e1a739304c
Change-Id: I11fc72a875105ed365412b1cd4b6495e3ee7291e
Reviewed-on: https://fuchsia-review.googlesource.com/c/integration/+/1689956
Cr-Commit-Position: refs/heads/main@{#196022}
1 file changed
tree: c3f38f85770470973318ec8659a3e1633facd2ca
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cobalt
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
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 in one of the communication channels documented at get involved.

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.