summaryrefslogtreecommitdiff
path: root/src/libffmpeg/libavcodec/dsputil.h
diff options
context:
space:
mode:
authorGuenter Bartsch <guenter@users.sourceforge.net>2002-03-12 00:40:52 +0000
committerGuenter Bartsch <guenter@users.sourceforge.net>2002-03-12 00:40:52 +0000
commit0bf7e08a076a9d88acaebcf6bbed63e090ff6857 (patch)
tree17001793feff338449d34ef8e8ff89d8dcb0ebad /src/libffmpeg/libavcodec/dsputil.h
parent0e27a3976b6b5eaab4983b3e63a7009fe77451cf (diff)
downloadxine-lib-0bf7e08a076a9d88acaebcf6bbed63e090ff6857.tar.gz
xine-lib-0bf7e08a076a9d88acaebcf6bbed63e090ff6857.tar.bz2
updated ffmpeg to the latest ffmpeg-cvs, hopefully this will handle divx5 files
CVS patchset: 1558 CVS date: 2002/03/12 00:40:52
Diffstat (limited to 'src/libffmpeg/libavcodec/dsputil.h')
-rw-r--r--src/libffmpeg/libavcodec/dsputil.h63
1 files changed, 36 insertions, 27 deletions
diff --git a/src/libffmpeg/libavcodec/dsputil.h b/src/libffmpeg/libavcodec/dsputil.h
index 182b1e706..d0a6e68ba 100644
--- a/src/libffmpeg/libavcodec/dsputil.h
+++ b/src/libffmpeg/libavcodec/dsputil.h
@@ -2,7 +2,10 @@
#define DSPUTIL_H
#include "common.h"
+#include "avcodec.h"
+#undef DEBUG
+//#define DEBUG
/* dct code */
typedef short DCTELEM;
@@ -19,6 +22,9 @@ extern UINT8 ff_alternate_horizontal_scan[64];
extern UINT8 ff_alternate_vertical_scan[64];
extern UINT8 zigzag_direct[64];
+/* permutation table */
+extern UINT8 permutation[64];
+
/* pixel operations */
#define MAX_NEG_CROP 384
@@ -34,6 +40,8 @@ extern void (*ff_idct)(DCTELEM *block);
extern void (*get_pixels)(DCTELEM *block, const UINT8 *pixels, int line_size);
extern void (*put_pixels_clamped)(const DCTELEM *block, UINT8 *pixels, int line_size);
extern void (*add_pixels_clamped)(const DCTELEM *block, UINT8 *pixels, int line_size);
+extern void (*gmc1)(UINT8 *dst, UINT8 *src, int srcStride, int h, int x16, int y16, int rounder);
+
void get_pixels_c(DCTELEM *block, const UINT8 *pixels, int line_size);
void put_pixels_clamped_c(const DCTELEM *block, UINT8 *pixels, int line_size);
@@ -41,11 +49,15 @@ void add_pixels_clamped_c(const DCTELEM *block, UINT8 *pixels, int line_size);
/* add and put pixel (decoding) */
typedef void (*op_pixels_func)(UINT8 *block, const UINT8 *pixels, int line_size, int h);
+typedef void (*qpel_mc_func)(UINT8 *dst, UINT8 *src, int dstStride, int srcStride, int mx, int my);
extern op_pixels_func put_pixels_tab[4];
extern op_pixels_func avg_pixels_tab[4];
extern op_pixels_func put_no_rnd_pixels_tab[4];
extern op_pixels_func avg_no_rnd_pixels_tab[4];
+extern qpel_mc_func qpel_mc_rnd_tab[16];
+extern qpel_mc_func qpel_mc_no_rnd_tab[16];
+
/* sub pixel (encoding) */
extern void (*sub_pixels_tab[4])(DCTELEM *block, const UINT8 *pixels, int line_size, int h);
@@ -67,45 +79,30 @@ int pix_abs16x16_x2_c(UINT8 *blk1, UINT8 *blk2, int lx, int h);
int pix_abs16x16_y2_c(UINT8 *blk1, UINT8 *blk2, int lx, int h);
int pix_abs16x16_xy2_c(UINT8 *blk1, UINT8 *blk2, int lx, int h);
-#if defined (SIMPLE_IDCT) && defined (ARCH_X86)
-static inline int block_permute_op(int j)
-{
-static const int table[64]={
- 0x00, 0x08, 0x01, 0x09, 0x04, 0x0C, 0x05, 0x0D,
- 0x10, 0x18, 0x11, 0x19, 0x14, 0x1C, 0x15, 0x1D,
- 0x02, 0x0A, 0x03, 0x0B, 0x06, 0x0E, 0x07, 0x0F,
- 0x12, 0x1A, 0x13, 0x1B, 0x16, 0x1E, 0x17, 0x1F,
- 0x20, 0x28, 0x21, 0x29, 0x24, 0x2C, 0x25, 0x2D,
- 0x30, 0x38, 0x31, 0x39, 0x34, 0x3C, 0x35, 0x3D,
- 0x22, 0x2A, 0x23, 0x2B, 0x26, 0x2E, 0x27, 0x2F,
- 0x32, 0x3A, 0x33, 0x3B, 0x36, 0x3E, 0x37, 0x3F,
-};
-
- return table[j];
-}
-#elif defined (SIMPLE_IDCT)
-static inline int block_permute_op(int j)
-{
- return j;
-}
-#else
static inline int block_permute_op(int j)
{
- return (j & 0x38) | ((j & 6) >> 1) | ((j & 1) << 2);
+ return permutation[j];
}
-#endif
void block_permute(INT16 *block);
#if defined(ARCH_X86)
+#define HAVE_MMX
+#endif
-#define HAVE_MMX 1
+#if defined(HAVE_MMX)
-#include "xineutils.h"
+#if 0
+#define MM_MMX 0x0001 /* standard MMX */
+#define MM_3DNOW 0x0004 /* AMD 3DNOW */
+#define MM_MMXEXT 0x0002 /* SSE integer functions or AMD MMX ext */
+#define MM_SSE 0x0008 /* SSE functions */
+#define MM_SSE2 0x0010 /* PIV SSE2 functions */
+#endif
extern int mm_flags;
-#define mm_support() xine_mm_accel()
+int mm_support(void);
#if 0
static inline void emms(void)
@@ -143,6 +140,13 @@ void dsputil_init_armv4l(void);
void dsputil_init_mlib(void);
+#elif defined(ARCH_ALPHA)
+
+#define emms_c()
+#define __align8 __attribute__ ((aligned (8)))
+
+void dsputil_init_alpha(void);
+
#else
#define emms_c()
@@ -151,4 +155,9 @@ void dsputil_init_mlib(void);
#endif
+/* PSNR */
+void get_psnr(UINT8 *orig_image[3], UINT8 *coded_image[3],
+ int orig_linesize[3], int coded_linesize,
+ AVCodecContext *avctx);
+
#endif