10 rrccinrect(
int rr,
int cc,
int rrow,
int rcol,
int rwidth,
int rheight)
12 return rr >= rrow &&
cc >= rcol &&
13 rr < rrow + rheight &&
cc < rcol + rwidth;
20 for (FrameAnalyzer::FrameMap::const_iterator ii = frameMap->begin();
21 ii != frameMap->end();
28 long long bb = ii.key() + 1;
31 long long ee = bb + *ii;
32 long long len = ee - bb;
34 LOG(VB_COMMFLAG, LOG_INFO, QString(
"%1: %2-%3 (%4-%5, %6)")
43 LOG(VB_COMMFLAG, LOG_INFO, QString(
"%1: %2 (%3)")
55 for (FrameAnalyzer::FrameMap::const_iterator ii = frameMap->begin();
56 ii != frameMap->end();
63 long long bb = ii.key() + 1;
66 long long ee = bb + *ii;
67 long long len = ee - bb;
69 LOG(VB_COMMFLAG, LOG_INFO, QString(
"%1: %2-%3 (%4-%5, %6)")
78 LOG(VB_COMMFLAG, LOG_INFO, QString(
"%1: %2 (%3)")
89 return std::accumulate(frameMap->cbegin(), frameMap->cend(),
90 static_cast<long long>(0));
102 FrameAnalyzer::FrameMap::Iterator bb;
104 bool removed =
false;
107 bb = breakMap->begin();
108 if (bb != breakMap->end() && bb.key() == 0)
110 while (bb != breakMap->end())
112 if (*bb >= minbreaklen)
119 FrameAnalyzer::FrameMap::Iterator bb1 = bb;
121 if (bb == breakMap->end())
126 long long start = bb1.key();
127 long long end = start + *bb1 - 1;
128 LOG(VB_COMMFLAG, LOG_INFO, QString(
"Removing break %1-%2 (%3-%4)")
131 .
arg(start + 1).
arg(end + 1));
133 breakMap->erase(bb1);
142 float fps,
int minseglen,
bool verbose)
149 FrameAnalyzer::FrameMap::Iterator bb;
150 FrameAnalyzer::FrameMap::Iterator bbnext;
152 bool removed =
false;
154 for (bb = breakMap->begin(); bb != breakMap->end(); bb = bbnext)
157 if (bb == breakMap->begin() && bb != breakMap->end() &&
158 bb.key() != 0 && bb.key() < minseglen)
163 long long brkb = bb.key();
164 long long segb = brkb + *bb;
165 long long sege = bbnext == breakMap->end() ? nframes : bbnext.key();
166 long long seglen = sege - segb;
167 if (seglen >= minseglen)
171 if (bbnext == breakMap->end())
178 long long old1 = brkb;
179 long long old2 = segb - 1;
180 long long new1 = brkb;
181 long long new2 = nframes - 1;
182 LOG(VB_COMMFLAG, LOG_INFO,
183 QString(
"Removing segment %1-%2 (%3-%4)")
186 .
arg(segb + 1).
arg(sege + 1));
187 LOG(VB_COMMFLAG, LOG_INFO,
188 QString(
"Replacing break %1-%2 (%3-%4)"
189 " with %5-%6 (%7-%8, EOF)")
192 .
arg(old1 + 1).
arg(old2 + 1)
195 .
arg(new1 + 1).
arg(new2 + 1));
197 breakMap->remove(brkb);
198 breakMap->insert(brkb, nframes - brkb);
207 long long old1 = brkb;
208 long long old2 = segb - 1;
209 long long new1 = brkb;
210 long long new2 = bbnext.key() + *bbnext - 1;
211 LOG(VB_COMMFLAG, LOG_INFO,
212 QString(
"Removing segment %1-%2 (%3-%4)")
215 .
arg(segb + 1).
arg(sege + 1));
216 LOG(VB_COMMFLAG, LOG_INFO,
217 QString(
"Replacing break %1-%2 (%3-%4)"
218 " with %5-%6 (%7-%8)")
221 .
arg(old1 + 1).
arg(old2 + 1)
224 .
arg(new1 + 1).
arg(new2 + 1));
226 breakMap->remove(brkb);
227 breakMap->insert(brkb, bbnext.key() + *bbnext - brkb);
233 long long start = bb.key();
234 long long end = start + *bb - 1;
235 LOG(VB_COMMFLAG, LOG_INFO,
236 QString(
"Removing break %1-%2 (%3-%4)")
239 .
arg(start + 1).
arg(end + 1));
250 FrameAnalyzer::FrameMap::const_iterator
261 FrameAnalyzer::FrameMap::const_iterator block = frameMap->constBegin();
263 for (; block != frameMap->constEnd(); ++block)
265 const long long bb = block.key();
266 const long long ee = bb + *block;
269 if (
mark <= bb && bb < markend)
274 return frameMap->constEnd();
277 FrameAnalyzer::FrameMap::const_iterator
279 long long markbegin,
long long mark)
288 FrameAnalyzer::FrameMap::const_iterator block = frameMap->constEnd();
289 for (--block; block != frameMap->constBegin(); --block)
291 const long long bb = block.key();
292 const long long ee = bb + *block;
295 if (markbegin < ee && ee <=
mark)
300 return frameMap->constEnd();