# HG changeset patch # User lu_zero # Date 1159786167 0 # Node ID ac05bfe3da66d940b9b3efe51acac0a7a4aaac60 # Parent ac99241b61c3ecd81b7bde8d12c90e96c4df47e6 make postproc use avutil diff -r ac99241b61c3 -r ac05bfe3da66 Makefile --- a/Makefile Tue Sep 12 10:50:32 2006 +0000 +++ b/Makefile Mon Oct 02 10:49:27 2006 +0000 @@ -15,7 +15,7 @@ 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 -r ac99241b61c3 -r ac05bfe3da66 postprocess.c --- a/postprocess.c Tue Sep 12 10:50:32 2006 +0000 +++ b/postprocess.c Mon Oct 02 10:49:27 2006 +0000 @@ -72,6 +72,7 @@ //Changelog: use the Subversion log #include "config.h" +#include "avutil.h" #include #include #include @@ -96,10 +97,6 @@ #include #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 @@ 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 @@ 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 @@ 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 @@ } 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 @@ 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 -r ac99241b61c3 -r ac05bfe3da66 postprocess_internal.h --- a/postprocess_internal.h Tue Sep 12 10:50:32 2006 +0000 +++ b/postprocess_internal.h Mon Oct 02 10:49:27 2006 +0000 @@ -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 @@ */ 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 @@ 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;