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

◆ remove_processor()

void MayaFlux::Buffers::BufferProcessingChain::remove_processor ( const std::shared_ptr< BufferProcessor > &  processor,
const std::shared_ptr< Buffer > &  buffer 
)

Removes a processor from the pipeline for a specific buffer.

Parameters
processorProcessor to remove
bufferBuffer to remove the processor from

If the processor is found in the buffer's transformation sequence, it is removed and its on_detach method is called. The chain also performs cleanup optimization:

  • Resource Cleanup: Ensures all processor resources are properly released
  • Pipeline Reoptimization: Rebuilds optimization plans without the removed processor
  • Backend Restoration: Restores default backends if the processor was overriding them

Definition at line 74 of file BufferProcessingChain.cpp.

75{
76 if (m_is_processing.load(std::memory_order_acquire)) {
77 queue_pending_processor_op(processor, buffer, false);
78 return;
79 }
80
81 remove_processor_direct(processor, buffer);
82}
void remove_processor_direct(const std::shared_ptr< BufferProcessor > &processor, const std::shared_ptr< Buffer > &buffer)
bool queue_pending_processor_op(const std::shared_ptr< BufferProcessor > &processor, const std::shared_ptr< Buffer > &buffer, bool is_addition, std::string *rejection_reason=nullptr)

References m_is_processing, queue_pending_processor_op(), and remove_processor_direct().

+ Here is the call graph for this function: