motioncells: Fix cell string generation

Allow 1 extra char in the tmp buffer where the motion cell
snippets are generated, so that it doesn't leave off a comma
when dealing with cells that have 2 numerals in both indices
This commit is contained in:
Jan Schmidt 2017-04-14 01:56:50 +10:00
parent 5b458bf829
commit b392ab4bcd

View file

@ -199,11 +199,10 @@ MotionCells::performDetectionMotionCells (IplImage * p_frame,
cvSetZero (transparencyimg);
if (m_motioncellsidxcstr)
delete[]m_motioncellsidxcstr;
m_motioncells_idx_count = m_MotionCells.size () * MSGLEN; //one motion cell idx: (lin idx : col idx,) it's 4 character except last motion cell idx
m_motioncells_idx_count = m_MotionCells.size () * MSGLEN; //one motion cell idx: (lin idx : col idx,) it's up to 6 character except last motion cell idx
m_motioncellsidxcstr = new char[m_motioncells_idx_count];
char *tmpstr = new char[MSGLEN];
for (int i = 0; i < MSGLEN; i++)
tmpstr[i] = ' ';
char *tmpstr = new char[MSGLEN+ 1];
tmpstr[0] = 0;
for (unsigned int i = 0; i < m_MotionCells.size (); i++) {
CvPoint pt1, pt2;
pt1.x = m_MotionCells.at (i).cell_pt1.x * 2;
@ -227,10 +226,10 @@ MotionCells::performDetectionMotionCells (IplImage * p_frame,
}
if (i < m_MotionCells.size () - 1) {
snprintf (tmpstr, MSGLEN, "%d:%d,", m_MotionCells.at (i).lineidx,
snprintf (tmpstr, MSGLEN+1, "%d:%d,", m_MotionCells.at (i).lineidx,
m_MotionCells.at (i).colidx);
} else {
snprintf (tmpstr, MSGLEN, "%d:%d", m_MotionCells.at (i).lineidx,
snprintf (tmpstr, MSGLEN+1, "%d:%d", m_MotionCells.at (i).lineidx,
m_MotionCells.at (i).colidx);
}
if (i == 0)