]> git.sesse.net Git - vlc/blobdiff - include/vlc_common.h
* src/stream_output/stream_output.c: fixed segfault when muxer can't add an elementar...
[vlc] / include / vlc_common.h
index b3047466576aa7dfa9b02aae1a7b5084d0bc84b1..1cf3b49c5ace5023a187829c63c06545fd16123b 100644 (file)
@@ -3,7 +3,7 @@
  * Collection of useful common types and macros definitions
  *****************************************************************************
  * Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: vlc_common.h,v 1.61 2003/04/14 22:22:32 massiot Exp $
+ * $Id: vlc_common.h,v 1.68 2003/07/14 20:36:55 sigmunau Exp $
  *
  * Authors: Samuel Hocevar <sam@via.ecp.fr>
  *          Vincent Seguin <seguin@via.ecp.fr>
@@ -243,6 +243,8 @@ typedef struct picture_heap_t picture_heap_t;
 typedef struct subpicture_t subpicture_t;
 typedef struct subpicture_sys_t subpicture_sys_t;
 typedef struct vout_synchro_t vout_synchro_t;
+typedef struct text_renderer_sys_t text_renderer_sys_t;
+typedef struct text_style_t text_style_t;
 
 /* Stream output */
 typedef struct sout_instance_t sout_instance_t;
@@ -255,6 +257,7 @@ typedef struct sout_mux_t sout_mux_t;
 typedef struct sout_stream_t    sout_stream_t;
 typedef struct sout_cfg_t       sout_cfg_t;
 typedef struct sout_format_t    sout_format_t;
+typedef struct sap_session_t    sap_session_t;
 /* Decoders */
 typedef struct decoder_fifo_t decoder_fifo_t;
 
@@ -304,6 +307,10 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
 
 /* VLC_COMMON_MEMBERS : members common to all basic vlc objects */
 #define VLC_COMMON_MEMBERS                                                  \
+/** \name VLC_COMMON_MEMBERS                                                \
+ * these members are common for all vlc objects                             \
+ */                                                                         \
+/**@{*/                                                                     \
     int   i_object_id;                                                      \
     int   i_object_type;                                                    \
     char *psz_object_type;                                                  \
@@ -318,10 +325,10 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
     vlc_cond_t   object_wait;                                               \
                                                                             \
     /* Object properties */                                                 \
-    volatile vlc_bool_t b_error;                    /* set by the object */ \
-    volatile vlc_bool_t b_die;                     /* set by the outside */ \
-    volatile vlc_bool_t b_dead;                     /* set by the object */ \
-    volatile vlc_bool_t b_attached;                 /* set by the object */ \
+    volatile vlc_bool_t b_error;                  /**< set by the object */ \
+    volatile vlc_bool_t b_die;                   /**< set by the outside */ \
+    volatile vlc_bool_t b_dead;                   /**< set by the object */ \
+    volatile vlc_bool_t b_attached;               /**< set by the object */ \
                                                                             \
     /* Object variables */                                                  \
     vlc_mutex_t     var_lock;                                               \
@@ -329,19 +336,20 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
     variable_t *    p_vars;                                                 \
                                                                             \
     /* Stuff related to the libvlc structure */                             \
-    libvlc_t *      p_libvlc;                        /* root of all evil */ \
-    vlc_t *         p_vlc;                     /* (root of all evil) - 1 */ \
+    libvlc_t *      p_libvlc;                      /**< root of all evil */ \
+    vlc_t *         p_vlc;                   /**< (root of all evil) - 1 */ \
                                                                             \
-    volatile int    i_refcount;                           /* usage count */ \
-    vlc_object_t *  p_parent;                              /* our parent */ \
-    vlc_object_t ** pp_children;                         /* our children */ \
+    volatile int    i_refcount;                         /**< usage count */ \
+    vlc_object_t *  p_parent;                            /**< our parent */ \
+    vlc_object_t ** pp_children;                       /**< our children */ \
     volatile int    i_children;                                             \
                                                                             \
     /* Private data */                                                      \
     void *          p_private;                                              \
                                                                             \
-    /* Just a reminder so that people don't cast garbage */                 \
+    /** Just a reminder so that people don't cast garbage */                \
     int be_sure_to_add_VLC_COMMON_MEMBERS_to_struct;                        \
+/**@}*/                                                                     \
 
 /* VLC_OBJECT: attempt at doing a clever cast */
 #define VLC_OBJECT( x ) \
@@ -384,9 +392,12 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
         {                                                                     \
             (p_ar) = malloc( ((i_oldsize) + 1) * sizeof( *(p_ar) ) );         \
         }                                                                     \
-        memmove( (p_ar) + (i_pos) + 1,                                        \
-                 (p_ar) + (i_pos),                                            \
-                 ((i_oldsize) - (i_pos)) * sizeof( *(p_ar) ) );               \
+        if( (i_oldsize) - (i_pos) )                                           \
+        {                                                                     \
+            memmove( (p_ar) + (i_pos) + 1,                                    \
+                     (p_ar) + (i_pos),                                        \
+                     ((i_oldsize) - (i_pos)) * sizeof( *(p_ar) ) );           \
+        }                                                                     \
         (p_ar)[i_pos] = elem;                                                 \
         (i_oldsize)++;                                                        \
     }                                                                         \
@@ -395,9 +406,12 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
 #define REMOVE_ELEM( p_ar, i_oldsize, i_pos )                                 \
     do                                                                        \
     {                                                                         \
-        memmove( (p_ar) + (i_pos),                                            \
-                 (p_ar) + (i_pos) + 1,                                        \
-                 ((i_oldsize) - (i_pos) - 1) * sizeof( *(p_ar) ) );           \
+        if( (i_oldsize) - (i_pos) - 1 )                                       \
+        {                                                                     \
+            memmove( (p_ar) + (i_pos),                                        \
+                     (p_ar) + (i_pos) + 1,                                    \
+                     ((i_oldsize) - (i_pos) - 1) * sizeof( *(p_ar) ) );       \
+        }                                                                     \
         if( i_oldsize > 1 )                                                   \
         {                                                                     \
             (p_ar) = realloc( p_ar, ((i_oldsize) - 1) * sizeof( *(p_ar) ) );  \
@@ -531,7 +545,9 @@ static inline uint64_t U64_AT( void * _p )
 #ifndef HAVE_STRCASECMP
 #   ifdef HAVE_STRICMP
 #       define strcasecmp stricmp
-#       define vlc_strcasecmp NULL
+#       if !defined(__PLUGIN__)
+#           define vlc_strcasecmp NULL
+#       endif
 #   elif !defined(__PLUGIN__)
 #       define strcasecmp vlc_strcasecmp
         VLC_EXPORT( int, vlc_strcasecmp, ( const char *s1, const char *s2 ) );
@@ -543,7 +559,9 @@ static inline uint64_t U64_AT( void * _p )
 #ifndef HAVE_STRNCASECMP
 #   ifdef HAVE_STRNICMP
 #       define strncasecmp strnicmp
-#       define vlc_strncasecmp NULL
+#       if !defined(__PLUGIN__)
+#           define vlc_strncasecmp NULL
+#       endif
 #   elif !defined(__PLUGIN__)
 #       define strncasecmp vlc_strncasecmp
         VLC_EXPORT( int, vlc_strncasecmp, ( const char *s1, const char *s2, size_t n ) );
@@ -552,8 +570,6 @@ static inline uint64_t U64_AT( void * _p )
 #   define vlc_strncasecmp NULL
 #endif
 
-VLC_EXPORT( char *, vlc_wraptext, ( char *psz_text, size_t i_line ) );
-
 /* Format type specifiers for 64 bits numbers */
 #if !defined(WIN32) && !defined(UNDER_CE)
 #   define I64Fd "%lld"
@@ -572,7 +588,7 @@ VLC_EXPORT( char *, vlc_wraptext, ( char *psz_text, size_t i_line ) );
 #endif /* defined(WIN32)||defined(UNDER_CE) */
 
 /* 64 bits integer constant suffix */
-#if !defined(WIN32) && !defined(UNDER_CE)
+#if defined( __MINGW32__ ) || (!defined(WIN32) && !defined(UNDER_CE))
 #   define I64C(x)         x##LL
 #else
 #   define I64C(x)         x##i64
@@ -667,8 +683,12 @@ VLC_EXPORT( char *, vlc_dgettext, ( const char *package, const char *msgid ) );
      (defined(MODULE_NAME_IS_gnome)||defined(MODULE_NAME_IS_gnome_main)||\
       defined(MODULE_NAME_IS_gnome2)||defined(MODULE_NAME_IS_gnome2_main))
     /* Declare nothing: gnome.h will do it for us */
-#elif defined( ENABLE_NLS ) && defined( HAVE_INCLUDED_GETTEXT )
+#elif defined( ENABLE_NLS )
+#if defined( HAVE_INCLUDED_GETTEXT )
 #   include "libintl.h"
+#else
+#   include <libintl.h>
+#endif
 #   undef _
 #if defined( __BORLANDC__ )
 #define _(String) vlc_dgettext (PACKAGE_TARNAME, String)
@@ -676,11 +696,6 @@ VLC_EXPORT( char *, vlc_dgettext, ( const char *package, const char *msgid ) );
 #   define _(String) vlc_dgettext (PACKAGE, String)
 #endif
 #   define N_(String) ((char*)(String))
-#elif defined( ENABLE_NLS ) && defined( HAVE_GETTEXT )
-#   include <libintl.h>
-#   undef _
-#   define _(String) dgettext (PACKAGE, String)
-#   define N_(String) ((char*)(String))
 #else
 #   define _(String) ((char*)(String))
 #   define N_(String) ((char*)(String))