static void deinterlace_bob_yuv_mmx( uint8_t *pdst, uint8_t *psrc[],
int width, int height )
{
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
+#ifdef USE_MMX
int Line;
uint64_t *YVal1;
uint64_t *YVal2;
static int deinterlace_weave_yuv_mmx( uint8_t *pdst, uint8_t *psrc[],
int width, int height )
{
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
+#ifdef USE_MMX
int Line;
uint64_t *YVal1;
static int deinterlace_greedy_yuv_mmx( uint8_t *pdst, uint8_t *psrc[],
int width, int height )
{
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
+#ifdef USE_MMX
int Line;
int LoopCtr;
uint64_t *L1; // ptr to Line1, of 3
static void deinterlace_onefield_yuv_mmx( uint8_t *pdst, uint8_t *psrc[],
int width, int height )
{
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
+#ifdef USE_MMX
int Line;
uint64_t *YVal1;
uint64_t *YVal3;
static void deinterlace_linearblend_yuv_mmx( uint8_t *pdst, uint8_t *psrc[],
int width, int height )
{
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
+#ifdef USE_MMX
int Line;
uint64_t *YVal1;
uint64_t *YVal2;
static int check_for_mmx(void)
{
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
+#ifdef USE_MMX
static int config_flags = -1;
if ( config_flags == -1 )
deinterlace_linearblend_yuv(pdst,psrc,width,height);
break;
default:
- lprintf("unknow method %d.\n",method);
+ lprintf("unknown method %d.\n",method);
break;
}
}
}
char *deinterlace_methods[] = {
- "none",
+ "none",
"bob",
"weave",
"greedy",
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
//#ifdef HAVE_CONFIG_H
//#include "config.h"
//#endif
-
+
#include <stdio.h>
#include <string.h>
int xine_mutex_init (xine_mutex_t *mutex, const pthread_mutexattr_t *mutexattr,
char *id);
-
+
int xine_mutex_lock (xine_mutex_t *mutex, char *who);
int xine_mutex_unlock (xine_mutex_t *mutex, char *who);
int xine_mutex_destroy (xine_mutex_t *mutex);
* long constant values MUST be suffixed by LL and unsigned long long
* values by ULL, lest they be truncated by the compiler)
*/
-
+
/* generic accelerations */
#define MM_ACCEL_MLIB 0x00000001
uint32_t xine_mm_accel (void);
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
+#ifdef USE_MMX
typedef union {
int64_t q; /* Quadword (64-bit) value */
__asm__ __volatile__ ("ldmxcsr %0" \
: /* nothing */ \
: "X" (mem))
-#endif /*ARCH_X86 */
+#endif /* USE_MMX */
*/
void *xine_xmalloc_aligned(size_t alignment, size_t size, void **base);
-/*
+/*
* Get user home directory.
*/
const char *xine_get_homedir(void);
#else
static inline char *_private_strsep(char **stringp, const char *delim) {
char *begin, *end;
-
+
begin = *stringp;
if(begin == NULL)
return NULL;
-
+
if(delim[0] == '\0' || delim[1] == '\0') {
char ch = delim[0];
-
+
if(ch == '\0')
end = NULL;
else {
}
else
end = xine_strpbrk(begin, delim);
-
+
if(end) {
*end++ = '\0';
*stringp = end;
}
else
*stringp = NULL;
-
+
return begin;
}
#define xine_strsep _private_strsep
static inline void _private_setenv(const char *name, const char *val, int _xx) {
int len = strlen(name) + strlen(val) + 2;
char env[len];
-
+
sprintf(env, "%s%c%s", name, '=', val);
putenv(env);
}
/*
* Color Conversion Utility Functions
* The following data structures and functions facilitate the conversion
- * of RGB images to packed YUV (YUY2) images. There are also functions to
- * convert from YUV9 -> YV12. All of the meaty details are written in
+ * of RGB images to packed YUV (YUY2) images. There are also functions to
+ * convert from YUV9 -> YV12. All of the meaty details are written in
* color.c.
*/
unsigned char *v_src, int v_src_pitch, unsigned char *v_dest, int v_dest_pitch,
int width, int height);
extern void (*yv12_to_yuy2)
- (unsigned char *y_src, int y_src_pitch,
- unsigned char *u_src, int u_src_pitch,
- unsigned char *v_src, int v_src_pitch,
+ (unsigned char *y_src, int y_src_pitch,
+ unsigned char *u_src, int u_src_pitch,
+ unsigned char *v_src, int v_src_pitch,
unsigned char *yuy2_map, int yuy2_pitch,
int width, int height, int progressive);
extern void (*yuy2_to_yv12)
(unsigned char *yuy2_map, int yuy2_pitch,
- unsigned char *y_dst, int y_dst_pitch,
- unsigned char *u_dst, int u_dst_pitch,
- unsigned char *v_dst, int v_dst_pitch,
+ unsigned char *y_dst, int y_dst_pitch,
+ unsigned char *u_dst, int u_dst_pitch,
+ unsigned char *v_dst, int v_dst_pitch,
int width, int height);
#define SCALEFACTOR 65536
(unsigned char *src, int src_pitch,
unsigned char *dst, int dst_pitch,
int width, int height);
-
+
/* print a hexdump of the given data */
void xine_hexdump (const char *buf, int length);
# define EXPECT_TRUE(x) __builtin_expect((x),1)
# define EXPECT_FALSE(x) __builtin_expect((x),0)
#endif
-
+
#ifdef NDEBUG
#define _x_assert(exp) \
do { \
printf( "%s", fmtargs ); \
} \
}while(0)
-#else
+#else
#define llprintf(cat, ...) \
do{ \
if(cat){ \
xine_log(xine, XINE_LOG_TRACE, fmtargs); \
} \
} while(0)
-#else
+#else
#define xprintf(xine, verbose, ...) \
do { \
if((xine) && (xine)->verbosity >= verbose){ \
typedef struct xine_node_s {
struct xine_node_s *next, *prev;
-
+
void *content;
int priority;
-
+
} xine_node_t;