Lines Matching refs:mb

104 nouveau_vpe_mb_dct_blocks(struct nouveau_decoder *dec, const struct pipe_mpeg12_macroblock *mb)  in nouveau_vpe_mb_dct_blocks()  argument
107 unsigned cbp = mb->coded_block_pattern; in nouveau_vpe_mb_dct_blocks()
108 short *db = mb->blocks; in nouveau_vpe_mb_dct_blocks()
133 } else if (mb->macroblock_type & PIPE_MPEG12_MB_TYPE_INTRA) { in nouveau_vpe_mb_dct_blocks()
140 nouveau_vpe_mb_data_blocks(struct nouveau_decoder *dec, const struct pipe_mpeg12_macroblock *mb) in nouveau_vpe_mb_data_blocks() argument
143 unsigned cbp = mb->coded_block_pattern; in nouveau_vpe_mb_data_blocks()
144 short *db = mb->blocks; in nouveau_vpe_mb_data_blocks()
150 } else if (mb->macroblock_type & PIPE_MPEG12_MB_TYPE_INTRA) { in nouveau_vpe_mb_data_blocks()
159 const struct pipe_mpeg12_macroblock *mb, in nouveau_vpe_mb_dct_header() argument
163 bool intra = mb->macroblock_type & PIPE_MPEG12_MB_TYPE_INTRA; in nouveau_vpe_mb_dct_header()
164 unsigned x = mb->x * 16; in nouveau_vpe_mb_dct_header()
165 unsigned y = luma ? mb->y * 16 : mb->y * 8; in nouveau_vpe_mb_dct_header()
171 if (!(mb->x & 1)) in nouveau_vpe_mb_dct_header()
176 cbp = mb->coded_block_pattern; in nouveau_vpe_mb_dct_header()
180 if (luma && mb->macroblock_modes.bits.dct_type == PIPE_MPEG12_DCT_TYPE_FIELD) in nouveau_vpe_mb_dct_header()
283 const struct pipe_mpeg12_macroblock *mb, in nouveau_vpe_mb_mv_header() argument
289 int y, y2, x = mb->x * 16; in nouveau_vpe_mb_mv_header()
291 y = mb->y * (frame ? 16 : 32); in nouveau_vpe_mb_mv_header()
293 y = mb->y * (frame ? 8 : 16); in nouveau_vpe_mb_mv_header()
299 forward = mb->macroblock_type & PIPE_MPEG12_MB_TYPE_MOTION_FORWARD; in nouveau_vpe_mb_mv_header()
300 backward = mb->macroblock_type & PIPE_MPEG12_MB_TYPE_MOTION_BACKWARD; in nouveau_vpe_mb_mv_header()
304 switch (mb->macroblock_modes.bits.frame_motion_type) { in nouveau_vpe_mb_mv_header()
311 x, y, mb->PMV[0][0], dec->past, TRUE); in nouveau_vpe_mb_mv_header()
313 x, y2, mb->PMV[0][0], dec->past, FALSE); in nouveau_vpe_mb_mv_header()
317 x, y, mb->PMV[1][0], dec->future, TRUE); in nouveau_vpe_mb_mv_header()
319 x, y2, mb->PMV[1][1], dec->future, FALSE); in nouveau_vpe_mb_mv_header()
326 switch (mb->macroblock_modes.bits.field_motion_type) { in nouveau_vpe_mb_mv_header()
336 x, y, mb->PMV[0][0], dec->past, TRUE); in nouveau_vpe_mb_mv_header()
340 x, y, mb->PMV[0][1], dec->future, TRUE); in nouveau_vpe_mb_mv_header()
356 x, y, mb->PMV[0][0], dec->past, TRUE); in nouveau_vpe_mb_mv_header()
359 x, y, mb->PMV[0][1], dec->future, TRUE); in nouveau_vpe_mb_mv_header()
368 mb->motion_vertical_field_select & PIPE_MPEG12_FS_FIRST_FORWARD, in nouveau_vpe_mb_mv_header()
369 x, y, mb->PMV[0][0], dec->past, TRUE); in nouveau_vpe_mb_mv_header()
371 mb->motion_vertical_field_select & PIPE_MPEG12_FS_SECOND_FORWARD, in nouveau_vpe_mb_mv_header()
372 x, y2, mb->PMV[1][0], dec->past, FALSE); in nouveau_vpe_mb_mv_header()
376 mb->motion_vertical_field_select & PIPE_MPEG12_FS_FIRST_BACKWARD, in nouveau_vpe_mb_mv_header()
377 x, y, mb->PMV[0][1], dec->future, TRUE); in nouveau_vpe_mb_mv_header()
379 mb->motion_vertical_field_select & PIPE_MPEG12_FS_SECOND_BACKWARD, in nouveau_vpe_mb_mv_header()
380 x, y2, mb->PMV[1][1], dec->future, FALSE); in nouveau_vpe_mb_mv_header()
432 const struct pipe_mpeg12_macroblock *mb; in nouveau_decoder_decode_macroblock() local
446 mb = (const struct pipe_mpeg12_macroblock *)pipe_mb; in nouveau_decoder_decode_macroblock()
447 for (i = 0; i < num_macroblocks; ++i, mb++) { in nouveau_decoder_decode_macroblock()
448 if (mb->macroblock_type & PIPE_MPEG12_MB_TYPE_INTRA) { in nouveau_decoder_decode_macroblock()
449 nouveau_vpe_mb_dct_header(dec, mb, TRUE); in nouveau_decoder_decode_macroblock()
450 nouveau_vpe_mb_dct_header(dec, mb, FALSE); in nouveau_decoder_decode_macroblock()
452 nouveau_vpe_mb_mv_header(dec, mb, TRUE); in nouveau_decoder_decode_macroblock()
453 nouveau_vpe_mb_dct_header(dec, mb, TRUE); in nouveau_decoder_decode_macroblock()
455 nouveau_vpe_mb_mv_header(dec, mb, FALSE); in nouveau_decoder_decode_macroblock()
456 nouveau_vpe_mb_dct_header(dec, mb, FALSE); in nouveau_decoder_decode_macroblock()
459 nouveau_vpe_mb_dct_blocks(dec, mb); in nouveau_decoder_decode_macroblock()
461 nouveau_vpe_mb_data_blocks(dec, mb); in nouveau_decoder_decode_macroblock()