Mercurial > libavcodec.hg
comparison mpegvideo.c @ 4594:a96d905dcbaa libavcodec
Add av_ prefix to clip functions
author | reimar |
---|---|
date | Sun, 25 Feb 2007 10:27:12 +0000 |
parents | 5af00e83f439 |
children | c81aa982b72b |
comparison
equal
deleted
inserted
replaced
4593:2aea8bf268d8 | 4594:a96d905dcbaa |
---|---|
186 } | 186 } |
187 } | 187 } |
188 | 188 |
189 static inline void update_qscale(MpegEncContext *s){ | 189 static inline void update_qscale(MpegEncContext *s){ |
190 s->qscale= (s->lambda*139 + FF_LAMBDA_SCALE*64) >> (FF_LAMBDA_SHIFT + 7); | 190 s->qscale= (s->lambda*139 + FF_LAMBDA_SCALE*64) >> (FF_LAMBDA_SHIFT + 7); |
191 s->qscale= clip(s->qscale, s->avctx->qmin, s->avctx->qmax); | 191 s->qscale= av_clip(s->qscale, s->avctx->qmin, s->avctx->qmax); |
192 | 192 |
193 s->lambda2= (s->lambda*s->lambda + FF_LAMBDA_SCALE/2) >> FF_LAMBDA_SHIFT; | 193 s->lambda2= (s->lambda*s->lambda + FF_LAMBDA_SCALE/2) >> FF_LAMBDA_SHIFT; |
194 } | 194 } |
195 #endif //CONFIG_ENCODERS | 195 #endif //CONFIG_ENCODERS |
196 | 196 |
1711 * @param color color of the arrow | 1711 * @param color color of the arrow |
1712 */ | 1712 */ |
1713 static void draw_line(uint8_t *buf, int sx, int sy, int ex, int ey, int w, int h, int stride, int color){ | 1713 static void draw_line(uint8_t *buf, int sx, int sy, int ex, int ey, int w, int h, int stride, int color){ |
1714 int x, y, fr, f; | 1714 int x, y, fr, f; |
1715 | 1715 |
1716 sx= clip(sx, 0, w-1); | 1716 sx= av_clip(sx, 0, w-1); |
1717 sy= clip(sy, 0, h-1); | 1717 sy= av_clip(sy, 0, h-1); |
1718 ex= clip(ex, 0, w-1); | 1718 ex= av_clip(ex, 0, w-1); |
1719 ey= clip(ey, 0, h-1); | 1719 ey= av_clip(ey, 0, h-1); |
1720 | 1720 |
1721 buf[sy*stride + sx]+= color; | 1721 buf[sy*stride + sx]+= color; |
1722 | 1722 |
1723 if(FFABS(ex - sx) > FFABS(ey - sy)){ | 1723 if(FFABS(ex - sx) > FFABS(ey - sy)){ |
1724 if(sx > ex){ | 1724 if(sx > ex){ |
1760 * @param color color of the arrow | 1760 * @param color color of the arrow |
1761 */ | 1761 */ |
1762 static void draw_arrow(uint8_t *buf, int sx, int sy, int ex, int ey, int w, int h, int stride, int color){ | 1762 static void draw_arrow(uint8_t *buf, int sx, int sy, int ex, int ey, int w, int h, int stride, int color){ |
1763 int dx,dy; | 1763 int dx,dy; |
1764 | 1764 |
1765 sx= clip(sx, -100, w+100); | 1765 sx= av_clip(sx, -100, w+100); |
1766 sy= clip(sy, -100, h+100); | 1766 sy= av_clip(sy, -100, h+100); |
1767 ex= clip(ex, -100, w+100); | 1767 ex= av_clip(ex, -100, w+100); |
1768 ey= clip(ey, -100, h+100); | 1768 ey= av_clip(ey, -100, h+100); |
1769 | 1769 |
1770 dx= ex - sx; | 1770 dx= ex - sx; |
1771 dy= ey - sy; | 1771 dy= ey - sy; |
1772 | 1772 |
1773 if(dx*dx + dy*dy > 3*3){ | 1773 if(dx*dx + dy*dy > 3*3){ |
2662 motion_y= s->sprite_offset[0][1]; | 2662 motion_y= s->sprite_offset[0][1]; |
2663 src_x = s->mb_x * 16 + (motion_x >> (s->sprite_warping_accuracy+1)); | 2663 src_x = s->mb_x * 16 + (motion_x >> (s->sprite_warping_accuracy+1)); |
2664 src_y = s->mb_y * 16 + (motion_y >> (s->sprite_warping_accuracy+1)); | 2664 src_y = s->mb_y * 16 + (motion_y >> (s->sprite_warping_accuracy+1)); |
2665 motion_x<<=(3-s->sprite_warping_accuracy); | 2665 motion_x<<=(3-s->sprite_warping_accuracy); |
2666 motion_y<<=(3-s->sprite_warping_accuracy); | 2666 motion_y<<=(3-s->sprite_warping_accuracy); |
2667 src_x = clip(src_x, -16, s->width); | 2667 src_x = av_clip(src_x, -16, s->width); |
2668 if (src_x == s->width) | 2668 if (src_x == s->width) |
2669 motion_x =0; | 2669 motion_x =0; |
2670 src_y = clip(src_y, -16, s->height); | 2670 src_y = av_clip(src_y, -16, s->height); |
2671 if (src_y == s->height) | 2671 if (src_y == s->height) |
2672 motion_y =0; | 2672 motion_y =0; |
2673 | 2673 |
2674 linesize = s->linesize; | 2674 linesize = s->linesize; |
2675 uvlinesize = s->uvlinesize; | 2675 uvlinesize = s->uvlinesize; |
2704 motion_y= s->sprite_offset[1][1]; | 2704 motion_y= s->sprite_offset[1][1]; |
2705 src_x = s->mb_x * 8 + (motion_x >> (s->sprite_warping_accuracy+1)); | 2705 src_x = s->mb_x * 8 + (motion_x >> (s->sprite_warping_accuracy+1)); |
2706 src_y = s->mb_y * 8 + (motion_y >> (s->sprite_warping_accuracy+1)); | 2706 src_y = s->mb_y * 8 + (motion_y >> (s->sprite_warping_accuracy+1)); |
2707 motion_x<<=(3-s->sprite_warping_accuracy); | 2707 motion_x<<=(3-s->sprite_warping_accuracy); |
2708 motion_y<<=(3-s->sprite_warping_accuracy); | 2708 motion_y<<=(3-s->sprite_warping_accuracy); |
2709 src_x = clip(src_x, -8, s->width>>1); | 2709 src_x = av_clip(src_x, -8, s->width>>1); |
2710 if (src_x == s->width>>1) | 2710 if (src_x == s->width>>1) |
2711 motion_x =0; | 2711 motion_x =0; |
2712 src_y = clip(src_y, -8, s->height>>1); | 2712 src_y = av_clip(src_y, -8, s->height>>1); |
2713 if (src_y == s->height>>1) | 2713 if (src_y == s->height>>1) |
2714 motion_y =0; | 2714 motion_y =0; |
2715 | 2715 |
2716 offset = (src_y * uvlinesize) + src_x; | 2716 offset = (src_y * uvlinesize) + src_x; |
2717 ptr = ref_picture[1] + offset; | 2717 ptr = ref_picture[1] + offset; |
2877 dxy = ((motion_y & 1) << 1) | (motion_x & 1); | 2877 dxy = ((motion_y & 1) << 1) | (motion_x & 1); |
2878 src_x += motion_x >> 1; | 2878 src_x += motion_x >> 1; |
2879 src_y += motion_y >> 1; | 2879 src_y += motion_y >> 1; |
2880 | 2880 |
2881 /* WARNING: do no forget half pels */ | 2881 /* WARNING: do no forget half pels */ |
2882 src_x = clip(src_x, -16, width); //FIXME unneeded for emu? | 2882 src_x = av_clip(src_x, -16, width); //FIXME unneeded for emu? |
2883 if (src_x == width) | 2883 if (src_x == width) |
2884 dxy &= ~1; | 2884 dxy &= ~1; |
2885 src_y = clip(src_y, -16, height); | 2885 src_y = av_clip(src_y, -16, height); |
2886 if (src_y == height) | 2886 if (src_y == height) |
2887 dxy &= ~2; | 2887 dxy &= ~2; |
2888 src += src_y * stride + src_x; | 2888 src += src_y * stride + src_x; |
2889 | 2889 |
2890 if(s->unrestricted_mv && (s->flags&CODEC_FLAG_EMU_EDGE)){ | 2890 if(s->unrestricted_mv && (s->flags&CODEC_FLAG_EMU_EDGE)){ |
3356 mx >>= 1; | 3356 mx >>= 1; |
3357 my >>= 1; | 3357 my >>= 1; |
3358 | 3358 |
3359 src_x = s->mb_x * 8 + mx; | 3359 src_x = s->mb_x * 8 + mx; |
3360 src_y = s->mb_y * 8 + my; | 3360 src_y = s->mb_y * 8 + my; |
3361 src_x = clip(src_x, -8, s->width/2); | 3361 src_x = av_clip(src_x, -8, s->width/2); |
3362 if (src_x == s->width/2) | 3362 if (src_x == s->width/2) |
3363 dxy &= ~1; | 3363 dxy &= ~1; |
3364 src_y = clip(src_y, -8, s->height/2); | 3364 src_y = av_clip(src_y, -8, s->height/2); |
3365 if (src_y == s->height/2) | 3365 if (src_y == s->height/2) |
3366 dxy &= ~2; | 3366 dxy &= ~2; |
3367 | 3367 |
3368 offset = (src_y * (s->uvlinesize)) + src_x; | 3368 offset = (src_y * (s->uvlinesize)) + src_x; |
3369 ptr = ref_picture[1] + offset; | 3369 ptr = ref_picture[1] + offset; |
3572 dxy = ((motion_y & 3) << 2) | (motion_x & 3); | 3572 dxy = ((motion_y & 3) << 2) | (motion_x & 3); |
3573 src_x = mb_x * 16 + (motion_x >> 2) + (i & 1) * 8; | 3573 src_x = mb_x * 16 + (motion_x >> 2) + (i & 1) * 8; |
3574 src_y = mb_y * 16 + (motion_y >> 2) + (i >>1) * 8; | 3574 src_y = mb_y * 16 + (motion_y >> 2) + (i >>1) * 8; |
3575 | 3575 |
3576 /* WARNING: do no forget half pels */ | 3576 /* WARNING: do no forget half pels */ |
3577 src_x = clip(src_x, -16, s->width); | 3577 src_x = av_clip(src_x, -16, s->width); |
3578 if (src_x == s->width) | 3578 if (src_x == s->width) |
3579 dxy &= ~3; | 3579 dxy &= ~3; |
3580 src_y = clip(src_y, -16, s->height); | 3580 src_y = av_clip(src_y, -16, s->height); |
3581 if (src_y == s->height) | 3581 if (src_y == s->height) |
3582 dxy &= ~12; | 3582 dxy &= ~12; |
3583 | 3583 |
3584 ptr = ref_picture[0] + (src_y * s->linesize) + (src_x); | 3584 ptr = ref_picture[0] + (src_y * s->linesize) + (src_x); |
3585 if(s->flags&CODEC_FLAG_EMU_EDGE){ | 3585 if(s->flags&CODEC_FLAG_EMU_EDGE){ |
4341 if(!(s->flags&CODEC_FLAG_QP_RD)){ | 4341 if(!(s->flags&CODEC_FLAG_QP_RD)){ |
4342 s->qscale= s->current_picture_ptr->qscale_table[mb_xy]; | 4342 s->qscale= s->current_picture_ptr->qscale_table[mb_xy]; |
4343 s->dquant= s->qscale - last_qp; | 4343 s->dquant= s->qscale - last_qp; |
4344 | 4344 |
4345 if(s->out_format==FMT_H263){ | 4345 if(s->out_format==FMT_H263){ |
4346 s->dquant= clip(s->dquant, -2, 2); | 4346 s->dquant= av_clip(s->dquant, -2, 2); |
4347 | 4347 |
4348 if(s->codec_id==CODEC_ID_MPEG4){ | 4348 if(s->codec_id==CODEC_ID_MPEG4){ |
4349 if(!s->mb_intra){ | 4349 if(!s->mb_intra){ |
4350 if(s->pict_type == B_TYPE){ | 4350 if(s->pict_type == B_TYPE){ |
4351 if(s->dquant&1 || s->mv_dir&MV_DIRECT) | 4351 if(s->dquant&1 || s->mv_dir&MV_DIRECT) |
5740 /* for mjpeg, we do include qscale in the matrix */ | 5740 /* for mjpeg, we do include qscale in the matrix */ |
5741 s->intra_matrix[0] = ff_mpeg1_default_intra_matrix[0]; | 5741 s->intra_matrix[0] = ff_mpeg1_default_intra_matrix[0]; |
5742 for(i=1;i<64;i++){ | 5742 for(i=1;i<64;i++){ |
5743 int j= s->dsp.idct_permutation[i]; | 5743 int j= s->dsp.idct_permutation[i]; |
5744 | 5744 |
5745 s->intra_matrix[j] = clip_uint8((ff_mpeg1_default_intra_matrix[i] * s->qscale) >> 3); | 5745 s->intra_matrix[j] = av_clip_uint8((ff_mpeg1_default_intra_matrix[i] * s->qscale) >> 3); |
5746 } | 5746 } |
5747 convert_matrix(&s->dsp, s->q_intra_matrix, s->q_intra_matrix16, | 5747 convert_matrix(&s->dsp, s->q_intra_matrix, s->q_intra_matrix16, |
5748 s->intra_matrix, s->intra_quant_bias, 8, 8, 1); | 5748 s->intra_matrix, s->intra_quant_bias, 8, 8, 1); |
5749 s->qscale= 8; | 5749 s->qscale= 8; |
5750 } | 5750 } |