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:
parent
ab5a1435ec
commit
8925915fcc
@ -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))
|
||||||
{
|
{
|
||||||
|
@ -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++)
|
||||||
|
Loading…
Reference in New Issue
Block a user