MayaFlux 1.0.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 684 of file WindowContainer.cpp.

685{
686 std::span<const uint8_t> result;
688 const uint64_t h = m_structure.get_height();
689 if (frame_index >= h || m_processed_data.empty())
690 return;
691
692 const auto* pixels = std::get_if<std::vector<uint8_t>>(&m_processed_data[0]);
693 if (!pixels || pixels->empty())
694 return;
695
696 const uint64_t row_elems = m_structure.get_width() * m_structure.get_channel_count();
697 const uint64_t offset = frame_index * row_elems;
698 if (offset + row_elems > pixels->size())
699 return;
700
701 result = std::span<const uint8_t>(pixels->data() + offset, row_elems);
702 });
703
704 return result;
705}
uint64_t offset
Definition Composite.cpp:10
const std::vector< float > * pixels
Definition Decoder.cpp:48
uint32_t h
Definition InkPress.cpp:29
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:268
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.