libcamera v0.7.0+1595-4b6c47bd-nvm
Supporting cameras in Linux since 2019
Loading...
Searching...
No Matches
Public Member Functions | List of all members
libcamera::DebayerCpuThread Class Reference

Class representing one CPU debayering thread. More...

Inheritance diagram for libcamera::DebayerCpuThread:
Inheritance graph
[legend]
Collaboration diagram for libcamera::DebayerCpuThread:
Collaboration graph
[legend]

Public Member Functions

 DebayerCpuThread (DebayerCpu *debayer, unsigned int threadIndex, bool enableInputMemcpy)
 Construct a DebayerCpuThread object.
 
void configure (unsigned int yStart, unsigned int yEnd)
 Configure thread to process a specific part of the image.
 
void process (uint32_t frame, const uint8_t *src, uint8_t *dst)
 Process part of the image assigned to this debayer thread.
 
- Public Member Functions inherited from libcamera::Thread
 Thread (std::string name={})
 Create a thread.
 
void start ()
 Start the thread.
 
void exit (int code=0)
 Stop the thread's event loop.
 
bool wait (utils::duration duration=utils::duration::max())
 Wait for the thread to finish.
 
int setThreadAffinity (const Span< const unsigned int > &cpus)
 Set the CPU affinity mask of the thread.
 
bool isRunning ()
 Check if the thread is running.
 
EventDispatchereventDispatcher ()
 Retrieve the event dispatcher.
 
void dispatchMessages (Message::Type type=Message::Type::None, Object *receiver=nullptr)
 Dispatch posted messages for this thread.
 
void removeMessages (Object *receiver)
 Remove all posted messages for the receiver.
 
- Public Member Functions inherited from libcamera::Object
 Object (Object *parent=nullptr)
 Construct an Object instance.
 
virtual ~Object ()
 Destroy an Object instance.
 
void deleteLater ()
 Schedule deletion of the instance in the thread it belongs to.
 
void postMessage (std::unique_ptr< Message > msg)
 Post a message to the object's thread.
 
template<typename T , typename R , typename... FuncArgs, typename... Args, std::enable_if_t< std::is_base_of< Object, T >::value > * = nullptr>
invokeMethod (R(T::*func)(FuncArgs...), ConnectionType type, Args &&... args)
 Invoke a method asynchronously on an Object instance.
 
Threadthread () const
 Retrieve the thread the object is bound to.
 
void moveToThread (Thread *thread)
 Move the object and all its children to a different thread.
 
Objectparent () const
 Retrieve the object's parent.
 

Additional Inherited Members

- Static Public Member Functions inherited from libcamera::Thread
static Threadcurrent ()
 Retrieve the Thread instance for the current thread.
 
static pid_t currentId ()
 Retrieve the ID of the current thread.
 
- Public Attributes inherited from libcamera::Thread
Signal finished
 Signal the end of thread execution.
 
- Protected Member Functions inherited from libcamera::Thread
int exec ()
 Enter the event loop.
 
virtual void run ()
 Main function of the thread.
 
- Protected Member Functions inherited from libcamera::Object
virtual void message (Message *msg)
 Message handler for the object.
 
bool assertThreadBound (const char *message)
 Check if the caller complies with thread-bound constraints.
 

Detailed Description

Class representing one CPU debayering thread.

Implementation for CPU based debayering threads.

Constructor & Destructor Documentation

◆ DebayerCpuThread()

libcamera::DebayerCpuThread::DebayerCpuThread ( DebayerCpu debayer,
unsigned int  threadIndex,
bool  enableInputMemcpy 
)

Construct a DebayerCpuThread object.

Parameters
[in]debayerpointer back to the DebayerCpuObject this thread belongs to
[in]threadIndex0 .. n thread-index value for the thread
[in]enableInputMemcpywhen set copy input data to a heap buffer before use

Member Function Documentation

◆ configure()

void libcamera::DebayerCpuThread::configure ( unsigned int  yStart,
unsigned int  yEnd 
)

Configure thread to process a specific part of the image.

Parameters
[in]yStarty coordinate of first line to process
[in]yEndy coordinate of the line at which to stop processing

Configure the thread to process lines from yStart to yEnd - 1.

◆ process()

void libcamera::DebayerCpuThread::process ( uint32_t  frame,
const uint8_t *  src,
uint8_t *  dst 
)

Process part of the image assigned to this debayer thread.

Parameters
[in]frameThe frame number
[in]srcThe source buffer
[in]dstThe destination buffer

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