Photosine 0.5
Loading...
Searching...
No Matches
ImageProcessing::AudioPluginImageProcessorJob Class Reference

#include <AudioPluginImageProcessorJob.h>

Inheritance diagram for ImageProcessing::AudioPluginImageProcessorJob:

Public Member Functions

 AudioPluginImageProcessorJob (cv::Mat matToProcess, juce::ValueTree sourceValueTree, std::function< void(ImageProcessorMat)> callback, int numChannels, Time::Timecode newFrameNumber, PluginPool::Reservation pooledPlugins)
 ~AudioPluginImageProcessorJob ()
JobStatus runJob ()

Private Member Functions

bool areChildThreadsCompleted ()
void extractChannelsAndProcess ()
cv::Mat flattenChannelsToSingleFrame ()
 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AudioPluginImageProcessorJob)

Private Attributes

int width = 10
int height = 10
Time::Timecode frameNumber
int channels
cv::Mat imageToProcess
cv::Mat frameMat
juce::ValueTree pluginsValueTree
juce::OwnedArray< AudioPluginImageProcessorThreadchannelThreads
std::condition_variable channelCompletionCV
std::mutex channelCompletionMutex
std::function< void(ImageProcessorMat)> matProcessorCallback
PluginPool::Reservation pooledPluginsReservation

Detailed Description

A thread which separates an image into its component channels, processes each channel, and then combines the output into a single new image. The final image is passed to the callback function provided in the constructor.

Constructor & Destructor Documentation

◆ AudioPluginImageProcessorJob()

ImageProcessing::AudioPluginImageProcessorJob::AudioPluginImageProcessorJob ( cv::Mat matToProcess,
juce::ValueTree sourceValueTree,
std::function< void(ImageProcessorMat)> callback,
int numChannels,
Time::Timecode newFrameNumber,
PluginPool::Reservation pooledPlugins )

◆ ~AudioPluginImageProcessorJob()

ImageProcessing::AudioPluginImageProcessorJob::~AudioPluginImageProcessorJob ( )

Member Function Documentation

◆ areChildThreadsCompleted()

bool ImageProcessing::AudioPluginImageProcessorJob::areChildThreadsCompleted ( )
private

Returns true if child threads have completed processing.

◆ extractChannelsAndProcess()

void ImageProcessing::AudioPluginImageProcessorJob::extractChannelsAndProcess ( )
private

Extracts all image channels into separate mats, creates and runs a processing thread per channel.

◆ flattenChannelsToSingleFrame()

cv::Mat ImageProcessing::AudioPluginImageProcessorJob::flattenChannelsToSingleFrame ( )
private

Flattens separated channels into a single mat.

◆ JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR()

ImageProcessing::AudioPluginImageProcessorJob::JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR ( AudioPluginImageProcessorJob )
private

◆ runJob()

ImageProcessing::AudioPluginImageProcessorJob::JobStatus ImageProcessing::AudioPluginImageProcessorJob::runJob ( )

Runs thread and passes completed image to callback function provided in constructor.

Member Data Documentation

◆ channelCompletionCV

std::condition_variable ImageProcessing::AudioPluginImageProcessorJob::channelCompletionCV
private

◆ channelCompletionMutex

std::mutex ImageProcessing::AudioPluginImageProcessorJob::channelCompletionMutex
private

◆ channels

int ImageProcessing::AudioPluginImageProcessorJob::channels
private

◆ channelThreads

juce::OwnedArray<AudioPluginImageProcessorThread> ImageProcessing::AudioPluginImageProcessorJob::channelThreads
private

◆ frameMat

cv::Mat ImageProcessing::AudioPluginImageProcessorJob::frameMat
private

◆ frameNumber

Time::Timecode ImageProcessing::AudioPluginImageProcessorJob::frameNumber
private

◆ height

int ImageProcessing::AudioPluginImageProcessorJob::height = 10
private

◆ imageToProcess

cv::Mat ImageProcessing::AudioPluginImageProcessorJob::imageToProcess
private

◆ matProcessorCallback

std::function<void(ImageProcessorMat)> ImageProcessing::AudioPluginImageProcessorJob::matProcessorCallback
private

◆ pluginsValueTree

juce::ValueTree ImageProcessing::AudioPluginImageProcessorJob::pluginsValueTree
private

◆ pooledPluginsReservation

PluginPool::Reservation ImageProcessing::AudioPluginImageProcessorJob::pooledPluginsReservation
private

◆ width

int ImageProcessing::AudioPluginImageProcessorJob::width = 10
private

The documentation for this class was generated from the following files: