h264.c File Reference

Include dependency graph for h264.c:


Data Structures

struct  slice_t
struct  decoder_sys_t

Defines

#define SPS_MAX   (32)
#define PPS_MAX   (256)
#define BLOCK_FLAG_PRIVATE_AUD   (1 << BLOCK_FLAG_PRIVATE_SHIFT)

Enumerations

enum  nal_unit_type_e {
  NAL_UNKNOWN = 0, NAL_SLICE = 1, NAL_SLICE_DPA = 2, NAL_SLICE_DPB = 3,
  NAL_SLICE_DPC = 4, NAL_SLICE_IDR = 5, NAL_SEI = 6, NAL_SPS = 7,
  NAL_PPS = 8, NAL_AU_DELIMITER = 9
}
enum  nal_priority_e { NAL_PRIORITY_DISPOSABLE = 0, NAL_PRIORITY_LOW = 1, NAL_PRIORITY_HIGH = 2, NAL_PRIORITY_HIGHEST = 3 }

Functions

static int Open (vlc_object_t *)
 Probes and initializes.
static void Close (vlc_object_t *)
 Releases resources.
int vlc_entry__main (module_t *p_module)
const char * vlc_entry_license__main (void)
static block_tPacketize (decoder_t *, block_t **)
static block_tPacketizeAVC1 (decoder_t *, block_t **)
static block_tGetCc (decoder_t *p_dec, bool pb_present[4])
static void PacketizeReset (void *p_private, bool b_broken)
static block_tPacketizeParse (void *p_private, bool *pb_ts_used, block_t *)
static int PacketizeValidate (void *p_private, block_t *)
static block_tParseNALBlock (decoder_t *, bool *pb_used_ts, block_t *)
static block_tCreateAnnexbNAL (decoder_t *, const uint8_t *p, int)
static block_tOutputPicture (decoder_t *p_dec)
static void PutSPS (decoder_t *p_dec, block_t *p_frag)
static void PutPPS (decoder_t *p_dec, block_t *p_frag)
static void ParseSlice (decoder_t *p_dec, bool *pb_new_picture, slice_t *p_slice, int i_nal_ref_idc, int i_nal_type, const block_t *p_frag)
static void ParseSei (decoder_t *, block_t *)
static void CreateDecodedNAL (uint8_t **pp_ret, int *pi_ret, const uint8_t *src, int i_src)
static int bs_read_ue (bs_t *s)
static int bs_read_se (bs_t *s)

Variables

static const uint8_t p_h264_startcode [3] = { 0x00, 0x00, 0x01 }

Define Documentation

#define BLOCK_FLAG_PRIVATE_AUD   (1 << BLOCK_FLAG_PRIVATE_SHIFT)

Referenced by OutputPicture(), and ParseNALBlock().

#define PPS_MAX   (256)

#define SPS_MAX   (32)


Enumeration Type Documentation

Enumerator:
NAL_PRIORITY_DISPOSABLE 
NAL_PRIORITY_LOW 
NAL_PRIORITY_HIGH 
NAL_PRIORITY_HIGHEST 

Enumerator:
NAL_UNKNOWN 
NAL_SLICE 
NAL_SLICE_DPA 
NAL_SLICE_DPB 
NAL_SLICE_DPC 
NAL_SLICE_IDR 
NAL_SEI 
NAL_SPS 
NAL_PPS 
NAL_AU_DELIMITER 


Function Documentation

static int bs_read_se ( bs_t s  )  [inline, static]

References bs_read_ue().

Referenced by ParseSlice(), and PutSPS().

static int bs_read_ue ( bs_t s  )  [inline, static]

static void Close ( vlc_object_t p_this  )  [static]

Releases resources.

Close the module.

Destroys the X11 window.

Disconnect from the X server.

Close a SDL video output.

It destroys an OpenGL vout display.

Terminate a vout display created by Open.

It destroyes a Direct3D vout display.

Terminate an output method created by Open.

Release the drawable.

Close a libcaca video output.

Close a aa video output method.

Close the filter.

Terminate a splitter module.

This function closes a clone video splitter module.

Common close function.

Releases allocate resources.

Close: Destructor.

Parameters:
p_this pointer to this filter object
p_this,: the filter object

static block_t * CreateAnnexbNAL ( decoder_t p_dec,
const uint8_t *  p,
int  i_size 
) [static]

References block_New, block_t::p_buffer, and VLC_UNUSED.

Referenced by PacketizeAVC1().

static void CreateDecodedNAL ( uint8_t **  pp_ret,
int *  pi_ret,
const uint8_t *  src,
int  i_src 
) [static]

References dst.

Referenced by ParseSei(), ParseSlice(), and PutSPS().

static block_t * GetCc ( decoder_t p_dec,
bool  pb_present[4] 
) [static]

static int Open ( vlc_object_t p_this  )  [static]

Probes and initializes.

Status of this demuxer: Real Media format -----------------.

Basic chorus/flanger/delay audio filter This implements a variable delay filter for VLC.

Todo:

  • Improve CDDB support (non-blocking, cache, .

Open the module.

Create an X11 window.

Probe the X server.

This function initializes SDL vout method.

It creates an OpenGL vout display.

This function allocates and initialize the DirectX vout display.

It creates a Direct3D vout display.

This function allocates and initializes a FB vout method.

Find the drawable set by libvlc application.

This function initializes libcaca vout method.

This function allocates and initializes a aa vout method.

This function allocates and initializes a Wall splitter module.

Open the filter.

This function allocates and initializes a Clone splitter module.

Open: initialize and create stuff.

Connect to the sftp server and ask for a file.

Parameters:
p_this,: the vlc_object
Returns:
VLC_SUCCESS if everything was fine
Parameters:
p_this 
p_this,: the filter object
Returns:
VLC_SUCCESS or vlc error codes

Todo:
Reinstate meta codec name

static block_t * OutputPicture ( decoder_t p_dec  )  [static]

static block_t * Packetize ( decoder_t p_dec,
block_t **  pp_block 
) [static]

static block_t * PacketizeAVC1 ( decoder_t p_dec,
block_t **  pp_block 
) [static]

static block_t * PacketizeParse ( void *  p_private,
bool *  pb_ts_used,
block_t p_block 
) [static]

static void PacketizeReset ( void *  p_private,
bool  b_broken 
) [static]

static int PacketizeValidate ( void *  p_private,
block_t p_au 
) [static]

References VLC_SUCCESS, and VLC_UNUSED.

static block_t * ParseNALBlock ( decoder_t p_dec,
bool *  pb_used_ts,
block_t p_frag 
) [static]

static void ParseSei ( decoder_t p_dec,
block_t p_frag 
) [static]

static void ParseSlice ( decoder_t p_dec,
bool *  pb_new_picture,
slice_t p_slice,
int  i_nal_ref_idc,
int  i_nal_type,
const block_t p_frag 
) [static]

static void PutPPS ( decoder_t p_dec,
block_t p_frag 
) [static]

static void PutSPS ( decoder_t p_dec,
block_t p_frag 
) [static]

int vlc_entry__main ( module_t p_module  ) 

const char* vlc_entry_license__main ( void   ) 


Variable Documentation

const uint8_t p_h264_startcode[3] = { 0x00, 0x00, 0x01 } [static]


Generated on Tue May 25 08:05:17 2010 for VLC by  doxygen 1.5.6