Wireshark
4.5.0
The Wireshark network protocol analyzer
Toggle main menu visibility
Main Page
Related Pages
Topics
Namespaces
Namespace List
Namespace Members
All
Variables
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
a
b
c
d
e
f
g
h
i
m
o
p
r
s
t
u
v
w
Variables
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
Functions
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
Variables
Typedefs
a
b
c
d
e
f
g
h
i
m
p
r
s
t
u
v
w
Enumerations
Enumerator
a
b
c
e
f
h
i
n
o
r
s
t
w
Macros
_
a
b
c
d
e
f
g
h
i
j
m
n
o
p
r
s
t
u
v
w
x
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
Loading...
Searching...
No Matches
wsutil
mpeg-audio.h
Go to the documentation of this file.
1
11
#ifndef MPA_H
12
#define MPA_H 1
13
14
#include <stdint.h>
15
#include "ws_symbol_export.h"
16
17
struct
mpa
{
18
unsigned
int
emphasis :2;
19
unsigned
int
original :1;
20
unsigned
int
copyright :1;
21
unsigned
int
modeext :2;
22
unsigned
int
mode :2;
23
unsigned
int
priv :1;
24
unsigned
int
padding :1;
25
unsigned
int
frequency :2;
26
unsigned
int
bitrate :4;
27
unsigned
int
protection :1;
28
unsigned
int
layer :2;
29
unsigned
int
version :2;
30
unsigned
int
sync :11;
31
};
17
struct
mpa
{
…
};
32
33
#define MPA_UNMARSHAL_SYNC(n) ((n) >> 21 & 0x7ff)
34
#define MPA_UNMARSHAL_VERSION(n) ((n) >> 19 & 0x3)
35
#define MPA_UNMARSHAL_LAYER(n) ((n) >> 17 & 0x3)
36
#define MPA_UNMARSHAL_PROTECTION(n) ((n) >> 16 & 0x1)
37
#define MPA_UNMARSHAL_BITRATE(n) ((n) >> 12 & 0xf)
38
#define MPA_UNMARSHAL_FREQUENCY(n) ((n) >> 10 & 0x3)
39
#define MPA_UNMARSHAL_PADDING(n) ((n) >> 9 & 0x1)
40
#define MPA_UNMARSHAL_PRIVATE(n) ((n) >> 8 & 0x1)
41
#define MPA_UNMARSHAL_MODE(n) ((n) >> 6 & 0x3)
42
#define MPA_UNMARSHAL_MODEEXT(n) ((n) >> 4 & 0x3)
43
#define MPA_UNMARSHAL_COPYRIGHT(n) ((n) >> 3 & 0x1)
44
#define MPA_UNMARSHAL_ORIGINAL(n) ((n) >> 2 & 0x1)
45
#define MPA_UNMARSHAL_EMPHASIS(n) ((n) >> 0 & 0x3)
46
47
#define MPA_UNMARSHAL(mpa, n) do { \
48
(mpa)->sync = MPA_UNMARSHAL_SYNC(n); \
49
(mpa)->version = MPA_UNMARSHAL_VERSION(n); \
50
(mpa)->layer = MPA_UNMARSHAL_LAYER(n); \
51
(mpa)->protection = MPA_UNMARSHAL_PROTECTION(n); \
52
(mpa)->bitrate = MPA_UNMARSHAL_BITRATE(n); \
53
(mpa)->frequency = MPA_UNMARSHAL_FREQUENCY(n); \
54
(mpa)->padding = MPA_UNMARSHAL_PADDING(n); \
55
(mpa)->priv = MPA_UNMARSHAL_PRIVATE(n); \
56
(mpa)->mode = MPA_UNMARSHAL_MODE(n); \
57
(mpa)->modeext = MPA_UNMARSHAL_MODEEXT(n); \
58
(mpa)->copyright = MPA_UNMARSHAL_COPYRIGHT(n); \
59
(mpa)->original = MPA_UNMARSHAL_ORIGINAL(n); \
60
(mpa)->emphasis = MPA_UNMARSHAL_EMPHASIS(n); \
61
} while (0)
62
63
WS_DLL_PUBLIC
64
int
mpa_version(
const
struct
mpa
*);
65
WS_DLL_PUBLIC
66
int
mpa_layer(
const
struct
mpa
*);
67
WS_DLL_PUBLIC
68
unsigned
int
mpa_samples(
const
struct
mpa
*);
69
WS_DLL_PUBLIC
70
unsigned
int
mpa_bitrate(
const
struct
mpa
*);
71
WS_DLL_PUBLIC
72
unsigned
int
mpa_frequency(
const
struct
mpa
*);
73
WS_DLL_PUBLIC
74
unsigned
int
mpa_padding(
const
struct
mpa
*);
75
WS_DLL_PUBLIC
76
uint32_t decode_synchsafe_int(uint32_t);
77
78
#define MPA_DATA_BYTES(mpa) (mpa_bitrate(mpa) * mpa_samples(mpa) \
79
/ mpa_frequency(mpa) / 8)
80
#define MPA_BYTES(mpa) (MPA_DATA_BYTES(mpa) + mpa_padding(mpa))
81
#define MPA_DURATION_NS(mpa) \
82
(1000000000 / mpa_frequency(mpa) * mpa_samples(mpa))
83
84
enum
{ MPA_SYNC = 0x7ff };
85
86
#define MPA_SYNC_VALID(mpa) ((mpa)->sync == MPA_SYNC)
87
#define MPA_VERSION_VALID(mpa) (mpa_version(mpa) >= 0)
88
#define MPA_LAYER_VALID(mpa) (mpa_layer(mpa) >= 0)
89
#define MPA_BITRATE_VALID(mpa) (mpa_bitrate(mpa) > 0)
90
#define MPA_FREQUENCY_VALID(mpa) (mpa_frequency(mpa) > 0)
91
#define MPA_VALID(mpa) (MPA_SYNC_VALID(mpa) \
92
&& MPA_VERSION_VALID(mpa) && MPA_LAYER_VALID(mpa) \
93
&& MPA_BITRATE_VALID(mpa) && MPA_FREQUENCY_VALID(mpa))
94
95
#endif
mpa
Definition
mpeg-audio.h:17
Generated by
1.9.8