23 #include <X11/extensions/XvMC.h> 
   69     cbp <<= 12-mb_block_count;
 
   70     for (i = 0; i < mb_block_count; i++) {
 
  100                "Render token doesn't look as expected.\n");
 
  106                "Rendering surface contains %i unprocessed blocks.\n",
 
  117                "Rendering surface doesn't provide enough block structures to work with.\n");
 
  173     XvMCMacroBlock *mv_block;
 
  175     int i, cbp, blocks_per_mb;
 
  210     mv_block->x        = s->
mb_x;
 
  211     mv_block->y        = s->
mb_y;
 
  214         mv_block->macroblock_type = XVMC_MB_TYPE_INTRA; 
 
  216         mv_block->macroblock_type = XVMC_MB_TYPE_PATTERN;
 
  219             mv_block->macroblock_type |= XVMC_MB_TYPE_MOTION_FORWARD;
 
  221             mv_block->PMV[0][0][0] = s->
mv[0][0][0];
 
  222             mv_block->PMV[0][0][1] = s->
mv[0][0][1];
 
  223             mv_block->PMV[1][0][0] = s->
mv[0][1][0];
 
  224             mv_block->PMV[1][0][1] = s->
mv[0][1][1];
 
  227             mv_block->macroblock_type |= XVMC_MB_TYPE_MOTION_BACKWARD;
 
  228             mv_block->PMV[0][1][0] = s->
mv[1][0][0];
 
  229             mv_block->PMV[0][1][1] = s->
mv[1][0][1];
 
  230             mv_block->PMV[1][1][0] = s->
mv[1][1][0];
 
  231             mv_block->PMV[1][1][1] = s->
mv[1][1][1];
 
  236                 mv_block->motion_type = XVMC_PREDICTION_FRAME;
 
  239                 mv_block->motion_type = XVMC_PREDICTION_16x8;
 
  242                 mv_block->motion_type = XVMC_PREDICTION_FIELD;
 
  244                     mv_block->PMV[0][0][1] <<= 1;
 
  245                     mv_block->PMV[1][0][1] <<= 1;
 
  246                     mv_block->PMV[0][1][1] <<= 1;
 
  247                     mv_block->PMV[1][1][1] <<= 1;
 
  251                 mv_block->motion_type = XVMC_PREDICTION_DUAL_PRIME;
 
  254                     mv_block->PMV[0][0][0] = s->
mv[0][0][0];      
 
  255                     mv_block->PMV[0][0][1] = s->
mv[0][0][1] << 1;
 
  257                     mv_block->PMV[0][1][0] = s->
mv[0][0][0];      
 
  258                     mv_block->PMV[0][1][1] = s->
mv[0][0][1] << 1;
 
  260                     mv_block->PMV[1][0][0] = s->
mv[0][2][0];      
 
  261                     mv_block->PMV[1][0][1] = s->
mv[0][2][1] << 1; 
 
  263                     mv_block->PMV[1][1][0] = s->
mv[0][3][0];      
 
  264                     mv_block->PMV[1][1][1] = s->
mv[0][3][1] << 1; 
 
  267                     mv_block->PMV[0][1][0] = s->
mv[0][2][0];      
 
  268                     mv_block->PMV[0][1][1] = s->
mv[0][2][1];      
 
  275         mv_block->motion_vertical_field_select = 0;
 
  279             mv_block->motion_vertical_field_select |= s->
field_select[0][0];
 
  280             mv_block->motion_vertical_field_select |= s->
field_select[1][0] << 1;
 
  281             mv_block->motion_vertical_field_select |= s->
field_select[0][1] << 2;
 
  282             mv_block->motion_vertical_field_select |= s->
field_select[1][1] << 3;
 
  295     for (i = 0; i < blocks_per_mb; i++) {
 
  303             for (i = 4; i < blocks_per_mb; i++) {
 
  309             cbp &= 0xf << (blocks_per_mb - 4);
 
  313     mv_block->coded_block_pattern = cbp;
 
  315         mv_block->macroblock_type &= ~XVMC_MB_TYPE_PATTERN;
 
  317     for (i = 0; i < blocks_per_mb; i++) {
 
  350 #if CONFIG_MPEG1_XVMC_HWACCEL 
  352     .
name           = 
"mpeg1_xvmc",
 
  358     .decode_slice   = 
NULL,
 
  364 #if CONFIG_MPEG2_XVMC_HWACCEL 
  366     .
name           = 
"mpeg2_xvmc",
 
  372     .decode_slice   = 
NULL,