Mercurial > libavcodec.hg
comparison imgconvert.c @ 4358:0924cc1db086 libavcodec
Cosmetics
author | lu_zero |
---|---|
date | Wed, 17 Jan 2007 10:47:58 +0000 |
parents | 45e0102824fb |
children | d276d6eed6a0 |
comparison
equal
deleted
inserted
replaced
4357:1654075b205c | 4358:0924cc1db086 |
---|---|
2250 } | 2250 } |
2251 | 2251 |
2252 /** | 2252 /** |
2253 * Pad image | 2253 * Pad image |
2254 */ | 2254 */ |
2255 int img_pad(AVPicture *dst, const AVPicture *src, int height, int width, int pix_fmt, | 2255 int img_pad(AVPicture *dst, const AVPicture *src, int height, int width, |
2256 int padtop, int padbottom, int padleft, int padright, int *color) | 2256 int pix_fmt, int padtop, int padbottom, int padleft, int padright, |
2257 int *color) | |
2257 { | 2258 { |
2258 uint8_t *optr, *iptr; | 2259 uint8_t *optr, *iptr; |
2259 int y_shift; | 2260 int y_shift; |
2260 int x_shift; | 2261 int x_shift; |
2261 int yheight; | 2262 int yheight; |
2262 int i, y; | 2263 int i, y; |
2263 | 2264 |
2264 if (pix_fmt < 0 || pix_fmt >= PIX_FMT_NB || !is_yuv_planar(&pix_fmt_info[pix_fmt])) | 2265 if (pix_fmt < 0 || pix_fmt >= PIX_FMT_NB || |
2265 return -1; | 2266 !is_yuv_planar(&pix_fmt_info[pix_fmt])) return -1; |
2266 | 2267 |
2267 for (i = 0; i < 3; i++) { | 2268 for (i = 0; i < 3; i++) { |
2268 x_shift = i ? pix_fmt_info[pix_fmt].x_chroma_shift : 0; | 2269 x_shift = i ? pix_fmt_info[pix_fmt].x_chroma_shift : 0; |
2269 y_shift = i ? pix_fmt_info[pix_fmt].y_chroma_shift : 0; | 2270 y_shift = i ? pix_fmt_info[pix_fmt].y_chroma_shift : 0; |
2270 | 2271 |
2271 if (padtop || padleft) { | 2272 if (padtop || padleft) { |
2272 memset(dst->data[i], color[i], dst->linesize[i] * (padtop >> y_shift) + (padleft >> x_shift)); | 2273 memset(dst->data[i], color[i], |
2274 dst->linesize[i] * (padtop >> y_shift) + (padleft >> x_shift)); | |
2273 } | 2275 } |
2274 | 2276 |
2275 if (padleft || padright || src) { | 2277 if (padleft || padright || src) { |
2276 if (src) { /* first line */ | 2278 if (src) { /* first line */ |
2277 iptr = src->data[i]; | 2279 iptr = src->data[i]; |
2278 optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) + (padleft >> x_shift); | 2280 optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) + |
2281 (padleft >> x_shift); | |
2279 memcpy(optr, iptr, src->linesize[i]); | 2282 memcpy(optr, iptr, src->linesize[i]); |
2280 iptr += src->linesize[i]; | 2283 iptr += src->linesize[i]; |
2281 } | 2284 } |
2282 optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) + (dst->linesize[i] - (padright >> x_shift)); | 2285 optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) + |
2286 (dst->linesize[i] - (padright >> x_shift)); | |
2283 yheight = (height - 1 - (padtop + padbottom)) >> y_shift; | 2287 yheight = (height - 1 - (padtop + padbottom)) >> y_shift; |
2284 for (y = 0; y < yheight; y++) { | 2288 for (y = 0; y < yheight; y++) { |
2285 memset(optr, color[i], (padleft + padright) >> x_shift); | 2289 memset(optr, color[i], (padleft + padright) >> x_shift); |
2286 if (src) { | 2290 if (src) { |
2287 memcpy(optr + ((padleft + padright) >> x_shift), iptr, src->linesize[i]); | 2291 memcpy(optr + ((padleft + padright) >> x_shift), iptr, |
2292 src->linesize[i]); | |
2288 iptr += src->linesize[i]; | 2293 iptr += src->linesize[i]; |
2289 } | 2294 } |
2290 optr += dst->linesize[i]; | 2295 optr += dst->linesize[i]; |
2291 } | 2296 } |
2292 } | 2297 } |
2293 | 2298 |
2294 if (padbottom || padright) { | 2299 if (padbottom || padright) { |
2295 optr = dst->data[i] + dst->linesize[i] * ((height - padbottom) >> y_shift) - (padright >> x_shift); | 2300 optr = dst->data[i] + dst->linesize[i] * |
2296 memset(optr, color[i], dst->linesize[i] * (padbottom >> y_shift) + (padright >> x_shift)); | 2301 ((height - padbottom) >> y_shift) - (padright >> x_shift); |
2302 memset(optr, color[i],dst->linesize[i] * | |
2303 (padbottom >> y_shift) + (padright >> x_shift)); | |
2297 } | 2304 } |
2298 } | 2305 } |
2299 return 0; | 2306 return 0; |
2300 } | 2307 } |
2301 | 2308 |