+/** \berief Describes High Dynamic Range Meta Data for HDR10. */
+typedef struct _VAHdrMetaDataHDR10
+{
+ /**
+ * \brief X chromaticity coordinate of the mastering display.
+ *
+ * Index value c equal to 0 should correspond to the green primary.
+ * Index value c equal to 1 should correspond to the blue primary.
+ * Index value c equal to 2 should correspond to the red primary.
+ * The value for display_primaries_x shall be in the range of 0 to 50000 inclusive.
+ */
+ uint16_t display_primaries_x[3];
+ /**
+ * \brief Y chromaticity coordinate of the mastering display.
+ *
+ * Index value c equal to 0 should correspond to the green primary.
+ * Index value c equal to 1 should correspond to the blue primary.
+ * Index value c equal to 2 should correspond to the red primary.
+ * The value for display_primaries_y shall be in the range of 0 to 50000 inclusive.
+ */
+ uint16_t display_primaries_y[3];
+ /**
+ * \brief X chromaticity coordinate of the white point of the mastering display.
+ *
+ * The value for white_point_x shall be in the range of 0 to 50000 inclusive.
+ */
+ uint16_t white_point_x;
+ /**
+ * \brief Y chromaticity coordinate of the white point of the mastering display.
+ *
+ * The value for white_point_y shall be in the range of 0 to 50000 inclusive.
+ */
+ uint16_t white_point_y;
+ /**
+ * \brief The maximum display luminance of the mastering display.
+ *
+ * The value is in units of 0.0001 candelas per square metre.
+ */
+ uint32_t max_display_mastering_luminance;
+ /**
+ * \brief The minumum display luminance of the mastering display.
+ *
+ * The value is in units of 0.0001 candelas per square metre.
+ */
+ uint32_t min_display_mastering_luminance;
+ /**
+ * \brief The maximum content light level.
+ *
+ * The value is in units of 0.0001 candelas per square metre.
+ */
+ uint16_t max_content_light_level;
+ /**
+ * \brief The maximum picture average light level.
+ *
+ * The value is in units of 0.0001 candelas per square metre.
+ */
+ uint16_t max_pic_average_light_level;
+ /** Resevered */
+ uint16_t reserved[VA_PADDING_HIGH];
+} VAHdrMetaDataHDR10;
+
+/** \brief Capabilities specification for the High Dynamic Range filter. */
+typedef struct _VAProcFilterCapHighDynamicRange {
+ /** \brief high dynamic range type. */
+ VAProcHighDynamicRangeMetadataType metadata_type;
+ /**
+ * \brief flag for high dynamic range tone mapping
+ *
+ * The flag is the combination of VA_TONE_MAPPING_XXX_TO_XXX.
+ * It could be VA_TONE_MAPPING_HDR_TO_HDR | VA_TONE_MAPPING_HDR_TO_SDR.
+ * SDR content to SDR display is always supported by default since it is legacy path.
+ */
+ uint16_t caps_flag;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint16_t va_reserved[VA_PADDING_HIGH];
+} VAProcFilterCapHighDynamicRange;
+
+/** \brief High Dynamic Range Meta Data. */
+typedef struct _VAHdrMetaData
+{
+ /** \brief high dynamic range metadata type, HDR10 etc. */
+ VAProcHighDynamicRangeMetadataType metadata_type;
+ /**
+ * \brief Pointer to high dynamic range metadata.
+ *
+ * The pointer could point to VAHdrMetaDataHDR10 or other HDR meta data.
+ */
+ void* metadata;
+ /**
+ * \brief Size of high dynamic range metadata.
+ */
+ uint32_t metadata_size;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t reserved[VA_PADDING_LOW];
+} VAHdrMetaData;
+