32 double maximum_ratio)
noexcept {
34 const auto positive_finite = [](
double value)
noexcept {
35 return value > 0.0 && std::isfinite(value);
37 if (!positive_finite(factors.pitch_ratio) ||
38 !positive_finite(maximum_ratio)) {
41 if (!positive_finite(factors.clock_ratio) ||
42 !positive_finite(factors.live_source_consumption_ratio)) {
47 const auto clocked = factors.pitch_ratio * factors.clock_ratio;
48 const auto effective = clocked * factors.live_source_consumption_ratio;
49 if (!positive_finite(clocked) || !positive_finite(effective) ||
50 effective > maximum_ratio) {
51 result.
status = factors.clock_ratio == 1.0 &&
52 factors.live_source_consumption_ratio == 1.0
Definition analyzer_provider.hpp:12
SampleStreamConsumptionStatus
Definition sample_stream_consumption.hpp:8
@ HeritageRejected
Definition sample_stream_consumption.hpp:11
@ Allowed
Definition sample_stream_consumption.hpp:9
@ LegacyRejected
Definition sample_stream_consumption.hpp:10
SampleStreamConsumptionEvaluation evaluate_sample_stream_consumption(const SampleStreamConsumptionFactors &factors, double maximum_ratio) noexcept
Definition sample_stream_consumption.hpp:30
Definition sample_stream_consumption.hpp:62
double source_frames_per_second
Definition sample_stream_consumption.hpp:63
Definition sample_stream_consumption.hpp:20
double effective_ratio
Definition sample_stream_consumption.hpp:23
SampleStreamConsumptionStatus status
Definition sample_stream_consumption.hpp:21
bool allowed() const noexcept
Definition sample_stream_consumption.hpp:25
Definition sample_stream_consumption.hpp:14
double clock_ratio
Definition sample_stream_consumption.hpp:16
double pitch_ratio
Definition sample_stream_consumption.hpp:15
double live_source_consumption_ratio
Definition sample_stream_consumption.hpp:17