summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/camera.cc5
-rw-r--r--src/decoder.cc12
-rw-r--r--src/decoder.h6
-rw-r--r--src/encoder.cc16
-rw-r--r--src/frame.h6
5 files changed, 37 insertions, 8 deletions
diff --git a/src/camera.cc b/src/camera.cc
index 1137ba2..52fe0b8 100644
--- a/src/camera.cc
+++ b/src/camera.cc
@@ -31,6 +31,10 @@
/*
* $Log$
+ * Revision 1.17 2005/05/25 13:11:42 deva
+ *
+ * Made unfreeze close connection, when no recording is done.
+ *
* Revision 1.16 2005/05/16 16:00:56 deva
*
* Lots of stuff!
@@ -206,7 +210,6 @@ void Camera::freeze()
{
if(initialized) {
player->stop();
- // encoder->freeze();
decoder->freeze();
} else {
info->error("Camera not initialized.");
diff --git a/src/decoder.cc b/src/decoder.cc
index e908b63..db95fe8 100644
--- a/src/decoder.cc
+++ b/src/decoder.cc
@@ -39,6 +39,10 @@
/*
* $Log$
+ * Revision 1.29 2005/05/25 13:11:42 deva
+ *
+ * Made unfreeze close connection, when no recording is done.
+ *
* Revision 1.28 2005/05/16 16:00:56 deva
*
* Lots of stuff!
@@ -123,7 +127,7 @@ Decoder::~Decoder()
void Decoder::decode()
{
bool local_shoot;
- bool local_freeze;
+ int local_freeze;
bool local_record = false;
bool old_record;
@@ -151,7 +155,7 @@ void Decoder::decode()
pthread_mutex_unlock(&shot_mutex);
}
- if(local_freeze) {
+ if(local_freeze == 1) {
pthread_mutex_lock(&shot_mutex);
if(shot) delete shot;
shot = new Frame(ptr, DVPACKAGE_SIZE);
@@ -204,7 +208,7 @@ void Decoder::run() {
*/
void Decoder::freeze()
{
- b_freeze = true;
+ b_freeze = 1;
}
/*
@@ -212,6 +216,8 @@ void Decoder::freeze()
*/
void Decoder::unfreeze()
{
+ b_freeze = -1;
+
pthread_mutex_lock(&shot_mutex);
delete shot;
shot = NULL;
diff --git a/src/decoder.h b/src/decoder.h
index 385858e..247124a 100644
--- a/src/decoder.h
+++ b/src/decoder.h
@@ -38,6 +38,10 @@
/*
* $Log$
+ * Revision 1.14 2005/05/25 13:11:42 deva
+ *
+ * Made unfreeze close connection, when no recording is done.
+ *
* Revision 1.13 2005/05/07 10:25:34 deva
*
* Removed ffmpeg code from img_encoder and corrected decoding errors in mov_encoder
@@ -101,7 +105,7 @@ private:
pthread_mutex_t shot_mutex;
Frame* shot;
- volatile bool b_freeze;
+ volatile int b_freeze;
volatile bool b_shoot;
volatile bool b_record;
diff --git a/src/encoder.cc b/src/encoder.cc
index f0b3324..f16a754 100644
--- a/src/encoder.cc
+++ b/src/encoder.cc
@@ -39,6 +39,10 @@
/*
* $Log$
+ * Revision 1.28 2005/05/25 13:11:42 deva
+ *
+ * Made unfreeze close connection, when no recording is done.
+ *
* Revision 1.27 2005/05/22 16:34:44 deva
*
* Fix: Connection is now taken down when taking a sanpshot without recording.
@@ -118,6 +122,13 @@ Encoder::Encoder(Info *ginfo,
Encoder::~Encoder()
{
+ // If a hanging connection exists, we better close it.
+ if(s) {
+ if(n) delete n;
+ delete s;
+ s = NULL;
+ n = NULL;
+ }
}
@@ -131,11 +142,12 @@ void Encoder::encode()
frame = queue->pop();
if(frame) {
- if(frame->freeze) frozen = true;
+ if(frame->freeze == 1) frozen = true;
+ if(frame->freeze == -1) frozen = false;
if(frame->shoot) frozen = false;
if(frame->record ||
- frame->freeze ||
+ (frame->freeze == 1) ||
frame->shoot) {
// If no connection is present, make a new one
diff --git a/src/frame.h b/src/frame.h
index 72cfe8e..8734924 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -31,6 +31,10 @@
/*
* $Log$
+ * Revision 1.7 2005/05/25 13:11:42 deva
+ *
+ * Made unfreeze close connection, when no recording is done.
+ *
* Revision 1.6 2005/05/22 15:49:22 deva
* Added multithreaded encoding support.
*
@@ -72,7 +76,7 @@ public:
unsigned int number;
bool shoot;
- bool freeze;
+ int freeze; // 1 is freeze, -1 is unfreeze
bool record;
};