MCPcopy Create free account
hub / github.com/IENT/YUView / loadFrameDifference

Method loadFrameDifference

YUViewLib/src/video/videoHandlerDifference.cpp:106–137  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

104}
105
106void videoHandlerDifference::loadFrameDifference(int frameIndex, bool)
107{
108 // Calculate the difference between the inputVideos
109 if (!inputsValid())
110 return;
111
112 differenceInfoList.clear();
113
114 // Check if the second item is a video and the first one is not. In that case,
115 // make sure that the right frame is loaded for the video item.
116 videoHandler *video0 = dynamic_cast<videoHandler *>(inputVideo[0].data());
117 videoHandler *video1 = dynamic_cast<videoHandler *>(inputVideo[1].data());
118 if (video0 == nullptr && video1 != nullptr && video1->getCurrentImageIndex() != frameIndex)
119 video1->loadFrame(frameIndex);
120
121 // Calculate the difference
122 QImage newFrame = inputVideo[0]->calculateDifference(inputVideo[1],
123 frameIndex,
124 frameIndex,
125 differenceInfoList,
126 amplificationFactor,
127 markDifference);
128
129 if (!newFrame.isNull())
130 {
131 // The new difference frame is ready
132 currentImageIndex = frameIndex;
133 currentImageSetMutex.lock();
134 currentImage = newFrame;
135 currentImageSetMutex.unlock();
136 }
137}
138
139bool videoHandlerDifference::inputsValid() const
140{

Callers 1

loadFrameMethod · 0.80

Calls 5

getCurrentImageIndexMethod · 0.80
clearMethod · 0.45
dataMethod · 0.45
loadFrameMethod · 0.45
calculateDifferenceMethod · 0.45

Tested by

no test coverage detected