MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ get_frame_typed()

auto MayaFlux::Kakshya::WindowContainer::get_frame_typed ( uint64_t  frame_index) const -> std::span<const uint8_t>
private

Definition at line 716 of file WindowContainer.cpp.

717{
718 std::span<const uint8_t> result;
720 const uint64_t h = m_structure.get_height();
721 if (frame_index >= h || m_processed_data.empty())
722 return;
723
724 const auto* pixels = std::get_if<std::vector<uint8_t>>(&m_processed_data[0]);
725 if (!pixels || pixels->empty())
726 return;
727
728 const uint64_t row_elems = m_structure.get_width() * m_structure.get_channel_count();
729 const uint64_t offset = frame_index * row_elems;
730 if (offset + row_elems > pixels->size())
731 return;
732
733 result = std::span<const uint8_t>(pixels->data() + offset, row_elems);
734 });
735
736 return result;
737}
const std::vector< float > * pixels
Definition Decoder.cpp:65
uint32_t h
Definition InkPress.cpp:28
float offset
std::vector< DataVariant > m_processed_data
bool seqlock_read_void(const Seqlock &lock, uint32_t max_attempts, Fn &&fn)
Invoke a void read functor under a Seqlock with a bounded retry count.
Definition SeqLock.hpp:222
static uint64_t get_height(const std::vector< DataDimension > &dimensions)
Extract height from image/video dimensions.
static uint64_t get_channel_count(const std::vector< DataDimension > &dimensions)
Extract channel count from dimensions.
static uint64_t get_width(const std::vector< DataDimension > &dimensions)
Extract width from image/video dimensions.

References h, offset, and pixels.