diff options
author | deva <deva> | 2006-04-10 14:14:31 +0000 |
---|---|---|
committer | deva <deva> | 2006-04-10 14:14:31 +0000 |
commit | ff2a0b78a229d2fac6162d2fa88f3e058b6382d8 (patch) | |
tree | e5195cf2aea739981e1c6c3a8a56b216b5db9fd7 /client/decoder.cc | |
parent | d90e7cb1937c4903fcfe5593a6a59be52763f235 (diff) |
*** empty log message ***
Diffstat (limited to 'client/decoder.cc')
-rw-r--r-- | client/decoder.cc | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/client/decoder.cc b/client/decoder.cc index fd2464b..5c2cce5 100644 --- a/client/decoder.cc +++ b/client/decoder.cc @@ -42,7 +42,7 @@ Decoder::Decoder(): semaphore(1) { - frame = NULL; + frame = NULL; running = true; qApp->installEventFilter(this); } @@ -62,14 +62,25 @@ void Decoder::run() #endif/* READ_DV_FROM_FILE*/ while(running) { - frame = new Frame(reader.readFrame()); + char *tmp = (char*)reader.readFrame(); + mutex.lock(); + if(frame) free(frame); + frame = tmp; + mutex.unlock(); } semaphore.release(); // Unlock the shutdown process } -Frame *Decoder::getFrame() +char *Decoder::getFrame() { - return frame; + char *tmp; + + mutex.lock(); + tmp = frame; + frame = NULL; + mutex.unlock(); + + return tmp; } bool Decoder::eventFilter(QObject *o, QEvent *e) |