Class PcapIndex

Class Documentation

class PcapIndex

Indexing structure for efficient lookup of frames in a PCAP file.

Provides indices to map sensor-specific and global frame numbers to their corresponding byte offsets in the PCAP file. This allows fast random access to lidar frames for analysis or replay.

Public Types

using frame_index = std::vector<uint64_t>

Maps a frame number to a file offset.

using timestamp_index = std::unordered_map<uint64_t, uint64_t>

Used to locate packets based on precise capture timestamps.

using frame_id_index = std::unordered_map<int32_t, uint64_t>

Allows lookup of packet positions based on frame IDs.

Public Functions

inline PcapIndex(size_t num_sensors)

Constructs a PcapIndex for the specified number of sensors.

Initializes frame indices and timestamp-based indices for each sensor.

Parameters:

num_sensors[in] – The number of sensors captured in the PCAP.

void clear()

Simple method to clear the index.

size_t frame_count(size_t sensor_index) const

Returns the number of frames in the frame index for the given sensor index.

Parameters:

sensor_index[in] – The position of the sensor for which to retrieve the desired frame count.

Returns:

The number of frames in the sensor’s frame index.

void seek_to_frame(PcapReader &reader, size_t sensor_index, unsigned int frame_number)

Seeks the given reader to the given frame number for the given sensor index.

Parameters:
  • reader[inout] – The reader to use for seeking.

  • sensor_index[in] – The position of the sensor for which to seek for.

  • frame_number[in] – The frame number to seek to.

Public Members

std::vector<frame_index> frame_indices

frame index for each sensor

std::vector<GlobalIndex> global_frame_indices

frame index for all sensors, contains the offset followed by the index of each sensor

std::vector<timestamp_index> frame_timestamp_indices

Used for efficient lookup of packets based on timestamps.

std::vector<frame_id_index> frame_id_indices

Used for efficient lookup of packets based on frame IDs.