1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

Change libpostproc to use the FFMIN/FFMAX macros from libavutil.

Originally committed as revision 6622 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Diego Biurrun 2006-10-10 08:09:12 +00:00
parent ab5a1435ec
commit 8925915fcc
2 changed files with 17 additions and 20 deletions

View File

@ -99,9 +99,6 @@ try to unroll inner for(x=0 ... loop to avoid these damn if(x ... checks
#include <altivec.h> #include <altivec.h>
#endif #endif
#define MIN(a,b) ((a) > (b) ? (b) : (a))
#define MAX(a,b) ((a) < (b) ? (b) : (a))
#define GET_MODE_BUFFER_SIZE 500 #define GET_MODE_BUFFER_SIZE 500
#define OPTIONS_ARRAY_SIZE 10 #define OPTIONS_ARRAY_SIZE 10
#define BLOCK_SIZE 8 #define BLOCK_SIZE 8
@ -341,8 +338,8 @@ static inline void doHorizDefFilter_C(uint8_t dst[], int stride, PPContext *c)
const int leftEnergy= 5*(dst[2] - dst[1]) + 2*(dst[0] - dst[3]); const int leftEnergy= 5*(dst[2] - dst[1]) + 2*(dst[0] - dst[3]);
const int rightEnergy= 5*(dst[6] - dst[5]) + 2*(dst[4] - dst[7]); const int rightEnergy= 5*(dst[6] - dst[5]) + 2*(dst[4] - dst[7]);
int d= ABS(middleEnergy) - MIN( ABS(leftEnergy), ABS(rightEnergy) ); int d= ABS(middleEnergy) - FFMIN( ABS(leftEnergy), ABS(rightEnergy) );
d= MAX(d, 0); d= FFMAX(d, 0);
d= (5*d + 32) >> 6; d= (5*d + 32) >> 6;
d*= SIGN(-middleEnergy); d*= SIGN(-middleEnergy);
@ -450,7 +447,7 @@ static inline void horizX1Filter(uint8_t *src, int stride, int QP)
int b= src[3] - src[4]; int b= src[3] - src[4];
int c= src[5] - src[6]; int c= src[5] - src[6];
int d= MAX(ABS(b) - (ABS(a) + ABS(c))/2, 0); int d= FFMAX(ABS(b) - (ABS(a) + ABS(c))/2, 0);
if(d < QP) if(d < QP)
{ {
@ -543,8 +540,8 @@ static always_inline void do_a_deblock_C(uint8_t *src, int step, int stride, PPC
const int leftEnergy= 5*(src[2*step] - src[1*step]) + 2*(src[0*step] - src[3*step]); const int leftEnergy= 5*(src[2*step] - src[1*step]) + 2*(src[0*step] - src[3*step]);
const int rightEnergy= 5*(src[6*step] - src[5*step]) + 2*(src[4*step] - src[7*step]); const int rightEnergy= 5*(src[6*step] - src[5*step]) + 2*(src[4*step] - src[7*step]);
int d= ABS(middleEnergy) - MIN( ABS(leftEnergy), ABS(rightEnergy) ); int d= ABS(middleEnergy) - FFMIN( ABS(leftEnergy), ABS(rightEnergy) );
d= MAX(d, 0); d= FFMAX(d, 0);
d= (5*d + 32) >> 6; d= (5*d + 32) >> 6;
d*= SIGN(-middleEnergy); d*= SIGN(-middleEnergy);
@ -1044,14 +1041,14 @@ void pp_postprocess(uint8_t * src[3], int srcStride[3],
int mbHeight= (height+15)>>4; int mbHeight= (height+15)>>4;
PPMode *mode = (PPMode*)vm; PPMode *mode = (PPMode*)vm;
PPContext *c = (PPContext*)vc; PPContext *c = (PPContext*)vc;
int minStride= MAX(ABS(srcStride[0]), ABS(dstStride[0])); int minStride= FFMAX(ABS(srcStride[0]), ABS(dstStride[0]));
int absQPStride = ABS(QPStride); int absQPStride = ABS(QPStride);
// c->stride and c->QPStride are always positive // c->stride and c->QPStride are always positive
if(c->stride < minStride || c->qpStride < absQPStride) if(c->stride < minStride || c->qpStride < absQPStride)
reallocBuffers(c, width, height, reallocBuffers(c, width, height,
MAX(minStride, c->stride), FFMAX(minStride, c->stride),
MAX(c->qpStride, absQPStride)); FFMAX(c->qpStride, absQPStride));
if(QP_store==NULL || (mode->lumMode & FORCE_QUANT)) if(QP_store==NULL || (mode->lumMode & FORCE_QUANT))
{ {

View File

@ -590,7 +590,7 @@ static inline void RENAME(vertX1Filter)(uint8_t *src, int stride, PPContext *co)
int c= src[l5] - src[l6]; int c= src[l5] - src[l6];
int d= ABS(b) - ((ABS(a) + ABS(c))>>1); int d= ABS(b) - ((ABS(a) + ABS(c))>>1);
d= MAX(d, 0); d= FFMAX(d, 0);
if(d < co->QP*2) if(d < co->QP*2)
{ {
@ -851,8 +851,8 @@ static inline void RENAME(doVertDefFilter)(uint8_t src[], int stride, PPContext
const int leftEnergy= 5*(src[l3] - src[l2]) + 2*(src[l1] - src[l4]); const int leftEnergy= 5*(src[l3] - src[l2]) + 2*(src[l1] - src[l4]);
const int rightEnergy= 5*(src[l7] - src[l6]) + 2*(src[l5] - src[l8]); const int rightEnergy= 5*(src[l7] - src[l6]) + 2*(src[l5] - src[l8]);
int d= ABS(middleEnergy) - MIN( ABS(leftEnergy), ABS(rightEnergy) ); int d= ABS(middleEnergy) - FFMIN( ABS(leftEnergy), ABS(rightEnergy) );
d= MAX(d, 0); d= FFMAX(d, 0);
d= (5*d + 32) >> 6; d= (5*d + 32) >> 6;
d*= SIGN(-middleEnergy); d*= SIGN(-middleEnergy);
@ -1155,8 +1155,8 @@ src-=8;
const int leftEnergy= 5*(src[l3] - src[l2]) + 2*(src[l1] - src[l4]); const int leftEnergy= 5*(src[l3] - src[l2]) + 2*(src[l1] - src[l4]);
const int rightEnergy= 5*(src[l7] - src[l6]) + 2*(src[l5] - src[l8]); const int rightEnergy= 5*(src[l7] - src[l6]) + 2*(src[l5] - src[l8]);
int d= ABS(middleEnergy) - MIN( ABS(leftEnergy), ABS(rightEnergy) ); int d= ABS(middleEnergy) - FFMIN( ABS(leftEnergy), ABS(rightEnergy) );
d= MAX(d, 0); d= FFMAX(d, 0);
d= (5*d + 32) >> 6; d= (5*d + 32) >> 6;
d*= SIGN(-middleEnergy); d*= SIGN(-middleEnergy);
@ -1532,7 +1532,7 @@ DERING_CORE((%0, %1, 8) ,(%%REGd, %1, 4),%%mm2,%%mm4,%%mm0,%%mm3,%%mm5,%%mm1,
for(x=1; x<9; x++) for(x=1; x<9; x++)
{ {
p++; p++;
*p = MIN(*p + 20, 255); *p = FFMIN(*p + 20, 255);
} }
} }
// src[0] = src[7]=src[stride*7]=src[stride*7 + 7]=255; // src[0] = src[7]=src[stride*7]=src[stride*7 + 7]=255;
@ -3566,14 +3566,14 @@ static void RENAME(postProcess)(uint8_t src[], int srcStride, uint8_t dst[], int
/* copy from line (copyAhead) to (copyAhead+7) of src, these will be copied with /* copy from line (copyAhead) to (copyAhead+7) of src, these will be copied with
blockcopy to dst later */ blockcopy to dst later */
linecpy(tempSrc + srcStride*copyAhead, srcBlock + srcStride*copyAhead, linecpy(tempSrc + srcStride*copyAhead, srcBlock + srcStride*copyAhead,
MAX(height-y-copyAhead, 0), srcStride); FFMAX(height-y-copyAhead, 0), srcStride);
/* duplicate last line of src to fill the void upto line (copyAhead+7) */ /* duplicate last line of src to fill the void upto line (copyAhead+7) */
for(i=MAX(height-y, 8); i<copyAhead+8; i++) for(i=FFMAX(height-y, 8); i<copyAhead+8; i++)
memcpy(tempSrc + srcStride*i, src + srcStride*(height-1), ABS(srcStride)); memcpy(tempSrc + srcStride*i, src + srcStride*(height-1), ABS(srcStride));
/* copy up to (copyAhead+1) lines of dst (line -1 to (copyAhead-1))*/ /* copy up to (copyAhead+1) lines of dst (line -1 to (copyAhead-1))*/
linecpy(tempDst, dstBlock - dstStride, MIN(height-y+1, copyAhead+1), dstStride); linecpy(tempDst, dstBlock - dstStride, FFMIN(height-y+1, copyAhead+1), dstStride);
/* duplicate last line of dst to fill the void upto line (copyAhead) */ /* duplicate last line of dst to fill the void upto line (copyAhead) */
for(i=height-y+1; i<=copyAhead; i++) for(i=height-y+1; i<=copyAhead; i++)