diff --git a/src/playback_thread.cpp b/src/playback_thread.cpp index 05b6ec3..d028ad2 100644 --- a/src/playback_thread.cpp +++ b/src/playback_thread.cpp @@ -151,6 +151,11 @@ void Playback::setVector(std::vector v) { mutex.unlock(); } +void Playback::setFilterMapEx(std::unordered_map f) { + filter_map_ex_set = f; + setFilterMap = true; +} + unsigned long Playback::calcMem() { mutex.lock(); unsigned long calc = ac::calculateMemory(); @@ -413,6 +418,11 @@ void Playback::run() { color_replace_image = chroma_image.clone(); chroma_image_set = false; } + if(setFilterMap) { + filter_map_ex = filter_map_ex_set; + setFilterMap = false; + } + mutex.unlock(); cv::Mat temp_frame; diff --git a/src/playback_thread.h b/src/playback_thread.h index 19a49e9..b8e327a 100644 --- a/src/playback_thread.h +++ b/src/playback_thread.h @@ -57,6 +57,8 @@ private: std::atomic fps_delay; std::vector draw_strings; std::unordered_map filter_map_ex; + bool setFilterMap = false; + std::unordered_map filter_map_ex_set; public: Playback(QObject *parent = 0); ~Playback(); @@ -76,6 +78,7 @@ public: void setColorMap(int c); void setPngPath(std::string path); void clearImage(); + void setFilterMapEx(std::unordered_map f); void Play(); void Stop(); void Release(); diff --git a/src/user_define.cpp b/src/user_define.cpp index 463760f..53db35c 100644 --- a/src/user_define.cpp +++ b/src/user_define.cpp @@ -54,6 +54,7 @@ void DefineWindow::setFilterName() { filter_map[fn].index = 0; filter_map[fn].filter = filter_map[ft].filter; filter_map[fn].subfilter = -1; + main_window->playback->setFilterMapEx(filter_map); main_window->resetMenu(); def_list->addItem(real_final_name.c_str()); def_newname->setText("");