Go to the documentation of this file.
28 # define VLC_COMMON_H 1
67 # define VLC_GCC_VERSION(maj,min) \
68 ((__GNUC__ > (maj)) || (__GNUC__ == (maj) && __GNUC_MINOR__ >= (min)))
71 # define VLC_GCC_VERSION(maj,min) (0)
75 #if defined( _WIN32 ) && defined( __USE_MINGW_ANSI_STDIO )
86 #define snprintf __mingw_snprintf
87 #define vsnprintf __mingw_vsnprintf
88 #define swprintf _snwprintf
93 # define VLC_DEPRECATED __attribute__((deprecated))
94 # if VLC_GCC_VERSION(6,0)
95 # define VLC_DEPRECATED_ENUM __attribute__((deprecated))
97 # define VLC_DEPRECATED_ENUM
100 # if defined( _WIN32 ) && !defined( __clang__ )
101 # define VLC_FORMAT(x,y) __attribute__ ((format(gnu_printf,x,y)))
103 # define VLC_FORMAT(x,y) __attribute__ ((format(printf,x,y)))
105 # define VLC_FORMAT_ARG(x) __attribute__ ((format_arg(x)))
106 # define VLC_MALLOC __attribute__ ((malloc))
107 # define VLC_USED __attribute__ ((warn_unused_result))
119 # define VLC_DEPRECATED
129 # define VLC_DEPRECATED_ENUM
141 # define VLC_FORMAT(x,y)
152 # define VLC_FORMAT_ARG(x)
188 #if defined (__ELF__) || defined (__MACH__)
189 # define VLC_WEAK __attribute__((weak))
202 #if defined (__GNUC__) || defined (__clang__)
203 # define likely(p) __builtin_expect(!!(p), 1)
204 # define unlikely(p) __builtin_expect(!!(p), 0)
205 # define unreachable() __builtin_unreachable()
206 #elif defined(_MSC_VER)
207 # define likely(p) (!!(p))
208 # define unlikely(p) (!!(p))
209 # define unreachable() (__assume(0))
218 # define likely(p) (!!(p))
227 # define unlikely(p) (!!(p))
239 # define unreachable() ((void)0)
253 #define vlc_assert_unreachable() (vlc_assert(!"unreachable"), unreachable())
269 # define vlc_assert(pred) assert(pred)
271 # define vlc_assert(pred) ((void)0)
276 # define VLC_EXTERN extern "C"
281 #if defined (_WIN32) && defined (DLL_EXPORT)
282 # define VLC_EXPORT __declspec(dllexport)
283 #elif defined (__GNUC__)
284 # define VLC_EXPORT __attribute__((visibility("default")))
295 #define VLC_API VLC_EXTERN VLC_EXPORT
309 #ifdef WORDS_BIGENDIAN
310 # define VLC_FOURCC( a, b, c, d ) \
311 ( ((uint32_t)d) | ( ((uint32_t)c) << 8 ) \
312 | ( ((uint32_t)b) << 16 ) | ( ((uint32_t)a) << 24 ) )
313 # define VLC_TWOCC( a, b ) \
314 ( (uint16_t)(b) | ( (uint16_t)(a) << 8 ) )
317 # define VLC_FOURCC( a, b, c, d ) \
318 ( ((uint32_t)a) | ( ((uint32_t)b) << 8 ) \
319 | ( ((uint32_t)c) << 16 ) | ( ((uint32_t)d) << 24 ) )
320 # define VLC_TWOCC( a, b ) \
321 ( (uint16_t)(a) | ( (uint16_t)(b) << 8 ) )
334 memcpy( psz_fourcc, &fcc, 4 );
464 struct { int32_t x; int32_t
y; } coords;
472 #define VLC_SUCCESS (-0)
474 #define VLC_EGENERIC (-1)
476 #define VLC_ENOMEM (-2)
478 #define VLC_ETIMEOUT (-3)
480 #define VLC_ENOMOD (-4)
482 #define VLC_ENOOBJ (-5)
484 #define VLC_ENOVAR (-6)
486 #define VLC_EBADVAR (-7)
488 #define VLC_ENOITEM (-8)
511 #if defined( _WIN32 )
514 # define PATH_MAX MAX_PATH
516 # include <windows.h>
520 #include <sys/syslimits.h>
521 #include <AvailabilityMacros.h>
525 # define OS2EMX_PLAIN_CHAR
528 # include <os2safe.h>
544 # define __MAX(a, b) ( ((a) > (b)) ? (a) : (b) )
547 # define __MIN(a, b) ( ((a) < (b)) ? (a) : (b) )
551 #define VLC_CLIP(v, min, max) __MIN(__MAX((v), (min)), (max))
561 return (v + (align - 1)) & ~(align - 1);
564 #if defined(__clang__) && __has_attribute(diagnose_if)
565 static inline size_t vlc_align(
size_t v,
size_t align)
566 __attribute__((diagnose_if(((align & (align - 1)) || (align == 0)),
567 "align must be power of 2",
"error")));
572 static inline int64_t
GCD ( int64_t a, int64_t b )
587 if( a&(~255) )
return (-a)>>31;
596 #define VLC_INT_FUNC(basename) \
597 VLC_INT_FUNC_TYPE(basename, unsigned, ) \
598 VLC_INT_FUNC_TYPE(basename, unsigned long, l) \
599 VLC_INT_FUNC_TYPE(basename, unsigned long long, ll)
601 #if defined (__GNUC__) || defined (__clang__)
602 # define VLC_INT_FUNC_TYPE(basename,type,suffix) \
603 VLC_USED static inline int vlc_##basename##suffix(type x) \
605 return __builtin_##basename##suffix(x); \
612 int i =
sizeof (x) * 8;
624 return vlc_clzll(x) - ((
sizeof (
long long) -
sizeof (
long)) * 8);
629 return vlc_clzll(x) - ((
sizeof (
long long) -
sizeof (
int)) * 8);
634 unsigned i =
sizeof (x) * 8;
646 for (
unsigned i = 4 *
sizeof (x); i > 0; i /= 2)
662 # define VLC_INT_FUNC_TYPE(basename,type,suffix) \
663 VLC_USED static inline int vlc_##basename##suffix(type x) \
665 return vlc_##basename##_generic(x); \
674 # define VLC_INT_GENERIC(func,x) \
676 unsigned char: func(x), \
677 signed char: func(x), \
678 unsigned short: func(x), \
679 signed short: func(x), \
680 unsigned int: func(x), \
681 signed int: func(x), \
682 unsigned long: func##l(x), \
683 signed long: func##l(x), \
684 unsigned long long: func##ll(x), \
685 signed long long: func##ll(x))
700 unsigned char: (vlc_clz(x) - (sizeof (unsigned) - 1) * 8), \
701 unsigned short: (vlc_clz(x) \
702 - (sizeof (unsigned) - sizeof (unsigned short)) * 8), \
703 unsigned: vlc_clz(x), \
704 unsigned long: vlc_clzl(x), \
705 unsigned long long: vlc_clzll(x))
717 # define ctz(x) VLC_INT_GENERIC(vlc_ctz, x)
726 # define parity(x) VLC_INT_GENERIC(vlc_parity, x)
735 # define vlc_popcount(x) \
737 signed char: vlc_popcount((unsigned char)(x)), \
738 signed short: vlc_popcount((unsigned short)(x)), \
739 default: VLC_INT_GENERIC(vlc_popcount ,x))
766 return (x << 8) | (x >> 8);
773 #if defined (__GNUC__) || defined(__clang__)
774 return __builtin_bswap32 (x);
776 return ((x & 0x000000FF) << 24)
777 | ((x & 0x0000FF00) << 8)
778 | ((x & 0x00FF0000) >> 8)
779 | ((x & 0xFF000000) >> 24);
787 #if defined (__GNUC__) || defined(__clang__)
788 return __builtin_bswap64 (x);
789 #elif !defined (__cplusplus)
790 return ((x & 0x00000000000000FF) << 56)
791 | ((x & 0x000000000000FF00) << 40)
792 | ((x & 0x0000000000FF0000) << 24)
793 | ((x & 0x00000000FF000000) << 8)
794 | ((x & 0x000000FF00000000) >> 8)
795 | ((x & 0x0000FF0000000000) >> 24)
796 | ((x & 0x00FF000000000000) >> 40)
797 | ((x & 0xFF00000000000000) >> 56);
799 return ((x & 0x00000000000000FFULL) << 56)
800 | ((x & 0x000000000000FF00ULL) << 40)
801 | ((x & 0x0000000000FF0000ULL) << 24)
802 | ((x & 0x00000000FF000000ULL) << 8)
803 | ((x & 0x000000FF00000000ULL) >> 8)
804 | ((x & 0x0000FF0000000000ULL) >> 24)
805 | ((x & 0x00FF000000000000ULL) >> 40)
806 | ((x & 0xFF00000000000000ULL) >> 56);
815 static inline bool uadd_overflow(
unsigned a,
unsigned b,
unsigned *res)
817 #if VLC_GCC_VERSION(5,0) || defined(__clang__)
818 return __builtin_uadd_overflow(a, b, res);
825 static inline bool uaddl_overflow(
unsigned long a,
unsigned long b,
828 #if VLC_GCC_VERSION(5,0) || defined(__clang__)
829 return __builtin_uaddl_overflow(a, b, res);
836 static inline bool uaddll_overflow(
unsigned long long a,
unsigned long long b,
837 unsigned long long *res)
839 #if VLC_GCC_VERSION(5,0) || defined(__clang__)
840 return __builtin_uaddll_overflow(a, b, res);
861 # define add_overflow(a,b,r) \
863 unsigned: uadd_overflow(a, b, (unsigned *)(r)), \
864 unsigned long: uaddl_overflow(a, b, (unsigned long *)(r)), \
865 unsigned long long: uaddll_overflow(a, b, (unsigned long long *)(r)))
867 static inline bool add_overflow(
unsigned a,
unsigned b,
unsigned *res)
872 static inline bool add_overflow(
unsigned long a,
unsigned long b,
878 static inline bool add_overflow(
unsigned long long a,
unsigned long long b,
879 unsigned long long *res)
885 #if !(VLC_GCC_VERSION(5,0) || defined(__clang__))
889 static inline bool umul_overflow(
unsigned a,
unsigned b,
unsigned *res)
891 #if VLC_GCC_VERSION(5,0) || defined(__clang__)
892 return __builtin_umul_overflow(a, b, res);
895 return b > 0 && a > (UINT_MAX / b);
899 static inline bool umull_overflow(
unsigned long a,
unsigned long b,
902 #if VLC_GCC_VERSION(5,0) || defined(__clang__)
903 return __builtin_umull_overflow(a, b, res);
906 return b > 0 && a > (ULONG_MAX / b);
910 static inline bool umulll_overflow(
unsigned long long a,
unsigned long long b,
911 unsigned long long *res)
913 #if VLC_GCC_VERSION(5,0) || defined(__clang__)
914 return __builtin_umulll_overflow(a, b, res);
917 return b > 0 && a > (ULLONG_MAX / b);
935 #define mul_overflow(a,b,r) \
937 unsigned: umul_overflow(a, b, (unsigned *)(r)), \
938 unsigned long: umull_overflow(a, b, (unsigned long *)(r)), \
939 unsigned long long: umulll_overflow(a, b, (unsigned long long *)(r)))
941 static inline bool mul_overflow(
unsigned a,
unsigned b,
unsigned *res)
946 static inline bool mul_overflow(
unsigned long a,
unsigned long b,
952 static inline bool mul_overflow(
unsigned long long a,
unsigned long long b,
953 unsigned long long *res)
962 #define FREENULL(a) do { free( a ); a = NULL; } while(0)
964 #define EMPTY_STR(str) (!str || !*str)
971 #ifdef WORDS_BIGENDIAN
972 # define hton16(i) ((uint16_t)(i))
973 # define hton32(i) ((uint32_t)(i))
974 # define hton64(i) ((uint64_t)(i))
976 # define hton16(i) vlc_bswap16(i)
977 # define hton32(i) vlc_bswap32(i)
978 # define hton64(i) vlc_bswap64(i)
980 #define ntoh16(i) hton16(i)
981 #define ntoh32(i) hton32(i)
982 #define ntoh64(i) hton64(i)
986 static inline uint16_t
U16_AT (
const void *
p)
990 memcpy (&x,
p,
sizeof (x));
996 static inline uint32_t
U32_AT (
const void *
p)
1000 memcpy (&x,
p,
sizeof (x));
1006 static inline uint64_t
U64_AT (
const void *
p)
1010 memcpy (&x,
p,
sizeof (x));
1014 #define GetWBE(p) U16_AT(p)
1015 #define GetDWBE(p) U32_AT(p)
1016 #define GetQWBE(p) U64_AT(p)
1020 static inline uint16_t
GetWLE (
const void *
p)
1024 memcpy (&x,
p,
sizeof (x));
1025 #ifdef WORDS_BIGENDIAN
1033 static inline uint32_t
GetDWLE (
const void *
p)
1037 memcpy (&x,
p,
sizeof (x));
1038 #ifdef WORDS_BIGENDIAN
1046 static inline uint64_t
GetQWLE (
const void *
p)
1050 memcpy (&x,
p,
sizeof (x));
1051 #ifdef WORDS_BIGENDIAN
1058 static inline void SetWBE (
void *
p, uint16_t w)
1061 memcpy (
p, &w,
sizeof (w));
1065 static inline void SetDWBE (
void *
p, uint32_t dw)
1068 memcpy (
p, &dw,
sizeof (dw));
1072 static inline void SetQWBE (
void *
p, uint64_t qw)
1075 memcpy (
p, &qw,
sizeof (qw));
1079 static inline void SetWLE (
void *
p, uint16_t w)
1081 #ifdef WORDS_BIGENDIAN
1084 memcpy (
p, &w,
sizeof (w));
1088 static inline void SetDWLE (
void *
p, uint32_t dw)
1090 #ifdef WORDS_BIGENDIAN
1093 memcpy (
p, &dw,
sizeof (dw));
1097 static inline void SetQWLE (
void *
p, uint64_t qw)
1099 #ifdef WORDS_BIGENDIAN
1102 memcpy (
p, &qw,
sizeof (qw));
1106 #define VLC_UNUSED(x) (void)(x)
1112 # if defined( __MINGW32__ )
1113 # if !defined( _OFF_T_ )
1114 typedef long long _off_t;
1115 typedef _off_t off_t;
1121 # define off_t long long
1126 # define O_NONBLOCK 0
1131 # define swab(a,b,c) swab((char*) (a), (char*) (b), (c))
1141 #define container_of(ptr, type, member) \
1142 ((type *)(((char *)(ptr)) - offsetof(type, member)))
1163 #define vlc_pgettext( ctx, id ) \
1164 vlc_pgettext_aux( ctx "\004" id, id )
1167 static inline const
char *
vlc_pgettext_aux( const
char *ctx, const
char *
id )
1170 return (tr == ctx) ? id : tr;
1176 static inline void *
xmalloc(
size_t len)
1178 void *ptr = malloc(len);
1179 if (
unlikely(ptr == NULL && len > 0))
1184 static inline void *
xrealloc(
void *ptr,
size_t len)
1186 void *nptr = realloc(ptr, len);
1187 if (
unlikely(nptr == NULL && len > 0))
1192 static inline char *
xstrdup (
const char *str)
1194 char *ptr =
strdup (str);
1215 #if defined( _WIN32 ) || defined( __OS2__ )
1216 # define DIR_SEP_CHAR '\\'
1217 # define DIR_SEP "\\"
1218 # define PATH_SEP_CHAR ';'
1219 # define PATH_SEP ";"
1221 # define DIR_SEP_CHAR '/'
1222 # define DIR_SEP "/"
1223 # define PATH_SEP_CHAR ':'
1224 # define PATH_SEP ":"
1227 #define LICENSE_MSG \
1228 _("This program comes with NO WARRANTY, to the extent permitted by " \
1229 "law.\nYou may redistribute it under the terms of the GNU General " \
1230 "Public License;\nsee the file named COPYING for details.\n" \
1231 "Written by the VideoLAN team; see the AUTHORS file.\n")
#define hton16(i)
Definition: vlc_common.h:975
size_t count
Definition: core.c:401
Definition: vlc_configuration.h:53
#define add_overflow(a, b, r)
Overflowing addition.
Definition: vlc_common.h:860
static void SetQWLE(void *p, uint64_t qw)
Writes 64 bits in little endian order.
Definition: vlc_common.h:1096
static int vlc_clzll(unsigned long long x)
Definition: vlc_common.h:610
Main service discovery structure to build a SD module.
Definition: vlc_services_discovery.h:59
#define clz(x)
Count leading zeroes.
Definition: vlc_common.h:697
#define VLC_FORMAT_ARG(x)
Format string translation function annotation.
Definition: vlc_common.h:152
Definition: vlc_objects.h:114
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
const VLC_EXPORT char * vlc_gettext(const char *msgid)
In-tree plugins share their gettext domain with LibVLC.
Definition: textdomain.c:79
static bool umulll_overflow(unsigned long long a, unsigned long long b, unsigned long long *res)
Definition: vlc_common.h:909
Definition: vlc_sout.h:184
Definition: vlc_addons.h:71
#define parity(x)
Parity.
Definition: vlc_common.h:725
#define hton32(i)
Definition: vlc_common.h:976
void * p_address
Definition: vlc_common.h:463
#define VLC_INT_FUNC(basename)
Definition: vlc_common.h:596
#define ntoh64(i)
Definition: vlc_common.h:981
Definition: vlc_input.h:51
Definition: vlc_input_item.h:53
#define VLC_MALLOC
Heap allocated result function annotation.
Definition: vlc_common.h:167
static char * xstrdup(const char *str)
Definition: vlc_common.h:1191
Definition: vlc_codec.h:101
static uint64_t U64_AT(const void *p)
Reads 64 bits in network byte order.
Definition: vlc_common.h:1005
Viewpoints.
Definition: vlc_viewpoint.h:41
Internal state for block queues.
Definition: fifo.c:38
static uint32_t vlc_bswap32(uint32_t x)
Byte swap (32 bits)
Definition: vlc_common.h:770
uint32_t vlc_fourcc_t
The vlc_fourcc_t type.
Definition: vlc_common.h:307
Stream output access_output.
Definition: vlc_sout.h:53
VLC_EXPORT bool vlc_ureduce(unsigned *, unsigned *, uint64_t, uint64_t, uint64_t)
const VLC_EXPORT char * vlc_ngettext(const char *s, const char *p, unsigned long n)
Definition: textdomain.c:88
Video picture.
Definition: vlc_picture.h:120
static uint16_t U16_AT(const void *p)
Reads 16 bits in network byte order.
Definition: vlc_common.h:985
int64_t i_int
Definition: vlc_common.h:459
static void SetQWBE(void *p, uint64_t qw)
Writes 64 bits in network byte order.
Definition: vlc_common.h:1071
struct vod_t vod_t
Definition: vlc_common.h:439
int(* vlc_callback_t)(vlc_object_t *, char const *, vlc_value_t, vlc_value_t, void *)
Definition: vlc_common.h:493
static int vlc_clzl(unsigned long x)
Definition: vlc_common.h:622
static uint16_t vlc_bswap16(uint16_t x)
Byte swap (16 bits)
Definition: vlc_common.h:763
static bool uaddl_overflow(unsigned long a, unsigned long b, unsigned long *res)
Definition: vlc_common.h:824
int32_t y
Definition: vlc_common.h:464
Audio output object.
Definition: vlc_aout.h:141
bool b_bool
Definition: vlc_common.h:460
Definition: vlc_es_out.h:143
static void SetDWBE(void *p, uint32_t dw)
Writes 32 bits in network byte order.
Definition: vlc_common.h:1064
Definition: vlc_configuration.h:331
Internal module descriptor.
Definition: modules.h:78
Structure describing a filter.
Definition: vlc_filter.h:215
static bool umull_overflow(unsigned long a, unsigned long b, unsigned long *res)
Definition: vlc_common.h:898
float f_float
Definition: vlc_common.h:461
Definition: vlm_internal.h:77
static size_t vlc_align(size_t v, size_t align)
Make integer v a multiple of align.
Definition: vlc_common.h:559
Video subtitle.
Definition: vlc_subpicture.h:166
Timestamps without long-term rounding errors.
Definition: vlc_tick.h:226
Subpicture unit descriptor.
Definition: vlc_spu.h:47
Video subtitle region.
Definition: vlc_subpicture.h:59
Definition: vlc_codec.h:242
const VLC_EXPORT char * VLC_Compiler(void)
Definition: version.c:45
static void SetDWLE(void *p, uint32_t dw)
Writes 32 bits in little endian order.
Definition: vlc_common.h:1087
static bool uadd_overflow(unsigned a, unsigned b, unsigned *res)
Definition: vlc_common.h:814
static void SetWBE(void *p, uint16_t w)
Writes 16 bits in network byte order.
Definition: vlc_common.h:1057
char * psz_string
Definition: vlc_common.h:462
stream_t definition
Definition: vlc_stream.h:46
static int vlc_ctz_generic(unsigned long long x)
Definition: vlc_common.h:632
static int vlc_parity_generic(unsigned long long x)
Definition: vlc_common.h:644
static void SetWLE(void *p, uint16_t w)
Writes 16 bits in little endian order.
Definition: vlc_common.h:1078
Muxer structure.
Definition: vlc_sout.h:101
Opaque structure representing an ES (Elementary Stream) track.
Definition: es_out.c:94
Definition: fourcc_gen.c:34
video_format_t video_frame_format_t
Definition: vlc_common.h:387
const VLC_EXPORT char * VLC_CompileHost(void)
Definition: version.c:44
static void * xmalloc(size_t len)
Definition: vlc_common.h:1175
Definition: vlc_url.h:145
MD5 hash context.
Definition: vlc_hash.h:85
VLC object common members.
Definition: vlc_objects.h:43
static const char * vlc_pgettext_aux(const char *ctx, const char *id)
Definition: vlc_common.h:1166
The update object.
Definition: update.h:158
static uint8_t clip_uint8_vlc(int32_t a)
Definition: vlc_common.h:585
Configuration item.
Definition: vlc_configuration.h:76
Definition: vlc_iso_lang.h:30
static VLC_USED int vlc_popcountl(unsigned long x)
Definition: vlc_common.h:670
static void * vlc_reallocarray(void *ptr, size_t count, size_t size)
Definition: vlc_common.h:1150
#define VLC_API
Exported API call annotation.
Definition: vlc_common.h:295
char * strdup(const char *)
#define hton64(i)
Definition: vlc_common.h:977
Definition: vlc_image.h:39
static int vlc_clz(unsigned x)
Definition: vlc_common.h:627
Definition: renderer_discovery.c:34
#define ntoh32(i)
Definition: vlc_common.h:980
static void * xrealloc(void *ptr, size_t len)
Definition: vlc_common.h:1183
static uint64_t GetQWLE(const void *p)
Reads 64 bits in little-endian order.
Definition: vlc_common.h:1045
Definition: vlc_input_item.h:44
static int64_t GCD(int64_t a, int64_t b)
Greatest common divisor.
Definition: vlc_common.h:572
Definition: vlc_vlm.h:176
audio_format_t audio_sample_format_t
Definition: vlc_common.h:381
int(* vlc_list_callback_t)(vlc_object_t *, char const *, int, vlc_value_t *, void *)
Definition: vlc_common.h:502
static VLC_USED int vlc_popcountll(unsigned long long x)
Definition: vlc_common.h:670
struct vod_media_t vod_media_t
Definition: vlc_common.h:440
static uint32_t U32_AT(const void *p)
Reads 32 bits in network byte order.
Definition: vlc_common.h:995
static void vlc_fourcc_to_char(vlc_fourcc_t fcc, char *psz_fourcc)
Translate a vlc_fourcc into its string representation.
Definition: vlc_common.h:332
#define mul_overflow(a, b, r)
Overflowing multiplication.
Definition: vlc_common.h:934
Video output thread descriptor.
Definition: vlc_vout.h:55
static uint64_t vlc_bswap64(uint64_t x)
Byte swap (64 bits)
Definition: vlc_common.h:784
static bool uaddll_overflow(unsigned long long a, unsigned long long b, unsigned long long *res)
Definition: vlc_common.h:835
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:1144
const VLC_EXPORT char * VLC_CompileBy(void)
Definition: version.c:43
#define vlc_popcount(x)
Bit weight / population count.
Definition: vlc_common.h:734
static int vlc_popcount_generic(unsigned long long x)
Definition: vlc_common.h:651
#define VLC_USED
Used result function annotation.
Definition: vlc_common.h:185
VLC value structure.
Definition: vlc_common.h:457
Stream output instance.
Definition: stream_output.h:33
#define ctz(x)
Count trailing zeroes.
Definition: vlc_common.h:716
Definition: vlc_block.h:117
static uint32_t GetDWLE(const void *p)
Reads 32 bits in little-endian order.
Definition: vlc_common.h:1032
static bool umul_overflow(unsigned a, unsigned b, unsigned *res)
Definition: vlc_common.h:888
Definition: vlc_renderer_discovery.h:165
#define ntoh16(i)
Definition: vlc_common.h:979
static uint16_t GetWLE(const void *p)
Reads 16 bits in little-endian order.
Definition: vlc_common.h:1019
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:33