Fixed bulk frame inserts.

git-svn-id: http://svn.zoneminder.com/svn/zm/trunk@924 e3e1d417-86f3-4887-817a-d78f3d33393f
This commit is contained in:
stan 2004-03-05 10:23:01 +00:00
parent d6c51cab0e
commit 6e74128e97
4 changed files with 8 additions and 7 deletions

View File

@ -34,7 +34,7 @@
bool Event::initialised = false; bool Event::initialised = false;
bool Event::timestamp_on_capture; bool Event::timestamp_on_capture;
bool Event::bulk_frame_interval; int Event::bulk_frame_interval;
Event::Event( Monitor *p_monitor, struct timeval p_start_time ) : monitor( p_monitor ), start_time( p_start_time ) Event::Event( Monitor *p_monitor, struct timeval p_start_time ) : monitor( p_monitor ), start_time( p_start_time )
{ {
@ -281,7 +281,7 @@ void Event::AddFrame( Image *image, struct timeval timestamp, int score, Image *
struct DeltaTimeval delta_time; struct DeltaTimeval delta_time;
DELTA_TIMEVAL( delta_time, timestamp, start_time, DT_PREC_2 ); DELTA_TIMEVAL( delta_time, timestamp, start_time, DT_PREC_2 );
bool db_frame = score>=0 || !((frames-1)%bulk_frame_interval); bool db_frame = (score>=0) || ((frames%bulk_frame_interval)==0) || !frames;
if ( db_frame ) if ( db_frame )
{ {
@ -289,7 +289,7 @@ void Event::AddFrame( Image *image, struct timeval timestamp, int score, Image *
Debug( 1, ( "Adding frame %d to DB", frames )); Debug( 1, ( "Adding frame %d to DB", frames ));
static char sql[BUFSIZ]; static char sql[BUFSIZ];
sprintf( sql, "insert into Frames ( EventId, FrameId, AlarmFrame, Delta, Score ) values ( %d, %d, '%s', %s%ld.%02ld, %d )", id, frames, frame_type, delta_time.positive?"":"-", delta_time.sec, delta_time.fsec, score ); sprintf( sql, "insert into Frames ( EventId, FrameId, Type, Delta, Score ) values ( %d, %d, '%s', %s%ld.%02ld, %d )", id, frames, frame_type, delta_time.positive?"":"-", delta_time.sec, delta_time.fsec, score );
if ( mysql_query( &dbconn, sql ) ) if ( mysql_query( &dbconn, sql ) )
{ {
Error(( "Can't insert frame: %s", mysql_error( &dbconn ) )); Error(( "Can't insert frame: %s", mysql_error( &dbconn ) ));
@ -363,7 +363,7 @@ void Event::StreamEvent( int event_id, int rate, int scale )
static char sql[BUFSIZ]; static char sql[BUFSIZ];
static char eventpath[PATH_MAX]; static char eventpath[PATH_MAX];
sprintf( sql, "select M.Id, M.Name from Events as E inner join Monitors as M on E.MonitorId = M.Id where E.Id = %d", event_id ); sprintf( sql, "select M.Id, M.Name, E.Frames from Events as E inner join Monitors as M on E.MonitorId = M.Id where E.Id = %d", event_id );
if ( mysql_query( &dbconn, sql ) ) if ( mysql_query( &dbconn, sql ) )
{ {
Error(( "Can't run query: %s", mysql_error( &dbconn ) )); Error(( "Can't run query: %s", mysql_error( &dbconn ) ));
@ -385,6 +385,7 @@ void Event::StreamEvent( int event_id, int rate, int scale )
} }
sprintf( eventpath, "%s/%s/%s/%d", ZM_PATH_WEB, (const char *)config.Item( ZM_DIR_EVENTS ), dbrow[1], event_id ); sprintf( eventpath, "%s/%s/%s/%d", ZM_PATH_WEB, (const char *)config.Item( ZM_DIR_EVENTS ), dbrow[1], event_id );
int frames = atoi(dbrow[2] );
mysql_free_result( result ); mysql_free_result( result );

View File

@ -44,7 +44,7 @@ class Event
protected: protected:
static bool initialised; static bool initialised;
static bool timestamp_on_capture; static bool timestamp_on_capture;
static bool bulk_frame_interval; static int bulk_frame_interval;
protected: protected:
static int sd; static int sd;

View File

@ -34,7 +34,7 @@ bool Monitor::opt_adaptive_skip;
bool Monitor::create_analysis_images; bool Monitor::create_analysis_images;
bool Monitor::blend_alarmed_images; bool Monitor::blend_alarmed_images;
bool Monitor::timestamp_on_capture; bool Monitor::timestamp_on_capture;
bool Monitor::bulk_frame_interval; int Monitor::bulk_frame_interval;
Monitor::Monitor( Monitor::Monitor(
int p_id, int p_id,

View File

@ -70,7 +70,7 @@ protected:
static bool create_analysis_images; static bool create_analysis_images;
static bool blend_alarmed_images; static bool blend_alarmed_images;
static bool timestamp_on_capture; static bool timestamp_on_capture;
static bool bulk_frame_interval; static int bulk_frame_interval;
protected: protected:
// These are read from the DB and thereafter remain unchanged // These are read from the DB and thereafter remain unchanged