Mercurial > libavcodec.hg
comparison utils.c @ 9686:bc32976d6d9d libavcodec
Move ALIGN macro to libavutil/common.h and use it in various places
| author | conrad |
|---|---|
| date | Fri, 22 May 2009 21:32:13 +0000 |
| parents | 59073f92f0e2 |
| children | 0d6f887d91fb |
comparison
equal
deleted
inserted
replaced
| 9685:ab8b3b2e4d49 | 9686:bc32976d6d9d |
|---|---|
| 131 int width, height; | 131 int width, height; |
| 132 enum PixelFormat pix_fmt; | 132 enum PixelFormat pix_fmt; |
| 133 }InternalBuffer; | 133 }InternalBuffer; |
| 134 | 134 |
| 135 #define INTERNAL_BUFFER_SIZE 32 | 135 #define INTERNAL_BUFFER_SIZE 32 |
| 136 | |
| 137 #define ALIGN(x, a) (((x)+(a)-1)&~((a)-1)) | |
| 138 | 136 |
| 139 void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height){ | 137 void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height){ |
| 140 int w_align= 1; | 138 int w_align= 1; |
| 141 int h_align= 1; | 139 int h_align= 1; |
| 142 | 140 |
| 191 w_align= 1; | 189 w_align= 1; |
| 192 h_align= 1; | 190 h_align= 1; |
| 193 break; | 191 break; |
| 194 } | 192 } |
| 195 | 193 |
| 196 *width = ALIGN(*width , w_align); | 194 *width = FFALIGN(*width , w_align); |
| 197 *height= ALIGN(*height, h_align); | 195 *height= FFALIGN(*height, h_align); |
| 198 if(s->codec_id == CODEC_ID_H264) | 196 if(s->codec_id == CODEC_ID_H264) |
| 199 *height+=2; // some of the optimized chroma MC reads one line too much | 197 *height+=2; // some of the optimized chroma MC reads one line too much |
| 200 } | 198 } |
| 201 | 199 |
| 202 int avcodec_check_dimensions(void *av_log_ctx, unsigned int w, unsigned int h){ | 200 int avcodec_check_dimensions(void *av_log_ctx, unsigned int w, unsigned int h){ |
| 315 | 313 |
| 316 // no edge if EDEG EMU or not planar YUV | 314 // no edge if EDEG EMU or not planar YUV |
| 317 if((s->flags&CODEC_FLAG_EMU_EDGE) || !size[2]) | 315 if((s->flags&CODEC_FLAG_EMU_EDGE) || !size[2]) |
| 318 buf->data[i] = buf->base[i]; | 316 buf->data[i] = buf->base[i]; |
| 319 else | 317 else |
| 320 buf->data[i] = buf->base[i] + ALIGN((buf->linesize[i]*EDGE_WIDTH>>v_shift) + (EDGE_WIDTH>>h_shift), stride_align[i]); | 318 buf->data[i] = buf->base[i] + FFALIGN((buf->linesize[i]*EDGE_WIDTH>>v_shift) + (EDGE_WIDTH>>h_shift), stride_align[i]); |
| 321 } | 319 } |
| 322 if(size[1] && !size[2]) | 320 if(size[1] && !size[2]) |
| 323 ff_set_systematic_pal((uint32_t*)buf->data[1], s->pix_fmt); | 321 ff_set_systematic_pal((uint32_t*)buf->data[1], s->pix_fmt); |
| 324 buf->width = s->width; | 322 buf->width = s->width; |
| 325 buf->height = s->height; | 323 buf->height = s->height; |
