mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-25 04:30:02 +00:00
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
|
||||
|
||||
CFLAGS = -I.. -I$(SRC_PATH)/libavcodec $(OPTFLAGS)
|
||||
CFLAGS = -I.. -I$(SRC_PATH)/libavutil $(OPTFLAGS)
|
||||
# -I/usr/X11R6/include/
|
||||
|
||||
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
|
||||
|
||||
#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],
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user