class SplitterConsumerStage
Defined at line 27 of file ../../src/media/audio/services/mixer/mix/splitter_consumer_stage.h
Represents the source stream of a splitter. See ../docs/splitters.md.
Unlike other PipelineStages, a few methods can be accessed from other threads. These methods are
intended to be called from a SplitterProducerStage.
Public Methods
void SplitterConsumerStage (Args args)
Defined at line 15 of file ../../src/media/audio/services/mixer/mix/splitter_consumer_stage.cc
void UpdatePresentationTimeToFracFrame (std::optional<TimelineFunction> f)
Implements `PipelineStage`.
TODO(https://fxbug.dev/42066198): Add TA_REQ(thread()->checker()) to this declaration in
`PipelineStage`.
Defined at line 25 of file ../../src/media/audio/services/mixer/mix/splitter_consumer_stage.cc
void FillBuffer (MixJobContext & ctx)
Fills the ring buffer up to what is needed for the given mix job.
Defined at line 35 of file ../../src/media/audio/services/mixer/mix/splitter_consumer_stage.cc
void AdvanceSource (MixJobContext & ctx, Fixed frame)
Advance this splitter's source stream.
Defined at line 58 of file ../../src/media/audio/services/mixer/mix/splitter_consumer_stage.cc
void set_max_downstream_output_pipeline_delay (zx::duration delay)
Sets the maximum delay on any output pipeline downstream of this splitter.
Defined at line 64 of file ../../src/media/audio/services/mixer/mix/splitter_consumer_stage.cc
zx::duration max_downstream_output_pipeline_delay ()
Returns the maximum delay on any output pipeline downstream of this splitter.
Defined at line 68 of file ../../src/media/audio/services/mixer/mix/splitter_consumer_stage.cc
std::optional<TimelineFunction> presentation_time_to_frac_frame ()
Equivalent to PipelineStage::presentation_time_to_frac_frame, but may be called from
SplitterProducerStage, which may be running on a different thread. This is initially
std::nullopt (stopped), then eventually changes to non-nullopt (started), after which point it
never changes. Hence, if the producer sees a non-nullopt value, it should not be concerned
about concurrent changes.
TODO(https://fxbug.dev/42066198): Add TA_REQ(thread()->checker()) to
`PipelineStage::presentation_time_to_frac_frame`.
Defined at line 73 of file ../../src/media/audio/services/mixer/mix/splitter_consumer_stage.cc
int64_t end_of_last_fill ()
Returns one frame after the last frame written, or INT64_MIN if no frames have been written.
May be called from SplitterProducerStage.
Defined at line 77 of file ../../src/media/audio/services/mixer/mix/splitter_consumer_stage.h