diff options
Diffstat (limited to 'client/decoder.cc')
-rw-r--r-- | client/decoder.cc | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/client/decoder.cc b/client/decoder.cc index 5c2cce5..ea67d68 100644 --- a/client/decoder.cc +++ b/client/decoder.cc @@ -40,6 +40,8 @@ #include <QEvent> #include <QApplication> +#include "control.h" + Decoder::Decoder(): semaphore(1) { frame = NULL; @@ -63,10 +65,15 @@ void Decoder::run() while(running) { char *tmp = (char*)reader.readFrame(); - mutex.lock(); - if(frame) free(frame); - frame = tmp; - mutex.unlock(); + + if(MIaV::control.isFrozen() == false) { + mutex.lock(); + if(frame) free(frame); + frame = tmp; + mutex.unlock(); + } else { + free(tmp); + } } semaphore.release(); // Unlock the shutdown process } |