|
VLC 4.0.0-dev
|
Frames definition and functions. More...
Go to the source code of this file.
Data Structures | |
| struct | vlc_frame_callbacks |
| struct | vlc_frame_t |
Macros | |
| #define | VLC_FRAME_FLAG_DISCONTINUITY 0x0001 |
| The content doesn't follow the last frame, possible some frames in between have been lost. More... | |
| #define | VLC_FRAME_FLAG_TYPE_I 0x0002 |
| Intra frame. More... | |
| #define | VLC_FRAME_FLAG_TYPE_P 0x0004 |
| Inter frame with backward reference only. More... | |
| #define | VLC_FRAME_FLAG_TYPE_B 0x0008 |
| Inter frame with backward and forward reference. More... | |
| #define | VLC_FRAME_FLAG_TYPE_PB 0x0010 |
| For inter frame when you don't know the real type. More... | |
| #define | VLC_FRAME_FLAG_HEADER 0x0020 |
| Warn that this frame is a header one. More... | |
| #define | VLC_FRAME_FLAG_END_OF_SEQUENCE 0x0040 |
| This frame contains the last part of a sequence More... | |
| #define | VLC_FRAME_FLAG_SCRAMBLED 0x0100 |
| This frame is scrambled. More... | |
| #define | VLC_FRAME_FLAG_PREROLL 0x0200 |
| This frame has to be decoded but not be displayed. More... | |
| #define | VLC_FRAME_FLAG_CORRUPTED 0x0400 |
| This frame is corrupted and/or there is data loss More... | |
| #define | VLC_FRAME_FLAG_AU_END 0x0800 |
| This frame is last of its access unit. More... | |
| #define | VLC_FRAME_FLAG_TOP_FIELD_FIRST 0x1000 |
| This frame contains an interlaced picture with top field stored first. More... | |
| #define | VLC_FRAME_FLAG_BOTTOM_FIELD_FIRST 0x2000 |
| This frame contains an interlaced picture with bottom field stored first. More... | |
| #define | VLC_FRAME_FLAG_SINGLE_FIELD 0x4000 |
| This frame contains a single field from interlaced picture. More... | |
| #define | VLC_FRAME_FLAG_INTERLACED_MASK (VLC_FRAME_FLAG_TOP_FIELD_FIRST|VLC_FRAME_FLAG_BOTTOM_FIELD_FIRST|VLC_FRAME_FLAG_SINGLE_FIELD) |
| This frame contains an interlaced picture. More... | |
| #define | VLC_FRAME_FLAG_TYPE_MASK (VLC_FRAME_FLAG_TYPE_I|VLC_FRAME_FLAG_TYPE_P|VLC_FRAME_FLAG_TYPE_B|VLC_FRAME_FLAG_TYPE_PB) |
| #define | VLC_FRAME_FLAG_CORE_PRIVATE_MASK 0x00ff0000 |
| #define | VLC_FRAME_FLAG_CORE_PRIVATE_SHIFT 16 |
| #define | VLC_FRAME_FLAG_PRIVATE_MASK 0xff000000 |
| #define | VLC_FRAME_FLAG_PRIVATE_SHIFT 24 |
| #define | vlc_frame_cleanup_push(frame) vlc_cleanup_push (vlc_frame_Cleanup, frame) |
| #define | vlc_fifo_Assert(fifo) assert(vlc_fifo_Held(fifo)) |
| Asserts that a vlc_fifo_t is locked by the calling thread. More... | |
| #define | vlc_fifo_CleanupPush(fifo) vlc_cleanup_push(vlc_fifo_Cleanup, fifo) |
Typedefs | |
| typedef uint32_t | vlc_ancillary_id |
| typedef struct vlc_frame_t | vlc_frame_t |
Functions | |
| vlc_frame_t * | vlc_frame_Init (vlc_frame_t *frame, const struct vlc_frame_callbacks *cbs, void *base, size_t length) |
| Initializes a custom frame. More... | |
| vlc_frame_t * | vlc_frame_New (const struct vlc_frame_callbacks *cbs, void *base, size_t length) |
| Creates a custom frame. More... | |
| vlc_frame_t * | vlc_frame_Alloc (size_t size) |
| Allocates a frame. More... | |
| vlc_frame_t * | vlc_frame_TryRealloc (vlc_frame_t *, ssize_t pre, size_t body) |
| vlc_frame_t * | vlc_frame_Realloc (vlc_frame_t *, ssize_t pre, size_t body) |
| Reallocates a frame. More... | |
| void | vlc_frame_Release (vlc_frame_t *frame) |
| Releases a frame. More... | |
| int | vlc_frame_AttachAncillary (vlc_frame_t *frame, struct vlc_ancillary *ancillary) |
| Attach an ancillary to the frame. More... | |
| struct vlc_ancillary * | vlc_frame_GetAncillary (vlc_frame_t *frame, vlc_ancillary_id id) |
| Return the ancillary identified by an ID. More... | |
| void | vlc_frame_CopyProperties (vlc_frame_t *dst, const vlc_frame_t *src) |
| Copy frame properties from src to dst. More... | |
| static vlc_frame_t * | vlc_frame_Duplicate (const vlc_frame_t *frame) |
| Duplicates a frame. More... | |
| vlc_frame_t * | vlc_frame_heap_Alloc (void *addr, size_t length) |
| Wraps heap in a frame. More... | |
| vlc_frame_t * | vlc_frame_mmap_Alloc (void *addr, size_t length) |
| Wraps a memory mapping in a frame. More... | |
| vlc_frame_t * | vlc_frame_shm_Alloc (void *addr, size_t length) |
| Wraps a System V memory segment in a frame. More... | |
| vlc_frame_t * | vlc_frame_File (int fd, bool write) |
| Maps a file handle in memory. More... | |
| vlc_frame_t * | vlc_frame_FilePath (const char *, bool write) |
| Maps a file in memory. More... | |
| static void | vlc_frame_Cleanup (void *frame) |
| static void | vlc_frame_ChainAppend (vlc_frame_t **pp_list, vlc_frame_t *frame) |
| Appends a vlc_frame_t to the chain. More... | |
| static void | vlc_frame_ChainLastAppend (vlc_frame_t ***ppp_last, vlc_frame_t *frame) |
| Appends a vlc_frame_t to the last frame pointer and update it. More... | |
| static void | vlc_frame_ChainRelease (vlc_frame_t *frame) |
| Releases a chain of blocks. More... | |
| static size_t | vlc_frame_ChainExtract (vlc_frame_t *p_list, void *p_data, size_t i_max) |
| Extracts data from a chain of frames. More... | |
| static void | vlc_frame_ChainProperties (const vlc_frame_t *p_list, int *pi_count, size_t *pi_size, vlc_tick_t *pi_length) |
| Retrieves chain properties. More... | |
| static vlc_frame_t * | vlc_frame_ChainGather (vlc_frame_t *p_list) |
| Gathers a chain into a single vlc_frame_t. More... | |
| vlc_fifo_t * | vlc_fifo_New (void) |
| Creates a thread-safe FIFO queue of blocks. More... | |
| void | vlc_fifo_Delete (vlc_fifo_t *) |
| Delete a FIFO created by vlc_fifo_New(). More... | |
| vlc_frame_t * | vlc_fifo_Get (vlc_fifo_t *) |
| Dequeue the first block from the FIFO. More... | |
| vlc_frame_t * | vlc_fifo_Show (vlc_fifo_t *) |
| Peeks the first block in the FIFO. More... | |
| static vlc_queue_t * | vlc_fifo_queue (const vlc_fifo_t *fifo) |
| static void | vlc_fifo_Lock (vlc_fifo_t *fifo) |
| Locks a block FIFO. More... | |
| static void | vlc_fifo_Unlock (vlc_fifo_t *fifo) |
| Unlocks a block FIFO. More... | |
| static void | vlc_fifo_Signal (vlc_fifo_t *fifo) |
| Wakes up one thread waiting on the FIFO, if any. More... | |
| static void | vlc_fifo_Wait (vlc_fifo_t *fifo) |
| Waits on the FIFO. More... | |
| static void | vlc_fifo_WaitCond (vlc_fifo_t *fifo, vlc_cond_t *condvar) |
| void | vlc_fifo_QueueUnlocked (vlc_fifo_t *fifo, vlc_frame_t *block) |
| Queues a linked-list of blocks into a locked FIFO. More... | |
| vlc_frame_t * | vlc_fifo_DequeueUnlocked (vlc_fifo_t *) |
| Dequeues the first block from a locked FIFO, if any. More... | |
| vlc_frame_t * | vlc_fifo_DequeueAllUnlocked (vlc_fifo_t *) |
| Dequeues the all blocks from a locked FIFO. More... | |
| size_t | vlc_fifo_GetCount (const vlc_fifo_t *) |
| Counts blocks in a FIFO. More... | |
| size_t | vlc_fifo_GetBytes (const vlc_fifo_t *) |
| Counts bytes in a FIFO. More... | |
| bool | vlc_fifo_Held (const vlc_fifo_t *fifo) |
| Checks whether the vlc_fifo_t object is being locked. More... | |
| static bool | vlc_fifo_IsEmpty (const vlc_fifo_t *fifo) |
| static void | vlc_fifo_Cleanup (void *fifo) |
| static void | vlc_fifo_Empty (vlc_fifo_t *fifo) |
| Clears all blocks in a FIFO. More... | |
| static void | vlc_fifo_Put (vlc_fifo_t *fifo, vlc_frame_t *block) |
| Immediately queue one block at the end of a FIFO. More... | |
| static size_t | vlc_fifo_Size (vlc_fifo_t *fifo) |
| static size_t | vlc_fifo_Count (vlc_fifo_t *fifo) |
Frames definition and functions.
| typedef uint32_t vlc_ancillary_id |