Update comments for Doxygen. Move old, unused files to the testing folder.
[matches/MCTX3420.git] / server / image.c
index a32ac2c..0e4ff48 100644 (file)
@@ -8,8 +8,14 @@
 static CvCapture * g_capture = NULL;
 static int g_captureID = -1;
 
+/**
+ * Image stream handler. Returns an image to the user.
+ * @param context The context to work in
+ * @param params User specified parameters
+ */
 void Image_Handler(FCGIContext * context, char * params)
 {
+
        int num = 0, width = 1600, height = 1200;       // Set Default values
        FCGIValue val[] = {
                {"num", &num, FCGI_INT_T},
@@ -52,7 +58,7 @@ void Image_Handler(FCGIContext * context, char * params)
  * @param num - Camera id
  * @param width - Width to force
  * @param height - Height to force
- * @param image - Pointer to CvMat* to set with result
+ * @param frame - Pointer to IplImage* to set with result
  * @returns true on success, false on error 
  */
  bool Camera_GetImage(int num, int width, int height,  IplImage ** frame)
@@ -74,24 +80,31 @@ void Image_Handler(FCGIContext * context, char * params)
                g_captureID = num;
        }
 
-       cvSetCaptureProperty(g_capture, CV_CAP_PROP_FRAME_WIDTH, width);
-       cvSetCaptureProperty(g_capture, CV_CAP_PROP_FRAME_HEIGHT, height);
+       if (g_capture != NULL)
+       {
+
+               cvSetCaptureProperty(g_capture, CV_CAP_PROP_FRAME_WIDTH, width);
+               cvSetCaptureProperty(g_capture, CV_CAP_PROP_FRAME_HEIGHT, height);
 
-       *frame = cvQueryFrame(g_capture);
-       result = (*frame != NULL);
+               *frame = cvQueryFrame(g_capture);
+               result = (*frame != NULL);
 
        //cvShowImage("display", *image);
        //cvWaitKey(0); 
        //cvSaveImage("test.jpg",*image,0);
                
-       Log(LOGDEBUG, "At end of mutex");
-       
+               Log(LOGDEBUG, "At end of mutex");
+       }
+
        pthread_mutex_unlock(&mutex);   //Close the mutex
 
        //NOTE: Never have a "return" statement before the mutex is unlocked; it causes deadlocks!
        return result;
 }
 
+/**
+ * Executed on cleanup. Releases the OpenCV Capture structs.
+ */
 void Image_Cleanup()
 {
        // Release the capture and IplImage pointers

UCC git Repository :: git.ucc.asn.au