]> git.sesse.net Git - vlc/blobdiff - include/vlc_common.h
taglib: support for id3v2 embedded album art
[vlc] / include / vlc_common.h
index 55eceee91896cd325fccae400829b6059de38291..81c11928665946ea72c8cce1be2d410c46fcf949 100644 (file)
@@ -64,7 +64,7 @@
 #include <stdlib.h>
 #include <stdarg.h>
 
-#include <string.h>                                         /* strerror() */
+#include <string.h>
 #include <stdio.h>
 
 #ifdef HAVE_SYS_TYPES_H
@@ -281,6 +281,7 @@ typedef struct access_sys_t access_sys_t;
 typedef struct stream_t     stream_t;
 typedef struct stream_sys_t stream_sys_t;
 typedef struct demux_t  demux_t;
+typedef struct demux_meta_t demux_meta_t;
 typedef struct demux_sys_t demux_sys_t;
 typedef struct es_out_t     es_out_t;
 typedef struct es_out_id_t  es_out_id_t;
@@ -411,7 +412,6 @@ typedef struct httpd_redirect_t httpd_redirect_t;
 typedef struct httpd_stream_t httpd_stream_t;
 
 /* TLS support */
-typedef struct tls_t tls_t;
 typedef struct tls_server_t tls_server_t;
 typedef struct tls_session_t tls_session_t;
 
@@ -490,13 +490,13 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
 
 #if defined (WIN32) && defined (DLL_EXPORT)
 #  ifdef __cplusplus
-#    define VLC_PUBLIC_API __declspec(dllexport) 
-#    define VLC_PRIVATE_API __declspec(dllexport) 
+#    define VLC_PUBLIC_API __declspec(dllexport)
+#    define VLC_PRIVATE_API __declspec(dllexport)
 #    define   VLC_EXPORT( type, name, args ) extern "C" __declspec(dllexport) type name args
 #    define VLC_INTERNAL( type, name, args ) extern "C" type name args
 #  else
-#    define VLC_PUBLIC_API extern __declspec(dllexport) 
-#    define VLC_PRIVATE_API extern __declspec(dllexport) 
+#    define VLC_PUBLIC_API extern __declspec(dllexport)
+#    define VLC_PRIVATE_API extern __declspec(dllexport)
 #    define   VLC_EXPORT( type, name, args ) __declspec(dllexport) type name args
 #    define VLC_INTERNAL( type, name, args ) type name args
 #  endif
@@ -519,7 +519,7 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
 #      define   VLC_EXPORT( type, name, args ) __attribute__((visibility("default"))) type name args
 #      define VLC_INTERNAL( type, name, args ) __attribute__((visibility("hidden"))) type name args
 #    else
-#      define VLC_PUBLIC_API extern 
+#      define VLC_PUBLIC_API extern
 #      define VLC_PRIVATE_API extern
 #      define   VLC_EXPORT( type, name, args ) type name args
 #      define VLC_INTERNAL( type, name, args ) type name args
@@ -577,7 +577,6 @@ typedef struct vlc_object_internals_t vlc_object_internals_t;
     /* Stuff related to the libvlc structure */                             \
     libvlc_int_t *p_libvlc;                  /**< (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_children;                                             \
@@ -670,23 +669,22 @@ static inline uint8_t clip_uint8_vlc( int32_t a )
 }
 
 /* Malloc with automatic error */
-#define MALLOC_VOID( var, type ) { var = (type*)malloc( sizeof( type) ); \
-                                   if( !var ) return; }
-#define MALLOC_NULL( var, type ) { var = (type*)malloc( sizeof( type) ); \
-                                   if( !var ) return NULL; }
-#define MALLOC_ERR( var, type ) { var = (type*)malloc( sizeof( type) ); \
-                                   if( !var ) return VLC_ENOMEM; }
-#define MALLOC_GOTOERR( var, type ) { var = (type*)malloc( sizeof( type) ); \
-                                      if( !var ) goto error; }
+#define MALLOC_VOID( var, type ) do { var = (type*)malloc( sizeof( type) ); \
+                                   if( !var ) return; } while(0)
+#define MALLOC_NULL( var, type ) do { var = (type*)malloc( sizeof( type) ); \
+                                   if( !var ) return NULL; } while(0)
+#define MALLOC_ERR( var, type ) do { var = (type*)malloc( sizeof( type) ); \
+                                   if( !var ) return VLC_ENOMEM; } while(0)
+#define MALLOC_GOTOERR( var, type ) do { var = (type*)malloc( sizeof( type) ); \
+                                      if( !var ) goto error; } while(0)
 #define DECMALLOC_VOID( var, type ) type* var = (type*)malloc( sizeof(type) );\
                                     if( !var ) return;
-#define DECMALLOC_ERR( var, type ) type* var = (type*)malloc( sizeof(type) );\
+#define DECMALLOC_ERR( var, type )  type* var = (type*)malloc( sizeof(type) );\
                                     if( !var ) return VLC_ENOMEM;
 #define DECMALLOC_NULL( var, type ) type* var = (type*)malloc( sizeof(type) );\
                                     if( !var ) return NULL;
 
-#define FREENULL(a) if( a ) { free( a ); a = NULL; }
-#define FREE(a) if( a ) { free( a ); }
+#define FREENULL(a) do { free( a ); a = NULL; } while(0)
 
 #define EMPTY_STR(str) (!str || !*str)
 
@@ -816,6 +814,9 @@ static inline void _SetQWBE( uint8_t *p, uint64_t i_qw )
 #   define ATTR_ALIGN(align)
 #endif
 
+/* */
+#define VLC_UNUSED(x) (void)(x)
+
 /* Alignment of critical dynamic data structure
  *
  * Not all platforms support memalign so we provide a vlc_memalign wrapper
@@ -861,7 +862,7 @@ static inline void _SetQWBE( uint8_t *p, uint64_t i_qw )
 
 #if !defined(HAVE_ASPRINTF) || defined(__APPLE__) || defined(SYS_BEOS)
 #   define asprintf vlc_asprintf
-    VLC_EXPORT( int, vlc_asprintf, (char **, const char *, ... ) );
+    VLC_EXPORT( int, vlc_asprintf, (char **, const char *, ... ) ATTRIBUTE_FORMAT( 2, 3 ) );
 #elif !defined(__PLUGIN__)
 #   define vlc_asprintf NULL
 #endif
@@ -1226,8 +1227,8 @@ VLC_EXPORT( const char *, VLC_Changeset, ( void ) );
 #include "vlc_messages.h"
 #include "vlc_variables.h"
 #include "vlc_objects.h"
-#include "vlc_threads_funcs.h"
 #include "vlc_mtime.h"
+#include "vlc_threads_funcs.h"
 #include "vlc_modules.h"
 #include "main.h"
 #include "vlc_configuration.h"