Commit 6ab6c7c3 authored by Luca Barbato's avatar Luca Barbato

make postproc use avutil

Originally committed as revision 6524 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 4bef236b
...@@ -15,7 +15,7 @@ SHARED_OBJS=postprocess_pic.o ...@@ -15,7 +15,7 @@ SHARED_OBJS=postprocess_pic.o
HEADERS = postprocess.h HEADERS = postprocess.h
CFLAGS = -I.. -I$(SRC_PATH)/libavcodec $(OPTFLAGS) CFLAGS = -I.. -I$(SRC_PATH)/libavutil $(OPTFLAGS)
# -I/usr/X11R6/include/ # -I/usr/X11R6/include/
include $(SRC_PATH)/common.mak include $(SRC_PATH)/common.mak
......
...@@ -72,6 +72,7 @@ try to unroll inner for(x=0 ... loop to avoid these damn if(x ... checks ...@@ -72,6 +72,7 @@ try to unroll inner for(x=0 ... loop to avoid these damn if(x ... checks
//Changelog: use the Subversion log //Changelog: use the Subversion log
#include "config.h" #include "config.h"
#include "avutil.h"
#include <inttypes.h> #include <inttypes.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
...@@ -96,10 +97,6 @@ try to unroll inner for(x=0 ... loop to avoid these damn if(x ... checks ...@@ -96,10 +97,6 @@ try to unroll inner for(x=0 ... loop to avoid these damn if(x ... checks
#include <altivec.h> #include <altivec.h>
#endif #endif
#ifndef HAVE_MEMALIGN
#define memalign(a,b) malloc(b)
#endif
#define MIN(a,b) ((a) > (b) ? (b) : (a)) #define MIN(a,b) ((a) > (b) ? (b) : (a))
#define MAX(a,b) ((a) < (b) ? (b) : (a)) #define MAX(a,b) ((a) < (b) ? (b) : (a))
#define ABS(a) ((a) > 0 ? (a) : (-(a))) #define ABS(a) ((a) > 0 ? (a) : (-(a)))
...@@ -428,7 +425,7 @@ static inline void horizX1Filter(uint8_t *src, int stride, int QP) ...@@ -428,7 +425,7 @@ static inline void horizX1Filter(uint8_t *src, int stride, int QP)
if(lut==NULL) if(lut==NULL)
{ {
int i; int i;
lut= (uint64_t*)memalign(8, 256*8); lut = av_malloc(256*8);
for(i=0; i<256; i++) for(i=0; i<256; i++)
{ {
int v= i < 128 ? 2*i : 2*(i-256); 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) ...@@ -771,7 +768,7 @@ pp_mode_t *pp_get_mode_by_name_and_quality(char *name, int quality)
struct PPMode *ppMode; struct PPMode *ppMode;
char *filterToken; char *filterToken;
ppMode= memalign(8, sizeof(PPMode)); ppMode= av_malloc(sizeof(PPMode));
ppMode->lumMode= 0; ppMode->lumMode= 0;
ppMode->chromMode= 0; ppMode->chromMode= 0;
...@@ -949,20 +946,19 @@ pp_mode_t *pp_get_mode_by_name_and_quality(char *name, int quality) ...@@ -949,20 +946,19 @@ pp_mode_t *pp_get_mode_by_name_and_quality(char *name, int quality)
if(ppMode->error) if(ppMode->error)
{ {
fprintf(stderr, "%d errors in postprocess string \"%s\"\n", ppMode->error, name); fprintf(stderr, "%d errors in postprocess string \"%s\"\n", ppMode->error, name);
free(ppMode); av_free(ppMode);
return NULL; return NULL;
} }
return ppMode; return ppMode;
} }
void pp_free_mode(pp_mode_t *mode){ void pp_free_mode(pp_mode_t *mode){
if(mode) free(mode); av_free(mode);
} }
static void reallocAlign(void **p, int alignment, int size){ static void reallocAlign(void **p, int alignment, int size){
if(*p) free(*p); av_free(p);
*p= memalign(alignment, size); *p= av_mallocz(size);
memset(*p, 0, size);
} }
static void reallocBuffers(PPContext *c, int width, int height, int stride, int qpStride){ static void reallocBuffers(PPContext *c, int width, int height, int stride, int qpStride){
...@@ -1002,7 +998,7 @@ static void global_init(void){ ...@@ -1002,7 +998,7 @@ static void global_init(void){
} }
pp_context_t *pp_get_context(int width, int height, int cpuCaps){ 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 stride= (width+15)&(~15); //assumed / will realloc if needed
int qpStride= (width+15)/16 + 2; //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){ ...@@ -1029,21 +1025,21 @@ void pp_free_context(void *vc){
PPContext *c = (PPContext*)vc; PPContext *c = (PPContext*)vc;
int i; int i;
for(i=0; i<3; i++) free(c->tempBlured[i]); for(i=0; i<3; i++) av_free(c->tempBlured[i]);
for(i=0; i<3; i++) free(c->tempBluredPast[i]); for(i=0; i<3; i++) av_free(c->tempBluredPast[i]);
free(c->tempBlocks); av_free(c->tempBlocks);
free(c->yHistogram); av_free(c->yHistogram);
free(c->tempDst); av_free(c->tempDst);
free(c->tempSrc); av_free(c->tempSrc);
free(c->deintTemp); av_free(c->deintTemp);
free(c->stdQPTable); av_free(c->stdQPTable);
free(c->nonBQPTable); av_free(c->nonBQPTable);
free(c->forcedQPTable); av_free(c->forcedQPTable);
memset(c, 0, sizeof(PPContext)); memset(c, 0, sizeof(PPContext));
free(c); av_free(c);
} }
void pp_postprocess(uint8_t * src[3], int srcStride[3], void pp_postprocess(uint8_t * src[3], int srcStride[3],
......
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
* internal api header. * internal api header.
*/ */
#include "avutil.h"
#define V_DEBLOCK 0x01 #define V_DEBLOCK 0x01
#define H_DEBLOCK 0x02 #define H_DEBLOCK 0x02
#define DERING 0x04 #define DERING 0x04
...@@ -124,8 +126,8 @@ typedef struct PPContext{ ...@@ -124,8 +126,8 @@ typedef struct PPContext{
*/ */
uint64_t *yHistogram; uint64_t *yHistogram;
uint64_t __attribute__((aligned(8))) packedYOffset; DECLARE_ALIGNED(8, uint64_t, packedYOffset);
uint64_t __attribute__((aligned(8))) packedYScale; DECLARE_ALIGNED(8, uint64_t, packedYScale);
/** Temporal noise reducing buffers */ /** Temporal noise reducing buffers */
uint8_t *tempBlured[3]; uint8_t *tempBlured[3];
...@@ -137,11 +139,11 @@ typedef struct PPContext{ ...@@ -137,11 +139,11 @@ typedef struct PPContext{
uint8_t *deintTemp; uint8_t *deintTemp;
uint64_t __attribute__((aligned(8))) pQPb; DECLARE_ALIGNED(8, uint64_t, pQPb);
uint64_t __attribute__((aligned(8))) pQPb2; DECLARE_ALIGNED(8, uint64_t, pQPb2);
uint64_t __attribute__((aligned(8))) mmxDcOffset[64]; DECLARE_ALIGNED(8, uint64_t, mmxDcOffset[64]);
uint64_t __attribute__((aligned(8))) mmxDcThreshold[64]; DECLARE_ALIGNED(8, uint64_t, mmxDcThreshold[64]);
QP_STORE_T *stdQPTable; ///< used to fix MPEG2 style qscale QP_STORE_T *stdQPTable; ///< used to fix MPEG2 style qscale
QP_STORE_T *nonBQPTable; QP_STORE_T *nonBQPTable;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment