Skip to main content

BagSliceSource

Struct BagSliceSource 

Source
pub struct BagSliceSource { /* private fields */ }
Expand description

In-place SliceSource for rosbags. The bag’s own chunk index (ChunkInfo) gives each chunk’s byte offset and time range, so time slicing seeks straight to the overlapping chunks and decompresses only those — no full read, bounded memory. Event counts aren’t in the index, so n_events/slice_index decode the target chunks once and cache the per-chunk cumulative counts; time slicing never triggers that.

Trait Implementations§

Source§

impl SliceSource for BagSliceSource

Source§

fn sensor_size(&self) -> (usize, usize)

Source§

fn timestamp_scale_ms(&self) -> f64

Source§

fn n_events(&self) -> usize

Total events in the file.
Source§

fn time_span(&self) -> (i64, i64)

(t_min, t_max) in microseconds across the whole file; (0, 0) when empty.
Source§

fn frames(&self, t0: i64, t1: i64) -> Result<Vec<(i64, EventFrame)>, IoError>

The intensity (APS) frames a DAVIS recorded alongside its events, those whose timestamp lies in the half-open window [t0, t1) (µs), paired with that timestamp. Read more
Source§

fn imu(&self, t0: i64, t1: i64) -> Result<Vec<ImuSample>, IoError>

The IMU samples in [t0, t1) (µs).
Source§

fn camera(&self) -> Result<Option<Camera>, IoError>

The camera intrinsics the recording carries, if it carries any.
Source§

fn slice_time(&self, t0: i64, t1: i64) -> Result<EventStream, IoError>

Events whose timestamp (µs) lies in the half-open window [t0, t1).
Source§

fn slice_index(&self, i0: usize, i1: usize) -> Result<EventStream, IoError>

Events whose index lies in [i0, i1) (clamped to the file).
Source§

fn slice_time_into( &self, t0: i64, t1: i64, sink: &mut dyn EventConsumer, ) -> Result<(), IoError>

Streams the events of [t0, t1) into sink, in decode order, without keeping them. Read more
Source§

fn pixel_counts(&self) -> Result<Vec<u64>, IoError>

Per-pixel event counts over the whole file (row-major width·height), out-of-bounds events dropped — what the reader’s hot-pixel pre-scan needs. The default tallies through slice_index in bounded chunks; a source that can read coordinates alone (HDF5) overrides this to skip the t/p columns and stream construction, which is most of the work.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V