[g3dvl] start handling motion_vertical_field_select
authorChristian König <deathsimple@vodafone.de>
Tue, 9 Nov 2010 19:01:58 +0000 (20:01 +0100)
committerChristian König <deathsimple@vodafone.de>
Tue, 9 Nov 2010 19:01:58 +0000 (20:01 +0100)
src/gallium/include/pipe/p_video_state.h
src/gallium/state_trackers/xorg/xvmc/surface.c

index 5eb963521391f385afe60ec5f419573422880d52..e5e85e3deb3f3cae7aeac729a2f6f6963a185814 100644 (file)
@@ -89,6 +89,7 @@ struct pipe_mpeg12_macroblock
    enum pipe_mpeg12_motion_type mo_type;
    enum pipe_mpeg12_dct_type dct_type;
    signed pmv[2][2][2];
+   bool mvfs[2][2];
    unsigned cbp;
    short *blocks;
 };
index 9709f2b23737a36d7e62d26d2ca8073ed8423c22..0a236e264296dde9c5c80c1b5206b7d4b5a98c1b 100644 (file)
@@ -181,6 +181,11 @@ MacroBlocksToPipe(struct pipe_screen *screen,
             for (l = 0; l < 2; ++l)
                pipe_macroblocks->pmv[j][k][l] = xvmc_mb->PMV[j][k][l];
 
+      pipe_macroblocks->mvfs[0][0] = xvmc_mb->motion_vertical_field_select & XVMC_SELECT_FIRST_FORWARD;
+      pipe_macroblocks->mvfs[0][1] = xvmc_mb->motion_vertical_field_select & XVMC_SELECT_FIRST_BACKWARD;
+      pipe_macroblocks->mvfs[1][0] = xvmc_mb->motion_vertical_field_select & XVMC_SELECT_SECOND_FORWARD;
+      pipe_macroblocks->mvfs[1][1] = xvmc_mb->motion_vertical_field_select & XVMC_SELECT_SECOND_BACKWARD;
+
       pipe_macroblocks->cbp = xvmc_mb->coded_block_pattern;
       pipe_macroblocks->blocks = xvmc_blocks->blocks + xvmc_mb->index * BLOCK_SIZE_SAMPLES;