+/** @brief Return true if @p p contains @p timestamp
+ *
+ * Containment implies that a sample @p timestamp exists within the packet.
+ */
+static inline int contains(const struct packet *p, uint32_t timestamp) {
+ const uint32_t packet_start = p->timestamp;
+ const uint32_t packet_end = p->timestamp + p->nsamples;
+
+ return (ge(timestamp, packet_start)
+ && lt(timestamp, packet_end));
+}
+