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)")
36 QString::number(bb, 6),
37 QString::number(ee - 1, 6),
44 LOG(VB_COMMFLAG, LOG_INFO, QString(
"%1: %2 (%3)")
46 QString::number(bb, 6),
56 for (FrameAnalyzer::FrameMap::const_iterator ii = frameMap->begin();
57 ii != frameMap->end();
64 long long bb = ii.key() + 1;
67 long long ee = bb + *ii;
68 long long len = ee - bb;
70 LOG(VB_COMMFLAG, LOG_INFO, QString(
"%1: %2-%3 (%4-%5, %6)")
72 QString::number(bb, 6),
73 QString::number(ee - 1, 6),
80 LOG(VB_COMMFLAG, LOG_INFO, QString(
"%1: %2 (%3)")
82 QString::number(bb, 6),
91 return std::accumulate(frameMap->cbegin(), frameMap->cend(),
92 static_cast<long long>(0));
104 FrameAnalyzer::FrameMap::Iterator bb;
106 bool removed =
false;
109 bb = breakMap->begin();
110 if (bb != breakMap->end() && bb.key() == 0)
112 while (bb != breakMap->end())
114 if (*bb >= minbreaklen)
121 FrameAnalyzer::FrameMap::Iterator bbNext = bb;
123 if (bbNext == breakMap->end())
128 long long start = bb.key();
129 long long end = start + *bb - 1;
130 LOG(VB_COMMFLAG, LOG_INFO, QString(
"Removing break %1-%2 (%3-%4)")
133 .arg(start + 1).arg(end + 1));
135 bb = breakMap->erase(bb);
144 float fps,
int minseglen,
bool verbose)
151 FrameAnalyzer::FrameMap::Iterator bb;
152 FrameAnalyzer::FrameMap::Iterator bbnext;
154 bool removed =
false;
156 for (bb = breakMap->begin(); bb != breakMap->end(); bb = bbnext)
159 if (bb == breakMap->begin() && bb != breakMap->end() &&
160 bb.key() != 0 && bb.key() < minseglen)
165 long long brkb = bb.key();
166 long long segb = brkb + *bb;
167 long long sege = bbnext == breakMap->end() ? nframes : bbnext.key();
168 long long seglen = sege - segb;
169 if (seglen >= minseglen)
173 if (bbnext == breakMap->end())
180 long long old1 = brkb;
181 long long old2 = segb - 1;
182 long long new1 = brkb;
183 long long new2 = nframes - 1;
184 LOG(VB_COMMFLAG, LOG_INFO,
185 QString(
"Removing segment %1-%2 (%3-%4)")
188 .arg(segb + 1).arg(sege + 1));
189 LOG(VB_COMMFLAG, LOG_INFO,
190 QString(
"Replacing break %1-%2 (%3-%4)"
191 " with %5-%6 (%7-%8, EOF)")
194 .arg(old1 + 1).arg(old2 + 1)
197 .arg(new1 + 1).arg(new2 + 1));
199 breakMap->remove(brkb);
200 breakMap->insert(brkb, nframes - brkb);
209 long long old1 = brkb;
210 long long old2 = segb - 1;
211 long long new1 = brkb;
212 long long new2 = bbnext.key() + *bbnext - 1;
213 LOG(VB_COMMFLAG, LOG_INFO,
214 QString(
"Removing segment %1-%2 (%3-%4)")
217 .arg(segb + 1).arg(sege + 1));
218 LOG(VB_COMMFLAG, LOG_INFO,
219 QString(
"Replacing break %1-%2 (%3-%4)"
220 " with %5-%6 (%7-%8)")
223 .arg(old1 + 1).arg(old2 + 1)
226 .arg(new1 + 1).arg(new2 + 1));
228 breakMap->remove(brkb);
229 breakMap->insert(brkb, bbnext.key() + *bbnext - brkb);
235 long long start = bb.key();
236 long long end = start + *bb - 1;
237 LOG(VB_COMMFLAG, LOG_INFO,
238 QString(
"Removing break %1-%2 (%3-%4)")
241 .arg(start + 1).arg(end + 1));
252 FrameAnalyzer::FrameMap::const_iterator
263 FrameAnalyzer::FrameMap::const_iterator block = frameMap->constBegin();
265 for (; block != frameMap->constEnd(); ++block)
267 const long long bb = block.key();
268 const long long ee = bb + *block;
271 if (
mark <= bb && bb < markend)
276 return frameMap->constEnd();
279 FrameAnalyzer::FrameMap::const_iterator
281 long long markbegin,
long long mark)
290 FrameAnalyzer::FrameMap::const_iterator block = frameMap->constEnd();
291 for (--block; block != frameMap->constBegin(); --block)
293 const long long bb = block.key();
294 const long long ee = bb + *block;
297 if (markbegin < ee && ee <=
mark)
302 return frameMap->constEnd();