diff options
-rw-r--r-- | libpostproc/Makefile | 2 | ||||
-rw-r--r-- | libpostproc/postprocess.c | 42 | ||||
-rw-r--r-- | libpostproc/postprocess_internal.h | 14 |
3 files changed, 28 insertions, 30 deletions
diff --git a/libpostproc/Makefile b/libpostproc/Makefile index 292ca3d..e3d320b 100644 --- a/libpostproc/Makefile +++ b/libpostproc/Makefile @@ -15,7 +15,7 @@ SHARED_OBJS=postprocess_pic.o HEADERS = postprocess.h -CFLAGS = -I.. -I$(SRC_PATH)/libavcodec $(OPTFLAGS) +CFLAGS = -I.. -I$(SRC_PATH)/libavutil $(OPTFLAGS) # -I/usr/X11R6/include/ include $(SRC_PATH)/common.mak diff --git a/libpostproc/postprocess.c b/libpostproc/postprocess.c index 949f6d8..8e934de 100644 --- a/libpostproc/postprocess.c +++ b/libpostproc/postprocess.c @@ -72,6 +72,7 @@ try to unroll inner for(x=0 ... loop to avoid these damn if(x ... checks //Changelog: use the Subversion log #include "config.h" +#include "avutil.h" #include <inttypes.h> #include <stdio.h> #include <stdlib.h> @@ -96,10 +97,6 @@ try to unroll inner for(x=0 ... loop to avoid these damn if(x ... checks #include <altivec.h> #endif -#ifndef HAVE_MEMALIGN -#define memalign(a,b) malloc(b) -#endif - #define MIN(a,b) ((a) > (b) ? (b) : (a)) #define MAX(a,b) ((a) < (b) ? (b) : (a)) #define ABS(a) ((a) > 0 ? (a) : (-(a))) @@ -428,7 +425,7 @@ static inline void horizX1Filter(uint8_t *src, int stride, int QP) if(lut==NULL) { int i; - lut= (uint64_t*)memalign(8, 256*8); + lut = av_malloc(256*8); for(i=0; i<256; i++) { int v= i < 128 ? 2*i : 2*(i-256); @@ -771,7 +768,7 @@ pp_mode_t *pp_get_mode_by_name_and_quality(char *name, int quality) struct PPMode *ppMode; char *filterToken; - ppMode= memalign(8, sizeof(PPMode)); + ppMode= av_malloc(sizeof(PPMode)); ppMode->lumMode= 0; ppMode->chromMode= 0; @@ -949,20 +946,19 @@ pp_mode_t *pp_get_mode_by_name_and_quality(char *name, int quality) if(ppMode->error) { fprintf(stderr, "%d errors in postprocess string \"%s\"\n", ppMode->error, name); - free(ppMode); + av_free(ppMode); return NULL; } return ppMode; } void pp_free_mode(pp_mode_t *mode){ - if(mode) free(mode); + av_free(mode); } static void reallocAlign(void **p, int alignment, int size){ - if(*p) free(*p); - *p= memalign(alignment, size); - memset(*p, 0, size); + av_free(p); + *p= av_mallocz(size); } static void reallocBuffers(PPContext *c, int width, int height, int stride, int qpStride){ @@ -1002,7 +998,7 @@ static void global_init(void){ } pp_context_t *pp_get_context(int width, int height, int cpuCaps){ - PPContext *c= memalign(32, sizeof(PPContext)); + PPContext *c= av_malloc(sizeof(PPContext)); int stride= (width+15)&(~15); //assumed / will realloc if needed int qpStride= (width+15)/16 + 2; //assumed / will realloc if needed @@ -1029,21 +1025,21 @@ void pp_free_context(void *vc){ PPContext *c = (PPContext*)vc; int i; - for(i=0; i<3; i++) free(c->tempBlured[i]); - for(i=0; i<3; i++) free(c->tempBluredPast[i]); + for(i=0; i<3; i++) av_free(c->tempBlured[i]); + for(i=0; i<3; i++) av_free(c->tempBluredPast[i]); - free(c->tempBlocks); - free(c->yHistogram); - free(c->tempDst); - free(c->tempSrc); - free(c->deintTemp); - free(c->stdQPTable); - free(c->nonBQPTable); - free(c->forcedQPTable); + av_free(c->tempBlocks); + av_free(c->yHistogram); + av_free(c->tempDst); + av_free(c->tempSrc); + av_free(c->deintTemp); + av_free(c->stdQPTable); + av_free(c->nonBQPTable); + av_free(c->forcedQPTable); memset(c, 0, sizeof(PPContext)); - free(c); + av_free(c); } void pp_postprocess(uint8_t * src[3], int srcStride[3], diff --git a/libpostproc/postprocess_internal.h b/libpostproc/postprocess_internal.h index b1b15c8..6a36fe1 100644 --- a/libpostproc/postprocess_internal.h +++ b/libpostproc/postprocess_internal.h @@ -21,6 +21,8 @@ * internal api header. */ +#include "avutil.h" + #define V_DEBLOCK 0x01 #define H_DEBLOCK 0x02 #define DERING 0x04 @@ -124,8 +126,8 @@ typedef struct PPContext{ */ uint64_t *yHistogram; - uint64_t __attribute__((aligned(8))) packedYOffset; - uint64_t __attribute__((aligned(8))) packedYScale; + DECLARE_ALIGNED(8, uint64_t, packedYOffset); + DECLARE_ALIGNED(8, uint64_t, packedYScale); /** Temporal noise reducing buffers */ uint8_t *tempBlured[3]; @@ -137,11 +139,11 @@ typedef struct PPContext{ uint8_t *deintTemp; - uint64_t __attribute__((aligned(8))) pQPb; - uint64_t __attribute__((aligned(8))) pQPb2; + DECLARE_ALIGNED(8, uint64_t, pQPb); + DECLARE_ALIGNED(8, uint64_t, pQPb2); - uint64_t __attribute__((aligned(8))) mmxDcOffset[64]; - uint64_t __attribute__((aligned(8))) mmxDcThreshold[64]; + DECLARE_ALIGNED(8, uint64_t, mmxDcOffset[64]); + DECLARE_ALIGNED(8, uint64_t, mmxDcThreshold[64]); QP_STORE_T *stdQPTable; ///< used to fix MPEG2 style qscale QP_STORE_T *nonBQPTable; |