19 const float* input,
float* output,
20 int channels,
int block_size,
double sample_rate
113 std::vector<OfflineRenderedStem>
stems;
122 bool passes(
float peak_tolerance,
double rms_tolerance)
const noexcept;
148 std::vector<OfflineRenderManifestChunk>
chunks;
158 const float* input,
float* output,
174 const std::vector<OfflineRenderStem>& stems
210 const std::string& input_path,
211 const std::string& output_path,
Definition analyzer_provider.hpp:12
OfflineRenderComputeDecision evaluate_offline_render_compute_policy(const OfflineRenderComputePolicy &policy)
Decide whether a GPU-assisted offline analysis request is allowed.
std::optional< OfflineRenderStemResult > offline_render_stems(const AudioFileData &input, OfflineRenderCallback render_fn, const OfflineRenderOptions &options, const std::vector< OfflineRenderStem > &stems)
Render an in-memory file and extract named channel-range stems from the mix.
OfflineRenderExecutionScope
Definition offline_processor.hpp:43
@ OfflineAnalysis
Definition offline_processor.hpp:45
@ RealtimeAudioThread
Definition offline_processor.hpp:44
@ BackgroundAnalysis
Definition offline_processor.hpp:46
OfflineRenderTailPolicy
Definition offline_processor.hpp:38
@ RenderTail
Definition offline_processor.hpp:40
@ Truncate
Definition offline_processor.hpp:39
std::function< void( const float *input, float *output, int channels, int block_size, double sample_rate)> OfflineProcessCallback
Callback for processing a block of audio.
Definition offline_processor.hpp:18
bool offline_process_file(const std::string &input_path, const std::string &output_path, OfflineProcessCallback process_fn, int block_size=512)
Process a file on disk, writing the result to another file.
std::optional< OfflineRenderComparison > compare_offline_render_audio(const AudioFileData &actual, const AudioFileData &expected)
Compare two rendered artifacts for golden/null tests.
std::optional< OfflineRenderArtifactManifest > create_offline_render_manifest(const AudioFileData &rendered_audio, const OfflineRenderOptions &options={})
Build a deterministic manifest for a rendered offline audio artifact.
std::function< void( const float *input, float *output, int channels, const OfflineRenderBlockContext &context)> OfflineRenderCallback
Callback for deterministic offline render blocks.
Definition offline_processor.hpp:157
std::optional< AudioFileData > offline_render(const AudioFileData &input, OfflineRenderCallback render_fn, const OfflineRenderOptions &options={})
Render an entire in-memory audio file with deterministic block metadata.
AudioFileData apply_gain(const AudioFileData &input, float gain_linear)
Simple gain processing for testing.
OfflineRenderComputeBackend
Definition offline_processor.hpp:49
@ Gpu
Definition offline_processor.hpp:51
@ Cpu
Definition offline_processor.hpp:50
std::optional< AudioFileData > offline_process(const AudioFileData &input, OfflineProcessCallback process_fn, int block_size=512)
Process an entire audio file through a callback function.
std::optional< std::string > offline_render_audio_sha256(const AudioFileData &audio)
Compute a canonical SHA-256 digest for rendered floating-point audio.
Definition audio_file.hpp:24
Definition offline_processor.hpp:131
double tempo_bpm
Definition offline_processor.hpp:140
double render_speed_ratio
Definition offline_processor.hpp:141
bool cache_reusable
Definition offline_processor.hpp:150
OfflineRenderTailPolicy tail_policy
Definition offline_processor.hpp:144
uint64_t tail_frames
Definition offline_processor.hpp:145
std::string resource_set_sha256
Definition offline_processor.hpp:149
uint32_t sample_rate
Definition offline_processor.hpp:133
std::vector< int > block_size_schedule
Definition offline_processor.hpp:146
double start_position_beats
Definition offline_processor.hpp:139
std::vector< OfflineRenderResourceRef > resources
Definition offline_processor.hpp:147
uint32_t missing_optional_resources
Definition offline_processor.hpp:151
std::string audio_sha256
Definition offline_processor.hpp:136
uint64_t frames
Definition offline_processor.hpp:135
uint64_t state_generation
Definition offline_processor.hpp:142
uint32_t format_version
Definition offline_processor.hpp:132
uint32_t channels
Definition offline_processor.hpp:134
uint64_t start_sample_position
Definition offline_processor.hpp:138
uint64_t deterministic_seed
Definition offline_processor.hpp:143
bool matches_audio(const AudioFileData &audio) const noexcept
std::string render_plan_sha256
Definition offline_processor.hpp:137
std::vector< OfflineRenderManifestChunk > chunks
Definition offline_processor.hpp:148
Per-block metadata for deterministic offline renders.
Definition offline_processor.hpp:24
int frames
Definition offline_processor.hpp:27
uint64_t block_index
Definition offline_processor.hpp:25
uint64_t sample_position
Definition offline_processor.hpp:26
double tempo_bpm
Definition offline_processor.hpp:32
int scheduled_block_size
Definition offline_processor.hpp:28
double time_seconds
Definition offline_processor.hpp:30
double render_speed_ratio
Definition offline_processor.hpp:33
double position_beats
Definition offline_processor.hpp:31
uint64_t state_generation
Definition offline_processor.hpp:34
uint64_t deterministic_seed
Definition offline_processor.hpp:35
double sample_rate
Definition offline_processor.hpp:29
Definition offline_processor.hpp:116
uint32_t channels
Definition offline_processor.hpp:117
uint64_t frames
Definition offline_processor.hpp:118
float peak_error
Definition offline_processor.hpp:119
double rms_error
Definition offline_processor.hpp:120
bool passes(float peak_tolerance, double rms_tolerance) const noexcept
Definition offline_processor.hpp:61
bool used_cpu_fallback
Definition offline_processor.hpp:64
bool accepted
Definition offline_processor.hpp:62
bool uses_gpu() const noexcept
Definition offline_processor.hpp:67
OfflineRenderComputeBackend backend
Definition offline_processor.hpp:63
const char * reason
Definition offline_processor.hpp:65
Definition offline_processor.hpp:54
bool allow_cpu_fallback
Definition offline_processor.hpp:58
OfflineRenderExecutionScope scope
Definition offline_processor.hpp:55
OfflineRenderComputeBackend requested_backend
Definition offline_processor.hpp:56
bool gpu_available
Definition offline_processor.hpp:57
Definition offline_processor.hpp:125
uint64_t start_frame
Definition offline_processor.hpp:126
uint64_t frame_count
Definition offline_processor.hpp:127
int scheduled_block_size
Definition offline_processor.hpp:128
Advanced offline render options.
Definition offline_processor.hpp:86
std::vector< int > block_size_schedule
Definition offline_processor.hpp:88
uint64_t tail_frames
Definition offline_processor.hpp:96
uint64_t deterministic_seed
Definition offline_processor.hpp:94
OfflineRenderTailPolicy tail_policy
Definition offline_processor.hpp:95
double render_speed_ratio
Definition offline_processor.hpp:92
std::vector< OfflineRenderResourceRef > resources
Definition offline_processor.hpp:97
double start_position_beats
Definition offline_processor.hpp:90
uint64_t state_generation
Definition offline_processor.hpp:93
int fallback_block_size
Definition offline_processor.hpp:87
uint64_t start_sample_position
Definition offline_processor.hpp:89
double tempo_bpm
Definition offline_processor.hpp:91
Definition offline_processor.hpp:72
std::string content_sha256
Definition offline_processor.hpp:75
uint64_t generation
Definition offline_processor.hpp:77
bool required
Definition offline_processor.hpp:79
std::string path
Definition offline_processor.hpp:74
bool staged
Definition offline_processor.hpp:80
std::string id
Definition offline_processor.hpp:73
std::string cache_key
Definition offline_processor.hpp:76
uint64_t decoded_bytes
Definition offline_processor.hpp:78
Definition offline_processor.hpp:111
AudioFileData mix
Definition offline_processor.hpp:112
std::vector< OfflineRenderedStem > stems
Definition offline_processor.hpp:113
Definition offline_processor.hpp:100
uint32_t channel_count
Definition offline_processor.hpp:103
std::string name
Definition offline_processor.hpp:101
uint32_t first_channel
Definition offline_processor.hpp:102
Definition offline_processor.hpp:106
std::string name
Definition offline_processor.hpp:107
AudioFileData audio
Definition offline_processor.hpp:108