]> git.sesse.net Git - vlc/blobdiff - include/common.h
- Do not resample if delta is short enough
[vlc] / include / common.h
index 453aa65e10d07b816299f8a447da79dd250387aa..ab36323d14f6fcbe7f6d15b2e0c7d481e22d642f 100644 (file)
@@ -3,7 +3,7 @@
  * Collection of useful common types and macros definitions
  *****************************************************************************
  * Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: common.h,v 1.26 2001/01/18 17:40:06 massiot Exp $
+ * $Id: common.h,v 1.44 2001/10/31 11:55:53 reno Exp $
  *
  * Authors: Samuel Hocevar <sam@via.ecp.fr>
  *          Vincent Seguin <seguin@via.ecp.fr>
@@ -39,6 +39,10 @@ typedef u8                  byte_t;
 /* Boolean type */
 #ifdef BOOLEAN_T_IN_SYS_TYPES_H
 #   include <sys/types.h>
+#elif defined(BOOLEAN_T_IN_PTHREAD_H)
+#   include <pthread.h>
+#elif defined(BOOLEAN_T_IN_CTHREADS_H)
+#   include <cthreads.h>
 #else
 typedef int                 boolean_t;
 #endif
@@ -62,11 +66,10 @@ typedef int                 ptrdiff_t;
 typedef unsigned long       count_t;
 
 /* DCT elements types */
-#ifndef VDEC_DFT
-typedef short dctelem_t;
-#else
-typedef int dctelem_t;
-#endif
+typedef s16                 dctelem_t;
+
+/* Video buffer types */
+typedef u8                  yuv_data_t;
 
 /*****************************************************************************
  * Classes declaration
@@ -79,10 +82,12 @@ struct plugin_info_s;
 typedef struct plugin_bank_s *          p_plugin_bank_t;
 typedef struct plugin_info_s *          p_plugin_info_t;
 
-/* Playlist */
+/* Plugins */
 struct playlist_s;
+struct playlist_item_s;
 
 typedef struct playlist_s *             p_playlist_t;
+typedef struct playlist_item_s *        p_playlist_item_t;
 
 /* Interface */
 struct intf_thread_s;
@@ -99,11 +104,11 @@ typedef struct intf_channel_s *         p_intf_channel_t;
 
 /* Input */
 struct input_thread_s;
-struct input_vlan_s;
+struct input_channel_s;
 struct input_cfg_s;
 
 typedef struct input_thread_s *         p_input_thread_t;
-typedef struct input_vlan_s *           p_input_vlan_t;
+typedef struct input_channel_s *        p_input_channel_t;
 typedef struct input_cfg_s *            p_input_cfg_t;
 
 /* Audio */
@@ -130,13 +135,17 @@ typedef struct video_parser_s *         p_video_parser_t;
 
 /* Misc */
 struct macroblock_s;
+struct data_packet_s;
+struct es_descriptor_s;
+struct pgrm_descriptor_s;
 
 /*****************************************************************************
  * Macros and inline functions
  *****************************************************************************/
-
 #ifdef NTOHL_IN_SYS_PARAM_H
 #   include <sys/param.h>
+#elif defined(WIN32)
+#   include <winsock.h>
 #else
 #   include <netinet/in.h>
 #endif
@@ -149,10 +158,10 @@ struct macroblock_s;
 
 /* MAX and MIN: self explanatory */
 #ifndef MAX
-#define MAX(a, b)   ( ((a) > (b)) ? (a) : (b) )
+#   define MAX(a, b)   ( ((a) > (b)) ? (a) : (b) )
 #endif
 #ifndef MIN
-#define MIN(a, b)   ( ((a) < (b)) ? (a) : (b) )
+#   define MIN(a, b)   ( ((a) < (b)) ? (a) : (b) )
 #endif
 
 /* MSB (big endian)/LSB (little endian) conversions - network order is always
@@ -163,19 +172,19 @@ struct macroblock_s;
 /* FIXME: hton64 should be declared as an extern inline function to avoid
  * border effects (see byteorder.h) */
 #if WORDS_BIGENDIAN
-#define hton16      htons
-#define hton32      htonl
-#define hton64(i)   ( i )
-#define ntoh16      ntohs
-#define ntoh32      ntohl
-#define ntoh64(i)   ( i )
+#   define hton16      htons
+#   define hton32      htonl
+#   define hton64(i)   ( i )
+#   define ntoh16      ntohs
+#   define ntoh32      ntohl
+#   define ntoh64(i)   ( i )
 #else
-#define hton16      htons
-#define hton32      htonl
-#define hton64(i)   ( ((u64)(htonl((i) & 0xffffffff)) << 32) | htonl(((i) >> 32) & 0xffffffff ) )
-#define ntoh16      ntohs
-#define ntoh32      ntohl
-#define ntoh64      hton64
+#   define hton16      htons
+#   define hton32      htonl
+#   define hton64(i)   ( ((u64)(htonl((i) & 0xffffffff)) << 32) | htonl(((i) >> 32) & 0xffffffff ) )
+#   define ntoh16      ntohs
+#   define ntoh32      ntohl
+#   define ntoh64      hton64
 #endif
 
 /* Macros with automatic casts */
@@ -183,3 +192,51 @@ struct macroblock_s;
 #define U32_AT(p)   ( ntoh32 ( *( (u32 *)(p) ) ) )
 #define U16_AT(p)   ( ntoh16 ( *( (u16 *)(p) ) ) )
 
+/* Alignment of critical static data structures */
+#ifdef ATTRIBUTE_ALIGNED_MAX
+#   define ATTR_ALIGN(align) __attribute__ ((__aligned__ ((ATTRIBUTE_ALIGNED_MAX < align) ? ATTRIBUTE_ALIGNED_MAX : align)))
+#else
+#   define ATTR_ALIGN(align)
+#endif
+
+/* Alignment of critical dynamic data structure */
+#ifdef HAVE_MEMALIGN
+    /* Some systems have memalign() but no declaration for it */
+    void * memalign( size_t align, size_t size );
+#else
+#   ifdef HAVE_VALLOC
+        /* That's like using a hammer to kill a fly, but eh... */
+#       include <unistd.h>
+#       define memalign(align,size) valloc(size)
+#   else
+        /* Assume malloc alignment is sufficient */
+#       define memalign(align,size) malloc(size)
+#   endif
+
+    
+#endif
+
+/* win32, cl and icl support */
+#if defined( _MSC_VER )
+#   define __attribute__(x)
+#   define __inline__      __inline
+#   define strncasecmp     strnicmp
+#   define strcasecmp      stricmp
+#   define S_ISBLK(m)      (0)
+#   define S_ISCHR(m)      (0)
+#   define S_ISFIFO(m)     (((m)&_S_IFMT) == _S_IFIFO)
+#   define S_ISREG(m)      (((m)&_S_IFMT) == _S_IFREG)
+#   define I64C(x)         x
+#else
+#   define I64C(x)         x##LL
+#endif
+
+#if defined( WIN32 )
+#   ifndef _OFF_T_DEFINED
+typedef __int64 off_t;
+#       define _OFF_T_DEFINED
+#   endif
+#   ifndef snprintf
+#       define snprintf _snprintf  /* snprintf not defined in mingw32 (bug?) */
+#   endif
+#endif