VLC
3.0.15
|
In-memory anonymous pipe. More...
Functions | |
stream_t * | vlc_stream_fifo_New (vlc_object_t *parent) |
Creates a FIFO stream. More... | |
int | vlc_stream_fifo_Queue (stream_t *s, block_t *block) |
Writes a block to a FIFO stream. More... | |
ssize_t | vlc_stream_fifo_Write (stream_t *s, const void *buf, size_t len) |
Writes data to a FIFO stream. More... | |
void | vlc_stream_fifo_Close (stream_t *s) |
Terminates a FIFO stream. More... | |
In-memory anonymous pipe.
void vlc_stream_fifo_Close | ( | stream_t * | s | ) |
Terminates a FIFO stream.
Marks the end of the FIFO stream and releases any underlying resources.
s | FIFO stream created by vlc_stream_fifo_New() |
References block_FifoRelease(), stream_sys_t::eof, stream_sys_t::fifo, stream_t::p_sys, vlc_fifo_Lock(), vlc_fifo_Signal(), vlc_fifo_Unlock(), and vlc_object_release.
Referenced by vlc_demux_chained_Delete(), and vlc_demux_chained_New().
stream_t* vlc_stream_fifo_New | ( | vlc_object_t * | parent | ) |
Creates a FIFO stream.
Creates a non-seekable byte stream object whose byte stream is generated by another thread in the process. This is the LibVLC equivalent of an anonymous pipe/FIFO.
On the reader side, the normal stream functions are used, e.g. vlc_stream_Read() and vlc_stream_Delete().
The created stream object is automatically destroyed when both the reader and the writer sides have been closed, with vlc_stream_Delete() and vlc_stream_fifo_Close() respectively.
parent | parent VLC object for the stream |
References block_FifoNew(), block_FifoRelease(), stream_sys_t::eof, stream_sys_t::fifo, stream_t::p_sys, stream_t::pf_block, stream_t::pf_control, stream_t::pf_seek, unlikely, vlc_object_hold, vlc_stream_CommonNew(), vlc_stream_fifo_Block(), vlc_stream_fifo_Control(), and vlc_stream_fifo_Destroy().
Referenced by vlc_demux_chained_New().
Writes a block to a FIFO stream.
s | FIFO stream created by vlc_stream_fifo_New() |
block | data block to write to the stream |
References block_Release(), stream_sys_t::eof, stream_sys_t::fifo, likely, stream_t::p_sys, unlikely, vlc_fifo_Lock(), vlc_fifo_QueueUnlocked(), and vlc_fifo_Unlock().
Referenced by vlc_demux_chained_Send(), and vlc_stream_fifo_Write().
ssize_t vlc_stream_fifo_Write | ( | stream_t * | s, |
const void * | buf, | ||
size_t | len | ||
) |
Writes data to a FIFO stream.
This is a convenience helper for vlc_stream_fifo_Queue().
s | FIFO stream created by vlc_stream_fifo_New() |
buf | start address of data to write |
len | length of data to write in bytes |
References block_Alloc(), block_t::p_buffer, unlikely, and vlc_stream_fifo_Queue().