[PATCH] xf86xv: Fix off-by-one in viewport clipping

ville.syrjala at nokia.com ville.syrjala at nokia.com
Mon Dec 14 09:19:01 PST 2009


From: Ville Syrjälä <ville.syrjala at nokia.com>

Most of the Xv Put/Get operations have an off by one error in the
viewport clipping.

Apparently PutImage was fixed at some point but the same code was
already copy-pasted all over the place, and so the other operations
still suffer from the bug.

Signed-off-by: Ville Syrjälä <ville.syrjala at nokia.com>
Reviewed-by: Tiago Vignatti <tiago.vignatti at nokia.com>
---
 hw/xfree86/common/xf86xv.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/hw/xfree86/common/xf86xv.c b/hw/xfree86/common/xf86xv.c
index abbe033..67c2b4f 100644
--- a/hw/xfree86/common/xf86xv.c
+++ b/hw/xfree86/common/xf86xv.c
@@ -787,8 +787,8 @@ xf86XVReputVideo(XvPortRecPrivatePtr portPriv)
 
      VPBox.x1 = portPriv->pScrn->frameX0;
      VPBox.y1 = portPriv->pScrn->frameY0;
-     VPBox.x2 = portPriv->pScrn->frameX1;
-     VPBox.y2 = portPriv->pScrn->frameY1;
+     VPBox.x2 = portPriv->pScrn->frameX1 + 1;
+     VPBox.y2 = portPriv->pScrn->frameY1 + 1;
 
      REGION_INIT(pScreen, &VPReg, &VPBox, 1);
      REGION_INTERSECT(pScreen, &ClipRegion, &ClipRegion, &VPReg);
@@ -877,8 +877,8 @@ xf86XVReputImage(XvPortRecPrivatePtr portPriv)
 
      VPBox.x1 = portPriv->pScrn->frameX0;
      VPBox.y1 = portPriv->pScrn->frameY0;
-     VPBox.x2 = portPriv->pScrn->frameX1;
-     VPBox.y2 = portPriv->pScrn->frameY1;
+     VPBox.x2 = portPriv->pScrn->frameX1 + 1;
+     VPBox.y2 = portPriv->pScrn->frameY1 + 1;
 
      REGION_INIT(pScreen, &VPReg, &VPBox, 1);
      REGION_INTERSECT(pScreen, &ClipRegion, &ClipRegion, &VPReg);
@@ -1433,8 +1433,8 @@ xf86XVPutStill(
 
      VPBox.x1 = portPriv->pScrn->frameX0;
      VPBox.y1 = portPriv->pScrn->frameY0;
-     VPBox.x2 = portPriv->pScrn->frameX1;
-     VPBox.y2 = portPriv->pScrn->frameY1;
+     VPBox.x2 = portPriv->pScrn->frameX1 + 1;
+     VPBox.y2 = portPriv->pScrn->frameY1 + 1;
 
      REGION_INIT(pScreen, &VPReg, &VPBox, 1);
      REGION_INTERSECT(pScreen, &ClipRegion, &ClipRegion, &VPReg);
-- 
1.6.4.4



More information about the xorg-devel mailing list