[Intel-gfx] [PATCH 7/7] Xv: don't enable XVMC port on unsupported configs

Daniel Vetter daniel.vetter at ffwll.ch
Tue Dec 1 14:32:34 CET 2009


This just makes it _really_ clear, what's support. No other changes.

Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
---
 src/i830_video.c |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/i830_video.c b/src/i830_video.c
index ef3aae3..7b32214 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -169,7 +169,13 @@ static XF86AttributeRec GammaAttributes[GAMMA_ATTRIBUTES] = {
 	{XvSettable | XvGettable, 0, 0xffffff, "XV_GAMMA5"}
 };
 
+#ifdef INTEL_XVMC
 #define NUM_IMAGES 5
+#define XVMC_IMAGE 1
+#else
+#define NUM_IMAGES 4
+#define XVMC_IMAGE 0
+#endif
 
 static XF86ImageRec Images[NUM_IMAGES] = {
 	XVIMAGE_YUY2,
@@ -481,7 +487,8 @@ static XF86VideoAdaptorPtr I830SetupImageVideoOverlay(ScreenPtr screen)
 		       sizeof(XF86AttributeRec) * GAMMA_ATTRIBUTES);
 		att += GAMMA_ATTRIBUTES;
 	}
-	adapt->nImages = NUM_IMAGES;
+	adapt->nImages = NUM_IMAGES - XVMC_IMAGE;
+
 	adapt->pImages = Images;
 	adapt->PutVideo = NULL;
 	adapt->PutStill = NULL;
@@ -540,6 +547,8 @@ static XF86VideoAdaptorPtr I830SetupImageVideoOverlay(ScreenPtr screen)
 
 static XF86VideoAdaptorPtr I830SetupImageVideoTextured(ScreenPtr screen)
 {
+	ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+	intel_screen_private *intel = intel_get_screen_private(scrn);
 	XF86VideoAdaptorPtr adapt;
 	XF86AttributePtr attrs;
 	intel_adaptor_private *adaptor_privs;
@@ -577,7 +586,11 @@ static XF86VideoAdaptorPtr I830SetupImageVideoTextured(ScreenPtr screen)
 	adapt->pAttributes = attrs;
 	memcpy(attrs, TexturedAttributes,
 	       nAttributes * sizeof(XF86AttributeRec));
-	adapt->nImages = NUM_IMAGES;
+	if (IS_I915(intel))
+		adapt->nImages = NUM_IMAGES - XVMC_IMAGE;
+	else
+		adapt->nImages = NUM_IMAGES;
+
 	adapt->pImages = Images;
 	adapt->PutVideo = NULL;
 	adapt->PutStill = NULL;
-- 
1.6.5.3




More information about the Intel-gfx mailing list