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

◆ get_region_data()

std::vector< DataVariant > MayaFlux::Kakshya::VideoStreamContainer::get_region_data ( const Region region) const
overridevirtual

Get data for a specific region.

Parameters
regionThe region to extract data from
Returns
std::vector<DataVariant> containing the region's data

Implements MayaFlux::Kakshya::NDDataContainer.

Definition at line 233 of file VideoStreamContainer.cpp.

234{
235 std::optional<std::vector<DataVariant>> result;
237 if (m_data.empty())
238 return;
239
240 const auto* pixels = std::get_if<std::vector<uint8_t>>(&m_data[0]);
241 if (!pixels || pixels->empty())
242 return;
243
244 const std::span<const uint8_t> src { pixels->data(), pixels->size() };
245 try {
246 result = { extract_nd_region<uint8_t>(src, region, m_structure.dimensions) };
247 } catch (const std::exception& e) {
249 "VideoStreamContainer::get_region_data extraction failed — {}", e.what());
250 }
251 });
252
253 return result.value_or(std::vector<DataVariant> {});
254}
#define MF_WARN(comp, ctx,...)
const std::vector< float > * pixels
Definition Decoder.cpp:65
@ ContainerProcessing
Container operations (Kakshya - file/stream/region processing)
@ Kakshya
Containers[Signalsource, Stream, File], Regions, DataProcessors.
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

References MayaFlux::Journal::ContainerProcessing, MayaFlux::Kakshya::ContainerDataStructure::dimensions, MayaFlux::Journal::Kakshya, m_data, m_data_lock, m_structure, MF_WARN, and pixels.