My Project
mmal_buffer.h File Reference

Go to the source code of this file.

Classes

struct  MMAL_BUFFER_HEADER_VIDEO_SPECIFIC_T
 
union  MMAL_BUFFER_HEADER_TYPE_SPECIFIC_T
 
struct  MMAL_BUFFER_HEADER_T
 

Macros

Buffer header flags

The following flags describe properties of a buffer header

#define MMAL_BUFFER_HEADER_FLAG_EOS   (1<<0)
 
#define MMAL_BUFFER_HEADER_FLAG_FRAME_START   (1<<1)
 
#define MMAL_BUFFER_HEADER_FLAG_FRAME_END   (1<<2)
 
#define MMAL_BUFFER_HEADER_FLAG_FRAME   (MMAL_BUFFER_HEADER_FLAG_FRAME_START|MMAL_BUFFER_HEADER_FLAG_FRAME_END)
 
#define MMAL_BUFFER_HEADER_FLAG_KEYFRAME   (1<<3)
 
#define MMAL_BUFFER_HEADER_FLAG_DISCONTINUITY   (1<<4)
 
#define MMAL_BUFFER_HEADER_FLAG_CONFIG   (1<<5)
 
#define MMAL_BUFFER_HEADER_FLAG_ENCRYPTED   (1<<6)
 
#define MMAL_BUFFER_HEADER_FLAG_CODECSIDEINFO   (1<<7)
 
#define MMAL_BUFFER_HEADER_FLAGS_SNAPSHOT   (1<<8)
 
#define MMAL_BUFFER_HEADER_FLAG_CORRUPTED   (1<<9)
 
#define MMAL_BUFFER_HEADER_FLAG_TRANSMISSION_FAILED   (1<<10)
 
#define MMAL_BUFFER_HEADER_FLAG_DECODEONLY   (1<<11)
 
#define MMAL_BUFFER_HEADER_FLAG_NAL_END   (1<<12)
 
#define MMAL_BUFFER_HEADER_FLAG_USER0   (1<<28)
 
#define MMAL_BUFFER_HEADER_FLAG_USER1   (1<<29)
 
#define MMAL_BUFFER_HEADER_FLAG_USER2   (1<<30)
 
#define MMAL_BUFFER_HEADER_FLAG_USER3   (1<<31)
 
Video buffer header flags

The following flags describe properties of a video buffer header. As there is no collision with the MMAL_BUFFER_HEADER_FLAGS_ defines, these flags will also be present in the MMAL_BUFFER_HEADER_T flags field.

#define MMAL_BUFFER_HEADER_FLAG_FORMAT_SPECIFIC_START_BIT   16
 
#define MMAL_BUFFER_HEADER_FLAG_FORMAT_SPECIFIC_START   (1<<MMAL_BUFFER_HEADER_FLAG_FORMAT_SPECIFIC_START_BIT)
 
#define MMAL_BUFFER_HEADER_VIDEO_FLAG_INTERLACED   (MMAL_BUFFER_HEADER_FLAG_FORMAT_SPECIFIC_START<<0)
 
#define MMAL_BUFFER_HEADER_VIDEO_FLAG_TOP_FIELD_FIRST   (MMAL_BUFFER_HEADER_FLAG_FORMAT_SPECIFIC_START<<1)
 
#define MMAL_BUFFER_HEADER_VIDEO_FLAG_DISPLAY_EXTERNAL   (MMAL_BUFFER_HEADER_FLAG_FORMAT_SPECIFIC_START<<3)
 
#define MMAL_BUFFER_HEADER_VIDEO_FLAG_PROTECTED   (MMAL_BUFFER_HEADER_FLAG_FORMAT_SPECIFIC_START<<4)
 
#define MMAL_BUFFER_HEADER_VIDEO_FLAG_COLUMN_LOG2_SHIFT   (MMAL_BUFFER_HEADER_FLAG_FORMAT_SPECIFIC_START_BIT+8)
 
#define MMAL_BUFFER_HEADER_VIDEO_FLAG_COLUMN_LOG2_MASK   (0xF<<MMAL_BUFFER_HEADER_VIDEO_FLAG_COLUMN_LOG2_SHIFT)
 

Typedefs

typedef struct MMAL_BUFFER_HEADER_T MMAL_BUFFER_HEADER_T
 
typedef MMAL_BOOL_T(* MMAL_BH_PRE_RELEASE_CB_T) (MMAL_BUFFER_HEADER_T *header, void *userdata)
 

Functions

void mmal_buffer_header_acquire (MMAL_BUFFER_HEADER_T *header)
 
void mmal_buffer_header_reset (MMAL_BUFFER_HEADER_T *header)
 
void mmal_buffer_header_release (MMAL_BUFFER_HEADER_T *header)
 
void mmal_buffer_header_release_continue (MMAL_BUFFER_HEADER_T *header)
 
void mmal_buffer_header_pre_release_cb_set (MMAL_BUFFER_HEADER_T *header, MMAL_BH_PRE_RELEASE_CB_T cb, void *userdata)
 
MMAL_STATUS_T mmal_buffer_header_replicate (MMAL_BUFFER_HEADER_T *dest, MMAL_BUFFER_HEADER_T *src)
 
MMAL_STATUS_T mmal_buffer_header_mem_lock (MMAL_BUFFER_HEADER_T *header)
 
void mmal_buffer_header_mem_unlock (MMAL_BUFFER_HEADER_T *header)