| vdpau.h | | vdpau.h | |
| | | | |
| skipping to change at line 710 | | skipping to change at line 710 | |
| * | | * | |
| * In most case, VDPAU includes no provision for modifying existing | | * In most case, VDPAU includes no provision for modifying existing | |
| * structure definitions, although they may be deprecated. | | * structure definitions, although they may be deprecated. | |
| * | | * | |
| * New structures may be created, together with new API entry | | * New structures may be created, together with new API entry | |
| * points or feature/attribute/parameter values, to expose new | | * points or feature/attribute/parameter values, to expose new | |
| * functionality. | | * functionality. | |
| * | | * | |
| * A few structures are considered plausible candidates for future extensio
n. | | * A few structures are considered plausible candidates for future extensio
n. | |
| * Such structures include a version number as the first field, indicating
the | | * Such structures include a version number as the first field, indicating
the | |
|
| * exact layout of the client-provided data. Such structures may only be | | * exact layout of the client-provided data. When changing such structures, | |
| * modified by adding new fields to the end of the structure, so that the | | the | |
| * original structure definition is completely compatible with a leading | | * old structure must be preserved and a new structure created. This allows | |
| * subset of fields of the extended structure. | | * applications built against the old version of the structure to continue | |
| | | to | |
| | | * interoperate. For example, to extend the VdpProcamp structure, define a | |
| | | new | |
| | | * VdpProcamp1 and update VdpGenerateCSCMatrix to take the new structure as | |
| | | an | |
| | | * argument. Document in a comment that the caller must fill the struct_ver | |
| | | sion | |
| | | * field with the value 1. VDPAU implementations should use the struct_vers | |
| | | ion | |
| | | * field to determine which version of the structure the application was bu | |
| | | ilt | |
| | | * against. Note that you cannot simply increment the value of | |
| | | * VDP_PROCAMP_VERSION because applications recompiled against a newer vers | |
| | | ion | |
| | | * of vdpau.h but that have not been updated to use the new structure must | |
| | | still | |
| | | * report that they're using version 0. | |
| | | * | |
| | | * Note that the layouts of VdpPictureInfo structures are defined by their | |
| | | * corresponding VdpDecoderProfile numbers, so no struct_version field is | |
| | | * needed for them. This layout includes the size of the structure, so new | |
| | | * profiles that extend existing functionality may incorporate the old | |
| | | * VdpPictureInfo as a substructure, but may not modify existing VdpPicture | |
| | | Info | |
| | | * structures. | |
| * | | * | |
| * \subsection extend_functions Functions | | * \subsection extend_functions Functions | |
| * | | * | |
| * Existing functions may not be modified, although they may be | | * Existing functions may not be modified, although they may be | |
| * deprecated. | | * deprecated. | |
| * | | * | |
| * New functions may be added at will. Note the enumeration | | * New functions may be added at will. Note the enumeration | |
| * requirements when modifying the enumeration that defines the | | * requirements when modifying the enumeration that defines the | |
| * list of entry points. | | * list of entry points. | |
| * | | * | |
| | | | |
| skipping to change at line 807 | | skipping to change at line 822 | |
| */ | | */ | |
| #define VDP_INVALID_HANDLE 0xffffffffU | | #define VDP_INVALID_HANDLE 0xffffffffU | |
| | | | |
| /** | | /** | |
| * \brief The set of all chroma formats for \ref VdpVideoSurface | | * \brief The set of all chroma formats for \ref VdpVideoSurface | |
| * "VdpVideoSurface"s. | | * "VdpVideoSurface"s. | |
| */ | | */ | |
| typedef uint32_t VdpChromaType; | | typedef uint32_t VdpChromaType; | |
| | | | |
| /** \hideinitializer \brief 4:2:0 chroma format. */ | | /** \hideinitializer \brief 4:2:0 chroma format. */ | |
|
| #define VDP_CHROMA_TYPE_420 (VdpChromaType)0 | | #define VDP_CHROMA_TYPE_420 ((VdpChromaType)0) | |
| /** \hideinitializer \brief 4:2:2 chroma format. */ | | /** \hideinitializer \brief 4:2:2 chroma format. */ | |
|
| #define VDP_CHROMA_TYPE_422 (VdpChromaType)1 | | #define VDP_CHROMA_TYPE_422 ((VdpChromaType)1) | |
| /** \hideinitializer \brief 4:4:4 chroma format. */ | | /** \hideinitializer \brief 4:4:4 chroma format. */ | |
|
| #define VDP_CHROMA_TYPE_444 (VdpChromaType)2 | | #define VDP_CHROMA_TYPE_444 ((VdpChromaType)2) | |
| | | | |
| /** | | /** | |
| * \brief The set of all known YCbCr surface formats. | | * \brief The set of all known YCbCr surface formats. | |
| */ | | */ | |
| typedef uint32_t VdpYCbCrFormat; | | typedef uint32_t VdpYCbCrFormat; | |
| | | | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief The "NV12" YCbCr surface format. | | * \brief The "NV12" YCbCr surface format. | |
| * | | * | |
| * This format has a two planes, a Y plane and a UV plane. | | * This format has a two planes, a Y plane and a UV plane. | |
| * | | * | |
| * The Y plane is an array of byte-sized Y components. | | * The Y plane is an array of byte-sized Y components. | |
| * Applications should access this data via a uint8_t pointer. | | * Applications should access this data via a uint8_t pointer. | |
| * | | * | |
| * The UV plane is an array of interleaved byte-sized U and V | | * The UV plane is an array of interleaved byte-sized U and V | |
| * components, in the order U, V, U, V. Applications should | | * components, in the order U, V, U, V. Applications should | |
| * access this data via a uint8_t pointer. | | * access this data via a uint8_t pointer. | |
| */ | | */ | |
|
| #define VDP_YCBCR_FORMAT_NV12 (VdpYCbCrFormat)0 | | #define VDP_YCBCR_FORMAT_NV12 ((VdpYCbCrFormat)0) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief The "YV12" YCbCr surface format. | | * \brief The "YV12" YCbCr surface format. | |
| * | | * | |
| * This format has a three planes, a Y plane, a V plane, and a U | | * This format has a three planes, a Y plane, a V plane, and a U | |
| * plane. | | * plane. | |
| * | | * | |
| * Each of the planes is an array of byte-sized components. | | * Each of the planes is an array of byte-sized components. | |
| * | | * | |
| * Applications should access this data via a uint8_t pointer. | | * Applications should access this data via a uint8_t pointer. | |
| */ | | */ | |
|
| #define VDP_YCBCR_FORMAT_YV12 (VdpYCbCrFormat)1 | | #define VDP_YCBCR_FORMAT_YV12 ((VdpYCbCrFormat)1) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief The "UYVY" YCbCr surface format. | | * \brief The "UYVY" YCbCr surface format. | |
| * | | * | |
| * This format may also be known as Y422, UYNV, HDYC. | | * This format may also be known as Y422, UYNV, HDYC. | |
| * | | * | |
| * This format has a single plane. | | * This format has a single plane. | |
| * | | * | |
| * This plane is an array of interleaved byte-sized Y, U, and V | | * This plane is an array of interleaved byte-sized Y, U, and V | |
| * components, in the order U, Y, V, Y, U, Y, V, Y. | | * components, in the order U, Y, V, Y, U, Y, V, Y. | |
| * | | * | |
| * Applications should access this data via a uint8_t pointer. | | * Applications should access this data via a uint8_t pointer. | |
| */ | | */ | |
|
| #define VDP_YCBCR_FORMAT_UYVY (VdpYCbCrFormat)2 | | #define VDP_YCBCR_FORMAT_UYVY ((VdpYCbCrFormat)2) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief The "YUYV" YCbCr surface format. | | * \brief The "YUYV" YCbCr surface format. | |
| * | | * | |
| * This format may also be known as YUY2, YUNV, V422. | | * This format may also be known as YUY2, YUNV, V422. | |
| * | | * | |
| * This format has a single plane. | | * This format has a single plane. | |
| * | | * | |
| * This plane is an array of interleaved byte-sized Y, U, and V | | * This plane is an array of interleaved byte-sized Y, U, and V | |
| * components, in the order Y, U, Y, V, Y, U, Y, V. | | * components, in the order Y, U, Y, V, Y, U, Y, V. | |
| * | | * | |
| * Applications should access this data via a uint8_t pointer. | | * Applications should access this data via a uint8_t pointer. | |
| */ | | */ | |
|
| #define VDP_YCBCR_FORMAT_YUYV (VdpYCbCrFormat)3 | | #define VDP_YCBCR_FORMAT_YUYV ((VdpYCbCrFormat)3) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A packed YCbCr format. | | * \brief A packed YCbCr format. | |
| * | | * | |
| * This format has a single plane. | | * This format has a single plane. | |
| * | | * | |
| * This plane is an array packed 32-bit pixel data. Within each | | * This plane is an array packed 32-bit pixel data. Within each | |
| * 32-bit pixel, bits [31:24] contain A, bits [23:16] contain V, | | * 32-bit pixel, bits [31:24] contain A, bits [23:16] contain V, | |
| * bits [15:8] contain U, and bits [7:0] contain Y. | | * bits [15:8] contain U, and bits [7:0] contain Y. | |
| * | | * | |
| * Applications should access this data via a uint32_t pointer. | | * Applications should access this data via a uint32_t pointer. | |
| */ | | */ | |
|
| #define VDP_YCBCR_FORMAT_Y8U8V8A8 (VdpYCbCrFormat)4 | | #define VDP_YCBCR_FORMAT_Y8U8V8A8 ((VdpYCbCrFormat)4) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A packed YCbCr format. | | * \brief A packed YCbCr format. | |
| * | | * | |
| * This format has a single plane. | | * This format has a single plane. | |
| * | | * | |
| * This plane is an array packed 32-bit pixel data. Within each | | * This plane is an array packed 32-bit pixel data. Within each | |
| * 32-bit pixel, bits [31:24] contain A, bits [23:16] contain Y, | | * 32-bit pixel, bits [31:24] contain A, bits [23:16] contain Y, | |
| * bits [15:8] contain U, and bits [7:0] contain V. | | * bits [15:8] contain U, and bits [7:0] contain V. | |
| * | | * | |
| * Applications should access this data via a uint32_t pointer. | | * Applications should access this data via a uint32_t pointer. | |
| */ | | */ | |
|
| #define VDP_YCBCR_FORMAT_V8U8Y8A8 (VdpYCbCrFormat)5 | | #define VDP_YCBCR_FORMAT_V8U8Y8A8 ((VdpYCbCrFormat)5) | |
| | | | |
| /** | | /** | |
| * \brief The set of all known RGB surface formats. | | * \brief The set of all known RGB surface formats. | |
| */ | | */ | |
| typedef uint32_t VdpRGBAFormat; | | typedef uint32_t VdpRGBAFormat; | |
| | | | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A packed RGB format. | | * \brief A packed RGB format. | |
| * | | * | |
| * This format has a single plane. | | * This format has a single plane. | |
| * | | * | |
| * This plane is an array packed 32-bit pixel data. Within each | | * This plane is an array packed 32-bit pixel data. Within each | |
| * 32-bit pixel, bits [31:24] contain A, bits [23:16] contain R, | | * 32-bit pixel, bits [31:24] contain A, bits [23:16] contain R, | |
| * bits [15:8] contain G, and bits [7:0] contain B. | | * bits [15:8] contain G, and bits [7:0] contain B. | |
| * | | * | |
| * Applications should access this data via a uint32_t pointer. | | * Applications should access this data via a uint32_t pointer. | |
| */ | | */ | |
|
| #define VDP_RGBA_FORMAT_B8G8R8A8 (VdpRGBAFormat)0 | | #define VDP_RGBA_FORMAT_B8G8R8A8 ((VdpRGBAFormat)0) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A packed RGB format. | | * \brief A packed RGB format. | |
| * | | * | |
| * This format has a single plane. | | * This format has a single plane. | |
| * | | * | |
| * This plane is an array packed 32-bit pixel data. Within each | | * This plane is an array packed 32-bit pixel data. Within each | |
| * 32-bit pixel, bits [31:24] contain A, bits [23:16] contain B, | | * 32-bit pixel, bits [31:24] contain A, bits [23:16] contain B, | |
| * bits [15:8] contain G, and bits [7:0] contain R. | | * bits [15:8] contain G, and bits [7:0] contain R. | |
| * | | * | |
| * Applications should access this data via a uint32_t pointer. | | * Applications should access this data via a uint32_t pointer. | |
| */ | | */ | |
|
| #define VDP_RGBA_FORMAT_R8G8B8A8 (VdpRGBAFormat)1 | | #define VDP_RGBA_FORMAT_R8G8B8A8 ((VdpRGBAFormat)1) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A packed RGB format. | | * \brief A packed RGB format. | |
| * | | * | |
| * This format has a single plane. | | * This format has a single plane. | |
| * | | * | |
| * This plane is an array packed 32-bit pixel data. Within each | | * This plane is an array packed 32-bit pixel data. Within each | |
| * 32-bit pixel, bits [31:30] contain A, bits [29:20] contain B, | | * 32-bit pixel, bits [31:30] contain A, bits [29:20] contain B, | |
| * bits [19:10] contain G, and bits [9:0] contain R. | | * bits [19:10] contain G, and bits [9:0] contain R. | |
| * | | * | |
| * Applications should access this data via a uint32_t pointer. | | * Applications should access this data via a uint32_t pointer. | |
| */ | | */ | |
|
| #define VDP_RGBA_FORMAT_R10G10B10A2 (VdpRGBAFormat)2 | | #define VDP_RGBA_FORMAT_R10G10B10A2 ((VdpRGBAFormat)2) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A packed RGB format. | | * \brief A packed RGB format. | |
| * | | * | |
| * This format has a single plane. | | * This format has a single plane. | |
| * | | * | |
| * This plane is an array packed 32-bit pixel data. Within each | | * This plane is an array packed 32-bit pixel data. Within each | |
| * 32-bit pixel, bits [31:30] contain A, bits [29:20] contain R, | | * 32-bit pixel, bits [31:30] contain A, bits [29:20] contain R, | |
| * bits [19:10] contain G, and bits [9:0] contain B. | | * bits [19:10] contain G, and bits [9:0] contain B. | |
| * | | * | |
| * Applications should access this data via a uint32_t pointer. | | * Applications should access this data via a uint32_t pointer. | |
| */ | | */ | |
|
| #define VDP_RGBA_FORMAT_B10G10R10A2 (VdpRGBAFormat)3 | | #define VDP_RGBA_FORMAT_B10G10R10A2 ((VdpRGBAFormat)3) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief An alpha-only surface format. | | * \brief An alpha-only surface format. | |
| * | | * | |
| * This format has a single plane. | | * This format has a single plane. | |
| * | | * | |
| * This plane is an array of byte-sized components. | | * This plane is an array of byte-sized components. | |
| * | | * | |
| * Applications should access this data via a uint8_t pointer. | | * Applications should access this data via a uint8_t pointer. | |
| */ | | */ | |
|
| #define VDP_RGBA_FORMAT_A8 (VdpRGBAFormat)4 | | #define VDP_RGBA_FORMAT_A8 ((VdpRGBAFormat)4) | |
| | | | |
| /** | | /** | |
| * \brief The set of all known indexed surface formats. | | * \brief The set of all known indexed surface formats. | |
| */ | | */ | |
| typedef uint32_t VdpIndexedFormat; | | typedef uint32_t VdpIndexedFormat; | |
| | | | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A 4-bit indexed format, with alpha. | | * \brief A 4-bit indexed format, with alpha. | |
| * | | * | |
| * This format has a single plane. | | * This format has a single plane. | |
| * | | * | |
| * This plane is an array of byte-sized components. Within each | | * This plane is an array of byte-sized components. Within each | |
| * byte, bits [7:4] contain I (index), and bits [3:0] contain A. | | * byte, bits [7:4] contain I (index), and bits [3:0] contain A. | |
| * | | * | |
| * Applications should access this data via a uint8_t pointer. | | * Applications should access this data via a uint8_t pointer. | |
| */ | | */ | |
|
| #define VDP_INDEXED_FORMAT_A4I4 (VdpIndexedFormat)0 | | #define VDP_INDEXED_FORMAT_A4I4 ((VdpIndexedFormat)0) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A 4-bit indexed format, with alpha. | | * \brief A 4-bit indexed format, with alpha. | |
| * | | * | |
| * This format has a single plane. | | * This format has a single plane. | |
| * | | * | |
| * This plane is an array of byte-sized components. Within each | | * This plane is an array of byte-sized components. Within each | |
| * byte, bits [7:4] contain A, and bits [3:0] contain I (index). | | * byte, bits [7:4] contain A, and bits [3:0] contain I (index). | |
| * | | * | |
| * Applications should access this data via a uint8_t pointer. | | * Applications should access this data via a uint8_t pointer. | |
| */ | | */ | |
|
| #define VDP_INDEXED_FORMAT_I4A4 (VdpIndexedFormat)1 | | #define VDP_INDEXED_FORMAT_I4A4 ((VdpIndexedFormat)1) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A 8-bit indexed format, with alpha. | | * \brief A 8-bit indexed format, with alpha. | |
| * | | * | |
| * This format has a single plane. | | * This format has a single plane. | |
| * | | * | |
| * This plane is an array of interleaved byte-sized A and I | | * This plane is an array of interleaved byte-sized A and I | |
| * (index) components, in the order A, I, A, I. | | * (index) components, in the order A, I, A, I. | |
| * | | * | |
| * Applications should access this data via a uint8_t pointer. | | * Applications should access this data via a uint8_t pointer. | |
| */ | | */ | |
|
| #define VDP_INDEXED_FORMAT_A8I8 (VdpIndexedFormat)2 | | #define VDP_INDEXED_FORMAT_A8I8 ((VdpIndexedFormat)2) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A 8-bit indexed format, with alpha. | | * \brief A 8-bit indexed format, with alpha. | |
| * | | * | |
| * This format has a single plane. | | * This format has a single plane. | |
| * | | * | |
| * This plane is an array of interleaved byte-sized A and I | | * This plane is an array of interleaved byte-sized A and I | |
| * (index) components, in the order I, A, I, A. | | * (index) components, in the order I, A, I, A. | |
| * | | * | |
| * Applications should access this data via a uint8_t pointer. | | * Applications should access this data via a uint8_t pointer. | |
| */ | | */ | |
|
| #define VDP_INDEXED_FORMAT_I8A8 (VdpIndexedFormat)3 | | #define VDP_INDEXED_FORMAT_I8A8 ((VdpIndexedFormat)3) | |
| | | | |
| /** | | /** | |
| * \brief A location within a surface. | | * \brief A location within a surface. | |
| * | | * | |
| * The VDPAU co-ordinate system has its origin at the top-left | | * The VDPAU co-ordinate system has its origin at the top-left | |
| * of a surface, with x and y components increasing right and | | * of a surface, with x and y components increasing right and | |
| * down. | | * down. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| /** X co-ordinate. */ | | /** X co-ordinate. */ | |
| | | | |
| skipping to change at line 1418 | | skipping to change at line 1433 | |
| | | | |
| /** | | /** | |
| * \brief YCbCr color space specification. | | * \brief YCbCr color space specification. | |
| * | | * | |
| * A number of YCbCr color spaces exist. This enumeration | | * A number of YCbCr color spaces exist. This enumeration | |
| * defines the specifications known to VDPAU. | | * defines the specifications known to VDPAU. | |
| */ | | */ | |
| typedef uint32_t VdpColorStandard; | | typedef uint32_t VdpColorStandard; | |
| | | | |
| /** \hideinitializer \brief ITU-R BT.601 */ | | /** \hideinitializer \brief ITU-R BT.601 */ | |
|
| #define VDP_COLOR_STANDARD_ITUR_BT_601 (VdpColorStandard)0 | | #define VDP_COLOR_STANDARD_ITUR_BT_601 ((VdpColorStandard)0) | |
| /** \hideinitializer \brief ITU-R BT.709 */ | | /** \hideinitializer \brief ITU-R BT.709 */ | |
|
| #define VDP_COLOR_STANDARD_ITUR_BT_709 (VdpColorStandard)1 | | #define VDP_COLOR_STANDARD_ITUR_BT_709 ((VdpColorStandard)1) | |
| /** \hideinitializer \brief SMPTE-240M */ | | /** \hideinitializer \brief SMPTE-240M */ | |
|
| #define VDP_COLOR_STANDARD_SMPTE_240M (VdpColorStandard)2 | | #define VDP_COLOR_STANDARD_SMPTE_240M ((VdpColorStandard)2) | |
| | | | |
| /** | | /** | |
| * \brief Generate a color space conversion matrix | | * \brief Generate a color space conversion matrix | |
| * \param[in] procamp The procamp adjustments to make. If NULL, | | * \param[in] procamp The procamp adjustments to make. If NULL, | |
| * no adjustments will be made. | | * no adjustments will be made. | |
| * \param[in] standard The YCbCr color space to convert from. | | * \param[in] standard The YCbCr color space to convert from. | |
| * \param[out] csc_matrix The CSC matrix to initialize. | | * \param[out] csc_matrix The CSC matrix to initialize. | |
| * \return VdpStatus The completion status of the operation. | | * \return VdpStatus The completion status of the operation. | |
| */ | | */ | |
| typedef VdpStatus VdpGenerateCSCMatrix( | | typedef VdpStatus VdpGenerateCSCMatrix( | |
| | | | |
| skipping to change at line 1695 | | skipping to change at line 1710 | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief 8-bit per component packed into 32-bits | | * \brief 8-bit per component packed into 32-bits | |
| * | | * | |
| * This format is an array of packed 32-bit RGB color values. | | * This format is an array of packed 32-bit RGB color values. | |
| * Bits [31:24] are unused, bits [23:16] contain R, bits [15:8] | | * Bits [31:24] are unused, bits [23:16] contain R, bits [15:8] | |
| * contain G, and bits [7:0] contain B. Note: The format is | | * contain G, and bits [7:0] contain B. Note: The format is | |
| * physically an array of uint32_t values, and should be accessed | | * physically an array of uint32_t values, and should be accessed | |
| * as such by the application in order to avoid endianness | | * as such by the application in order to avoid endianness | |
| * issues. | | * issues. | |
| */ | | */ | |
|
| #define VDP_COLOR_TABLE_FORMAT_B8G8R8X8 (VdpColorTableFormat)0 | | #define VDP_COLOR_TABLE_FORMAT_B8G8R8X8 ((VdpColorTableFormat)0) | |
| | | | |
| /** | | /** | |
| * \brief Query the implementation's VdpOutputSurface | | * \brief Query the implementation's VdpOutputSurface | |
| * capabilities. | | * capabilities. | |
| * \param[in] device The device to query. | | * \param[in] device The device to query. | |
| * \param[in] surface_rgba_format The surface format for | | * \param[in] surface_rgba_format The surface format for | |
| * which information is requested. | | * which information is requested. | |
| * \param[out] is_supported Is this surface format supported? | | * \param[out] is_supported Is this surface format supported? | |
| * \param[out] max_width The maximum supported surface width for | | * \param[out] max_width The maximum supported surface width for | |
| * this chroma type. | | * this chroma type. | |
| | | | |
| skipping to change at line 2234 | | skipping to change at line 2249 | |
| * compositing operation. | | * compositing operation. | |
| * \param[in] destination_rect The sub-rectangle of the | | * \param[in] destination_rect The sub-rectangle of the | |
| * destination surface to update. If NULL, the entire | | * destination surface to update. If NULL, the entire | |
| * destination surface will be updated. | | * destination surface will be updated. | |
| * \param[in] source_surface The source surface for the | | * \param[in] source_surface The source surface for the | |
| * compositing operation. The surface is treated as having | | * compositing operation. The surface is treated as having | |
| * four components: red, green, blue and alpha. Any | | * four components: red, green, blue and alpha. Any | |
| * missing components are treated as 1.0. For example, for | | * missing components are treated as 1.0. For example, for | |
| * an A8 VdpOutputSurface, alpha will come from the surface | | * an A8 VdpOutputSurface, alpha will come from the surface | |
| * but red, green and blue will be treated as 1.0. If | | * but red, green and blue will be treated as 1.0. If | |
|
| * source_surface is NULL, all components will be treated | | * source_surface is VDP_INVALID_HANDLE, all components will | |
| * as 1.0. Note that destination_surface and | | * be treated as 1.0. Note that destination_surface and | |
| * source_surface must have been allocated via the same | | * source_surface must have been allocated via the same | |
| * \ref VdpDevice "VdpDevice". | | * \ref VdpDevice "VdpDevice". | |
| * \param[in] source_rect The sub-rectangle of the source | | * \param[in] source_rect The sub-rectangle of the source | |
| * surface to read from. If NULL, the entire | | * surface to read from. If NULL, the entire | |
| * source_surface will be read. Left/right and/or top/bottom | | * source_surface will be read. Left/right and/or top/bottom | |
| * co-ordinates may be swapped to flip the source. Any | | * co-ordinates may be swapped to flip the source. Any | |
| * flip occurs prior to any requested rotation. Values | | * flip occurs prior to any requested rotation. Values | |
| * from outside the source surface are valid and samples | | * from outside the source surface are valid and samples | |
| * at those locations will be taken from the nearest edge. | | * at those locations will be taken from the nearest edge. | |
| * \param[in] colors A pointer to an array of \ref VdpColor | | * \param[in] colors A pointer to an array of \ref VdpColor | |
| | | | |
| skipping to change at line 2314 | | skipping to change at line 2329 | |
| * compositing operation. | | * compositing operation. | |
| * \param[in] destination_rect The sub-rectangle of the | | * \param[in] destination_rect The sub-rectangle of the | |
| * destination surface to update. If NULL, the entire | | * destination surface to update. If NULL, the entire | |
| * destination surface will be updated. | | * destination surface will be updated. | |
| * \param[in] source_surface The source surface for the | | * \param[in] source_surface The source surface for the | |
| * compositing operation. The surface is treated as having | | * compositing operation. The surface is treated as having | |
| * four components: red, green, blue and alpha. Any | | * four components: red, green, blue and alpha. Any | |
| * missing components are treated as 1.0. For example, for | | * missing components are treated as 1.0. For example, for | |
| * an A8 VdpBitmapSurface, alpha will come from the surface | | * an A8 VdpBitmapSurface, alpha will come from the surface | |
| * but red, green and blue will be treated as 1.0. If | | * but red, green and blue will be treated as 1.0. If | |
|
| * source_surface is NULL, all components will be treated | | * source_surface is VDP_INVALID_HANDLE, all components will | |
| * as 1.0. Note that destination_surface and | | * be treated as 1.0. Note that destination_surface and | |
| * source_surface must have been allocated via the same | | * source_surface must have been allocated via the same | |
| * \ref VdpDevice "VdpDevice". | | * \ref VdpDevice "VdpDevice". | |
| * \param[in] source_rect The sub-rectangle of the source | | * \param[in] source_rect The sub-rectangle of the source | |
| * surface to read from. If NULL, the entire | | * surface to read from. If NULL, the entire | |
| * source_surface will be read. Left/right ot top/bottom | | * source_surface will be read. Left/right ot top/bottom | |
| * co-ordinates may be swapped to flip the source. Any | | * co-ordinates may be swapped to flip the source. Any | |
| * flip occurs prior to any requested rotation. Values | | * flip occurs prior to any requested rotation. Values | |
| * from outside the source surface are valid and samples | | * from outside the source surface are valid and samples | |
| * at those locations will be taken from the nearest edge. | | * at those locations will be taken from the nearest edge. | |
| * \param[in] colors A pointer to an array of \ref VdpColor | | * \param[in] colors A pointer to an array of \ref VdpColor | |
| | | | |
| skipping to change at line 2402 | | skipping to change at line 2417 | |
| * @{ | | * @{ | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * \brief The set of all known compressed video formats, and | | * \brief The set of all known compressed video formats, and | |
| * associated profiles, that may be decoded. | | * associated profiles, that may be decoded. | |
| */ | | */ | |
| typedef uint32_t VdpDecoderProfile; | | typedef uint32_t VdpDecoderProfile; | |
| | | | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_MPEG1 (VdpDecoderProfile)
0 | | #define VDP_DECODER_PROFILE_MPEG1 ((VdpDecoderProfile
)0) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_MPEG2_SIMPLE (VdpDecoderProfile)
1 | | #define VDP_DECODER_PROFILE_MPEG2_SIMPLE ((VdpDecoderProfile
)1) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_MPEG2_MAIN (VdpDecoderProfile)
2 | | #define VDP_DECODER_PROFILE_MPEG2_MAIN ((VdpDecoderProfile
)2) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
| /** \brief MPEG 4 part 10 == H.264 == AVC */ | | /** \brief MPEG 4 part 10 == H.264 == AVC */ | |
|
| #define VDP_DECODER_PROFILE_H264_BASELINE (VdpDecoderProfile)
6 | | #define VDP_DECODER_PROFILE_H264_BASELINE ((VdpDecoderProfile
)6) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_H264_MAIN (VdpDecoderProfile)
7 | | #define VDP_DECODER_PROFILE_H264_MAIN ((VdpDecoderProfile
)7) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_H264_HIGH (VdpDecoderProfile)
8 | | #define VDP_DECODER_PROFILE_H264_HIGH ((VdpDecoderProfile
)8) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_VC1_SIMPLE (VdpDecoderProfile)
9 | | #define VDP_DECODER_PROFILE_VC1_SIMPLE ((VdpDecoderProfile
)9) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_VC1_MAIN (VdpDecoderProfile)
10 | | #define VDP_DECODER_PROFILE_VC1_MAIN ((VdpDecoderProfile
)10) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_VC1_ADVANCED (VdpDecoderProfile)
11 | | #define VDP_DECODER_PROFILE_VC1_ADVANCED ((VdpDecoderProfile
)11) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_MPEG4_PART2_SP (VdpDecoderProfile)
12 | | #define VDP_DECODER_PROFILE_MPEG4_PART2_SP ((VdpDecoderProfile
)12) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_MPEG4_PART2_ASP (VdpDecoderProfile)
13 | | #define VDP_DECODER_PROFILE_MPEG4_PART2_ASP ((VdpDecoderProfile
)13) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_DIVX4_QMOBILE (VdpDecoderProfile)
14 | | #define VDP_DECODER_PROFILE_DIVX4_QMOBILE ((VdpDecoderProfile
)14) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_DIVX4_MOBILE (VdpDecoderProfile)
15 | | #define VDP_DECODER_PROFILE_DIVX4_MOBILE ((VdpDecoderProfile
)15) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_DIVX4_HOME_THEATER (VdpDecoderProfile)
16 | | #define VDP_DECODER_PROFILE_DIVX4_HOME_THEATER ((VdpDecoderProfile
)16) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_DIVX4_HD_1080P (VdpDecoderProfile)
17 | | #define VDP_DECODER_PROFILE_DIVX4_HD_1080P ((VdpDecoderProfile
)17) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_DIVX5_QMOBILE (VdpDecoderProfile)
18 | | #define VDP_DECODER_PROFILE_DIVX5_QMOBILE ((VdpDecoderProfile
)18) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_DIVX5_MOBILE (VdpDecoderProfile)
19 | | #define VDP_DECODER_PROFILE_DIVX5_MOBILE ((VdpDecoderProfile
)19) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER (VdpDecoderProfile)
20 | | #define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER ((VdpDecoderProfile
)20) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_DECODER_PROFILE_DIVX5_HD_1080P (VdpDecoderProfile) | | #define VDP_DECODER_PROFILE_DIVX5_HD_1080P ((VdpDecoderProfile | |
| 21 | | )21) | |
| | | /** \hideinitializer */ | |
| | | #define VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE ((VdpDecoderProfile | |
| | | )22) | |
| | | /** \hideinitializer */ | |
| | | #define VDP_DECODER_PROFILE_H264_EXTENDED ((VdpDecoderProfile | |
| | | )23) | |
| | | /** \hideinitializer */ | |
| | | #define VDP_DECODER_PROFILE_H264_PROGRESSIVE_HIGH ((VdpDecoderProfile | |
| | | )24) | |
| | | /** \hideinitializer */ | |
| | | #define VDP_DECODER_PROFILE_H264_CONSTRAINED_HIGH ((VdpDecoderProfile | |
| | | )25) | |
| | | /** \hideinitializer */ | |
| | | /** \brief Support for 8 bit depth only */ | |
| | | #define VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE ((VdpDecoderProfile | |
| | | )26) | |
| | | | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
| #define VDP_DECODER_LEVEL_MPEG1_NA 0 | | #define VDP_DECODER_LEVEL_MPEG1_NA 0 | |
| | | | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
| #define VDP_DECODER_LEVEL_MPEG2_LL 0 | | #define VDP_DECODER_LEVEL_MPEG2_LL 0 | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
| #define VDP_DECODER_LEVEL_MPEG2_ML 1 | | #define VDP_DECODER_LEVEL_MPEG2_ML 1 | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
| #define VDP_DECODER_LEVEL_MPEG2_HL14 2 | | #define VDP_DECODER_LEVEL_MPEG2_HL14 2 | |
| | | | |
| skipping to change at line 2759 | | skipping to change at line 2785 | |
| * any future frame. Once a surface is removed from the DPB, it can | | * any future frame. Once a surface is removed from the DPB, it can | |
| * no longer be used as a reference, unless decoded again. | | * no longer be used as a reference, unless decoded again. | |
| * | | * | |
| * Also note that only surfaces previously generated using \ref | | * Also note that only surfaces previously generated using \ref | |
| * VdpDecoderRender may be used as reference frames. In particular, | | * VdpDecoderRender may be used as reference frames. In particular, | |
| * surfaces filled using any "put bits" API will not work. | | * surfaces filled using any "put bits" API will not work. | |
| * | | * | |
| * Note: References to "copy of bitstream field" in the field descriptions | | * Note: References to "copy of bitstream field" in the field descriptions | |
| * may refer to data literally parsed from the bitstream, or derived from | | * may refer to data literally parsed from the bitstream, or derived from | |
| * the bitstream using a mechanism described in the specification. | | * the bitstream using a mechanism described in the specification. | |
|
| | | * | |
| | | * Note: VDPAU clients must use VdpPictureInfoH264Predictive to describe th | |
| | | e | |
| | | * attributes of a frame being decoded with | |
| | | * VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| /** Number of slices in the bitstream provided. */ | | /** Number of slices in the bitstream provided. */ | |
| uint32_t slice_count; | | uint32_t slice_count; | |
| /** [0]: top, [1]: bottom */ | | /** [0]: top, [1]: bottom */ | |
| int32_t field_order_cnt[2]; | | int32_t field_order_cnt[2]; | |
| /** Will the decoded frame be used as a reference later. */ | | /** Will the decoded frame be used as a reference later. */ | |
| VdpBool is_reference; | | VdpBool is_reference; | |
| | | | |
| /** Copy of the H.264 bitstream field. */ | | /** Copy of the H.264 bitstream field. */ | |
| | | | |
| skipping to change at line 2827 | | skipping to change at line 2857 | |
| /** Copy of the H.264 bitstream field, converted to raster order. */ | | /** Copy of the H.264 bitstream field, converted to raster order. */ | |
| uint8_t scaling_lists_4x4[6][16]; | | uint8_t scaling_lists_4x4[6][16]; | |
| /** Copy of the H.264 bitstream field, converted to raster order. */ | | /** Copy of the H.264 bitstream field, converted to raster order. */ | |
| uint8_t scaling_lists_8x8[2][64]; | | uint8_t scaling_lists_8x8[2][64]; | |
| | | | |
| /** See \ref VdpPictureInfoH264 for instructions regarding this field.
*/ | | /** See \ref VdpPictureInfoH264 for instructions regarding this field.
*/ | |
| VdpReferenceFrameH264 referenceFrames[16]; | | VdpReferenceFrameH264 referenceFrames[16]; | |
| } VdpPictureInfoH264; | | } VdpPictureInfoH264; | |
| | | | |
| /** | | /** | |
|
| | | * \brief Picture parameter information for an H.264 Hi444PP picture. | |
| | | * | |
| | | * Note: VDPAU clients must use VdpPictureInfoH264Predictive to describe th | |
| | | e | |
| | | * attributes of a frame being decoded with | |
| | | * VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE. | |
| | | * | |
| | | * Note: software drivers may choose to honor values of | |
| | | * qpprime_y_zero_transform_bypass_flag greater than 1 for internal use. | |
| | | */ | |
| | | typedef struct { | |
| | | /** \ref VdpPictureInfoH264 struct. */ | |
| | | VdpPictureInfoH264 pictureInfo; | |
| | | /** Copy of the H.264 bitstream field. | |
| | | * | |
| | | * 0 - lossless disabled | |
| | | * 1 - lossless enabled | |
| | | */ | |
| | | uint8_t qpprime_y_zero_transform_bypass_flag; | |
| | | /** Copy of the H.264 bitstream field. | |
| | | * 0 - disabled | |
| | | * 1 - enabled | |
| | | */ | |
| | | uint8_t separate_colour_plane_flag; | |
| | | | |
| | | } VdpPictureInfoH264Predictive; | |
| | | | |
| | | /** | |
| * \brief Picture parameter information for a VC1 picture. | | * \brief Picture parameter information for a VC1 picture. | |
| * | | * | |
| * Note: References to "copy of bitstream field" in the field descriptions | | * Note: References to "copy of bitstream field" in the field descriptions | |
| * may refer to data literally parsed from the bitstream, or derived from | | * may refer to data literally parsed from the bitstream, or derived from | |
| * the bitstream using a mechanism described in the specification. | | * the bitstream using a mechanism described in the specification. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| /** | | /** | |
| * Reference used by B and P frames. | | * Reference used by B and P frames. | |
| * Set to VDP_INVALID_HANDLE when not used. | | * Set to VDP_INVALID_HANDLE when not used. | |
| | | | |
| skipping to change at line 3117 | | skipping to change at line 3174 | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A VdpVideoMixerFeature. | | * \brief A VdpVideoMixerFeature. | |
| * | | * | |
| * When requested and enabled, motion adaptive temporal | | * When requested and enabled, motion adaptive temporal | |
| * deinterlacing will be used on interlaced content. | | * deinterlacing will be used on interlaced content. | |
| * | | * | |
| * When multiple de-interlacing options are requested and | | * When multiple de-interlacing options are requested and | |
| * enabled, the back-end implementation chooses the best | | * enabled, the back-end implementation chooses the best | |
| * algorithm to apply. | | * algorithm to apply. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL (VdpVideoMixer
Feature)0 | | #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL ((VdpVideoMixe
rFeature)0) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A VdpVideoMixerFeature. | | * \brief A VdpVideoMixerFeature. | |
| * | | * | |
| * When requested and enabled, this enables a more advanced | | * When requested and enabled, this enables a more advanced | |
| * version of temporal de-interlacing, that additionally uses | | * version of temporal de-interlacing, that additionally uses | |
| * edge-guided spatial interpolation. | | * edge-guided spatial interpolation. | |
| * | | * | |
| * When multiple de-interlacing options are requested and | | * When multiple de-interlacing options are requested and | |
| * enabled, the back-end implementation chooses the best | | * enabled, the back-end implementation chooses the best | |
| * algorithm to apply. | | * algorithm to apply. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL_SPATIAL (VdpVideoMixer
Feature)1 | | #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL_SPATIAL ((VdpVideoMixe
rFeature)1) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A VdpVideoMixerFeature. | | * \brief A VdpVideoMixerFeature. | |
| * | | * | |
| * When requested and enabled, cadence detection will be enabled | | * When requested and enabled, cadence detection will be enabled | |
| * on interlaced content and the video mixer will try to extract | | * on interlaced content and the video mixer will try to extract | |
| * progressive frames from pull-down material. | | * progressive frames from pull-down material. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE (VdpVideoMixer
Feature)2 | | #define VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE ((VdpVideoMixe
rFeature)2) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A VdpVideoMixerFeature. | | * \brief A VdpVideoMixerFeature. | |
| * | | * | |
| * When requested and enabled, a noise reduction algorithm will | | * When requested and enabled, a noise reduction algorithm will | |
| * be applied to the video. | | * be applied to the video. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION (VdpVideoMixer
Feature)3 | | #define VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION ((VdpVideoMixe
rFeature)3) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A VdpVideoMixerFeature. | | * \brief A VdpVideoMixerFeature. | |
| * | | * | |
| * When requested and enabled, a sharpening algorithm will be | | * When requested and enabled, a sharpening algorithm will be | |
| * applied to the video. | | * applied to the video. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_FEATURE_SHARPNESS (VdpVideoMixer
Feature)4 | | #define VDP_VIDEO_MIXER_FEATURE_SHARPNESS ((VdpVideoMixe
rFeature)4) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A VdpVideoMixerFeature. | | * \brief A VdpVideoMixerFeature. | |
| * | | * | |
| * When requested and enabled, the alpha of the rendered | | * When requested and enabled, the alpha of the rendered | |
| * surface, which is normally set to the alpha of the background | | * surface, which is normally set to the alpha of the background | |
| * color, will be forced to 0.0 on pixels corresponding to | | * color, will be forced to 0.0 on pixels corresponding to | |
| * source video surface luminance values in the range specified | | * source video surface luminance values in the range specified | |
| * by attributes \ref VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MIN_LUMA | | * by attributes \ref VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MIN_LUMA | |
| * to \ref VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MAX_LUMA. This | | * to \ref VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MAX_LUMA. This | |
| * keying is performed after scaling and de-interlacing. | | * keying is performed after scaling and de-interlacing. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_FEATURE_LUMA_KEY (VdpVideoMixer
Feature)5 | | #define VDP_VIDEO_MIXER_FEATURE_LUMA_KEY ((VdpVideoMixe
rFeature)5) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A VdpVideoMixerFeature. | | * \brief A VdpVideoMixerFeature. | |
| * | | * | |
| * A VDPAU implementation may support multiple scaling algorithms of | | * A VDPAU implementation may support multiple scaling algorithms of | |
| * differing quality, and may potentially support a different subset | | * differing quality, and may potentially support a different subset | |
| * of algorithms on different hardware. | | * of algorithms on different hardware. | |
| * | | * | |
| * In some cases, higher quality algorithms may require more resources | | * In some cases, higher quality algorithms may require more resources | |
| * (memory size, memory bandwidth, etc.) to operate. Hence, these high | | * (memory size, memory bandwidth, etc.) to operate. Hence, these high | |
| | | | |
| skipping to change at line 3190 | | skipping to change at line 3247 | |
| * application. This allows applications operating in a resource-constraine
d | | * application. This allows applications operating in a resource-constraine
d | |
| * environment to have some level of control over resource usage. | | * environment to have some level of control over resource usage. | |
| * | | * | |
| * Basic scaling is always built into any video mixer, and is known as | | * Basic scaling is always built into any video mixer, and is known as | |
| * level 0. Scaling quality increases beginning with optional level 1, | | * level 0. Scaling quality increases beginning with optional level 1, | |
| * through optional level 9. | | * through optional level 9. | |
| * | | * | |
| * If an application requests and enables multiple high quality scaling | | * If an application requests and enables multiple high quality scaling | |
| * algorithms, the highest level enabled scaling algorithm will be used. | | * algorithms, the highest level enabled scaling algorithm will be used. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 (VdpVideoMixer
Feature)11 | | #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 ((VdpVideoMixe
rFeature)11) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A VdpVideoMixerFeature. | | * \brief A VdpVideoMixerFeature. | |
| * | | * | |
| * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | | * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L2 (VdpVideoMixer
Feature)12 | | #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L2 ((VdpVideoMixe
rFeature)12) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A VdpVideoMixerFeature. | | * \brief A VdpVideoMixerFeature. | |
| * | | * | |
| * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | | * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L3 (VdpVideoMixer
Feature)13 | | #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L3 ((VdpVideoMixe
rFeature)13) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A VdpVideoMixerFeature. | | * \brief A VdpVideoMixerFeature. | |
| * | | * | |
| * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | | * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L4 (VdpVideoMixer
Feature)14 | | #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L4 ((VdpVideoMixe
rFeature)14) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A VdpVideoMixerFeature. | | * \brief A VdpVideoMixerFeature. | |
| * | | * | |
| * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | | * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L5 (VdpVideoMixer
Feature)15 | | #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L5 ((VdpVideoMixe
rFeature)15) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A VdpVideoMixerFeature. | | * \brief A VdpVideoMixerFeature. | |
| * | | * | |
| * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | | * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L6 (VdpVideoMixer
Feature)16 | | #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L6 ((VdpVideoMixe
rFeature)16) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A VdpVideoMixerFeature. | | * \brief A VdpVideoMixerFeature. | |
| * | | * | |
| * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | | * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L7 (VdpVideoMixer
Feature)17 | | #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L7 ((VdpVideoMixe
rFeature)17) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A VdpVideoMixerFeature. | | * \brief A VdpVideoMixerFeature. | |
| * | | * | |
| * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | | * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L8 (VdpVideoMixer
Feature)18 | | #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L8 ((VdpVideoMixe
rFeature)18) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief A VdpVideoMixerFeature. | | * \brief A VdpVideoMixerFeature. | |
| * | | * | |
| * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | | * See \ref VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 for details. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L9 (VdpVideoMixer
Feature)19 | | #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L9 ((VdpVideoMixe
rFeature)19) | |
| | | | |
| /** | | /** | |
| * \brief A VdpVideoMixer creation parameter. | | * \brief A VdpVideoMixer creation parameter. | |
| * | | * | |
| * When a VdpVideoMixer is created, certain parameters may be | | * When a VdpVideoMixer is created, certain parameters may be | |
| * supplied. Each parameter is named via a specific | | * supplied. Each parameter is named via a specific | |
| * VdpVideoMixerParameter value. | | * VdpVideoMixerParameter value. | |
| * | | * | |
| * Each parameter has a specific type, and specific default | | * Each parameter has a specific type, and specific default | |
| * value if not specified at VdpVideoMixer creation time. The | | * value if not specified at VdpVideoMixer creation time. The | |
| | | | |
| skipping to change at line 3274 | | skipping to change at line 3331 | |
| * \brief The exact width of input video surfaces. | | * \brief The exact width of input video surfaces. | |
| * | | * | |
| * This parameter's type is uint32_t. | | * This parameter's type is uint32_t. | |
| * | | * | |
| * This parameter defaults to 0 if not specified, which entails | | * This parameter defaults to 0 if not specified, which entails | |
| * that it must be specified. | | * that it must be specified. | |
| * | | * | |
| * The application may query this parameter's supported | | * The application may query this parameter's supported | |
| * range. | | * range. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_WIDTH (VdpVideoMixerParame
ter)0 | | #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_WIDTH ((VdpVideoMixerParam
eter)0) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief The exact height of input video surfaces. | | * \brief The exact height of input video surfaces. | |
| * | | * | |
| * This parameter's type is uint32_t. | | * This parameter's type is uint32_t. | |
| * | | * | |
| * This parameter defaults to 0 if not specified, which entails | | * This parameter defaults to 0 if not specified, which entails | |
| * that it must be specified. | | * that it must be specified. | |
| * | | * | |
| * The application may query this parameter's supported | | * The application may query this parameter's supported | |
| * range. | | * range. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_HEIGHT (VdpVideoMixerParame
ter)1 | | #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_HEIGHT ((VdpVideoMixerParam
eter)1) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief The chroma type of the input video surfaces the will | | * \brief The chroma type of the input video surfaces the will | |
| * process. | | * process. | |
| * | | * | |
| * This parameter's type is VdpChromaType. | | * This parameter's type is VdpChromaType. | |
| * | | * | |
| * If not specified, this parameter defaults to | | * If not specified, this parameter defaults to | |
| * VDP_CHROMA_TYPE_420. | | * VDP_CHROMA_TYPE_420. | |
| * | | * | |
| * The application may not query this application's supported | | * The application may not query this application's supported | |
| * range, since it is a potentially disjoint enumeration. | | * range, since it is a potentially disjoint enumeration. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_PARAMETER_CHROMA_TYPE (VdpVideoMixerParame
ter)2 | | #define VDP_VIDEO_MIXER_PARAMETER_CHROMA_TYPE ((VdpVideoMixerParam
eter)2) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief The number of auxiliary layers in the mixer's | | * \brief The number of auxiliary layers in the mixer's | |
| * compositing model. | | * compositing model. | |
| * | | * | |
| * Note that this indicates the maximum number of layers that | | * Note that this indicates the maximum number of layers that | |
| * may be processed by a given \ref VdpVideoMixer "VdpVideoMixer" | | * may be processed by a given \ref VdpVideoMixer "VdpVideoMixer" | |
| * object. Each individual \ref VdpVideoMixerRender invocation | | * object. Each individual \ref VdpVideoMixerRender invocation | |
| * may choose to use a different number of actual layers, from 0 | | * may choose to use a different number of actual layers, from 0 | |
| * up to this limit. | | * up to this limit. | |
| * | | * | |
| * This attribute's type is uint32_t. | | * This attribute's type is uint32_t. | |
| * | | * | |
| * If not specified, this parameter defaults to 0. | | * If not specified, this parameter defaults to 0. | |
| * | | * | |
| * The application may query this parameter's supported | | * The application may query this parameter's supported | |
| * range. | | * range. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_PARAMETER_LAYERS (VdpVideoMixerParame
ter)3 | | #define VDP_VIDEO_MIXER_PARAMETER_LAYERS ((VdpVideoMixerParam
eter)3) | |
| | | | |
| /** | | /** | |
| * \brief An adjustable attribute of VdpVideoMixer operation. | | * \brief An adjustable attribute of VdpVideoMixer operation. | |
| * | | * | |
| * Various attributes of VdpVideoMixer operation may be adjusted | | * Various attributes of VdpVideoMixer operation may be adjusted | |
| * at any time. Each attribute is named via a specific | | * at any time. Each attribute is named via a specific | |
| * VdpVideoMixerAttribute value. | | * VdpVideoMixerAttribute value. | |
| * | | * | |
| * Each attribute has a specific type, and specific default | | * Each attribute has a specific type, and specific default | |
| * value if not specified at VdpVideoMixer creation time. The | | * value if not specified at VdpVideoMixer creation time. The | |
| | | | |
| skipping to change at line 3349 | | skipping to change at line 3406 | |
| * model. | | * model. | |
| * | | * | |
| * This attribute's type is VdpColor. | | * This attribute's type is VdpColor. | |
| * | | * | |
| * This parameter defaults to black (all color components 0.0 | | * This parameter defaults to black (all color components 0.0 | |
| * and alpha 1.0). | | * and alpha 1.0). | |
| * | | * | |
| * The application may not query this parameter's supported | | * The application may not query this parameter's supported | |
| * range, since the type is not scalar. | | * range, since the type is not scalar. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_ATTRIBUTE_BACKGROUND_COLOR (VdpVideoMixerAttri
bute)0 | | #define VDP_VIDEO_MIXER_ATTRIBUTE_BACKGROUND_COLOR ((VdpVideoMixerAttr
ibute)0) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief The color-space conversion matrix used by the | | * \brief The color-space conversion matrix used by the | |
| * VdpVideoMixer. | | * VdpVideoMixer. | |
| * | | * | |
| * This attribute's type is \ref VdpCSCMatrix. | | * This attribute's type is \ref VdpCSCMatrix. | |
| * | | * | |
| * Note: When using \ref VdpVideoMixerGetAttributeValues to retrieve the | | * Note: When using \ref VdpVideoMixerGetAttributeValues to retrieve the | |
| * current CSC matrix, the attribute_values array must contain a pointer to | | * current CSC matrix, the attribute_values array must contain a pointer to | |
| * a pointer a VdpCSCMatrix (VdpCSCMatrix** as a void *). The get function
will | | * a pointer a VdpCSCMatrix (VdpCSCMatrix** as a void *). The get function
will | |
| | | | |
| skipping to change at line 3377 | | skipping to change at line 3434 | |
| * void * attribute_values[] = {&matrix_ptr}; | | * void * attribute_values[] = {&matrix_ptr}; | |
| * VdpStatus st = vdp_video_mixer_get_attribute_values(..., attribute_value
s, ...); | | * VdpStatus st = vdp_video_mixer_get_attribute_values(..., attribute_value
s, ...); | |
| * \endcode | | * \endcode | |
| * | | * | |
| * This parameter defaults to a matrix suitable for ITU-R BT.601 | | * This parameter defaults to a matrix suitable for ITU-R BT.601 | |
| * input surfaces, with no procamp adjustments. | | * input surfaces, with no procamp adjustments. | |
| * | | * | |
| * The application may not query this parameter's supported | | * The application may not query this parameter's supported | |
| * range, since the type is not scalar. | | * range, since the type is not scalar. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_ATTRIBUTE_CSC_MATRIX (VdpVideoMixerAttri
bute)1 | | #define VDP_VIDEO_MIXER_ATTRIBUTE_CSC_MATRIX ((VdpVideoMixerAttr
ibute)1) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief The amount of noise reduction algorithm to apply. | | * \brief The amount of noise reduction algorithm to apply. | |
| * | | * | |
| * This attribute's type is float. | | * This attribute's type is float. | |
| * | | * | |
| * This parameter defaults to 0.0, which equates to no noise | | * This parameter defaults to 0.0, which equates to no noise | |
| * reduction. | | * reduction. | |
| * | | * | |
| * The application may query this parameter's supported range. | | * The application may query this parameter's supported range. | |
| * However, the range is fixed as 0.0...1.0. | | * However, the range is fixed as 0.0...1.0. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_ATTRIBUTE_NOISE_REDUCTION_LEVEL (VdpVideoMixerAttri
bute)2 | | #define VDP_VIDEO_MIXER_ATTRIBUTE_NOISE_REDUCTION_LEVEL ((VdpVideoMixerAttr
ibute)2) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief The amount of sharpening, or blurring, to apply. | | * \brief The amount of sharpening, or blurring, to apply. | |
| * | | * | |
| * This attribute's type is float. | | * This attribute's type is float. | |
| * | | * | |
| * This parameter defaults to 0.0, which equates to no | | * This parameter defaults to 0.0, which equates to no | |
| * sharpening. | | * sharpening. | |
| * | | * | |
| * Positive values request sharpening. Negative values request | | * Positive values request sharpening. Negative values request | |
| * blurring. | | * blurring. | |
| * | | * | |
| * The application may query this parameter's supported range. | | * The application may query this parameter's supported range. | |
| * However, the range is fixed as -1.0...1.0. | | * However, the range is fixed as -1.0...1.0. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_ATTRIBUTE_SHARPNESS_LEVEL (VdpVideoMixerAttri
bute)3 | | #define VDP_VIDEO_MIXER_ATTRIBUTE_SHARPNESS_LEVEL ((VdpVideoMixerAttr
ibute)3) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief The minimum luma value for the luma key algorithm. | | * \brief The minimum luma value for the luma key algorithm. | |
| * | | * | |
| * This attribute's type is float. | | * This attribute's type is float. | |
| * | | * | |
| * This parameter defaults to 0.0. | | * This parameter defaults to 0.0. | |
| * | | * | |
| * The application may query this parameter's supported range. | | * The application may query this parameter's supported range. | |
| * However, the range is fixed as 0.0...1.0. | | * However, the range is fixed as 0.0...1.0. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MIN_LUMA (VdpVideoMixerAttri
bute)4 | | #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MIN_LUMA ((VdpVideoMixerAttr
ibute)4) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief The maximum luma value for the luma key algorithm. | | * \brief The maximum luma value for the luma key algorithm. | |
| * | | * | |
| * This attribute's type is float. | | * This attribute's type is float. | |
| * | | * | |
| * This parameter defaults to 1.0. | | * This parameter defaults to 1.0. | |
| * | | * | |
| * The application may query this parameter's supported range. | | * The application may query this parameter's supported range. | |
| * However, the range is fixed as 0.0...1.0. | | * However, the range is fixed as 0.0...1.0. | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MAX_LUMA (VdpVideoMixerAttri
bute)5 | | #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MAX_LUMA ((VdpVideoMixerAttr
ibute)5) | |
| /** | | /** | |
| * \hideinitializer | | * \hideinitializer | |
| * \brief Whether de-interlacers should operate solely on luma, and bob chr
oma. | | * \brief Whether de-interlacers should operate solely on luma, and bob chr
oma. | |
| * | | * | |
| * Note: This attribute only affects advanced de-interlacing algorithms, no
t | | * Note: This attribute only affects advanced de-interlacing algorithms, no
t | |
| * bob or weave. | | * bob or weave. | |
| * | | * | |
| * This attribute's type is uint8_t. | | * This attribute's type is uint8_t. | |
| * | | * | |
| * This parameter defaults to 0. | | * This parameter defaults to 0. | |
| * | | * | |
| * The application may query this parameter's supported range. | | * The application may query this parameter's supported range. | |
| * However, the range is fixed as 0 (no/off) ... 1 (yes/on). | | * However, the range is fixed as 0 (no/off) ... 1 (yes/on). | |
| */ | | */ | |
|
| #define VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE (VdpVideoMixerAtt
ribute)6 | | #define VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE ((VdpVideoMixerAt
tribute)6) | |
| | | | |
| /** | | /** | |
| * \brief Query the implementation's support for a specific | | * \brief Query the implementation's support for a specific | |
| * feature. | | * feature. | |
| * \param[in] device The device to query. | | * \param[in] device The device to query. | |
| * \param[in] feature The feature for which support is to be | | * \param[in] feature The feature for which support is to be | |
| * queried. | | * queried. | |
| * \param[out] is_supported Is the specified feature supported? | | * \param[out] is_supported Is the specified feature supported? | |
| * \return VdpStatus The completion status of the operation. | | * \return VdpStatus The completion status of the operation. | |
| */ | | */ | |
| | | | |
| skipping to change at line 4166 | | skipping to change at line 4223 | |
| * @{ | | * @{ | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * \brief A type suitable for \ref VdpGetProcAddress | | * \brief A type suitable for \ref VdpGetProcAddress | |
| * "VdpGetProcAddress"'s \b function_id parameter. | | * "VdpGetProcAddress"'s \b function_id parameter. | |
| */ | | */ | |
| typedef uint32_t VdpFuncId; | | typedef uint32_t VdpFuncId; | |
| | | | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_GET_ERROR_STRING
(VdpFuncId)0 | | #define VDP_FUNC_ID_GET_ERROR_STRING
((VdpFuncId)0) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_GET_PROC_ADDRESS
(VdpFuncId)1 | | #define VDP_FUNC_ID_GET_PROC_ADDRESS
((VdpFuncId)1) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_GET_API_VERSION
(VdpFuncId)2 | | #define VDP_FUNC_ID_GET_API_VERSION
((VdpFuncId)2) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_GET_INFORMATION_STRING
(VdpFuncId)4 | | #define VDP_FUNC_ID_GET_INFORMATION_STRING
((VdpFuncId)4) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_DEVICE_DESTROY
(VdpFuncId)5 | | #define VDP_FUNC_ID_DEVICE_DESTROY
((VdpFuncId)5) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_GENERATE_CSC_MATRIX
(VdpFuncId)6 | | #define VDP_FUNC_ID_GENERATE_CSC_MATRIX
((VdpFuncId)6) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_CAPABILITIES
(VdpFuncId)7 | | #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_CAPABILITIES
((VdpFuncId)7) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_GET_PUT_BITS_Y_CB_CR_CAPABILITIES
(VdpFuncId)8 | | #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_GET_PUT_BITS_Y_CB_CR_CAPABILITIES
((VdpFuncId)8) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_SURFACE_CREATE
(VdpFuncId)9 | | #define VDP_FUNC_ID_VIDEO_SURFACE_CREATE
((VdpFuncId)9) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_SURFACE_DESTROY
(VdpFuncId)10 | | #define VDP_FUNC_ID_VIDEO_SURFACE_DESTROY
((VdpFuncId)10) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_SURFACE_GET_PARAMETERS
(VdpFuncId)11 | | #define VDP_FUNC_ID_VIDEO_SURFACE_GET_PARAMETERS
((VdpFuncId)11) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR
(VdpFuncId)12 | | #define VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR
((VdpFuncId)12) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_SURFACE_PUT_BITS_Y_CB_CR
(VdpFuncId)13 | | #define VDP_FUNC_ID_VIDEO_SURFACE_PUT_BITS_Y_CB_CR
((VdpFuncId)13) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_CAPABILITIES
(VdpFuncId)14 | | #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_CAPABILITIES
((VdpFuncId)14) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_GET_PUT_BITS_NATIVE_CAPABILITIES
(VdpFuncId)15 | | #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_GET_PUT_BITS_NATIVE_CAPABILITIES
((VdpFuncId)15) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_INDEXED_CAPABILITIES
(VdpFuncId)16 | | #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_INDEXED_CAPABILITIES
((VdpFuncId)16) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_Y_CB_CR_CAPABILITIES
(VdpFuncId)17 | | #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_Y_CB_CR_CAPABILITIES
((VdpFuncId)17) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_OUTPUT_SURFACE_CREATE
(VdpFuncId)18 | | #define VDP_FUNC_ID_OUTPUT_SURFACE_CREATE
((VdpFuncId)18) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_OUTPUT_SURFACE_DESTROY
(VdpFuncId)19 | | #define VDP_FUNC_ID_OUTPUT_SURFACE_DESTROY
((VdpFuncId)19) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_PARAMETERS
(VdpFuncId)20 | | #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_PARAMETERS
((VdpFuncId)20) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_BITS_NATIVE
(VdpFuncId)21 | | #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_BITS_NATIVE
((VdpFuncId)21) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_NATIVE
(VdpFuncId)22 | | #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_NATIVE
((VdpFuncId)22) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_INDEXED
(VdpFuncId)23 | | #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_INDEXED
((VdpFuncId)23) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_Y_CB_CR
(VdpFuncId)24 | | #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_Y_CB_CR
((VdpFuncId)24) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_BITMAP_SURFACE_QUERY_CAPABILITIES
(VdpFuncId)25 | | #define VDP_FUNC_ID_BITMAP_SURFACE_QUERY_CAPABILITIES
((VdpFuncId)25) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_BITMAP_SURFACE_CREATE
(VdpFuncId)26 | | #define VDP_FUNC_ID_BITMAP_SURFACE_CREATE
((VdpFuncId)26) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_BITMAP_SURFACE_DESTROY
(VdpFuncId)27 | | #define VDP_FUNC_ID_BITMAP_SURFACE_DESTROY
((VdpFuncId)27) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_BITMAP_SURFACE_GET_PARAMETERS
(VdpFuncId)28 | | #define VDP_FUNC_ID_BITMAP_SURFACE_GET_PARAMETERS
((VdpFuncId)28) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_BITMAP_SURFACE_PUT_BITS_NATIVE
(VdpFuncId)29 | | #define VDP_FUNC_ID_BITMAP_SURFACE_PUT_BITS_NATIVE
((VdpFuncId)29) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_OUTPUT_SURFACE
(VdpFuncId)33 | | #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_OUTPUT_SURFACE
((VdpFuncId)33) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_BITMAP_SURFACE
(VdpFuncId)34 | | #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_BITMAP_SURFACE
((VdpFuncId)34) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_VIDEO_SURFACE_LUMA
(VdpFuncId)35 | | #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_VIDEO_SURFACE_LUMA
((VdpFuncId)35) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_DECODER_QUERY_CAPABILITIES
(VdpFuncId)36 | | #define VDP_FUNC_ID_DECODER_QUERY_CAPABILITIES
((VdpFuncId)36) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_DECODER_CREATE
(VdpFuncId)37 | | #define VDP_FUNC_ID_DECODER_CREATE
((VdpFuncId)37) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_DECODER_DESTROY
(VdpFuncId)38 | | #define VDP_FUNC_ID_DECODER_DESTROY
((VdpFuncId)38) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_DECODER_GET_PARAMETERS
(VdpFuncId)39 | | #define VDP_FUNC_ID_DECODER_GET_PARAMETERS
((VdpFuncId)39) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_DECODER_RENDER
(VdpFuncId)40 | | #define VDP_FUNC_ID_DECODER_RENDER
((VdpFuncId)40) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_FEATURE_SUPPORT
(VdpFuncId)41 | | #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_FEATURE_SUPPORT
((VdpFuncId)41) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_SUPPORT
(VdpFuncId)42 | | #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_SUPPORT
((VdpFuncId)42) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_SUPPORT
(VdpFuncId)43 | | #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_SUPPORT
((VdpFuncId)43) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_VALUE_RANGE
(VdpFuncId)44 | | #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_VALUE_RANGE
((VdpFuncId)44) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_VALUE_RANGE
(VdpFuncId)45 | | #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_VALUE_RANGE
((VdpFuncId)45) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_MIXER_CREATE
(VdpFuncId)46 | | #define VDP_FUNC_ID_VIDEO_MIXER_CREATE
((VdpFuncId)46) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_MIXER_SET_FEATURE_ENABLES
(VdpFuncId)47 | | #define VDP_FUNC_ID_VIDEO_MIXER_SET_FEATURE_ENABLES
((VdpFuncId)47) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_MIXER_SET_ATTRIBUTE_VALUES
(VdpFuncId)48 | | #define VDP_FUNC_ID_VIDEO_MIXER_SET_ATTRIBUTE_VALUES
((VdpFuncId)48) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_SUPPORT
(VdpFuncId)49 | | #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_SUPPORT
((VdpFuncId)49) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_ENABLES
(VdpFuncId)50 | | #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_ENABLES
((VdpFuncId)50) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_MIXER_GET_PARAMETER_VALUES
(VdpFuncId)51 | | #define VDP_FUNC_ID_VIDEO_MIXER_GET_PARAMETER_VALUES
((VdpFuncId)51) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_MIXER_GET_ATTRIBUTE_VALUES
(VdpFuncId)52 | | #define VDP_FUNC_ID_VIDEO_MIXER_GET_ATTRIBUTE_VALUES
((VdpFuncId)52) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_MIXER_DESTROY
(VdpFuncId)53 | | #define VDP_FUNC_ID_VIDEO_MIXER_DESTROY
((VdpFuncId)53) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_VIDEO_MIXER_RENDER
(VdpFuncId)54 | | #define VDP_FUNC_ID_VIDEO_MIXER_RENDER
((VdpFuncId)54) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_PRESENTATION_QUEUE_TARGET_DESTROY
(VdpFuncId)55 | | #define VDP_FUNC_ID_PRESENTATION_QUEUE_TARGET_DESTROY
((VdpFuncId)55) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_PRESENTATION_QUEUE_CREATE
(VdpFuncId)56 | | #define VDP_FUNC_ID_PRESENTATION_QUEUE_CREATE
((VdpFuncId)56) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_PRESENTATION_QUEUE_DESTROY
(VdpFuncId)57 | | #define VDP_FUNC_ID_PRESENTATION_QUEUE_DESTROY
((VdpFuncId)57) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_PRESENTATION_QUEUE_SET_BACKGROUND_COLOR
(VdpFuncId)58 | | #define VDP_FUNC_ID_PRESENTATION_QUEUE_SET_BACKGROUND_COLOR
((VdpFuncId)58) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_BACKGROUND_COLOR
(VdpFuncId)59 | | #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_BACKGROUND_COLOR
((VdpFuncId)59) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_TIME
(VdpFuncId)62 | | #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_TIME
((VdpFuncId)62) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_PRESENTATION_QUEUE_DISPLAY
(VdpFuncId)63 | | #define VDP_FUNC_ID_PRESENTATION_QUEUE_DISPLAY
((VdpFuncId)63) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_PRESENTATION_QUEUE_BLOCK_UNTIL_SURFACE_IDLE
(VdpFuncId)64 | | #define VDP_FUNC_ID_PRESENTATION_QUEUE_BLOCK_UNTIL_SURFACE_IDLE
((VdpFuncId)64) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_PRESENTATION_QUEUE_QUERY_SURFACE_STATUS
(VdpFuncId)65 | | #define VDP_FUNC_ID_PRESENTATION_QUEUE_QUERY_SURFACE_STATUS
((VdpFuncId)65) | |
| /** \hideinitializer */ | | /** \hideinitializer */ | |
|
| #define VDP_FUNC_ID_PREEMPTION_CALLBACK_REGISTER
(VdpFuncId)66 | | #define VDP_FUNC_ID_PREEMPTION_CALLBACK_REGISTER
((VdpFuncId)66) | |
| | | | |
| #define VDP_FUNC_ID_BASE_WINSYS 0x1000 | | #define VDP_FUNC_ID_BASE_WINSYS 0x1000 | |
| | | | |
| /** | | /** | |
| * \brief Retrieve a VDPAU function pointer. | | * \brief Retrieve a VDPAU function pointer. | |
| * \param[in] device The device that the function will operate | | * \param[in] device The device that the function will operate | |
| * against. | | * against. | |
| * \param[in] function_id The specific function to retrieve. | | * \param[in] function_id The specific function to retrieve. | |
| * \param[out] function_pointer The actual pointer for the | | * \param[out] function_pointer The actual pointer for the | |
| * application to call. | | * application to call. | |
| | | | |
End of changes. 133 change blocks. |
| 137 lines changed or deleted | | 211 lines changed or added | |
|