comparison mpegvideo_xvmc.c @ 8871:199e9809eb5a libavcodec

some more K&R whitespace cosmetics
author diego
date Sat, 14 Feb 2009 19:39:07 +0000
parents c5112df7f8b8
children 706274a30a80
comparison
equal deleted inserted replaced
8870:c5112df7f8b8 8871:199e9809eb5a
31 #include "xvmc.h" 31 #include "xvmc.h"
32 32
33 //set s->block 33 //set s->block
34 void ff_xvmc_init_block(MpegEncContext *s) 34 void ff_xvmc_init_block(MpegEncContext *s)
35 { 35 {
36 struct xvmc_render_state * render; 36 struct xvmc_render_state *render;
37 render = (struct xvmc_render_state*)s->current_picture.data[2]; 37 render = (struct xvmc_render_state*)s->current_picture.data[2];
38 assert(render); 38 assert(render);
39 if (!render || render->magic != AV_XVMC_RENDER_MAGIC) { 39 if (!render || render->magic != AV_XVMC_RENDER_MAGIC) {
40 assert(0); 40 assert(0);
41 return; // make sure that this is a render packet 41 return; // make sure that this is a render packet
43 s->block = (DCTELEM *)(render->data_blocks + render->next_free_data_block_num * 64); 43 s->block = (DCTELEM *)(render->data_blocks + render->next_free_data_block_num * 64);
44 } 44 }
45 45
46 void ff_xvmc_pack_pblocks(MpegEncContext *s, int cbp) 46 void ff_xvmc_pack_pblocks(MpegEncContext *s, int cbp)
47 { 47 {
48 int i,j; 48 int i, j;
49 const int mb_block_count = 4 + (1 << s->chroma_format); 49 const int mb_block_count = 4 + (1 << s->chroma_format);
50 50
51 j = 0; 51 j = 0;
52 cbp <<= 12-mb_block_count; 52 cbp <<= 12-mb_block_count;
53 for (i = 0; i < mb_block_count; i++) { 53 for (i = 0; i < mb_block_count; i++) {
61 61
62 // These functions should be called on every new field and/or frame. 62 // These functions should be called on every new field and/or frame.
63 // They should be safe if they are called a few times for the same field! 63 // They should be safe if they are called a few times for the same field!
64 int ff_xvmc_field_start(MpegEncContext*s, AVCodecContext *avctx) 64 int ff_xvmc_field_start(MpegEncContext*s, AVCodecContext *avctx)
65 { 65 {
66 struct xvmc_render_state * render, * last, * next; 66 struct xvmc_render_state *render, *last, *next;
67 67
68 assert(avctx); 68 assert(avctx);
69 69
70 render = (struct xvmc_render_state*)s->current_picture.data[2]; 70 render = (struct xvmc_render_state*)s->current_picture.data[2];
71 assert(render); 71 assert(render);
79 assert(render->filled_mv_blocks_num == 0); 79 assert(render->filled_mv_blocks_num == 0);
80 80
81 render->p_future_surface = NULL; 81 render->p_future_surface = NULL;
82 render->p_past_surface = NULL; 82 render->p_past_surface = NULL;
83 83
84 switch(s->pict_type){ 84 switch(s->pict_type) {
85 case FF_I_TYPE: 85 case FF_I_TYPE:
86 return 0; // no prediction from other frames 86 return 0; // no prediction from other frames
87 case FF_B_TYPE: 87 case FF_B_TYPE:
88 next = (struct xvmc_render_state*)s->next_picture.data[2]; 88 next = (struct xvmc_render_state*)s->next_picture.data[2];
89 assert(next); 89 assert(next);
106 return -1; 106 return -1;
107 } 107 }
108 108
109 void ff_xvmc_field_end(MpegEncContext *s) 109 void ff_xvmc_field_end(MpegEncContext *s)
110 { 110 {
111 struct xvmc_render_state * render; 111 struct xvmc_render_state *render;
112 render = (struct xvmc_render_state*)s->current_picture.data[2]; 112 render = (struct xvmc_render_state*)s->current_picture.data[2];
113 assert(render); 113 assert(render);
114 114
115 if (render->filled_mv_blocks_num > 0) 115 if (render->filled_mv_blocks_num > 0)
116 ff_draw_horiz_band(s,0,0); 116 ff_draw_horiz_band(s,0,0);
117 } 117 }
118 118
119 void ff_xvmc_decode_mb(MpegEncContext *s) 119 void ff_xvmc_decode_mb(MpegEncContext *s)
120 { 120 {
121 XvMCMacroBlock * mv_block; 121 XvMCMacroBlock *mv_block;
122 struct xvmc_render_state * render; 122 struct xvmc_render_state *render;
123 int i,cbp,blocks_per_mb; 123 int i, cbp, blocks_per_mb;
124 124
125 const int mb_xy = s->mb_y * s->mb_stride + s->mb_x; 125 const int mb_xy = s->mb_y * s->mb_stride + s->mb_x;
126 126
127 127
128 if (s->encoding) { 128 if (s->encoding) {
146 s->current_picture.qscale_table[mb_xy] = s->qscale; 146 s->current_picture.qscale_table[mb_xy] = s->qscale;
147 147
148 // start of XVMC-specific code 148 // start of XVMC-specific code
149 render = (struct xvmc_render_state*)s->current_picture.data[2]; 149 render = (struct xvmc_render_state*)s->current_picture.data[2];
150 assert(render); 150 assert(render);
151 assert(render->magic==AV_XVMC_RENDER_MAGIC); 151 assert(render->magic == AV_XVMC_RENDER_MAGIC);
152 assert(render->mv_blocks); 152 assert(render->mv_blocks);
153 153
154 // take the next free macroblock 154 // take the next free macroblock
155 mv_block = &render->mv_blocks[render->start_mv_blocks_num + 155 mv_block = &render->mv_blocks[render->start_mv_blocks_num +
156 render->filled_mv_blocks_num ]; 156 render->filled_mv_blocks_num ];
223 mv_block->motion_vertical_field_select = 0; 223 mv_block->motion_vertical_field_select = 0;
224 224
225 // set correct field references 225 // set correct field references
226 if (s->mv_type == MV_TYPE_FIELD || s->mv_type == MV_TYPE_16X8) { 226 if (s->mv_type == MV_TYPE_FIELD || s->mv_type == MV_TYPE_16X8) {
227 mv_block->motion_vertical_field_select |= s->field_select[0][0]; 227 mv_block->motion_vertical_field_select |= s->field_select[0][0];
228 mv_block->motion_vertical_field_select |= s->field_select[1][0]<<1; 228 mv_block->motion_vertical_field_select |= s->field_select[1][0] << 1;
229 mv_block->motion_vertical_field_select |= s->field_select[0][1]<<2; 229 mv_block->motion_vertical_field_select |= s->field_select[0][1] << 2;
230 mv_block->motion_vertical_field_select |= s->field_select[1][1]<<3; 230 mv_block->motion_vertical_field_select |= s->field_select[1][1] << 3;
231 } 231 }
232 } // !intra 232 } // !intra
233 // time to handle data blocks 233 // time to handle data blocks
234 mv_block->index = render->next_free_data_block_num; 234 mv_block->index = render->next_free_data_block_num;
235 235
247 } 247 }
248 248
249 if (s->flags & CODEC_FLAG_GRAY) { 249 if (s->flags & CODEC_FLAG_GRAY) {
250 if (s->mb_intra) { // intra frames are always full chroma blocks 250 if (s->mb_intra) { // intra frames are always full chroma blocks
251 for (i = 4; i < blocks_per_mb; i++) { 251 for (i = 4; i < blocks_per_mb; i++) {
252 memset(s->pblocks[i],0,sizeof(short)*8*8); // so we need to clear them 252 memset(s->pblocks[i], 0, sizeof(short)*8*8); // so we need to clear them
253 if (!render->unsigned_intra) 253 if (!render->unsigned_intra)
254 s->pblocks[i][0] = 1 << 10; 254 s->pblocks[i][0] = 1 << 10;
255 } 255 }
256 } else { 256 } else {
257 cbp &= 0xf << (blocks_per_mb - 4); 257 cbp &= 0xf << (blocks_per_mb - 4);
287 assert(render->filled_mv_blocks_num <= render->total_number_of_mv_blocks); 287 assert(render->filled_mv_blocks_num <= render->total_number_of_mv_blocks);
288 assert(render->next_free_data_block_num <= render->total_number_of_data_blocks); 288 assert(render->next_free_data_block_num <= render->total_number_of_data_blocks);
289 289
290 290
291 if (render->filled_mv_blocks_num >= render->total_number_of_mv_blocks) 291 if (render->filled_mv_blocks_num >= render->total_number_of_mv_blocks)
292 ff_draw_horiz_band(s,0,0); 292 ff_draw_horiz_band(s, 0, 0);
293 } 293 }