VLC 4.0.0-dev
vlc_common.h File Reference

This file is a collection of common definitions and types. More...

Include dependency graph for vlc_common.h:

Go to the source code of this file.

Data Structures

union  vlc_value_t
 VLC value structure. More...
 
struct  vlc_rational_t
 

Macros

#define VLC_GCC_VERSION(maj, min)   (0)
 GCC version check. More...
 
#define VLC_USED
 
#define VLC_MALLOC
 
#define VLC_DEPRECATED
 
#define VLC_DEPRECATED_ENUM
 Deprecated enum member annotation. More...
 
#define VLC_FORMAT(x, y)
 String format function annotation. More...
 
#define VLC_FORMAT_ARG(x)
 Format string translation function annotation. More...
 
#define VLC_WEAK
 Weak symbol annotation. More...
 
#define likely(p)   (!!(p))
 Predicted true condition. More...
 
#define unlikely(p)   (!!(p))
 Predicted false condition. More...
 
#define unreachable()   ((void)0)
 Impossible branch. More...
 
#define vlc_assert_unreachable()   (vlc_assert(!"unreachable"), unreachable())
 Impossible branch assertion. More...
 
#define vlc_assert(pred)   ((void)0)
 Run-time assertion. More...
 
#define VLC_EXTERN
 
#define VLC_EXPORT
 
#define VLC_API   VLC_EXTERN VLC_EXPORT
 Exported API call annotation. More...
 
#define VLC_FOURCC(a, b, c, d)
 
#define VLC_TWOCC(a, b)    ( (uint16_t)(a) | ( (uint16_t)(b) << 8 ) )
 
#define VLC_SUCCESS   0
 No error. More...
 
#define VLC_EGENERIC   (-2 * (1 << (sizeof (int) * 8 - 2))) /* INT_MIN */
 Unspecified error. More...
 
#define VLC_ENOMEM   (-ENOMEM)
 Not enough memory. More...
 
#define VLC_ETIMEOUT   (-ETIMEDOUT)
 Timeout. More...
 
#define VLC_ENOENT   (-ENOENT)
 Not found. More...
 
#define VLC_EINVAL   (-EINVAL)
 Bad variable value. More...
 
#define VLC_EACCES   (-EACCES)
 Operation forbidden. More...
 
#define VLC_ENOTSUP   (-ENOTSUP)
 Operation not supported. More...
 
#define VLC_CLIP(v, min, max)   __MIN(__MAX((v), (min)), (max))
 
#define VLC_INT_FUNC(basename)
 
#define VLC_INT_FUNC_TYPE(basename, type, suffix)
 
#define VLC_INT_GENERIC(func, x)
 
#define clz(x)
 Count leading zeroes. More...
 
#define ctz(x)   VLC_INT_GENERIC(vlc_ctz, x)
 Count trailing zeroes. More...
 
#define parity(x)   VLC_INT_GENERIC(vlc_parity, x)
 Parity. More...
 
#define vlc_popcount(x)
 Bit weight / population count. More...
 
#define add_overflow(a, b, r)
 Overflowing addition. More...
 
#define mul_overflow(a, b, r)
 Overflowing multiplication. More...
 
#define FREENULL(a)   do { free( a ); a = NULL; } while(0)
 
#define EMPTY_STR(str)   (!str || !*str)
 
#define ARRAY_SIZE(x)   (sizeof(x) / sizeof((x)[0]))
 
#define hton16(i)   vlc_bswap16(i)
 
#define hton32(i)   vlc_bswap32(i)
 
#define hton64(i)   vlc_bswap64(i)
 
#define ntoh16(i)   hton16(i)
 
#define ntoh32(i)   hton32(i)
 
#define ntoh64(i)   hton64(i)
 
#define GetWBE(p)   U16_AT(p)
 
#define GetDWBE(p)   U32_AT(p)
 
#define GetQWBE(p)   U64_AT(p)
 
#define VLC_UNUSED(x)   (void)(x)
 
#define container_of(ptr, type, member)    ((type *)(((char *)(ptr)) - offsetof(type, member)))
 
#define vlc_pgettext(ctx, id)    vlc_pgettext_aux( ctx "\004" id, id )
 
#define DIR_SEP_CHAR   '/'
 
#define DIR_SEP   "/"
 
#define PATH_SEP_CHAR   ':'
 
#define PATH_SEP   ":"
 
#define LICENSE_MSG
 
#define ARRAY_STATIC_SIZE   static
 

Typedefs

typedef uint32_t vlc_fourcc_t
 The vlc_fourcc_t type. More...
 
typedef struct vlc_object_t vlc_object_t
 
typedef struct libvlc_int_t libvlc_int_t
 
typedef struct date_t date_t
 
typedef struct services_discovery_t services_discovery_t
 
typedef struct vlc_renderer_discovery_t vlc_renderer_discovery_t
 
typedef struct vlc_renderer_item_t vlc_renderer_item_t
 
typedef struct module_t module_t
 
typedef struct module_config_t module_config_t
 
typedef struct config_category_t config_category_t
 
typedef struct input_item_t input_item_t
 
typedef struct input_item_node_t input_item_node_t
 
typedef struct input_source_t input_source_t
 
typedef struct stream_t stream_t
 
typedef struct stream_t demux_t
 
typedef struct es_out_t es_out_t
 
typedef struct es_out_id_t es_out_id_t
 
typedef struct seekpoint_t seekpoint_t
 
typedef struct info_t info_t
 
typedef struct info_category_t info_category_t
 
typedef struct input_attachment_t input_attachment_t
 
typedef struct audio_format_t audio_format_t
 
typedef struct video_format_t video_format_t
 
typedef struct subs_format_t subs_format_t
 
typedef struct es_format_t es_format_t
 
typedef struct video_palette_t video_palette_t
 
typedef struct vlc_es_id_t vlc_es_id_t
 
typedef struct audio_output audio_output_t
 
typedef audio_format_t audio_sample_format_t
 
typedef struct vout_thread_t vout_thread_t
 
typedef struct vlc_viewpoint_t vlc_viewpoint_t
 
typedef video_format_t video_frame_format_t
 
typedef struct picture_t picture_t
 
typedef struct spu_t spu_t
 
typedef struct subpicture_t subpicture_t
 
typedef struct subpicture_region_t subpicture_region_t
 
typedef struct image_handler_t image_handler_t
 
typedef struct sout_input_t sout_input_t
 
typedef struct sout_packetizer_input_t sout_packetizer_input_t
 
typedef struct sout_access_out_t sout_access_out_t
 
typedef struct sout_mux_t sout_mux_t
 
typedef struct sout_stream_t sout_stream_t
 
typedef struct config_chain_t config_chain_t
 
typedef struct session_descriptor_t session_descriptor_t
 
typedef struct decoder_t decoder_t
 
typedef struct encoder_t encoder_t
 
typedef struct filter_t filter_t
 
typedef struct vlc_url_t vlc_url_t
 
typedef struct iso639_lang_t iso639_lang_t
 
typedef struct vlc_frame_t block_t
 
typedef struct vlc_fifo_t vlc_fifo_t
 
typedef struct vlc_fifo_t block_fifo_t
 
typedef struct vlc_hash_md5_ctx vlc_hash_md5_t
 
typedef struct xml_t xml_t
 
typedef struct xml_reader_t xml_reader_t
 
typedef struct vod_t vod_t
 
typedef struct vod_media_t vod_media_t
 
typedef struct vlm_t vlm_t
 
typedef struct vlm_message_t vlm_message_t
 
typedef struct vlc_meta_t vlc_meta_t
 
typedef struct input_stats_t input_stats_t
 
typedef struct addon_entry_t addon_entry_t
 
typedef struct update_t update_t
 
typedef int(* vlc_callback_t) (vlc_object_t *, char const *, vlc_value_t, vlc_value_t, void *)
 
typedef int(* vlc_list_callback_t) (vlc_object_t *, char const *, int, vlc_value_t *, void *)
 

Functions

static void vlc_fourcc_to_char (vlc_fourcc_t fcc, char *psz_fourcc)
 Translate a vlc_fourcc into its string representation. More...
 
static size_t vlc_align (size_t v, size_t align)
 Make integer v a multiple of align. More...
 
static int64_t GCD (int64_t a, int64_t b)
 Greatest common divisor. More...
 
static uint8_t clip_uint8_vlc (int32_t a)
 
static int vlc_clzll (unsigned long long x)
 
static int vlc_clzl (unsigned long x)
 
static int vlc_clz (unsigned x)
 
static int vlc_ctz_generic (unsigned long long x)
 
static int vlc_parity_generic (unsigned long long x)
 
static int vlc_popcount_generic (unsigned long long x)
 
static int vlc_ctz (unsigned x)
 
static int vlc_ctzl (unsigned long x)
 
static int vlc_ctzll (unsigned long long x)
 
static int vlc_parity (unsigned x)
 
static int vlc_parityl (unsigned long x)
 
static int vlc_parityll (unsigned long long x)
 
static int vlc_popcount (unsigned x)
 
static int vlc_popcountl (unsigned long x)
 
static int vlc_popcountll (unsigned long long x)
 
static uint16_t vlc_bswap16 (uint16_t x)
 Byte swap (16 bits) More...
 
static uint32_t vlc_bswap32 (uint32_t x)
 Byte swap (32 bits) More...
 
static uint64_t vlc_bswap64 (uint64_t x)
 Byte swap (64 bits) More...
 
static bool uadd_overflow (unsigned a, unsigned b, unsigned *res)
 
static bool uaddl_overflow (unsigned long a, unsigned long b, unsigned long *res)
 
static bool uaddll_overflow (unsigned long long a, unsigned long long b, unsigned long long *res)
 
static bool umul_overflow (unsigned a, unsigned b, unsigned *res)
 
static bool umull_overflow (unsigned long a, unsigned long b, unsigned long *res)
 
static bool umulll_overflow (unsigned long long a, unsigned long long b, unsigned long long *res)
 
static uint16_t U16_AT (const void *p)
 Reads 16 bits in network byte order. More...
 
static uint32_t U32_AT (const void *p)
 Reads 32 bits in network byte order. More...
 
static uint64_t U64_AT (const void *p)
 Reads 64 bits in network byte order. More...
 
static uint16_t GetWLE (const void *p)
 Reads 16 bits in little-endian order. More...
 
static uint32_t GetDWLE (const void *p)
 Reads 32 bits in little-endian order. More...
 
static uint64_t GetQWLE (const void *p)
 Reads 64 bits in little-endian order. More...
 
static void SetWBE (void *p, uint16_t w)
 Writes 16 bits in network byte order. More...
 
static void SetDWBE (void *p, uint32_t dw)
 Writes 32 bits in network byte order. More...
 
static void SetQWBE (void *p, uint64_t qw)
 Writes 64 bits in network byte order. More...
 
static void SetWLE (void *p, uint16_t w)
 Writes 16 bits in little endian order. More...
 
static void SetDWLE (void *p, uint32_t dw)
 Writes 32 bits in little endian order. More...
 
static void SetQWLE (void *p, uint64_t qw)
 Writes 64 bits in little endian order. More...
 
bool vlc_ureduce (unsigned *, unsigned *, uint64_t, uint64_t, uint64_t)
 
static void * vlc_alloc (size_t count, size_t size)
 
static void * vlc_reallocarray (void *ptr, size_t count, size_t size)
 
const char * vlc_gettext (const char *msgid)
 In-tree plugins share their gettext domain with LibVLC. More...
 
const char * vlc_ngettext (const char *s, const char *p, unsigned long n)
 
static const char * vlc_pgettext_aux (const char *ctx, const char *id)
 
static void * xmalloc (size_t len)
 
static void * xrealloc (void *ptr, size_t len)
 
static char * xstrdup (const char *str)
 
const char * VLC_CompileBy (void)
 
const char * VLC_CompileHost (void)
 
const char * VLC_Compiler (void)
 

Detailed Description

This file is a collection of common definitions and types.

Macro Definition Documentation

◆ ARRAY_SIZE

#define ARRAY_SIZE (   x)    (sizeof(x) / sizeof((x)[0]))

◆ ARRAY_STATIC_SIZE

#define ARRAY_STATIC_SIZE   static

◆ container_of

#define container_of (   ptr,
  type,
  member 
)     ((type *)(((char *)(ptr)) - offsetof(type, member)))

◆ DIR_SEP

#define DIR_SEP   "/"

◆ DIR_SEP_CHAR

#define DIR_SEP_CHAR   '/'

◆ EMPTY_STR

#define EMPTY_STR (   str)    (!str || !*str)

◆ FREENULL

#define FREENULL (   a)    do { free( a ); a = NULL; } while(0)

◆ GetDWBE

#define GetDWBE (   p)    U32_AT(p)

◆ GetQWBE

#define GetQWBE (   p)    U64_AT(p)

◆ GetWBE

#define GetWBE (   p)    U16_AT(p)

◆ hton16

#define hton16 (   i)    vlc_bswap16(i)

◆ hton32

#define hton32 (   i)    vlc_bswap32(i)

◆ hton64

#define hton64 (   i)    vlc_bswap64(i)

◆ LICENSE_MSG

#define LICENSE_MSG
Value:
_("This program comes with NO WARRANTY, to the extent permitted by " \
"law.\nYou may redistribute it under the terms of the GNU General " \
"Public License;\nsee the file named COPYING for details.\n" \
"Written by the VideoLAN team; see the AUTHORS file.\n")
#define _(str)
Definition: vlc_fixups.h:449

◆ ntoh16

#define ntoh16 (   i)    hton16(i)

◆ ntoh32

#define ntoh32 (   i)    hton32(i)

◆ ntoh64

#define ntoh64 (   i)    hton64(i)

◆ PATH_SEP

#define PATH_SEP   ":"

◆ PATH_SEP_CHAR

#define PATH_SEP_CHAR   ':'

◆ VLC_FOURCC

#define VLC_FOURCC (   a,
  b,
  c,
 
)
Value:
( ((uint32_t)a) | ( ((uint32_t)b) << 8 ) \
| ( ((uint32_t)c) << 16 ) | ( ((uint32_t)d) << 24 ) )

◆ vlc_pgettext

#define vlc_pgettext (   ctx,
  id 
)     vlc_pgettext_aux( ctx "\004" id, id )

◆ VLC_TWOCC

#define VLC_TWOCC (   a,
 
)     ( (uint16_t)(a) | ( (uint16_t)(b) << 8 ) )

◆ VLC_UNUSED

#define VLC_UNUSED (   x)    (void)(x)

Typedef Documentation

◆ addon_entry_t

typedef struct addon_entry_t addon_entry_t

◆ audio_format_t

◆ audio_output_t

typedef struct audio_output audio_output_t

◆ audio_sample_format_t

◆ block_fifo_t

typedef struct vlc_fifo_t block_fifo_t

◆ block_t

typedef struct vlc_frame_t block_t

◆ config_category_t

◆ config_chain_t

◆ date_t

typedef struct date_t date_t

◆ decoder_t

typedef struct decoder_t decoder_t

◆ demux_t

typedef struct stream_t demux_t

◆ encoder_t

typedef struct encoder_t encoder_t

◆ es_format_t

typedef struct es_format_t es_format_t

◆ es_out_id_t

typedef struct es_out_id_t es_out_id_t

◆ es_out_t

typedef struct es_out_t es_out_t

◆ filter_t

typedef struct filter_t filter_t

◆ image_handler_t

◆ info_category_t

◆ info_t

typedef struct info_t info_t

◆ input_attachment_t

◆ input_item_node_t

◆ input_item_t

typedef struct input_item_t input_item_t

◆ input_source_t

◆ input_stats_t

typedef struct input_stats_t input_stats_t

◆ iso639_lang_t

typedef struct iso639_lang_t iso639_lang_t

◆ libvlc_int_t

typedef struct libvlc_int_t libvlc_int_t

◆ module_config_t

◆ module_t

typedef struct module_t module_t

◆ picture_t

typedef struct picture_t picture_t

◆ seekpoint_t

typedef struct seekpoint_t seekpoint_t

◆ services_discovery_t

◆ session_descriptor_t

◆ sout_access_out_t

◆ sout_input_t

typedef struct sout_input_t sout_input_t

◆ sout_mux_t

typedef struct sout_mux_t sout_mux_t

◆ sout_packetizer_input_t

◆ sout_stream_t

typedef struct sout_stream_t sout_stream_t

◆ spu_t

typedef struct spu_t spu_t

◆ stream_t

typedef struct stream_t stream_t

◆ subpicture_region_t

◆ subpicture_t

typedef struct subpicture_t subpicture_t

◆ subs_format_t

typedef struct subs_format_t subs_format_t

◆ update_t

typedef struct update_t update_t

◆ video_format_t

◆ video_frame_format_t

◆ video_palette_t

◆ vlc_callback_t

typedef int(* vlc_callback_t) (vlc_object_t *, char const *, vlc_value_t, vlc_value_t, void *)

◆ vlc_es_id_t

typedef struct vlc_es_id_t vlc_es_id_t

◆ vlc_fifo_t

typedef struct vlc_fifo_t vlc_fifo_t

◆ vlc_fourcc_t

typedef uint32_t vlc_fourcc_t

The vlc_fourcc_t type.

See http://www.webartz.com/fourcc/ for a very detailed list.

◆ vlc_hash_md5_t

◆ vlc_list_callback_t

typedef int(* vlc_list_callback_t) (vlc_object_t *, char const *, int, vlc_value_t *, void *)

◆ vlc_meta_t

typedef struct vlc_meta_t vlc_meta_t

◆ vlc_object_t

typedef struct vlc_object_t vlc_object_t

◆ vlc_renderer_discovery_t

◆ vlc_renderer_item_t

◆ vlc_url_t

typedef struct vlc_url_t vlc_url_t

◆ vlc_viewpoint_t

◆ vlm_message_t

typedef struct vlm_message_t vlm_message_t

◆ vlm_t

typedef struct vlm_t vlm_t

◆ vod_media_t

typedef struct vod_media_t vod_media_t

◆ vod_t

typedef struct vod_t vod_t

◆ vout_thread_t

typedef struct vout_thread_t vout_thread_t

◆ xml_reader_t

typedef struct xml_reader_t xml_reader_t

◆ xml_t

typedef struct xml_t xml_t

Function Documentation

◆ GetDWLE()

static uint32_t GetDWLE ( const void *  p)
inlinestatic

Reads 32 bits in little-endian order.

References p, and vlc_bswap32().

◆ GetQWLE()

static uint64_t GetQWLE ( const void *  p)
inlinestatic

Reads 64 bits in little-endian order.

References p, and vlc_bswap64().

◆ GetWLE()

static uint16_t GetWLE ( const void *  p)
inlinestatic

Reads 16 bits in little-endian order.

References p, and vlc_bswap16().

◆ SetDWBE()

static void SetDWBE ( void *  p,
uint32_t  dw 
)
inlinestatic

◆ SetDWLE()

static void SetDWLE ( void *  p,
uint32_t  dw 
)
inlinestatic

Writes 32 bits in little endian order.

References p, and vlc_bswap32().

◆ SetQWBE()

static void SetQWBE ( void *  p,
uint64_t  qw 
)
inlinestatic

Writes 64 bits in network byte order.

References hton64, and p.

◆ SetQWLE()

static void SetQWLE ( void *  p,
uint64_t  qw 
)
inlinestatic

Writes 64 bits in little endian order.

References p, and vlc_bswap64().

◆ SetWBE()

static void SetWBE ( void *  p,
uint16_t  w 
)
inlinestatic

Writes 16 bits in network byte order.

References hton16, and p.

Referenced by SocksHandshakeTCP(), vlc_h2_frame_settings(), and xiph_decode().

◆ SetWLE()

static void SetWLE ( void *  p,
uint16_t  w 
)
inlinestatic

Writes 16 bits in little endian order.

References p, and vlc_bswap16().

◆ U16_AT()

static uint16_t U16_AT ( const void *  p)
inlinestatic

Reads 16 bits in network byte order.

References ntoh16, and p.

Referenced by vlc_stream_ReadLine().

◆ U32_AT()

static uint32_t U32_AT ( const void *  p)
inlinestatic

Reads 32 bits in network byte order.

References ntoh32, and p.

Referenced by parse_signature_v4_packet().

◆ U64_AT()

static uint64_t U64_AT ( const void *  p)
inlinestatic

Reads 64 bits in network byte order.

References ntoh64, and p.

◆ vlc_alloc()

◆ VLC_CompileBy()

const char * VLC_CompileBy ( void  )

Referenced by Version().

◆ VLC_CompileHost()

const char * VLC_CompileHost ( void  )

Referenced by Version().

◆ VLC_Compiler()

const char * VLC_Compiler ( void  )

Referenced by Version().

◆ vlc_fourcc_to_char()

static void vlc_fourcc_to_char ( vlc_fourcc_t  fcc,
char *  psz_fourcc 
)
inlinestatic

Translate a vlc_fourcc into its string representation.

This function assumes there is enough room in psz_fourcc to store 4 characters in.

Parameters
fcca vlc_fourcc_t
psz_fourccstring to store string representation of vlc_fourcc in

◆ vlc_gettext()

◆ vlc_ngettext()

const char * vlc_ngettext ( const char *  s,
const char *  p,
unsigned long  n 
)

References likely.

◆ vlc_pgettext_aux()

static const char * vlc_pgettext_aux ( const char *  ctx,
const char *  id 
)
inlinestatic

References vlc_gettext().

◆ vlc_reallocarray()

static void * vlc_reallocarray ( void *  ptr,
size_t  count,
size_t  size 
)
inlinestatic

◆ vlc_ureduce()

◆ xmalloc()

◆ xrealloc()

static void * xrealloc ( void *  ptr,
size_t  len 
)
inlinestatic

◆ xstrdup()

static char * xstrdup ( const char *  str)
inlinestatic