summaryrefslogtreecommitdiff
path: root/src/via_driver.h
diff options
context:
space:
mode:
authorThomas Hellstrom <unichrome@shipmail.org>2004-03-11 21:25:46 +0000
committerThomas Hellstrom <unichrome@shipmail.org>2004-03-11 21:25:46 +0000
commitbeb1882b72309cd2ea9ebd3ddd4c3c262ca7f73e (patch)
treee516ba4bfbdcbc64a1b61933fca20d891449b01c /src/via_driver.h
parent7382a56ddac6a9bd92b8fa30bd08492b9c97a2b1 (diff)
Added X server side of XvMC extension for HW mpeg2 decoding: New file
via_xvmc.c. Cleanup of Xv picture types. Added a dummy zero size Xv picture type, FOURCC_VIA, that only updates the overlay when it is displayed. An aid for the XvMC client lib. Redefined the FOURCC_VIA code in via_swov.c and via_overlay.c to have the same meaning as FOURCC_YV12, which is the HW mpeg2 format.
Diffstat (limited to 'src/via_driver.h')
-rw-r--r--src/via_driver.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/via_driver.h b/src/via_driver.h
index 347b963..e145b4e 100644
--- a/src/via_driver.h
+++ b/src/via_driver.h
@@ -220,6 +220,30 @@ typedef struct {
Bool b3DRegsInitialized;
} ViaSharedRec, *ViaSharedPtr;
+#ifdef XF86DRI
+
+#define VIA_XVMC_MAX_BUFFERS 4
+#define VIA_XVMC_MAX_CONTEXTS 4
+#define VIA_XVMC_MAX_SURFACES 4
+
+
+
+
+typedef struct {
+ VIAMem memory_ref;
+ unsigned long offsets[VIA_XVMC_MAX_BUFFERS];
+} ViaXvMCSurfacePriv;
+
+
+typedef struct {
+ XID contexts[VIA_XVMC_MAX_CONTEXTS];
+ XID surfaces[VIA_XVMC_MAX_SURFACES];
+ ViaXvMCSurfacePriv *sPrivs[VIA_XVMC_MAX_SURFACES];
+ int nContexts,nSurfaces;
+ drmHandle mmioBase,fbBase;
+}ViaXvMC, *ViaXvMCPtr;
+
+#endif
typedef struct _VIA {
VIARegRec SavedReg;
@@ -325,6 +349,7 @@ typedef struct _VIA {
#ifdef XF86DRI
Bool directRenderingEnabled;
+ Bool XvMCEnabled;
DRIInfoPtr pDRIInfo;
int drmFD;
int numVisualConfigs;
@@ -338,6 +363,7 @@ typedef struct _VIA {
unsigned int agpSize;
Bool IsPCI;
Bool drixinerama;
+ ViaXvMC xvmc;
#endif
unsigned char ActiveDevice; /* if SAMM, non-equal pBIOSInfo->ActiveDevice */
unsigned char *CursorImage;
@@ -485,5 +511,9 @@ void ViaAudioMute(VIAPtr pVia, int mute);
void ViaTunerProbe(ScrnInfoPtr pScrn);
void ViaTunerDestroy(ScrnInfoPtr pScrn);
+/* In via_hwmc.c */
+
+void ViaInitXVMC(ScreenPtr);
+void ViaCleanupXVMC(ScreenPtr);
#endif /* _VIA_DRIVER_H_ */