Mercurial > mplayer.hg
comparison libswscale/swscale_altivec_template.c @ 19181:e40cf0305d4e
Replace MIN() and MAX() with FFMIN() and FFMAX()
author | lucabe |
---|---|
date | Wed, 26 Jul 2006 13:19:02 +0000 |
parents | 8579acff875e |
children | 07769a1d06a9 |
comparison
equal
deleted
inserted
replaced
19180:c5ee8c9808ef | 19181:e40cf0305d4e |
---|---|
1 /* | 1 FF/* |
2 AltiVec-enhanced yuv2yuvX | 2 AltiVec-enhanced yuv2yuvX |
3 | 3 |
4 Copyright (C) 2004 Romain Dolbeau <romain@dolbeau.org> | 4 Copyright (C) 2004 Romain Dolbeau <romain@dolbeau.org> |
5 based on the equivalent C code in "postproc/swscale.c" | 5 based on the equivalent C code in "postproc/swscale.c" |
6 | 6 |
221 register int srcPos = filterPos[i]; | 221 register int srcPos = filterPos[i]; |
222 register int val = 0; | 222 register int val = 0; |
223 for(j=0; j<filterSize; j++) { | 223 for(j=0; j<filterSize; j++) { |
224 val += ((int)src[srcPos + j])*filter[filterSize*i + j]; | 224 val += ((int)src[srcPos + j])*filter[filterSize*i + j]; |
225 } | 225 } |
226 dst[i] = MIN(MAX(0, val>>7), (1<<15)-1); | 226 dst[i] = FFMIN(FFMAX(0, val>>7), (1<<15)-1); |
227 } | 227 } |
228 } | 228 } |
229 else | 229 else |
230 switch (filterSize) { | 230 switch (filterSize) { |
231 case 4: | 231 case 4: |
259 filter_v = vec_mergeh(filter_v,(vector signed short)vzero); | 259 filter_v = vec_mergeh(filter_v,(vector signed short)vzero); |
260 | 260 |
261 vector signed int val_vEven = vec_mule(src_v, filter_v); | 261 vector signed int val_vEven = vec_mule(src_v, filter_v); |
262 vector signed int val_s = vec_sums(val_vEven, vzero); | 262 vector signed int val_s = vec_sums(val_vEven, vzero); |
263 vec_st(val_s, 0, tempo); | 263 vec_st(val_s, 0, tempo); |
264 dst[i] = MIN(MAX(0, tempo[3]>>7), (1<<15)-1); | 264 dst[i] = FFMIN(FFMAX(0, tempo[3]>>7), (1<<15)-1); |
265 } | 265 } |
266 } | 266 } |
267 break; | 267 break; |
268 | 268 |
269 case 8: | 269 case 8: |
284 // the 4 above is 3 (filterSize == 8) + 1 (sizeof(short) == 2) | 284 // the 4 above is 3 (filterSize == 8) + 1 (sizeof(short) == 2) |
285 | 285 |
286 vector signed int val_v = vec_msums(src_v, filter_v, (vector signed int)vzero); | 286 vector signed int val_v = vec_msums(src_v, filter_v, (vector signed int)vzero); |
287 vector signed int val_s = vec_sums(val_v, vzero); | 287 vector signed int val_s = vec_sums(val_v, vzero); |
288 vec_st(val_s, 0, tempo); | 288 vec_st(val_s, 0, tempo); |
289 dst[i] = MIN(MAX(0, tempo[3]>>7), (1<<15)-1); | 289 dst[i] = FFMIN(FFMAX(0, tempo[3]>>7), (1<<15)-1); |
290 } | 290 } |
291 } | 291 } |
292 break; | 292 break; |
293 | 293 |
294 case 16: | 294 case 16: |
313 vector signed int val_v = vec_msums(src_vB, filter_v1, val_acc); | 313 vector signed int val_v = vec_msums(src_vB, filter_v1, val_acc); |
314 | 314 |
315 vector signed int val_s = vec_sums(val_v, vzero); | 315 vector signed int val_s = vec_sums(val_v, vzero); |
316 | 316 |
317 vec_st(val_s, 0, tempo); | 317 vec_st(val_s, 0, tempo); |
318 dst[i] = MIN(MAX(0, tempo[3]>>7), (1<<15)-1); | 318 dst[i] = FFMIN(FFMAX(0, tempo[3]>>7), (1<<15)-1); |
319 } | 319 } |
320 } | 320 } |
321 break; | 321 break; |
322 | 322 |
323 default: | 323 default: |
374 } | 374 } |
375 | 375 |
376 vector signed int val_s = vec_sums(val_v, vzero); | 376 vector signed int val_s = vec_sums(val_v, vzero); |
377 | 377 |
378 vec_st(val_s, 0, tempo); | 378 vec_st(val_s, 0, tempo); |
379 dst[i] = MIN(MAX(0, tempo[3]>>7), (1<<15)-1); | 379 dst[i] = FFMIN(FFMAX(0, tempo[3]>>7), (1<<15)-1); |
380 } | 380 } |
381 | 381 |
382 } | 382 } |
383 } | 383 } |
384 } | 384 } |