#define VA_ENC_PACKED_HEADER_PICTURE 0x00000002
/** \brief Driver supports packed slice headers. e.g. \c slice_header() for H.264. */
#define VA_ENC_PACKED_HEADER_SLICE 0x00000004
+/** \brief Driver supports misc packed headers. e.g. SEI for H.264. */
+#define VA_ENC_PACKED_HEADER_MISC 0x00000008
/**@}*/
/** @name Attribute values for VAConfigAttribEncInterlaced */
/** \brief Packed header type. */
typedef enum {
- VAEncPackedHeaderSequence = 1, /**< Packed sequence header. */
- VAEncPackedHeaderPicture = 2, /**< Packed picture header. */
- VAEncPackedHeaderSlice = 3, /**< Packed slice header. */
+ /** \brief Packed sequence header. */
+ VAEncPackedHeaderSequence = 1,
+ /** \brief Packed picture header. */
+ VAEncPackedHeaderPicture = 2,
+ /** \brief Packed slice header. */
+ VAEncPackedHeaderSlice = 3,
+ /** \brief Misc packed header. See codec-specific definitions. */
+ VAEncPackedHeaderMiscMask = 0x80000000,
} VAEncPackedHeaderType;
/** \brief Packed header parameter. */
typedef struct _VAEncPackedHeaderParameterBuffer {
/** Type of the packed header buffer. See #VAEncPackedHeaderType. */
- VAEncPackedHeaderType type;
+ unsigned int type;
/** \brief Size of the #VAEncPackedHeaderDataBuffer in bits. */
unsigned int bit_length;
/** \brief Flag: buffer contains start code emulation prevention bytes? */
/**@}*/
/**
+ * \brief Packed header types specific to H.264 encoding.
+ *
+ * Types of packed headers generally used for H.264 encoding. Each
+ * 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.
+ */
+typedef enum {
+ /**
+ * \brief Packed Supplemental Enhancement Information (SEI).
+ *
+ * The corresponding packed header data buffer shall contain the
+ * complete sei_rbsp() syntax element, thus including several
+ * sei_message() elements if necessary.
+ *
+ * Note: packed \c nal_unit_type shall be equal to 6.
+ */
+ VAEncPackedHeaderH264_SEI = (VAEncPackedHeaderMiscMask | 1),
+} VAEncPackedHeaderTypeH264;
+
+/**
* \brief Sequence parameter for H.264 encoding in main & high profiles.
*
* This structure holds information for \c seq_parameter_set_data() as