* associated packed header data buffer shall contain the start code
* prefix 0x000001 followed by the complete NAL unit, thus also
* including the \c nal_unit_type.
+ *
+ * Note: the start code prefix can contain an arbitrary number of leading
+ * zeros. The driver will skip them for emulation prevention bytes insertion,
+ * if necessary.
*/
typedef enum {
/**
+ * \brief Packed Sequence Parameter Set (SPS).
+ *
+ * The corresponding packed header data buffer shall contain the
+ * complete seq_parameter_set_rbsp() syntax element.
+ *
+ * Note: packed \c nal_unit_type shall be equal to 7.
+ */
+ VAEncPackedHeaderH264_SPS = VAEncPackedHeaderSequence,
+ /**
+ * \brief Packed Picture Parameter Set (PPS).
+ *
+ * The corresponding packed header data buffer shall contain the
+ * complete pic_parameter_set_rbsp() syntax element.
+ *
+ * Note: packed \c nal_unit_type shall be equal to 8.
+ */
+ VAEncPackedHeaderH264_PPS = VAEncPackedHeaderPicture,
+ /**
+ * \brief Packed slice header.
+ *
+ * The corresponding packed header data buffer shall contain the
+ * \c slice_header() syntax element only, along with any start
+ * code prefix and NAL unit type preceeding it. i.e. this means
+ * that the buffer does not contain any of the \c slice_data() or
+ * the \c rbsp_slice_trailing_bits().
+ *
+ * Note: packed \c nal_unit_type shall be equal to 1 (non-IDR
+ * picture), or 5 (IDR picture).
+ */
+ VAEncPackedHeaderH264_Slice = VAEncPackedHeaderSlice,
+ /**
* \brief Packed Supplemental Enhancement Information (SEI).
*
* The corresponding packed header data buffer shall contain the
*
* Note: packed \c nal_unit_type shall be equal to 6.
*/
- VAEncPackedHeaderH264_SEI = (VAEncPackedHeaderMiscMask | 1),
+ VAEncPackedHeaderH264_SEI = (VAEncPackedHeaderMiscMask | 1),
} VAEncPackedHeaderTypeH264;
/**
- * \brief Sequence parameter for H.264 encoding in main & high profiles.
+ * \brief Sequence parameter for H.264 encoding in baseline, main & high
+ * profiles.
*
* This structure holds information for \c seq_parameter_set_data() as
* defined by the H.264 specification.
union {
struct {
/** \brief Same as the H.264 bitstream syntax element. */
+ unsigned int aspect_ratio_info_present_flag : 1;
+ /** \brief Same as the H.264 bitstream syntax element. */
unsigned int timing_info_present_flag : 1;
/** \brief Same as the H.264 bitstream syntax element. */
unsigned int bitstream_restriction_flag : 1;
unsigned int value;
} vui_fields;
/** \brief Same as the H.264 bitstream syntax element. */
+ unsigned char aspect_ratio_idc;
+ /** \brief Same as the H.264 bitstream syntax element. */
+ unsigned int sar_width;
+ /** \brief Same as the H.264 bitstream syntax element. */
+ unsigned int sar_height;
+ /** \brief Same as the H.264 bitstream syntax element. */
unsigned int num_units_in_tick;
/** \brief Same as the H.264 bitstream syntax element. */
unsigned int time_scale;
} VAEncSequenceParameterBufferH264;
/**
- * \brief Picture parameter for H.264 encoding in main & high profiles.
+ * \brief Picture parameter for H.264 encoding in baseline, main & high
+ * profiles.
*
* This structure holds information for \c pic_parameter_set_rbsp() as
* defined by the H.264 specification.
} VAEncPictureParameterBufferH264;
/**
- * \brief Slice parameter for H.264 encoding in main & high profiles.
+ * \brief Slice parameter for H.264 encoding in baseline, main & high profiles.
*
* This structure holds information for \c
* slice_layer_without_partitioning_rbsp() as defined by the H.264
/**@}*/
/**
- * \brief Macroblock parameter for H.264 encoding in main & high profiles.
+ * \brief Macroblock parameter for H.264 encoding in baseline, main & high
+ * profiles.
*
* This structure holds per-macroblock information. The buffer must be
* allocated with as many elements (macroblocks) as necessary to fit