VLC 4.0.0-dev
frame.c File Reference
Include dependency graph for frame.c:

Macros

#define VLC_FRAME_ALIGN   32
 Initial memory alignment of data frame. More...
 
#define VLC_FRAME_PADDING   32
 Initial reserved header and footer size. More...
 
#define S_TYPEISSHM(buf)   (0)
 

Functions

static void vlc_frame_Check (vlc_frame_t *frame)
 
void vlc_frame_CopyProperties (vlc_frame_t *restrict dst, const vlc_frame_t *src)
 
vlc_frame_tvlc_frame_New (const struct vlc_frame_callbacks *cbs, void *buf, size_t size)
 Creates a custom frame. More...
 
vlc_frame_tvlc_frame_Init (vlc_frame_t *restrict f, const struct vlc_frame_callbacks *cbs, void *buf, size_t size)
 
vlc_frame_tvlc_frame_Alloc (size_t size)
 Allocates a frame. More...
 
void vlc_frame_Release (vlc_frame_t *frame)
 Releases a frame. More...
 
static vlc_frame_tvlc_frame_ReallocDup (vlc_frame_t *frame, ssize_t i_prebody, size_t requested)
 
vlc_frame_tvlc_frame_TryRealloc (vlc_frame_t *frame, ssize_t i_prebody, size_t i_body)
 
vlc_frame_tvlc_frame_Realloc (vlc_frame_t *frame, ssize_t prebody, size_t body)
 Reallocates a frame. More...
 
static void vlc_frame_heap_Release (vlc_frame_t *frame)
 
vlc_frame_tvlc_frame_heap_Alloc (void *addr, size_t length)
 Wraps heap in a frame. More...
 
vlc_frame_tvlc_frame_mmap_Alloc (void *addr, size_t length)
 Wraps a memory mapping in a frame. More...
 
vlc_frame_tvlc_frame_shm_Alloc (void *addr, size_t length)
 Wraps a System V memory segment in a frame. More...
 
vlc_frame_tvlc_frame_File (int fd, bool write)
 Maps a file handle in memory. More...
 
vlc_frame_tvlc_frame_FilePath (const char *path, bool write)
 Maps a file in memory. More...
 
int vlc_frame_AttachAncillary (vlc_frame_t *frame, struct vlc_ancillary *ancillary)
 Attach an ancillary to the frame. More...
 
struct vlc_ancillaryvlc_frame_GetAncillary (vlc_frame_t *frame, vlc_ancillary_id id)
 Return the ancillary identified by an ID. More...
 

Variables

static const struct vlc_frame_callbacks vlc_frame_heap_cbs
 

Macro Definition Documentation

◆ S_TYPEISSHM

#define S_TYPEISSHM (   buf)    (0)

◆ VLC_FRAME_ALIGN

#define VLC_FRAME_ALIGN   32

Initial memory alignment of data frame.

Note
This must be a multiple of sizeof(void*) and a power of two. libavcodec AVX optimizations require at least 32-bytes.

◆ VLC_FRAME_PADDING

#define VLC_FRAME_PADDING   32

Initial reserved header and footer size.

Function Documentation

◆ vlc_frame_Check()

◆ vlc_frame_CopyProperties()

◆ vlc_frame_heap_Release()

static void vlc_frame_heap_Release ( vlc_frame_t frame)
static

References vlc_frame_t::p_start.

◆ vlc_frame_Init()

vlc_frame_t * vlc_frame_Init ( vlc_frame_t *restrict  f,
const struct vlc_frame_callbacks cbs,
void *  buf,
size_t  size 
)

◆ vlc_frame_ReallocDup()

static vlc_frame_t * vlc_frame_ReallocDup ( vlc_frame_t frame,
ssize_t  i_prebody,
size_t  requested 
)
static

Variable Documentation

◆ vlc_frame_heap_cbs

const struct vlc_frame_callbacks vlc_frame_heap_cbs
static
Initial value:
=
{
}
static void vlc_frame_heap_Release(vlc_frame_t *frame)
Definition: frame.c:261

Referenced by vlc_frame_heap_Alloc().