MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ process_gpu_to_audio()

void MayaFlux::Buffers::TransferProcessor::process_gpu_to_audio ( const std::shared_ptr< Buffer > &  audio_buffer)
private

Definition at line 206 of file TransferProcessor.cpp.

207{
208 auto audio = std::dynamic_pointer_cast<AudioBuffer>(audio_buffer);
209 if (!audio) {
211 "TransferProcessor (gpu→audio) requires AudioBuffer.");
212 return;
213 }
214
215 auto transfer_it = std::ranges::find_if(m_gpu_to_audio_map,
216 [&audio](const auto& pair) { return pair.second == audio; });
217
218 if (transfer_it == m_gpu_to_audio_map.end()) {
220 "No source VKBuffer configured for this AudioBuffer.");
221 return;
222 }
223
224 auto source_gpu = transfer_it->first;
225
226 auto staging_it = m_staging_map.find(source_gpu);
227 std::shared_ptr<VKBuffer> staging = (staging_it != m_staging_map.end()) ? staging_it->second : nullptr;
228
229 download_audio_from_gpu(source_gpu, audio, staging);
230}
#define MF_RT_ERROR(comp, ctx,...)
std::unordered_map< std::shared_ptr< VKBuffer >, std::shared_ptr< AudioBuffer > > m_gpu_to_audio_map
std::unordered_map< std::shared_ptr< VKBuffer >, std::shared_ptr< VKBuffer > > m_staging_map
void download_audio_from_gpu(const std::shared_ptr< VKBuffer > &gpu_buffer, const std::shared_ptr< AudioBuffer > &audio_buffer, const std::shared_ptr< VKBuffer > &staging)
Download GPU buffer to AudioBuffer (expects double precision)
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.

References MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, MayaFlux::Buffers::download_audio_from_gpu(), m_gpu_to_audio_map, m_staging_map, and MF_RT_ERROR.

Referenced by processing_function().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: