summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/xorg
diff options
context:
space:
mode:
authorChristian König <[email protected]>2011-04-09 20:46:24 +0200
committerChristian König <[email protected]>2011-04-09 20:46:24 +0200
commit816d820b7de50827b9597b99823607cbab9a1ac6 (patch)
treeaa9664d83fb874f227c0cb7e6c027d6cc1b474a0 /src/gallium/state_trackers/xorg
parent7a5390b06fea99f85ab47d40d8dc40e40e0f2ab8 (diff)
xvmc: add a workaround for xines xxmc vo plugin
Diffstat (limited to 'src/gallium/state_trackers/xorg')
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/surface.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/gallium/state_trackers/xorg/xvmc/surface.c b/src/gallium/state_trackers/xorg/xvmc/surface.c
index 9585fffffc6..68d003e470a 100644
--- a/src/gallium/state_trackers/xorg/xvmc/surface.c
+++ b/src/gallium/state_trackers/xorg/xvmc/surface.c
@@ -101,7 +101,7 @@ MacroBlocksToPipe(struct pipe_screen *screen,
mb->mbx = xvmc_mb->x;
mb->mby = xvmc_mb->y;
- if (!xvmc_mb->macroblock_type & XVMC_MB_TYPE_INTRA)
+ if (!(xvmc_mb->macroblock_type & XVMC_MB_TYPE_INTRA))
mb->mo_type = MotionToPipe(xvmc_mb->motion_type, xvmc_picture_structure);
/* Get rid of Valgrind 'undefined' warnings */
else
@@ -128,8 +128,14 @@ MacroBlocksToPipe(struct pipe_screen *screen,
break;
default:
- mb->mv[0].wheight = 0;
- mb->mv[1].wheight = 0;
+ /* workaround for xines xxmc video out plugin */
+ if (!(xvmc_mb->macroblock_type & ~XVMC_MB_TYPE_PATTERN)) {
+ mb->mv[0].wheight = 255;
+ mb->mv[1].wheight = 0;
+ } else {
+ mb->mv[0].wheight = 0;
+ mb->mv[1].wheight = 0;
+ }
break;
}