\hypertarget{group___mmal_buffer_header}{}\section{Buffer headers}
\label{group___mmal_buffer_header}\index{Buffer headers@{Buffer headers}}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___v_i_d_e_o___s_p_e_c_i_f_i_c___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+T}}
\item 
union \mbox{\hyperlink{union_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t_y_p_e___s_p_e_c_i_f_i_c___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+T}}
\item 
struct \mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} \mbox{\hyperlink{group___mmal_buffer_header_ga04b1287ff1819730dac76ec2f1b71755}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}}
\item 
typedef M\+M\+A\+L\+\_\+\+B\+O\+O\+L\+\_\+T($\ast$ \mbox{\hyperlink{group___mmal_buffer_header_ga83d2d9944c72cbac55332fefcd48fc9a}{M\+M\+A\+L\+\_\+\+B\+H\+\_\+\+P\+R\+E\+\_\+\+R\+E\+L\+E\+A\+S\+E\+\_\+\+C\+B\+\_\+T}}) (\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$header, void $\ast$userdata)
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{group___mmal_buffer_header_gad9609b896dba5cdbddc8b7b82905465a}{mmal\+\_\+buffer\+\_\+header\+\_\+acquire}} (\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$header)
\item 
void \mbox{\hyperlink{group___mmal_buffer_header_ga902874a4bfadacde38cde0357433cb02}{mmal\+\_\+buffer\+\_\+header\+\_\+reset}} (\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$header)
\item 
void \mbox{\hyperlink{group___mmal_buffer_header_ga69dfbc6faf317c320c4abbeb750a556e}{mmal\+\_\+buffer\+\_\+header\+\_\+release}} (\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$header)
\item 
void \mbox{\hyperlink{group___mmal_buffer_header_ga51c263bfb9addd37edf0c641230c038c}{mmal\+\_\+buffer\+\_\+header\+\_\+release\+\_\+continue}} (\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$header)
\item 
void \mbox{\hyperlink{group___mmal_buffer_header_ga0a760f6cb1ed797372babe58c16ce98a}{mmal\+\_\+buffer\+\_\+header\+\_\+pre\+\_\+release\+\_\+cb\+\_\+set}} (\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$header, \mbox{\hyperlink{group___mmal_buffer_header_ga83d2d9944c72cbac55332fefcd48fc9a}{M\+M\+A\+L\+\_\+\+B\+H\+\_\+\+P\+R\+E\+\_\+\+R\+E\+L\+E\+A\+S\+E\+\_\+\+C\+B\+\_\+T}} cb, void $\ast$userdata)
\item 
\mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} \mbox{\hyperlink{group___mmal_buffer_header_gaea1bde05ffa6baacd37ceeef9773c32b}{mmal\+\_\+buffer\+\_\+header\+\_\+replicate}} (\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$dest, \mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$src)
\item 
\mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} \mbox{\hyperlink{group___mmal_buffer_header_ga194fe6814a3bb4eb68dd4d999bef8b06}{mmal\+\_\+buffer\+\_\+header\+\_\+mem\+\_\+lock}} (\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$header)
\item 
void \mbox{\hyperlink{group___mmal_buffer_header_ga3e381687103b8c14895ba349d6668b7c}{mmal\+\_\+buffer\+\_\+header\+\_\+mem\+\_\+unlock}} (\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$header)
\end{DoxyCompactItemize}
\subsection*{Buffer header flags}
\label{_amgrp77535e1ef4bf30d7bd80fb68bf144af9}%
\label{group___mmal_buffer_header_bufferheaderflags}%
\Hypertarget{group___mmal_buffer_header_bufferheaderflags}%
The following flags describe properties of a buffer header \begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_ga265678709b4a6279d37c0fb93886a316}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+E\+OS}}~(1$<$$<$0)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_gae1c1b617d93e55e151b34b786bfda8e5}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+S\+T\+A\+RT}}~(1$<$$<$1)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_ga688a824d5f3e0c6404ffb9f25399d056}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+E\+ND}}~(1$<$$<$2)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_gaff3f7d947c1527d6d5587742760d4e05}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+ME}}~(\mbox{\hyperlink{group___mmal_buffer_header_gae1c1b617d93e55e151b34b786bfda8e5}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+S\+T\+A\+RT}}$\vert$\mbox{\hyperlink{group___mmal_buffer_header_ga688a824d5f3e0c6404ffb9f25399d056}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+E\+ND}})
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_ga81c521ef84efeb6dd2d5631cd0167694}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+K\+E\+Y\+F\+R\+A\+ME}}~(1$<$$<$3)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_gac0c98ff46840e65aadf4379237b8695b}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+D\+I\+S\+C\+O\+N\+T\+I\+N\+U\+I\+TY}}~(1$<$$<$4)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_ga8318e7a886bd9f303511fae4ce67dcef}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+N\+F\+IG}}~(1$<$$<$5)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_ga88dc737873fdc1e73eea7a722e4af533}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+E\+N\+C\+R\+Y\+P\+T\+ED}}~(1$<$$<$6)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_gad65a01dcc3f853cb69f9a5a100c68f4e}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+D\+E\+C\+S\+I\+D\+E\+I\+N\+FO}}~(1$<$$<$7)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_ga9b69d0c111e7aca2b2f0714ea63752f1}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+S\+\_\+\+S\+N\+A\+P\+S\+H\+OT}}~(1$<$$<$8)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_ga23be573ebc78be0b08c0dae10f3fa7ea}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+R\+R\+U\+P\+T\+ED}}~(1$<$$<$9)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_gaea28576f27fea073f5fc5d56c64ccfa3}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+T\+R\+A\+N\+S\+M\+I\+S\+S\+I\+O\+N\+\_\+\+F\+A\+I\+L\+ED}}~(1$<$$<$10)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_gab297c5499331bd2ed16fc95f22147ff0}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+D\+E\+C\+O\+D\+E\+O\+N\+LY}}~(1$<$$<$11)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_gab5db3974ae7934bb0aaa9cfc2622de0d}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+N\+A\+L\+\_\+\+E\+ND}}~(1$<$$<$12)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_gac759911e957c62a83326e3e030f497c1}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+U\+S\+E\+R0}}~(1$<$$<$28)
\item 
\mbox{\Hypertarget{group___mmal_buffer_header_gad58f98eecae445669cf48f450a6cf1b5}\label{group___mmal_buffer_header_gad58f98eecae445669cf48f450a6cf1b5}} 
\#define {\bfseries M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+U\+S\+E\+R1}~(1$<$$<$29)
\item 
\mbox{\Hypertarget{group___mmal_buffer_header_ga0f403c64d06ace1f3e78d94efe1f3cf5}\label{group___mmal_buffer_header_ga0f403c64d06ace1f3e78d94efe1f3cf5}} 
\#define {\bfseries M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+U\+S\+E\+R2}~(1$<$$<$30)
\item 
\mbox{\Hypertarget{group___mmal_buffer_header_ga4d1a8b518efcda178ca9a0197e1f00c5}\label{group___mmal_buffer_header_ga4d1a8b518efcda178ca9a0197e1f00c5}} 
\#define {\bfseries M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+U\+S\+E\+R3}~(1$<$$<$31)
\end{DoxyCompactItemize}
\subsection*{Video buffer header flags}
\label{_amgrpf7c428061f84b01128eb0b8479440e5c}%
\label{group___mmal_buffer_header_videobufferheaderflags}%
\Hypertarget{group___mmal_buffer_header_videobufferheaderflags}%
The following flags describe properties of a video buffer header. As there is no collision with the M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+S\+\_\+ defines, these flags will also be present in the \mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} flags field. \begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group___mmal_buffer_header_ga2737ae410d999928f2f8344c8cfe30da}\label{group___mmal_buffer_header_ga2737ae410d999928f2f8344c8cfe30da}} 
\#define {\bfseries M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+\+S\+T\+A\+R\+T\+\_\+\+B\+IT}~16
\item 
\mbox{\Hypertarget{group___mmal_buffer_header_gabff30b39ea2afae18176d52334b17328}\label{group___mmal_buffer_header_gabff30b39ea2afae18176d52334b17328}} 
\#define {\bfseries M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+\+S\+T\+A\+RT}~(1$<$$<$M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+\+S\+T\+A\+R\+T\+\_\+\+B\+IT)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_gaef2c5ebb41c4ae52529aca253f853d66}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+I\+N\+T\+E\+R\+L\+A\+C\+ED}}~(M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+\+S\+T\+A\+RT$<$$<$0)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_ga5e38937ab2b2d737afae67952ad45180}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+T\+O\+P\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+I\+R\+ST}}~(M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+\+S\+T\+A\+RT$<$$<$1)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_ga55edb907692c25d3fd924fd5931567ce}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+D\+I\+S\+P\+L\+A\+Y\+\_\+\+E\+X\+T\+E\+R\+N\+AL}}~(M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+\+S\+T\+A\+RT$<$$<$3)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_gaa18815e153fb590d7bea0673814ec859}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+P\+R\+O\+T\+E\+C\+T\+ED}}~(M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+\+S\+T\+A\+RT$<$$<$4)
\item 
\#define \mbox{\hyperlink{group___mmal_buffer_header_gac698c87984adf0e1f1e52f951dd4fcc7}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+L\+U\+M\+N\+\_\+\+L\+O\+G2\+\_\+\+S\+H\+I\+FT}}~(M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+\+S\+T\+A\+R\+T\+\_\+\+B\+IT+8)
\item 
\mbox{\Hypertarget{group___mmal_buffer_header_ga27e5da039f3176d6caee88896f0de589}\label{group___mmal_buffer_header_ga27e5da039f3176d6caee88896f0de589}} 
\#define {\bfseries M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+L\+U\+M\+N\+\_\+\+L\+O\+G2\+\_\+\+M\+A\+SK}~(0x\+F$<$$<$\+M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+L\+U\+M\+N\+\_\+\+L\+O\+G2\+\_\+\+S\+H\+I\+F\+T)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Definition of a buffer header and its associated A\+PI. Buffer headers are the basic element used to pass data and information between different parts of the system. They are passed to components via ports and sent back to the client using a callback mechanism. 

\subsection{Macro Definition Documentation}
\mbox{\Hypertarget{group___mmal_buffer_header_gad65a01dcc3f853cb69f9a5a100c68f4e}\label{group___mmal_buffer_header_gad65a01dcc3f853cb69f9a5a100c68f4e}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+D\+E\+C\+S\+I\+D\+E\+I\+N\+FO@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+D\+E\+C\+S\+I\+D\+E\+I\+N\+FO}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+D\+E\+C\+S\+I\+D\+E\+I\+N\+FO@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+D\+E\+C\+S\+I\+D\+E\+I\+N\+FO}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+D\+E\+C\+S\+I\+D\+E\+I\+N\+FO}{MMAL\_BUFFER\_HEADER\_FLAG\_CODECSIDEINFO}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+D\+E\+C\+S\+I\+D\+E\+I\+N\+FO~(1$<$$<$7)}

Signals a buffer containing side information \mbox{\Hypertarget{group___mmal_buffer_header_ga8318e7a886bd9f303511fae4ce67dcef}\label{group___mmal_buffer_header_ga8318e7a886bd9f303511fae4ce67dcef}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+N\+F\+IG@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+N\+F\+IG}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+N\+F\+IG@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+N\+F\+IG}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+N\+F\+IG}{MMAL\_BUFFER\_HEADER\_FLAG\_CONFIG}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+N\+F\+IG~(1$<$$<$5)}

Signals a buffer containing some kind of config data for the component (e.\+g. codec config data) \mbox{\Hypertarget{group___mmal_buffer_header_ga23be573ebc78be0b08c0dae10f3fa7ea}\label{group___mmal_buffer_header_ga23be573ebc78be0b08c0dae10f3fa7ea}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+R\+R\+U\+P\+T\+ED@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+R\+R\+U\+P\+T\+ED}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+R\+R\+U\+P\+T\+ED@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+R\+R\+U\+P\+T\+ED}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+R\+R\+U\+P\+T\+ED}{MMAL\_BUFFER\_HEADER\_FLAG\_CORRUPTED}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+R\+R\+U\+P\+T\+ED~(1$<$$<$9)}

Signals a buffer which contains data known to be corrupted \mbox{\Hypertarget{group___mmal_buffer_header_gab297c5499331bd2ed16fc95f22147ff0}\label{group___mmal_buffer_header_gab297c5499331bd2ed16fc95f22147ff0}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+D\+E\+C\+O\+D\+E\+O\+N\+LY@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+D\+E\+C\+O\+D\+E\+O\+N\+LY}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+D\+E\+C\+O\+D\+E\+O\+N\+LY@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+D\+E\+C\+O\+D\+E\+O\+N\+LY}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+D\+E\+C\+O\+D\+E\+O\+N\+LY}{MMAL\_BUFFER\_HEADER\_FLAG\_DECODEONLY}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+D\+E\+C\+O\+D\+E\+O\+N\+LY~(1$<$$<$11)}

Signals the output buffer won\textquotesingle{}t be used, just update reference frames \mbox{\Hypertarget{group___mmal_buffer_header_gac0c98ff46840e65aadf4379237b8695b}\label{group___mmal_buffer_header_gac0c98ff46840e65aadf4379237b8695b}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+D\+I\+S\+C\+O\+N\+T\+I\+N\+U\+I\+TY@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+D\+I\+S\+C\+O\+N\+T\+I\+N\+U\+I\+TY}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+D\+I\+S\+C\+O\+N\+T\+I\+N\+U\+I\+TY@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+D\+I\+S\+C\+O\+N\+T\+I\+N\+U\+I\+TY}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+D\+I\+S\+C\+O\+N\+T\+I\+N\+U\+I\+TY}{MMAL\_BUFFER\_HEADER\_FLAG\_DISCONTINUITY}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+D\+I\+S\+C\+O\+N\+T\+I\+N\+U\+I\+TY~(1$<$$<$4)}

Signals a discontinuity in the stream of data (e.\+g. after a seek). Can be used for instance by a decoder to reset its state \mbox{\Hypertarget{group___mmal_buffer_header_ga88dc737873fdc1e73eea7a722e4af533}\label{group___mmal_buffer_header_ga88dc737873fdc1e73eea7a722e4af533}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+E\+N\+C\+R\+Y\+P\+T\+ED@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+E\+N\+C\+R\+Y\+P\+T\+ED}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+E\+N\+C\+R\+Y\+P\+T\+ED@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+E\+N\+C\+R\+Y\+P\+T\+ED}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+E\+N\+C\+R\+Y\+P\+T\+ED}{MMAL\_BUFFER\_HEADER\_FLAG\_ENCRYPTED}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+E\+N\+C\+R\+Y\+P\+T\+ED~(1$<$$<$6)}

Signals an encrypted payload \mbox{\Hypertarget{group___mmal_buffer_header_ga265678709b4a6279d37c0fb93886a316}\label{group___mmal_buffer_header_ga265678709b4a6279d37c0fb93886a316}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+E\+OS@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+E\+OS}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+E\+OS@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+E\+OS}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+E\+OS}{MMAL\_BUFFER\_HEADER\_FLAG\_EOS}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+E\+OS~(1$<$$<$0)}

Signals that the current payload is the end of the stream of data \mbox{\Hypertarget{group___mmal_buffer_header_gaff3f7d947c1527d6d5587742760d4e05}\label{group___mmal_buffer_header_gaff3f7d947c1527d6d5587742760d4e05}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+ME@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+ME}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+ME@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+ME}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+ME}{MMAL\_BUFFER\_HEADER\_FLAG\_FRAME}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+ME~(\mbox{\hyperlink{group___mmal_buffer_header_gae1c1b617d93e55e151b34b786bfda8e5}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+S\+T\+A\+RT}}$\vert$\mbox{\hyperlink{group___mmal_buffer_header_ga688a824d5f3e0c6404ffb9f25399d056}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+E\+ND}})}

Signals that the current payload contains only complete frames (1 or more) \mbox{\Hypertarget{group___mmal_buffer_header_ga688a824d5f3e0c6404ffb9f25399d056}\label{group___mmal_buffer_header_ga688a824d5f3e0c6404ffb9f25399d056}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+E\+ND@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+E\+ND}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+E\+ND@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+E\+ND}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+E\+ND}{MMAL\_BUFFER\_HEADER\_FLAG\_FRAME\_END}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+E\+ND~(1$<$$<$2)}

Signals that the end of the current payload ends a frame \mbox{\Hypertarget{group___mmal_buffer_header_gae1c1b617d93e55e151b34b786bfda8e5}\label{group___mmal_buffer_header_gae1c1b617d93e55e151b34b786bfda8e5}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+S\+T\+A\+RT@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+S\+T\+A\+RT}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+S\+T\+A\+RT@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+S\+T\+A\+RT}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+S\+T\+A\+RT}{MMAL\_BUFFER\_HEADER\_FLAG\_FRAME\_START}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+R\+A\+M\+E\+\_\+\+S\+T\+A\+RT~(1$<$$<$1)}

Signals that the start of the current payload starts a frame \mbox{\Hypertarget{group___mmal_buffer_header_ga81c521ef84efeb6dd2d5631cd0167694}\label{group___mmal_buffer_header_ga81c521ef84efeb6dd2d5631cd0167694}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+K\+E\+Y\+F\+R\+A\+ME@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+K\+E\+Y\+F\+R\+A\+ME}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+K\+E\+Y\+F\+R\+A\+ME@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+K\+E\+Y\+F\+R\+A\+ME}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+K\+E\+Y\+F\+R\+A\+ME}{MMAL\_BUFFER\_HEADER\_FLAG\_KEYFRAME}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+K\+E\+Y\+F\+R\+A\+ME~(1$<$$<$3)}

Signals that the current payload is a keyframe (i.\+e. self decodable) \mbox{\Hypertarget{group___mmal_buffer_header_gab5db3974ae7934bb0aaa9cfc2622de0d}\label{group___mmal_buffer_header_gab5db3974ae7934bb0aaa9cfc2622de0d}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+N\+A\+L\+\_\+\+E\+ND@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+N\+A\+L\+\_\+\+E\+ND}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+N\+A\+L\+\_\+\+E\+ND@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+N\+A\+L\+\_\+\+E\+ND}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+N\+A\+L\+\_\+\+E\+ND}{MMAL\_BUFFER\_HEADER\_FLAG\_NAL\_END}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+N\+A\+L\+\_\+\+E\+ND~(1$<$$<$12)}

Signals that the end of the current payload ends a N\+AL \mbox{\Hypertarget{group___mmal_buffer_header_gaea28576f27fea073f5fc5d56c64ccfa3}\label{group___mmal_buffer_header_gaea28576f27fea073f5fc5d56c64ccfa3}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+T\+R\+A\+N\+S\+M\+I\+S\+S\+I\+O\+N\+\_\+\+F\+A\+I\+L\+ED@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+T\+R\+A\+N\+S\+M\+I\+S\+S\+I\+O\+N\+\_\+\+F\+A\+I\+L\+ED}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+T\+R\+A\+N\+S\+M\+I\+S\+S\+I\+O\+N\+\_\+\+F\+A\+I\+L\+ED@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+T\+R\+A\+N\+S\+M\+I\+S\+S\+I\+O\+N\+\_\+\+F\+A\+I\+L\+ED}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+T\+R\+A\+N\+S\+M\+I\+S\+S\+I\+O\+N\+\_\+\+F\+A\+I\+L\+ED}{MMAL\_BUFFER\_HEADER\_FLAG\_TRANSMISSION\_FAILED}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+T\+R\+A\+N\+S\+M\+I\+S\+S\+I\+O\+N\+\_\+\+F\+A\+I\+L\+ED~(1$<$$<$10)}

Signals that a buffer failed to be transmitted \mbox{\Hypertarget{group___mmal_buffer_header_gac759911e957c62a83326e3e030f497c1}\label{group___mmal_buffer_header_gac759911e957c62a83326e3e030f497c1}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+U\+S\+E\+R0@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+U\+S\+E\+R0}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+U\+S\+E\+R0@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+U\+S\+E\+R0}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+U\+S\+E\+R0}{MMAL\_BUFFER\_HEADER\_FLAG\_USER0}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+U\+S\+E\+R0~(1$<$$<$28)}

User flags -\/ can be passed in and will get returned \mbox{\Hypertarget{group___mmal_buffer_header_ga9b69d0c111e7aca2b2f0714ea63752f1}\label{group___mmal_buffer_header_ga9b69d0c111e7aca2b2f0714ea63752f1}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+S\+\_\+\+S\+N\+A\+P\+S\+H\+OT@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+S\+\_\+\+S\+N\+A\+P\+S\+H\+OT}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+S\+\_\+\+S\+N\+A\+P\+S\+H\+OT@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+S\+\_\+\+S\+N\+A\+P\+S\+H\+OT}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+S\+\_\+\+S\+N\+A\+P\+S\+H\+OT}{MMAL\_BUFFER\_HEADER\_FLAGS\_SNAPSHOT}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+S\+\_\+\+S\+N\+A\+P\+S\+H\+OT~(1$<$$<$8)}

Signals a buffer which is the snapshot/postview image from a stills capture \mbox{\Hypertarget{group___mmal_buffer_header_gac698c87984adf0e1f1e52f951dd4fcc7}\label{group___mmal_buffer_header_gac698c87984adf0e1f1e52f951dd4fcc7}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+L\+U\+M\+N\+\_\+\+L\+O\+G2\+\_\+\+S\+H\+I\+FT@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+L\+U\+M\+N\+\_\+\+L\+O\+G2\+\_\+\+S\+H\+I\+FT}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+L\+U\+M\+N\+\_\+\+L\+O\+G2\+\_\+\+S\+H\+I\+FT@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+L\+U\+M\+N\+\_\+\+L\+O\+G2\+\_\+\+S\+H\+I\+FT}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+L\+U\+M\+N\+\_\+\+L\+O\+G2\+\_\+\+S\+H\+I\+FT}{MMAL\_BUFFER\_HEADER\_VIDEO\_FLAG\_COLUMN\_LOG2\_SHIFT}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+C\+O\+L\+U\+M\+N\+\_\+\+L\+O\+G2\+\_\+\+S\+H\+I\+FT~(M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+\+S\+T\+A\+R\+T\+\_\+\+B\+IT+8)}

27-\/24\+: If non-\/zero it signals the video frame is encoded in column mode, with a column width equal to 2$^\wedge$$<$masked value$>$=\char`\"{}\char`\"{}$>$. Zero is raster order. \mbox{\Hypertarget{group___mmal_buffer_header_ga55edb907692c25d3fd924fd5931567ce}\label{group___mmal_buffer_header_ga55edb907692c25d3fd924fd5931567ce}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+D\+I\+S\+P\+L\+A\+Y\+\_\+\+E\+X\+T\+E\+R\+N\+AL@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+D\+I\+S\+P\+L\+A\+Y\+\_\+\+E\+X\+T\+E\+R\+N\+AL}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+D\+I\+S\+P\+L\+A\+Y\+\_\+\+E\+X\+T\+E\+R\+N\+AL@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+D\+I\+S\+P\+L\+A\+Y\+\_\+\+E\+X\+T\+E\+R\+N\+AL}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+D\+I\+S\+P\+L\+A\+Y\+\_\+\+E\+X\+T\+E\+R\+N\+AL}{MMAL\_BUFFER\_HEADER\_VIDEO\_FLAG\_DISPLAY\_EXTERNAL}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+D\+I\+S\+P\+L\+A\+Y\+\_\+\+E\+X\+T\+E\+R\+N\+AL~(M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+\+S\+T\+A\+RT$<$$<$3)}

19\+: Signals that the buffer should be displayed on external display if attached. \mbox{\Hypertarget{group___mmal_buffer_header_gaef2c5ebb41c4ae52529aca253f853d66}\label{group___mmal_buffer_header_gaef2c5ebb41c4ae52529aca253f853d66}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+I\+N\+T\+E\+R\+L\+A\+C\+ED@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+I\+N\+T\+E\+R\+L\+A\+C\+ED}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+I\+N\+T\+E\+R\+L\+A\+C\+ED@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+I\+N\+T\+E\+R\+L\+A\+C\+ED}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+I\+N\+T\+E\+R\+L\+A\+C\+ED}{MMAL\_BUFFER\_HEADER\_VIDEO\_FLAG\_INTERLACED}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+I\+N\+T\+E\+R\+L\+A\+C\+ED~(M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+\+S\+T\+A\+RT$<$$<$0)}

16\+: Signals an interlaced video frame \mbox{\Hypertarget{group___mmal_buffer_header_gaa18815e153fb590d7bea0673814ec859}\label{group___mmal_buffer_header_gaa18815e153fb590d7bea0673814ec859}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+P\+R\+O\+T\+E\+C\+T\+ED@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+P\+R\+O\+T\+E\+C\+T\+ED}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+P\+R\+O\+T\+E\+C\+T\+ED@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+P\+R\+O\+T\+E\+C\+T\+ED}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+P\+R\+O\+T\+E\+C\+T\+ED}{MMAL\_BUFFER\_HEADER\_VIDEO\_FLAG\_PROTECTED}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+P\+R\+O\+T\+E\+C\+T\+ED~(M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+\+S\+T\+A\+RT$<$$<$4)}

20\+: Signals that contents of the buffer requires copy protection. \mbox{\Hypertarget{group___mmal_buffer_header_ga5e38937ab2b2d737afae67952ad45180}\label{group___mmal_buffer_header_ga5e38937ab2b2d737afae67952ad45180}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+T\+O\+P\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+I\+R\+ST@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+T\+O\+P\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+I\+R\+ST}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+T\+O\+P\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+I\+R\+ST@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+T\+O\+P\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+I\+R\+ST}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+T\+O\+P\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+I\+R\+ST}{MMAL\_BUFFER\_HEADER\_VIDEO\_FLAG\_TOP\_FIELD\_FIRST}}
{\footnotesize\ttfamily \#define M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+V\+I\+D\+E\+O\+\_\+\+F\+L\+A\+G\+\_\+\+T\+O\+P\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+I\+R\+ST~(M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+F\+L\+A\+G\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+\+S\+T\+A\+RT$<$$<$1)}

17\+: Signals that the top field of the current interlaced frame should be displayed first 

\subsection{Typedef Documentation}
\mbox{\Hypertarget{group___mmal_buffer_header_ga83d2d9944c72cbac55332fefcd48fc9a}\label{group___mmal_buffer_header_ga83d2d9944c72cbac55332fefcd48fc9a}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+H\+\_\+\+P\+R\+E\+\_\+\+R\+E\+L\+E\+A\+S\+E\+\_\+\+C\+B\+\_\+T@{M\+M\+A\+L\+\_\+\+B\+H\+\_\+\+P\+R\+E\+\_\+\+R\+E\+L\+E\+A\+S\+E\+\_\+\+C\+B\+\_\+T}}
\index{M\+M\+A\+L\+\_\+\+B\+H\+\_\+\+P\+R\+E\+\_\+\+R\+E\+L\+E\+A\+S\+E\+\_\+\+C\+B\+\_\+T@{M\+M\+A\+L\+\_\+\+B\+H\+\_\+\+P\+R\+E\+\_\+\+R\+E\+L\+E\+A\+S\+E\+\_\+\+C\+B\+\_\+T}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+H\+\_\+\+P\+R\+E\+\_\+\+R\+E\+L\+E\+A\+S\+E\+\_\+\+C\+B\+\_\+T}{MMAL\_BH\_PRE\_RELEASE\_CB\_T}}
{\footnotesize\ttfamily typedef M\+M\+A\+L\+\_\+\+B\+O\+O\+L\+\_\+T($\ast$ M\+M\+A\+L\+\_\+\+B\+H\+\_\+\+P\+R\+E\+\_\+\+R\+E\+L\+E\+A\+S\+E\+\_\+\+C\+B\+\_\+T) (\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$header, void $\ast$userdata)}

Buffer header pre-\/release callback. The callback is invoked just before a buffer is released back into a pool. This is used by clients who need to trigger additional actions before the buffer can finally be released (e.\+g. wait for a bulk transfer to complete).

The callback should return T\+R\+UE if the buffer release need to be post-\/poned.


\begin{DoxyParams}{Parameters}
{\em header} & buffer header about to be released \\
\hline
{\em userdata} & user-\/specific data\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE if the buffer should not be released 
\end{DoxyReturn}
\mbox{\Hypertarget{group___mmal_buffer_header_ga04b1287ff1819730dac76ec2f1b71755}\label{group___mmal_buffer_header_ga04b1287ff1819730dac76ec2f1b71755}} 
\index{Buffer headers@{Buffer headers}!M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}}
\index{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T@{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}{MMAL\_BUFFER\_HEADER\_T}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}}  \mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}}}

Definition of the buffer header structure. A buffer header does not directly carry the data to be passed to a component but instead it references the actual data using a pointer (and an associated length). It also contains an internal area which can be used to store command to be associated with the external data. 

\subsection{Function Documentation}
\mbox{\Hypertarget{group___mmal_buffer_header_gad9609b896dba5cdbddc8b7b82905465a}\label{group___mmal_buffer_header_gad9609b896dba5cdbddc8b7b82905465a}} 
\index{Buffer headers@{Buffer headers}!mmal\+\_\+buffer\+\_\+header\+\_\+acquire@{mmal\+\_\+buffer\+\_\+header\+\_\+acquire}}
\index{mmal\+\_\+buffer\+\_\+header\+\_\+acquire@{mmal\+\_\+buffer\+\_\+header\+\_\+acquire}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{mmal\+\_\+buffer\+\_\+header\+\_\+acquire()}{mmal\_buffer\_header\_acquire()}}
{\footnotesize\ttfamily void mmal\+\_\+buffer\+\_\+header\+\_\+acquire (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$}]{header }\end{DoxyParamCaption})}

Acquire a buffer header. Acquiring a buffer header increases a reference counter on it and makes sure that the buffer header won\textquotesingle{}t be recycled until all the references to it are gone. This is useful for instance if a component needs to return a buffer header but still needs access to it for some internal processing (e.\+g. reference frames in video codecs).


\begin{DoxyParams}{Parameters}
{\em header} & buffer header to acquire \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group___mmal_buffer_header_ga194fe6814a3bb4eb68dd4d999bef8b06}\label{group___mmal_buffer_header_ga194fe6814a3bb4eb68dd4d999bef8b06}} 
\index{Buffer headers@{Buffer headers}!mmal\+\_\+buffer\+\_\+header\+\_\+mem\+\_\+lock@{mmal\+\_\+buffer\+\_\+header\+\_\+mem\+\_\+lock}}
\index{mmal\+\_\+buffer\+\_\+header\+\_\+mem\+\_\+lock@{mmal\+\_\+buffer\+\_\+header\+\_\+mem\+\_\+lock}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{mmal\+\_\+buffer\+\_\+header\+\_\+mem\+\_\+lock()}{mmal\_buffer\_header\_mem\_lock()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} mmal\+\_\+buffer\+\_\+header\+\_\+mem\+\_\+lock (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$}]{header }\end{DoxyParamCaption})}

Lock the data buffer contained in the buffer header in memory. This call does nothing on all platforms except Video\+Core where it is needed to pin a buffer in memory before any access to it.


\begin{DoxyParams}{Parameters}
{\em header} & buffer header to lock \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group___mmal_buffer_header_ga3e381687103b8c14895ba349d6668b7c}\label{group___mmal_buffer_header_ga3e381687103b8c14895ba349d6668b7c}} 
\index{Buffer headers@{Buffer headers}!mmal\+\_\+buffer\+\_\+header\+\_\+mem\+\_\+unlock@{mmal\+\_\+buffer\+\_\+header\+\_\+mem\+\_\+unlock}}
\index{mmal\+\_\+buffer\+\_\+header\+\_\+mem\+\_\+unlock@{mmal\+\_\+buffer\+\_\+header\+\_\+mem\+\_\+unlock}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{mmal\+\_\+buffer\+\_\+header\+\_\+mem\+\_\+unlock()}{mmal\_buffer\_header\_mem\_unlock()}}
{\footnotesize\ttfamily void mmal\+\_\+buffer\+\_\+header\+\_\+mem\+\_\+unlock (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$}]{header }\end{DoxyParamCaption})}

Unlock the data buffer contained in the buffer header. This call does nothing on all platforms except Video\+Core where it is needed to un-\/pin a buffer in memory after any access to it.


\begin{DoxyParams}{Parameters}
{\em header} & buffer header to unlock \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group___mmal_buffer_header_ga0a760f6cb1ed797372babe58c16ce98a}\label{group___mmal_buffer_header_ga0a760f6cb1ed797372babe58c16ce98a}} 
\index{Buffer headers@{Buffer headers}!mmal\+\_\+buffer\+\_\+header\+\_\+pre\+\_\+release\+\_\+cb\+\_\+set@{mmal\+\_\+buffer\+\_\+header\+\_\+pre\+\_\+release\+\_\+cb\+\_\+set}}
\index{mmal\+\_\+buffer\+\_\+header\+\_\+pre\+\_\+release\+\_\+cb\+\_\+set@{mmal\+\_\+buffer\+\_\+header\+\_\+pre\+\_\+release\+\_\+cb\+\_\+set}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{mmal\+\_\+buffer\+\_\+header\+\_\+pre\+\_\+release\+\_\+cb\+\_\+set()}{mmal\_buffer\_header\_pre\_release\_cb\_set()}}
{\footnotesize\ttfamily void mmal\+\_\+buffer\+\_\+header\+\_\+pre\+\_\+release\+\_\+cb\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$}]{header,  }\item[{\mbox{\hyperlink{group___mmal_buffer_header_ga83d2d9944c72cbac55332fefcd48fc9a}{M\+M\+A\+L\+\_\+\+B\+H\+\_\+\+P\+R\+E\+\_\+\+R\+E\+L\+E\+A\+S\+E\+\_\+\+C\+B\+\_\+T}}}]{cb,  }\item[{void $\ast$}]{userdata }\end{DoxyParamCaption})}

Set a buffer header pre-\/release callback. If the callback is N\+U\+LL, the buffer will be released back into the pool immediately as usual.


\begin{DoxyParams}{Parameters}
{\em header} & buffer header to associate callback with \\
\hline
{\em cb} & pre-\/release callback to invoke \\
\hline
{\em userdata} & user-\/specific data \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group___mmal_buffer_header_ga69dfbc6faf317c320c4abbeb750a556e}\label{group___mmal_buffer_header_ga69dfbc6faf317c320c4abbeb750a556e}} 
\index{Buffer headers@{Buffer headers}!mmal\+\_\+buffer\+\_\+header\+\_\+release@{mmal\+\_\+buffer\+\_\+header\+\_\+release}}
\index{mmal\+\_\+buffer\+\_\+header\+\_\+release@{mmal\+\_\+buffer\+\_\+header\+\_\+release}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{mmal\+\_\+buffer\+\_\+header\+\_\+release()}{mmal\_buffer\_header\_release()}}
{\footnotesize\ttfamily void mmal\+\_\+buffer\+\_\+header\+\_\+release (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$}]{header }\end{DoxyParamCaption})}

Release a buffer header. Releasing a buffer header will decrease its reference counter and when no more references are left, the buffer header will be recycled by calling its \textquotesingle{}release\textquotesingle{} callback function.

If a pre-\/release callback is set (\mbox{\hyperlink{group___mmal_buffer_header_ga83d2d9944c72cbac55332fefcd48fc9a}{M\+M\+A\+L\+\_\+\+B\+H\+\_\+\+P\+R\+E\+\_\+\+R\+E\+L\+E\+A\+S\+E\+\_\+\+C\+B\+\_\+T}}), this will be invoked before calling the buffer\textquotesingle{}s release callback and potentially postpone buffer recycling. Once pre-\/release is complete the buffer header is recycled with \mbox{\hyperlink{group___mmal_buffer_header_ga51c263bfb9addd37edf0c641230c038c}{mmal\+\_\+buffer\+\_\+header\+\_\+release\+\_\+continue}}.


\begin{DoxyParams}{Parameters}
{\em header} & buffer header to release \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group___mmal_buffer_header_ga51c263bfb9addd37edf0c641230c038c}\label{group___mmal_buffer_header_ga51c263bfb9addd37edf0c641230c038c}} 
\index{Buffer headers@{Buffer headers}!mmal\+\_\+buffer\+\_\+header\+\_\+release\+\_\+continue@{mmal\+\_\+buffer\+\_\+header\+\_\+release\+\_\+continue}}
\index{mmal\+\_\+buffer\+\_\+header\+\_\+release\+\_\+continue@{mmal\+\_\+buffer\+\_\+header\+\_\+release\+\_\+continue}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{mmal\+\_\+buffer\+\_\+header\+\_\+release\+\_\+continue()}{mmal\_buffer\_header\_release\_continue()}}
{\footnotesize\ttfamily void mmal\+\_\+buffer\+\_\+header\+\_\+release\+\_\+continue (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$}]{header }\end{DoxyParamCaption})}

Continue the buffer header release process. This should be called to complete buffer header recycling once all pre-\/release activity has been completed.


\begin{DoxyParams}{Parameters}
{\em header} & buffer header to release \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group___mmal_buffer_header_gaea1bde05ffa6baacd37ceeef9773c32b}\label{group___mmal_buffer_header_gaea1bde05ffa6baacd37ceeef9773c32b}} 
\index{Buffer headers@{Buffer headers}!mmal\+\_\+buffer\+\_\+header\+\_\+replicate@{mmal\+\_\+buffer\+\_\+header\+\_\+replicate}}
\index{mmal\+\_\+buffer\+\_\+header\+\_\+replicate@{mmal\+\_\+buffer\+\_\+header\+\_\+replicate}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{mmal\+\_\+buffer\+\_\+header\+\_\+replicate()}{mmal\_buffer\_header\_replicate()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} mmal\+\_\+buffer\+\_\+header\+\_\+replicate (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$}]{dest,  }\item[{\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$}]{src }\end{DoxyParamCaption})}

Replicate a buffer header into another one. Replicating a buffer header will not only do an exact copy of all the public fields of the buffer header (including data and alloc\+\_\+size), but it will also acquire a reference to the source buffer header which will only be released once the replicate has been released.


\begin{DoxyParams}{Parameters}
{\em dest} & buffer header into which to replicate \\
\hline
{\em src} & buffer header to use as the source for the replication \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
M\+M\+A\+L\+\_\+\+S\+U\+C\+C\+E\+SS on success 
\end{DoxyReturn}
\mbox{\Hypertarget{group___mmal_buffer_header_ga902874a4bfadacde38cde0357433cb02}\label{group___mmal_buffer_header_ga902874a4bfadacde38cde0357433cb02}} 
\index{Buffer headers@{Buffer headers}!mmal\+\_\+buffer\+\_\+header\+\_\+reset@{mmal\+\_\+buffer\+\_\+header\+\_\+reset}}
\index{mmal\+\_\+buffer\+\_\+header\+\_\+reset@{mmal\+\_\+buffer\+\_\+header\+\_\+reset}!Buffer headers@{Buffer headers}}
\subsubsection{\texorpdfstring{mmal\+\_\+buffer\+\_\+header\+\_\+reset()}{mmal\_buffer\_header\_reset()}}
{\footnotesize\ttfamily void mmal\+\_\+buffer\+\_\+header\+\_\+reset (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} $\ast$}]{header }\end{DoxyParamCaption})}

Reset a buffer header. Resets all header variables to default values.


\begin{DoxyParams}{Parameters}
{\em header} & buffer header to reset \\
\hline
\end{DoxyParams}
