ACMX 2.136.0
Dual-Backend Real-Time GPU Video Synthesis
Loading...
Searching...
No Matches
acmxvk::LatestCameraFrame Class Reference

#include <media_helpers.hpp>

Public Member Functions

 LatestCameraFrame ()=default
 LatestCameraFrame (const LatestCameraFrame &)=delete
 LatestCameraFrame (LatestCameraFrame &&)=delete
LatestCameraFrameoperator= (const LatestCameraFrame &)=delete
LatestCameraFrameoperator= (LatestCameraFrame &&)=delete
void start (mxvk::VK_Capture &source)
void stop () noexcept
bool takeLatest (cv::Mat &frame, bool wait_for_first)
 ~LatestCameraFrame ()

Private Member Functions

void captureLoop () noexcept

Private Attributes

mxvk::VK_Capture * capture_source = nullptr
std::thread capture_thread
std::uint64_t consumed_generation = 0
std::condition_variable frame_condition
std::mutex frame_mutex
cv::Mat latest_frame
std::uint64_t published_generation = 0
bool stopping = true

Detailed Description

Definition at line 18 of file media_helpers.hpp.

Constructor & Destructor Documentation

◆ LatestCameraFrame() [1/3]

acmxvk::LatestCameraFrame::LatestCameraFrame ( )
default

◆ ~LatestCameraFrame()

acmxvk::LatestCameraFrame::~LatestCameraFrame ( )

Definition at line 11 of file media_helpers.cpp.

References stop().

◆ LatestCameraFrame() [2/3]

acmxvk::LatestCameraFrame::LatestCameraFrame ( const LatestCameraFrame & )
delete

References LatestCameraFrame().

◆ LatestCameraFrame() [3/3]

acmxvk::LatestCameraFrame::LatestCameraFrame ( LatestCameraFrame && )
delete

References LatestCameraFrame().

Member Function Documentation

◆ captureLoop()

void acmxvk::LatestCameraFrame::captureLoop ( )
privatenoexcept

Definition at line 60 of file media_helpers.cpp.

References capture_source, frame_condition, frame_mutex, latest_frame, published_generation, and stopping.

Referenced by operator=(), and start().

◆ operator=() [1/2]

LatestCameraFrame & acmxvk::LatestCameraFrame::operator= ( const LatestCameraFrame & )
delete

References LatestCameraFrame().

◆ operator=() [2/2]

LatestCameraFrame & acmxvk::LatestCameraFrame::operator= ( LatestCameraFrame && )
delete

◆ start()

void acmxvk::LatestCameraFrame::start ( mxvk::VK_Capture & source)

◆ stop()

◆ takeLatest()

bool acmxvk::LatestCameraFrame::takeLatest ( cv::Mat & frame,
bool wait_for_first )
nodiscard

Member Data Documentation

◆ capture_source

mxvk::VK_Capture* acmxvk::LatestCameraFrame::capture_source = nullptr
private

Definition at line 34 of file media_helpers.hpp.

Referenced by captureLoop(), start(), and stop().

◆ capture_thread

std::thread acmxvk::LatestCameraFrame::capture_thread
private

Definition at line 36 of file media_helpers.hpp.

Referenced by start(), and stop().

◆ consumed_generation

std::uint64_t acmxvk::LatestCameraFrame::consumed_generation = 0
private

Definition at line 40 of file media_helpers.hpp.

Referenced by start(), stop(), and takeLatest().

◆ frame_condition

std::condition_variable acmxvk::LatestCameraFrame::frame_condition
private

Definition at line 38 of file media_helpers.hpp.

Referenced by captureLoop(), stop(), and takeLatest().

◆ frame_mutex

std::mutex acmxvk::LatestCameraFrame::frame_mutex
private

Definition at line 37 of file media_helpers.hpp.

Referenced by captureLoop(), start(), stop(), and takeLatest().

◆ latest_frame

cv::Mat acmxvk::LatestCameraFrame::latest_frame
private

Definition at line 35 of file media_helpers.hpp.

Referenced by captureLoop(), start(), stop(), and takeLatest().

◆ published_generation

std::uint64_t acmxvk::LatestCameraFrame::published_generation = 0
private

Definition at line 39 of file media_helpers.hpp.

Referenced by captureLoop(), start(), stop(), and takeLatest().

◆ stopping

bool acmxvk::LatestCameraFrame::stopping = true
private

Definition at line 41 of file media_helpers.hpp.

Referenced by captureLoop(), start(), stop(), and takeLatest().


The documentation for this class was generated from the following files: