diff options
Diffstat (limited to 'lib/xvmc/xvmce_proto.h')
-rw-r--r-- | lib/xvmc/xvmce_proto.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/lib/xvmc/xvmce_proto.h b/lib/xvmc/xvmce_proto.h index 3a3989c..cdbe720 100644 --- a/lib/xvmc/xvmce_proto.h +++ b/lib/xvmc/xvmce_proto.h @@ -35,6 +35,8 @@ #define xvmce_QueryExtension 0 #define xvmce_QMatrixSend 1 #define xvmce_BufferStatus 2 +#define xvmce_BufferSliceInit 3 +#define xvmce_BufferSliceSend 4 /* * Version, are we compatible? @@ -106,4 +108,75 @@ typedef struct { } xvmceBufferStatusReply; #define sz_xvmceBufferStatusReply 32 + +/* + * + */ +typedef struct { + CARD8 reqType; + CARD8 xvmceReqType; /* xvmce_BufferSliceInit */ + CARD16 length B16; + CARD32 Port B32; + CARD32 Buffer B32; + +#define XVMCE_PICTURETYPE_FIELD_TOP 0x01 +#define XVMCE_PICTURETYPE_FIELD_BOTTOM 0x02 +#define XVMCE_PICTURETYPE_FRAME 0x03 /* frame, so progressive. */ +#define XVMCE_PICTURETYPE_STRUCTURE_MASK 0x03 + +#define XVMCE_PICTURETYPE_FRAMETYPE_I 0x01 << 2 +#define XVMCE_PICTURETYPE_FRAMETYPE_P 0x02 << 2 +#define XVMCE_PICTURETYPE_FRAMETYPE_B 0x03 << 2 +#define XVMCE_PICTURETYPE_FRAMETYPE_MASK 0x03 << 2 + +#define XVMCE_PICTURETYPE_SCAN_ZIGZAG 0x00 << 4 +#define XVMCE_PICTURETYPE_SCAN_ALTERNATE 0x01 << 4 +#define XVMCE_PICTURETYPE_SCAN_MASK 0x01 << 4 + CARD8 PictureType; + +#define XVMCE_SLICEFLAGS_PREDICTION_FIELD 0x00 +#define XVMCE_SLICEFLAGS_PREDICTION_FRAME 0x01 +#define XVMCE_SLICEFLAGS_PREDICTION_MASK 0x01 + +#define XVMCE_SLICEFLAGS_FIELD_FIRST_BOTTOM 0x00 << 1 +#define XVMCE_SLICEFLAGS_FIELD_FIRST_TOP 0x01 << 1 +#define XVMCE_SLICEFLAGS_FIELD_FIRST_MASK 0x01 << 1 + +#define XVMCE_SLICEFLAGS_INTRA_HAS_MV 0x01 << 2 + +#define XVMCE_SLICEFLAGS_INTRA_DC_TABLE_MASK 0x01 << 3 + +#define XVMCE_SLICEFLAGS_INTRA_PRECISION_MASK 0x03 << 4 + +#define XVMCE_SLICEFLAGS_QUANTIZATION_TABLE_MASK 0x01 << 6 + CARD8 SliceFlags; + + CARD8 PadByte; +#define XVMCE_BACKWARDS_PRESENT 1 +#define XVMCE_FORWARDS_PRESENT 2 + CARD8 ReferencesPresent; + + CARD32 BackwardsReferenceBuffer B32; + CARD32 ForwardsReferenceBuffer B32; + + CARD8 MVRange_BackwardsHorizontal; + CARD8 MVRange_BackwardsVertical; + CARD8 MVRange_ForwardsHorizontal; + CARD8 MVRange_ForwardsVertical; +} xvmceBufferSliceInitReq; +#define sz_xvmceBufferSliceInitReq 28 + +/* + * + */ +typedef struct { + CARD8 reqType; + CARD8 xvmceReqType; /* xvmce_BufferSliceSend */ + CARD16 length B16; + CARD32 Port B32; + CARD32 Buffer B32; + CARD32 SliceLength B32; +} xvmceBufferSliceSendReq; +#define sz_xvmceBufferSliceSendReq 16 + #endif /* XVMCE_PROTO_H */ |