From e6bda8bb88f10884ecc05372747f3ffbc9f1c060 Mon Sep 17 00:00:00 2001 From: Jeremy Tan Date: Sat, 21 Sep 2013 16:28:31 +0800 Subject: [PATCH] Image: Fix function type, try to ensure image is not cached, add buffer releases. --- server/image.c | 13 +++++++++---- server/image.h | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/server/image.c b/server/image.c index 05a587e..263ce07 100644 --- a/server/image.c +++ b/server/image.c @@ -4,12 +4,14 @@ #include #include -void Image_Handler(FCGIContext * context, const char * params) +void Image_Handler(FCGIContext * context, char * params) { static CvCapture * capture = NULL; - if (capture == NULL) + if (capture == NULL) { capture = cvCreateCameraCapture(0); - + cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 640); + cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, 480); + } static int p[] = {CV_IMWRITE_JPEG_QUALITY, 100, 0}; IplImage * frame = cvQueryFrame(capture); @@ -18,8 +20,11 @@ void Image_Handler(FCGIContext * context, const char * params) // Will this work? Log(LOGNOTE, "Sending image!"); - FCGI_PrintRaw("Content-type: image/jpg\r\n\r\n"); + FCGI_PrintRaw("Content-type: image/jpg\r\n"); + FCGI_PrintRaw("Cache-Control: no-cache, no-store, must-revalidate\r\n\r\n"); //FCGI_PrintRaw("Content-Length: %d", jpg->rows*jpg->cols); FCGI_WriteBinary(jpg->data.ptr,1,jpg->rows*jpg->cols); + cvReleaseMat(&jpg); + cvReleaseImageHeader(&frame); } diff --git a/server/image.h b/server/image.h index 7cec1ed..4d94b05 100644 --- a/server/image.h +++ b/server/image.h @@ -8,7 +8,7 @@ #include "common.h" -extern void Image_Handler(FCGIContext * context, const char * params); +extern void Image_Handler(FCGIContext * context, char * params); #endif //_IMAGE_H -- 2.20.1