ClikaRT::io::VideoReader
class
Header: ClikaRT/io/video.h
A lazily-opened video. open reads the header only; info() reports the stream metadata; the frames_* getters decode on demand. frames_at is the primitive; a custom sampling policy computes its own indices against info() and calls it. Move-only.
Every fallible method returns its value directly and raises ClikaRT::Error on failure (wrap in CLIKART_TRY(...) to inspect a Result instead).
Nested types
| Name | Description |
|---|---|
FrameRange | A lazy range over frames yielding FrameBatches of up to batch_size frames each. The consecutive form covers all frames [0, T); the explicit form covers an arbitrary indices set. Each dereference decodes its window (and raises ClikaRT::Error on a decode failure). |
Static member functions
open(string_view)
static VideoReader open(std::string_view path)
Open a reader over a file (reads the header only). path is copied.
Declared in ClikaRT/io/video.h, line 47
open(Span< uint8_t>)
static VideoReader open(ClikaRT::Span<const std::uint8_t> bytes)
Open a reader over a file (reads the header only). path is copied.
Declared in ClikaRT/io/video.h, line 51
Member functions
VideoReader()
VideoReader(VideoReader&&) noexcept
Declared in ClikaRT/io/video.h, line 53
operator=()
VideoReader& operator=(VideoReader&&) noexcept
Move-assign: transfers the reader.
Declared in ClikaRT/io/video.h, line 55
~VideoReader()
~VideoReader()
Releases the reader and its decoder state.
Declared in ClikaRT/io/video.h, line 57
info()
VideoInfo info() const
The stream's static metadata (read at open). Infallible.
Declared in ClikaRT/io/video.h, line 60
frames_at()
FrameBatch frames_at(ClikaRT::Span<const std::int64_t> indices) const
Decode exactly the frames at indices (in order) → a FrameBatch. The primitive every other getter routes through. indices is read during the call, not retained.
Declared in ClikaRT/io/video.h, line 66
sample_uniform()
FrameBatch sample_uniform(std::int64_t n) const
Uniformly sample n frames across the whole clip (the built-in default sampling policy).
Declared in ClikaRT/io/video.h, line 71
frames_at_timestamps()
FrameBatch frames_at_timestamps(ClikaRT::Span<const double> seconds) const
Decode the frames nearest each timestamp in seconds. seconds is read during the call, not retained.
Declared in ClikaRT/io/video.h, line 76
frame_bytes()
std::vector<std::uint8_t> frame_bytes(std::int64_t index) const
A single frame's raw RGB bytes (length H * W * 3) copied into a vector.
Declared in ClikaRT/io/video.h, line 80
to_process_metadata()
VideoInfo to_process_metadata() const
The to_process_metadata bridge: the reader's info as the processor's 3-field VideoMetadata-shaped VideoInfo (total_num_frames / fps / duration_seconds), so a clip feeds a video processor directly. Infallible.
Declared in ClikaRT/io/video.h, line 85
frames(int64_t)
FrameRange frames(std::int64_t batch_size = 1) const
Iterate all frames [0, T) in batches of batch_size.
Declared in ClikaRT/io/video.h, line 134
frames(Span< int64_t>, int64_t)
FrameRange frames(ClikaRT::Span<const std::int64_t> indices, std::int64_t batch_size = 1) const
Iterate an explicit indices set in batches of batch_size.
Declared in ClikaRT/io/video.h, line 136