]> git.sesse.net Git - ffmpeg/blobdiff - postproc/postprocess.h
my TODO ...
[ffmpeg] / postproc / postprocess.h
index 3ae49f0c643c53a91252408806d556305176046e..929cf3afbe87992cb89b44bc3cc417bc791f155a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2001 Michael Niedermayer (michaelni@gmx.at)
+    Copyright (C) 2001-2002 Michael Niedermayer (michaelni@gmx.at)
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
 
+#ifndef NEWPOSTPROCESS_H
+#define NEWPOSTPROCESS_H
 
-#ifndef POSTPROCESS_H
-#define POSTPROCESS_H
+#define PP_QUALITY_MAX 6
 
-#define BLOCK_SIZE 8
-#define TEMP_STRIDE 8
+#define QP_STORE_T int8_t
 
-#define V_DEBLOCK      0x01
-#define H_DEBLOCK      0x02
-#define DERING         0x04
-#define LEVEL_FIX      0x08 /* Brightness & Contrast */
+typedef void pp_context_t;
+typedef void pp_mode_t;
 
-#define LUM_V_DEBLOCK  V_DEBLOCK
-#define LUM_H_DEBLOCK  H_DEBLOCK
-#define CHROM_V_DEBLOCK        (V_DEBLOCK<<4)
-#define CHROM_H_DEBLOCK        (H_DEBLOCK<<4)
-#define LUM_DERING     DERING
-#define CHROM_DERING   (DERING<<4)
-#define LUM_LEVEL_FIX  LEVEL_FIX
-//not supported currently
-#define CHROM_LEVEL_FIX        (LEVEL_FIX<<4)
+extern char *pp_help; //a simple help text
 
-// Experimental stuff
-#define RK_FILTER              0x0100
-#define LUM_V_RK_FILTER                RK_FILTER
-#define CHROM_V_RK_FILTER      (RK_FILTER<<4)
-
-#define X1_FILTER              0x0200
-#define LUM_V_X1_FILTER                X1_FILTER
-#define CHROM_V_X1_FILTER      (X1_FILTER<<4)
-
-
-#define TIMEING
-#define MORE_TIMEING
-
-#define MIN(a,b) ((a) > (b) ? (b) : (a))
-#define MAX(a,b) ((a) < (b) ? (b) : (a))
-#define ABS(a) ((a) > 0 ? (a) : (-(a)))
-#define SIGN(a) ((a) > 0 ? 1 : -1)
-
-#define QP_STORE_T int
-
-#ifdef HAVE_MMX2
-#define PAVGB(a,b) "pavgb " #a ", " #b " \n\t"
-#elif defined (HAVE_3DNOW)
-#define PAVGB(a,b) "pavgusb " #a ", " #b " \n\t"
-#endif
-
-#ifdef __cplusplus
-//#include <inttypes.h>
+void  pp_postprocess(uint8_t * src[3], int srcStride[3],
+                 uint8_t * dst[3], int dstStride[3],
+                 int horizontalSize, int verticalSize,
+                 QP_STORE_T *QP_store,  int QP_stride,
+                pp_mode_t *mode, pp_context_t *ppContext, int pict_type);
 
-void postProcess(uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height,
-       QP_STORE_T QPs[], int QPStride, int isColor, int mode);
-#endif
 
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-void postprocess(unsigned char * src[], int src_stride,
-                 unsigned char * dst[], int dst_stride,
-                 int horizontal_size,   int vertical_size,
-                 QP_STORE_T *QP_store,  int QP_stride,
-                                                          int mode);
+/**
+ * returns a pp_mode_t or NULL if an error occured
+ * name is the string after "-pp" on the command line
+ * quality is a number from 0 to PP_QUALITY_MAX
+ */
+pp_mode_t *pp_get_mode_by_name_and_quality(char *name, int quality);
+void pp_free_mode(pp_mode_t *mode);
 
-int getModeForQuality(int quality);
-#ifdef __cplusplus
-}
-#endif
+pp_context_t *pp_get_context(int width, int height, int cpuCaps);
+void pp_free_context(pp_context_t *ppContext);
 
+#define PP_CPU_CAPS_MMX   0x80000000
+#define PP_CPU_CAPS_MMX2  0x20000000
+#define PP_CPU_CAPS_3DNOW 0x40000000
 
 #endif