in Transform360/Library/VideoFrameTransform.cpp [610:649]
void VideoFrameTransform::runFiltering(
const Mat& inputMat,
Mat& blurredPlane,
int transformMatPlaneIndex,
int imagePlaneIndex,
int leftOffset,
int topOffset,
vector<thread>& segmentFilteringThreads) {
for (int i = 0;
i < segmentFilteringConfigs_[transformMatPlaneIndex].size(); ++i) {
SegmentFilteringConfig config =
segmentFilteringConfigs_[transformMatPlaneIndex][i];
if (ctx_.enable_multi_threading) {
segmentFilteringThreads.emplace_back(
&VideoFrameTransform::filterSegment,
this,
cref(inputMat),
ref(blurredPlane),
cref(filterKernelsX_[transformMatPlaneIndex][i]),
cref(filterKernelsY_[transformMatPlaneIndex][i]),
config.left + leftOffset,
config.top + topOffset,
config.width,
config.height,
imagePlaneIndex);
} else {
filterSegment(
inputMat,
blurredPlane,
filterKernelsX_[transformMatPlaneIndex][i],
filterKernelsY_[transformMatPlaneIndex][i],
config.left + leftOffset,
config.top + topOffset,
config.width,
config.height,
imagePlaneIndex);
}
}
}