[VDPAU] [PATCH] Enable Lossless Decode Capabilities via VDPAU API
Karthikeyan Sreenivasan
ksreenivasan at nvidia.com
Mon Nov 24 17:19:31 PST 2014
The proposed patch will add a new struct VdpPictureInfoH264Extened,
which enables lossless decode capabilities via VDPAU API.
The new struct VdpPictureInfoH264Extened contains the transform bypass
flag which will enable lossless decode.
Note : For transform_bypass, NVIDIA driver will accept a value of 2 for
the ipred8x8 workaround.
The patch also adds new profile
VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE (currently only with 8 bit
depth support).
Videos of VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE profile must use
VdpPictureInfoH264Extened.
--------------------------------------------------------------
diff --git a/include/vdpau/vdpau.h b/include/vdpau/vdpau.h
index 4444de3..e6dd3ae 100644
--- a/include/vdpau/vdpau.h
+++ b/include/vdpau/vdpau.h
@@ -2445,6 +2445,9 @@ typedef uint32_t VdpDecoderProfile;
#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 */
#define VDP_DECODER_LEVEL_MPEG1_NA 0
@@ -2764,6 +2767,11 @@ typedef struct {
* Note: References to "copy of bitstream field" in the field descriptions
* may refer to data literally parsed from the bitstream, or derived from
* the bitstream using a mechanism described in the specification.
+ *
+ * Note: VDPAU clients must use VdpPictureInfoH264Extended to describe the
+ * attributes of a frame being decoded with
+ * VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE.
+
*/
typedef struct {
/** Number of slices in the bitstream provided. */
@@ -2831,6 +2839,35 @@ typedef struct {
VdpReferenceFrameH264 referenceFrames[16];
} VdpPictureInfoH264;
+#define VDP_H264_EXTENDED_VERSION 0
+
+/**
+ * \brief Picture parameter information for an extended H.264 picture.
+ *
+ * Note: VDPAU clients must use VdpPictureInfoH264Extended to describe the
+ * attributes of a frame being decoded with
+ * VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE.
+ *
+ * Note: The transform_bypass field is only valid with
+ * VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE and above.
+ *
+ * Note: software drivers may choose to honor values of
+ * transform_bypass greater than 1 for internal use.
+ */
+typedef struct {
+ /** This field must be filled with VDP_H264_EXTENDED_VERSION. */
+ uint32_t struct_version;
+ /** \ref VdpPictureInfoH264 struct. */
+ VdpPictureInfoH264 *pictureInfo;
+ /** Copy of the H.264 bitstream field.
+ *
+ * 0 - lossless disabled
+ * 1 - lossless enabled
+ */
+ uint8_t transform_bypass;
+
+} VdpPictureInfoH264Extended;
+
/**
* \brief Picture parameter information for a VC1 picture.
*
--
Karthikeyan S | nvpublic
More information about the VDPAU
mailing list