make postproc use avutil
Originally committed as revision 6524 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
4bef236ba8
commit
6ab6c7c3cc
@ -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
|
|||||||
//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
|
|||||||
#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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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){
|
|||||||
}
|
}
|
||||||
|
|
||||||
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){
|
|||||||
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 @@
|
|||||||
* 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{
|
|||||||
*/
|
*/
|
||||||
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{
|
|||||||
|
|
||||||
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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user