FFmpeg
|
Go to the source code of this file.
Enumerations | |
enum | AVThreadMessageFlags { AV_THREAD_MESSAGE_NONBLOCK = 1 } |
Functions | |
int | av_thread_message_queue_alloc (AVThreadMessageQueue **mq, unsigned nelem, unsigned elsize) |
Allocate a new message queue. More... | |
void | av_thread_message_queue_free (AVThreadMessageQueue **mq) |
Free a message queue. More... | |
int | av_thread_message_queue_send (AVThreadMessageQueue *mq, void *msg, unsigned flags) |
Send a message on the queue. More... | |
int | av_thread_message_queue_recv (AVThreadMessageQueue *mq, void *msg, unsigned flags) |
Receive a message from the queue. More... | |
void | av_thread_message_queue_set_err_send (AVThreadMessageQueue *mq, int err) |
Set the sending error code. More... | |
void | av_thread_message_queue_set_err_recv (AVThreadMessageQueue *mq, int err) |
Set the receiving error code. More... | |
void | av_thread_message_queue_set_free_func (AVThreadMessageQueue *mq, void(*free_func)(void *msg)) |
Set the optional free message callback function which will be called if an operation is removing messages from the queue. More... | |
void | av_thread_message_flush (AVThreadMessageQueue *mq) |
Flush the message queue. More... | |
enum AVThreadMessageFlags |
Enumerator | |
---|---|
AV_THREAD_MESSAGE_NONBLOCK |
Perform non-blocking operation. If this flag is set, send and recv operations are non-blocking and return AVERROR(EAGAIN) immediately if they can not proceed. |
Definition at line 24 of file threadmessage.h.
int av_thread_message_queue_alloc | ( | AVThreadMessageQueue ** | mq, |
unsigned | nelem, | ||
unsigned | elsize | ||
) |
Allocate a new message queue.
mq | pointer to the message queue |
nelem | maximum number of elements in the queue |
elsize | size of each element in the queue |
Definition at line 40 of file threadmessage.c.
Referenced by main().
void av_thread_message_queue_free | ( | AVThreadMessageQueue ** | mq | ) |
Free a message queue.
The message queue must no longer be in use by another thread.
Definition at line 91 of file threadmessage.c.
Referenced by main().
int av_thread_message_queue_send | ( | AVThreadMessageQueue * | mq, |
void * | msg, | ||
unsigned | flags | ||
) |
Send a message on the queue.
Definition at line 143 of file threadmessage.c.
Referenced by sender_thread().
int av_thread_message_queue_recv | ( | AVThreadMessageQueue * | mq, |
void * | msg, | ||
unsigned | flags | ||
) |
Receive a message from the queue.
Definition at line 159 of file threadmessage.c.
Referenced by receiver_thread().
void av_thread_message_queue_set_err_send | ( | AVThreadMessageQueue * | mq, |
int | err | ||
) |
Set the sending error code.
If the error code is set to non-zero, av_thread_message_queue_recv() will return it immediately when there are no longer available messages. Conventional values, such as AVERROR_EOF or AVERROR(EAGAIN), can be used to cause the receiving thread to stop or suspend its operation.
Definition at line 175 of file threadmessage.c.
Referenced by receiver_thread().
void av_thread_message_queue_set_err_recv | ( | AVThreadMessageQueue * | mq, |
int | err | ||
) |
Set the receiving error code.
If the error code is set to non-zero, av_thread_message_queue_send() will return it immediately. Conventional values, such as AVERROR_EOF or AVERROR(EAGAIN), can be used to cause the sending thread to stop or suspend its operation.
Definition at line 186 of file threadmessage.c.
Referenced by sender_thread().
void av_thread_message_queue_set_free_func | ( | AVThreadMessageQueue * | mq, |
void(*)(void *msg) | free_func | ||
) |
Set the optional free message callback function which will be called if an operation is removing messages from the queue.
Definition at line 83 of file threadmessage.c.
Referenced by main().
void av_thread_message_flush | ( | AVThreadMessageQueue * | mq | ) |
Flush the message queue.
This function is mostly equivalent to reading and free-ing every message except that it will be done in a single operation (no lock/unlock between reads).
Definition at line 205 of file threadmessage.c.
Referenced by av_thread_message_queue_free(), receiver_thread(), and sender_thread().