mirror of
https://github.com/lostjared/Acid.Cam.v2.Qt.git
synced 2025-12-17 04:10:01 +01:00
updated to use std::atomic
This commit is contained in:
@@ -456,12 +456,12 @@ bool AC_MainWindow::startVideo(const QString &filename, const QString &outdir, b
|
||||
|
||||
void AC_MainWindow::controls_Stop() {
|
||||
playback->Stop();
|
||||
progress_bar->hide();
|
||||
controls_showvideo->setEnabled(false);
|
||||
controls_stop->setEnabled(false);
|
||||
controls_pause->setEnabled(false);
|
||||
controls_step->setEnabled(false);
|
||||
controls_snapshot->setEnabled(false);
|
||||
|
||||
if(capture_video.isOpened()) {
|
||||
capture_video.release();
|
||||
if(recording == true) writer.release();
|
||||
@@ -492,7 +492,6 @@ void AC_MainWindow::controls_Stop() {
|
||||
disp->hide();
|
||||
playback->Release();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void AC_MainWindow::controls_ShowVideo() {
|
||||
|
||||
@@ -12,6 +12,7 @@ void Playback::Play() {
|
||||
stop = false;
|
||||
}
|
||||
}
|
||||
//start(LowPriority);
|
||||
start(HighPriority);
|
||||
}
|
||||
|
||||
@@ -58,13 +59,11 @@ void Playback::run() {
|
||||
emit stopRecording();
|
||||
return;
|
||||
}
|
||||
|
||||
mutex.unlock();
|
||||
static std::vector<std::pair<int, int>> cur;
|
||||
mutex_shown.lock();
|
||||
cur = current;
|
||||
mutex_shown.unlock();
|
||||
|
||||
|
||||
ac::orig_frame = frame.clone();
|
||||
if(cur.size()>0) {
|
||||
ac::in_custom = true;
|
||||
@@ -82,6 +81,7 @@ void Playback::run() {
|
||||
}
|
||||
}
|
||||
}
|
||||
mutex.lock();
|
||||
if(recording && writer.isOpened()) {
|
||||
writer.write(frame);
|
||||
}
|
||||
@@ -122,9 +122,7 @@ Playback::~Playback() {
|
||||
}
|
||||
|
||||
void Playback::Stop() {
|
||||
mutex.lock();
|
||||
stop = true;
|
||||
mutex.unlock();
|
||||
}
|
||||
|
||||
void Playback::Release() {
|
||||
|
||||
@@ -3,11 +3,13 @@
|
||||
|
||||
#include "qtheaders.h"
|
||||
|
||||
#include<atomic>
|
||||
|
||||
class Playback : public QThread {
|
||||
Q_OBJECT
|
||||
private:
|
||||
bool stop;
|
||||
QMutex mutex,mutex_shown,mutex_add;
|
||||
std::atomic<bool> stop;
|
||||
QMutex mutex,mutex_shown,mutex_add, mutex_start;
|
||||
QWaitCondition condition;
|
||||
cv::Mat frame;
|
||||
int frame_rate;
|
||||
|
||||
Reference in New Issue
Block a user