Mercurial > libavcodec.hg
comparison error_resilience.c @ 2979:bfabfdf9ce55 libavcodec
COSMETICS: tabs --> spaces, some prettyprinting
| author | diego |
|---|---|
| date | Thu, 22 Dec 2005 01:10:11 +0000 |
| parents | ef2149182f1c |
| children | 0b546eab515d |
comparison
equal
deleted
inserted
replaced
| 2978:403183bbb505 | 2979:bfabfdf9ce55 |
|---|---|
| 106 } | 106 } |
| 107 } | 107 } |
| 108 | 108 |
| 109 /** | 109 /** |
| 110 * guess the dc of blocks which dont have a undamaged dc | 110 * guess the dc of blocks which dont have a undamaged dc |
| 111 * @param w width in 8 pixel blocks | 111 * @param w width in 8 pixel blocks |
| 112 * @param h height in 8 pixel blocks | 112 * @param h height in 8 pixel blocks |
| 113 */ | 113 */ |
| 114 static void guess_dc(MpegEncContext *s, int16_t *dc, int w, int h, int stride, int is_luma){ | 114 static void guess_dc(MpegEncContext *s, int16_t *dc, int w, int h, int stride, int is_luma){ |
| 115 int b_x, b_y; | 115 int b_x, b_y; |
| 116 | 116 |
| 117 for(b_y=0; b_y<h; b_y++){ | 117 for(b_y=0; b_y<h; b_y++){ |
| 190 } | 190 } |
| 191 } | 191 } |
| 192 | 192 |
| 193 /** | 193 /** |
| 194 * simple horizontal deblocking filter used for error resilience | 194 * simple horizontal deblocking filter used for error resilience |
| 195 * @param w width in 8 pixel blocks | 195 * @param w width in 8 pixel blocks |
| 196 * @param h height in 8 pixel blocks | 196 * @param h height in 8 pixel blocks |
| 197 */ | 197 */ |
| 198 static void h_block_filter(MpegEncContext *s, uint8_t *dst, int w, int h, int stride, int is_luma){ | 198 static void h_block_filter(MpegEncContext *s, uint8_t *dst, int w, int h, int stride, int is_luma){ |
| 199 int b_x, b_y; | 199 int b_x, b_y; |
| 200 uint8_t *cm = cropTbl + MAX_NEG_CROP; | 200 uint8_t *cm = cropTbl + MAX_NEG_CROP; |
| 201 | 201 |
| 250 } | 250 } |
| 251 } | 251 } |
| 252 | 252 |
| 253 /** | 253 /** |
| 254 * simple vertical deblocking filter used for error resilience | 254 * simple vertical deblocking filter used for error resilience |
| 255 * @param w width in 8 pixel blocks | 255 * @param w width in 8 pixel blocks |
| 256 * @param h height in 8 pixel blocks | 256 * @param h height in 8 pixel blocks |
| 257 */ | 257 */ |
| 258 static void v_block_filter(MpegEncContext *s, uint8_t *dst, int w, int h, int stride, int is_luma){ | 258 static void v_block_filter(MpegEncContext *s, uint8_t *dst, int w, int h, int stride, int is_luma){ |
| 259 int b_x, b_y; | 259 int b_x, b_y; |
| 260 uint8_t *cm = cropTbl + MAX_NEG_CROP; | 260 uint8_t *cm = cropTbl + MAX_NEG_CROP; |
| 261 | 261 |
| 346 s->mv_dir = MV_DIR_FORWARD; | 346 s->mv_dir = MV_DIR_FORWARD; |
| 347 s->mb_intra=0; | 347 s->mb_intra=0; |
| 348 s->mv_type = MV_TYPE_16X16; | 348 s->mv_type = MV_TYPE_16X16; |
| 349 s->mb_skipped=0; | 349 s->mb_skipped=0; |
| 350 | 350 |
| 351 s->dsp.clear_blocks(s->block[0]); | 351 s->dsp.clear_blocks(s->block[0]); |
| 352 | 352 |
| 353 s->mb_x= mb_x; | 353 s->mb_x= mb_x; |
| 354 s->mb_y= mb_y; | 354 s->mb_y= mb_y; |
| 355 s->mv[0][0][0]= 0; | 355 s->mv[0][0][0]= 0; |
| 356 s->mv[0][0][1]= 0; | 356 s->mv[0][0][1]= 0; |
| 474 s->mv_dir = MV_DIR_FORWARD; | 474 s->mv_dir = MV_DIR_FORWARD; |
| 475 s->mb_intra=0; | 475 s->mb_intra=0; |
| 476 s->mv_type = MV_TYPE_16X16; | 476 s->mv_type = MV_TYPE_16X16; |
| 477 s->mb_skipped=0; | 477 s->mb_skipped=0; |
| 478 | 478 |
| 479 s->dsp.clear_blocks(s->block[0]); | 479 s->dsp.clear_blocks(s->block[0]); |
| 480 | 480 |
| 481 s->mb_x= mb_x; | 481 s->mb_x= mb_x; |
| 482 s->mb_y= mb_y; | 482 s->mb_y= mb_y; |
| 483 | 483 |
| 484 for(j=0; j<pred_count; j++){ | 484 for(j=0; j<pred_count; j++){ |
| 580 | 580 |
| 581 if(s->pict_type==I_TYPE){ | 581 if(s->pict_type==I_TYPE){ |
| 582 uint8_t *mb_ptr = s->current_picture.data[0] + mb_x*16 + mb_y*16*s->linesize; | 582 uint8_t *mb_ptr = s->current_picture.data[0] + mb_x*16 + mb_y*16*s->linesize; |
| 583 uint8_t *last_mb_ptr= s->last_picture.data [0] + mb_x*16 + mb_y*16*s->linesize; | 583 uint8_t *last_mb_ptr= s->last_picture.data [0] + mb_x*16 + mb_y*16*s->linesize; |
| 584 | 584 |
| 585 is_intra_likely += s->dsp.sad[0](NULL, last_mb_ptr, mb_ptr , s->linesize, 16); | 585 is_intra_likely += s->dsp.sad[0](NULL, last_mb_ptr, mb_ptr , s->linesize, 16); |
| 586 is_intra_likely -= s->dsp.sad[0](NULL, last_mb_ptr, last_mb_ptr+s->linesize*16, s->linesize, 16); | 586 is_intra_likely -= s->dsp.sad[0](NULL, last_mb_ptr, last_mb_ptr+s->linesize*16, s->linesize, 16); |
| 587 }else{ | 587 }else{ |
| 588 if(IS_INTRA(s->current_picture.mb_type[mb_xy])) | 588 if(IS_INTRA(s->current_picture.mb_type[mb_xy])) |
| 589 is_intra_likely++; | 589 is_intra_likely++; |
| 590 else | 590 else |
| 871 s->mv_type = MV_TYPE_16X16; | 871 s->mv_type = MV_TYPE_16X16; |
| 872 s->mv[0][0][0] = s->current_picture.motion_val[0][ mb_x*2 + mb_y*2*s->b8_stride ][0]; | 872 s->mv[0][0][0] = s->current_picture.motion_val[0][ mb_x*2 + mb_y*2*s->b8_stride ][0]; |
| 873 s->mv[0][0][1] = s->current_picture.motion_val[0][ mb_x*2 + mb_y*2*s->b8_stride ][1]; | 873 s->mv[0][0][1] = s->current_picture.motion_val[0][ mb_x*2 + mb_y*2*s->b8_stride ][1]; |
| 874 } | 874 } |
| 875 | 875 |
| 876 s->dsp.clear_blocks(s->block[0]); | 876 s->dsp.clear_blocks(s->block[0]); |
| 877 | 877 |
| 878 s->mb_x= mb_x; | 878 s->mb_x= mb_x; |
| 879 s->mb_y= mb_y; | 879 s->mb_y= mb_y; |
| 880 decode_mb(s); | 880 decode_mb(s); |
| 881 } | 881 } |
