check if video is set

This commit is contained in:
Jared Bruni
2022-03-19 14:55:24 -07:00
parent afe57ab73d
commit 7b38949b8b
3 changed files with 10 additions and 1 deletions

View File

@@ -845,7 +845,7 @@ void AC_MainWindow::comboFilterChanged(int) {
Log(str);
std::string text = filters->currentText().toStdString();
if(ac::v_cap.isOpened() == false && text.find("Video") != std::string::npos) {
if(playback->videoIsOpen() == false && text.find("Video") != std::string::npos) {
Log(tr("Set a video file to use this filter"));
}

View File

@@ -37,6 +37,7 @@ bool Playback::VideoRelease() {
if(ac::v_cap.isOpened()) {
ac::v_cap.release();
ret = true;
video_is_set = false;
}
mutex.unlock();
return ret;
@@ -133,14 +134,20 @@ bool Playback::setVideoCamera(std::string name, int type, int device, int res, c
return true;
}
bool Playback::videoIsOpen() {
return video_is_set;
}
bool Playback::openVideo(std::string vname) {
mutex.lock();
ac::v_cap.open(vname);
if(ac::v_cap.isOpened() == false) {
mutex.unlock();
video_is_set = false;
return false;
}
mutex.unlock();
video_is_set = true;
return true;
}
void Playback::setVector(std::vector<FilterValue> v) {

View File

@@ -19,6 +19,7 @@ class Playback : public QThread {
private:
std::atomic<bool> stop;
std::atomic<bool> video_shown;
std::atomic<bool> video_is_set;
QMutex mutex, mutex_shown, mutex_add;
QWaitCondition condition;
cv::Mat frame;
@@ -62,6 +63,7 @@ private:
public:
Playback(QObject *parent = 0);
~Playback();
bool videoIsOpen();
void setFadeFilter(bool f);
void setFrameIndex(const long &index);
bool getFrame(QImage &img, const int &index);