Valkka  1.6.1
OpenSource Video Management
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ValkkaFSWriterThread Class Reference

Writes frames to ValkkaFS. More...

#include <valkkafs.h>

Inheritance diagram for ValkkaFSWriterThread:
Inheritance graph
[legend]
Collaboration diagram for ValkkaFSWriterThread:
Collaboration graph
[legend]

Public Member Functions

 ValkkaFSWriterThread (const char *name, ValkkaFS &valkkafs, FrameFifoContext fifo_ctx=FrameFifoContext(), bool o_direct=false)
 
void run ()
 Main execution loop is defined here.
 
void preRun ()
 Called before entering the main execution loop, but after creating the thread.
 
void postRun ()
 Called after the main execution loop exits, but before joining the thread.
 
void preJoin ()
 Called before the thread is joined.
 
void postJoin ()
 Called after the thread has been joined.
 
void sendSignal (ValkkaFSWriterSignalContext signal_ctx)
 Insert a signal into the signal_fifo.
 
FifoFrameFiltergetFrameFilter ()
 
FifoFrameFiltergetBlockingFrameFilter ()
 
void setSlotIdCall (SlotNumber slot, IdNumber id)
 Set a slot => id number mapping.
 
void unSetSlotIdCall (SlotNumber slot)
 Clear a slot => id number mapping.
 
void clearSlotIdCall ()
 Clear all slot => id number mappings.
 
void reportSlotIdCall ()
 Print slot, id number mappings.
 
void seekCall (std::size_t n_block)
 Seek to a certain block.
 
void requestStopCall ()
 API method: stops the thread. More...
 
- Public Member Functions inherited from Thread
 Thread (const char *name)
 Default constructor. More...
 
 ~Thread ()
 Destructor:not virtual. More...
 
virtual void sendSignal (SignalContext signal_ctx)
 Send a signal to the thread.
 
virtual void sendSignalAndWait (SignalContext signal_ctx)
 Send a signal to the thread and wait for all signals to be executed.
 
void setAffinity (int i)
 API method for setting the thread affinity. More...
 
void startCall ()
 API method: starts the thread.
 
virtual void stopCall ()
 API method: stops the thread. More...
 
virtual void waitStopCall ()
 API method: waits until the thread is joined. More...
 
virtual void waitReady ()
 Wait until thread has processed all its signals.
 

Protected Member Functions

void handleSignal (ValkkaFSWriterSignalContext &signal_ctx)
 Handle an individual signal. Signal can originate from the frame fifo or from the signal_fifo deque.
 
void handleSignals ()
 Call ValkkaFSWriterThread::handleSignal for every signal in the signal_fifo.
 
void saveCurrentBlock (bool pycall=true, bool use_gil=true)
 Save the current block GIL must be obtained for calls that originate purely from the cpp side For calls originating from the python-side, GIL should not be obtained.
 
void setSlotId (SlotNumber slot, IdNumber id)
 
void unSetSlotId (SlotNumber slot)
 
void clearSlotId ()
 
void reportSlotId ()
 
void seek (std::size_t n_block)
 
- Protected Member Functions inherited from Thread
void mainRun ()
 Does the preRun, run, postRun sequence.
 
void closeThread ()
 Sends exit signal to the thread, calls join. This method blocks until thread has exited. Set Thread::has_thread to false.
 

Protected Attributes

ValkkaFSvalkkafs
 
RaWriter raw_writer
 
std::map< SlotNumber, IdNumber > slot_to_id
 Map from slot numbers to ids.
 
std::size_t bytecount
 
FrameFifo infifo
 Incoming frames are read from here.
 
FifoFrameFilter infilter
 Write incoming frames here // TODO: add a chain of correcting FrameFilter(s)
 
BlockingFifoFrameFilter infilter_block
 Incoming frames can also be written here. If stack runs out of frames, writing will block.
 
std::deque< ValkkaFSWriterSignalContextsignal_fifo
 Redefinition of signal fifo.
 
- Protected Attributes inherited from Thread
std::string name
 Name of the thread.
 
bool has_thread
 true if thread has been started
 
bool stop_requested
 
bool thread_joined
 
std::mutex start_mutex
 Mutex protecting start_condition.
 
std::condition_variable start_condition
 Notified when the thread has been started.
 
std::mutex mutex
 Mutex protecting the condition variable and signal queue.
 
std::condition_variable condition
 Condition variable for the signal queue (triggered when all signals processed). Not necessarily used by all subclasses.
 
std::mutex loop_mutex
 Protects thread's main execution loop (if necessary)
 
std::deque< SignalContextsignal_fifo
 Signal queue (fifo). Redefine in child classes.
 
bool loop
 Use this boolean to control if the main loop in Thread:run should exit.
 
int core_id
 
pthread_attr_t thread_attr
 Thread attributes, pthread_* way.
 
cpu_set_t cpuset
 
pthread_t internal_thread
 

Additional Inherited Members

- Static Protected Member Functions inherited from Thread
static void * mainRun_ (void *p)
 

Detailed Description

Writes frames to ValkkaFS.

Member Function Documentation

◆ requestStopCall()

void ValkkaFSWriterThread::requestStopCall ( )
virtual

API method: stops the thread.

Like Thread::stopCall() but does not block. Waiting for the thread to join is done in Thread::waitStoppedCall()

Reimplemented from Thread.


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