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

This class in analogous to LiveThread, but it handles files instead of live streams. More...

#include <avfilethread.h>

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

Public Member Functions

 FileThread (const char *name, FrameFifoContext fifo_ctx=FrameFifoContext())
 Default constructor. More...
 
 ~FileThread ()
 Default destructor.
 
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 sendSignal (FileSignalContext signal_ctx)
 
void sendSignalAndWait (FileSignalContext signal_ctx)
 
void closeFileStreamCall (FileContext &file_ctx)
 API method: registers a stream // <pyapi>
 
void openFileStreamCall (FileContext &file_ctx)
 API method: de-registers a stream // <pyapi>
 
void seekFileStreamCall (FileContext &file_ctx)
 API method: seek to a certain point // <pyapi>
 
void playFileStreamCall (FileContext &file_ctx)
 API method: starts playing the stream and feeding frames // <pyapi>
 
void stopFileStreamCall (FileContext &file_ctx)
 API method: stops playing the stream and feeding frames // <pyapi>
 
void requestStopCall ()
 API method: Like Thread::stopCall() but does not block // <pyapi>
 
FifoFrameFiltergetFrameFilter ()
 API method: get filter for sending frames with live555 // <pyapi>
 
- Public Member Functions inherited from Thread
 Thread (const char *name)
 Default constructor. More...
 
 ~Thread ()
 Destructor:not virtual. More...
 
virtual void preJoin ()
 Called before the thread is joined.
 
virtual void postJoin ()
 Called after the thread has been joined.
 
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 handleSignals ()
 
- 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

FrameFifo infifo
 A FrameFifo for incoming frames.
 
FifoFrameFilter infilter
 A FrameFilter for writing incoming frames.
 
std::deque< FileSignalContextsignal_fifo
 Redefinition of signal fifo (Thread::signal_fifo is now hidden from usage)
 
std::vector< FileStream * > slots_
 Slots: a vector of FileStream instances.
 
std::list< SlotNumber > active_slots
 Slots that are activated.
 
bool loop
 Controls the execution of the main loop.
 
- 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
 

Private Member Functions

int safeGetSlot (SlotNumber slot, FileStream *&stream)
 
void openFileStream (FileContext &file_ctx)
 
void closeFileStream (FileContext &file_ctx)
 
void seekFileStream (FileContext &file_ctx)
 
void playFileStream (FileContext &file_ctx)
 
void stopFileStream (FileContext &file_ctx)
 

Additional Inherited Members

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

Detailed Description

This class in analogous to LiveThread, but it handles files instead of live streams.

FileThread's execution loop works roughly as follows:

See also Presention timing and playing.

Constructor & Destructor Documentation

◆ FileThread()

FileThread::FileThread ( const char *  name,
FrameFifoContext  fifo_ctx = FrameFifoContext() 
)

Default constructor.

Parameters
nameThread name

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