vlc_block.h File Reference

Include dependency graph for vlc_block.h:

Go to the source code of this file.

Data Structures

struct  block_t

Defines

#define VLC_BLOCK_H   1
#define BLOCK_FLAG_DISCONTINUITY   0x0001
 The content doesn't follow the last block, or is probably broken.
#define BLOCK_FLAG_TYPE_I   0x0002
 Intra frame.
#define BLOCK_FLAG_TYPE_P   0x0004
 Inter frame with backward reference only.
#define BLOCK_FLAG_TYPE_B   0x0008
 Inter frame with backward and forward reference.
#define BLOCK_FLAG_TYPE_PB   0x0010
 For inter frame when you don't know the real type.
#define BLOCK_FLAG_HEADER   0x0020
 Warn that this block is a header one.
#define BLOCK_FLAG_END_OF_FRAME   0x0040
 This is the last block of the frame.
#define BLOCK_FLAG_NO_KEYFRAME   0x0080
 This is not a key frame for bitrate shaping.
#define BLOCK_FLAG_CLOCK   0x0200
 This block contains a clock reference.
#define BLOCK_FLAG_SCRAMBLED   0x0400
 This block is scrambled.
#define BLOCK_FLAG_PREROLL   0x0800
 This block has to be decoded but not be displayed.
#define BLOCK_FLAG_CORRUPTED   0x1000
 This block is corrupted and/or there is data loss.
#define BLOCK_FLAG_PRIVATE_MASK   0xffff0000
#define BLOCK_FLAG_PRIVATE_SHIFT   16
#define block_New(dummy, size)   block_Alloc(size)

Typedefs

typedef block_sys_t block_sys_t
typedef void(*) block_free_t (block_t *)

Functions

void block_Init (block_t *, void *, size_t)
block_tblock_Alloc (size_t)
block_tblock_Realloc (block_t *, ssize_t i_pre, size_t i_body)
static block_tblock_Duplicate (block_t *p_block)
static void block_Release (block_t *p_block)
block_tblock_mmap_Alloc (void *addr, size_t length)
block_tblock_File (int fd)
 Loads a file into a block of memory.
static void block_ChainAppend (block_t **pp_list, block_t *p_block)
static void block_ChainLastAppend (block_t ***ppp_last, block_t *p_block)
static void block_ChainRelease (block_t *p_block)
static size_t block_ChainExtract (block_t *p_list, void *p_data, size_t i_max)
static block_tblock_ChainGather (block_t *p_list)
block_fifo_tblock_FifoNew (void)
void block_FifoRelease (block_fifo_t *)
void block_FifoEmpty (block_fifo_t *)
size_t block_FifoPut (block_fifo_t *, block_t *)
void block_FifoWake (block_fifo_t *)
block_tblock_FifoGet (block_fifo_t *)
block_tblock_FifoShow (block_fifo_t *)
size_t block_FifoSize (const block_fifo_t *p_fifo)
size_t block_FifoCount (const block_fifo_t *p_fifo)


Define Documentation

#define BLOCK_FLAG_CLOCK   0x0200

This block contains a clock reference.

#define BLOCK_FLAG_CORRUPTED   0x1000

This block is corrupted and/or there is data loss.

#define BLOCK_FLAG_DISCONTINUITY   0x0001

The content doesn't follow the last block, or is probably broken.

#define BLOCK_FLAG_END_OF_FRAME   0x0040

This is the last block of the frame.

#define BLOCK_FLAG_HEADER   0x0020

Warn that this block is a header one.

#define BLOCK_FLAG_NO_KEYFRAME   0x0080

This is not a key frame for bitrate shaping.

#define BLOCK_FLAG_PREROLL   0x0800

This block has to be decoded but not be displayed.

#define BLOCK_FLAG_PRIVATE_MASK   0xffff0000

#define BLOCK_FLAG_PRIVATE_SHIFT   16

#define BLOCK_FLAG_SCRAMBLED   0x0400

This block is scrambled.

#define BLOCK_FLAG_TYPE_B   0x0008

Inter frame with backward and forward reference.

#define BLOCK_FLAG_TYPE_I   0x0002

Intra frame.

#define BLOCK_FLAG_TYPE_P   0x0004

Inter frame with backward reference only.

#define BLOCK_FLAG_TYPE_PB   0x0010

For inter frame when you don't know the real type.

#define block_New ( dummy,
size   )     block_Alloc(size)

#define VLC_BLOCK_H   1


Typedef Documentation

typedef void(*) block_free_t(block_t *)

typedef struct block_sys_t block_sys_t


Function Documentation

block_t* block_Alloc ( size_t   ) 

static void block_ChainAppend ( block_t **  pp_list,
block_t p_block 
) [inline, static]

static size_t block_ChainExtract ( block_t p_list,
void *  p_data,
size_t  i_max 
) [static]

static block_t* block_ChainGather ( block_t p_list  )  [inline, static]

static void block_ChainLastAppend ( block_t ***  ppp_last,
block_t p_block 
) [inline, static]

static void block_ChainRelease ( block_t p_block  )  [inline, static]

static block_t* block_Duplicate ( block_t p_block  )  [inline, static]

size_t block_FifoCount ( const block_fifo_t p_fifo  ) 

void block_FifoEmpty ( block_fifo_t  ) 

block_t* block_FifoGet ( block_fifo_t  ) 

block_fifo_t* block_FifoNew ( void   ) 

size_t block_FifoPut ( block_fifo_t ,
block_t  
)

void block_FifoRelease ( block_fifo_t  ) 

block_t* block_FifoShow ( block_fifo_t  ) 

size_t block_FifoSize ( const block_fifo_t p_fifo  ) 

void block_FifoWake ( block_fifo_t  ) 

block_t* block_File ( int  fd  ) 

Loads a file into a block of memory.

If possible a private file mapping is created. Otherwise, the file is read normally. On 32-bits platforms, this function will not work for very large files, due to memory space constraints.

Parameters:
fd file descriptor to load from
Returns:
a new block with the file content at p_buffer, and file length at i_buffer (release it with block_Release()), or NULL upon error (see errno).

void block_Init ( block_t ,
void *  ,
size_t   
)

block_t* block_mmap_Alloc ( void *  addr,
size_t  length 
)

block_t* block_Realloc ( block_t ,
ssize_t  i_pre,
size_t  i_body 
)

static void block_Release ( block_t p_block  )  [inline, static]


Generated on Wed Aug 13 08:02:40 2008 for VLC by  doxygen 1.5.1