- eDebug("took sample: %llx, %llx", off, p);
+ /* as we are happily mixing PTS and PCR values (no comment, please), we might
+ end up with some "negative" segments.
+
+ so check if this new sample is between the previous and the next field*/
+
+ std::map<pts_t, off_t>::const_iterator l = m_samples.lower_bound(p);
+ std::map<pts_t, off_t>::const_iterator u = l;
+
+ if (l != m_samples.begin())
+ {
+ --l;
+ if (u != m_samples.end())
+ {
+ if ((l->second > off) || (u->second < off))
+ {
+ eDebug("ignoring sample %llx %llx %llx (%lld %lld %lld)",
+ l->second, off, u->second, l->first, p, u->first);
+ return 1;
+ }
+ }
+ }
+
+