FFmpeg
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
Functions
Variables
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
c
d
g
h
i
o
q
r
s
v
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
Enumerator
a
d
e
f
h
i
j
l
m
n
p
r
s
v
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
j
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
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
l
m
o
p
q
r
s
t
u
v
w
x
y
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
libavutil
intfloat.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2011 Mans Rullgard
3
*
4
* This file is part of FFmpeg.
5
*
6
* FFmpeg is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* FFmpeg is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with FFmpeg; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#ifndef AVUTIL_INTFLOAT_H
22
#define AVUTIL_INTFLOAT_H
23
24
#include <stdint.h>
25
#include "
attributes.h
"
26
27
union
av_intfloat32
{
28
uint32_t
i
;
29
float
f
;
30
};
31
32
union
av_intfloat64
{
33
uint64_t
i
;
34
double
f
;
35
};
36
37
/**
38
* Reinterpret a 32-bit integer as a float.
39
*/
40
static
av_always_inline
float
av_int2float
(uint32_t
i
)
41
{
42
union
av_intfloat32
v;
43
v.
i
=
i
;
44
return
v.
f
;
45
}
46
47
/**
48
* Reinterpret a float as a 32-bit integer.
49
*/
50
static
av_always_inline
uint32_t
av_float2int
(
float
f
)
51
{
52
union
av_intfloat32
v;
53
v.
f
=
f
;
54
return
v.
i
;
55
}
56
57
/**
58
* Reinterpret a 64-bit integer as a double.
59
*/
60
static
av_always_inline
double
av_int2double
(uint64_t
i
)
61
{
62
union
av_intfloat64
v;
63
v.
i
=
i
;
64
return
v.
f
;
65
}
66
67
/**
68
* Reinterpret a double as a 64-bit integer.
69
*/
70
static
av_always_inline
uint64_t
av_double2int
(
double
f
)
71
{
72
union
av_intfloat64
v;
73
v.
f
=
f
;
74
return
v.
i
;
75
}
76
77
#endif
/* AVUTIL_INTFLOAT_H */
av_int2double
static av_always_inline double av_int2double(uint64_t i)
Reinterpret a 64-bit integer as a double.
Definition:
intfloat.h:60
av_intfloat32::i
uint32_t i
Definition:
intfloat.h:28
av_float2int
static av_always_inline uint32_t av_float2int(float f)
Reinterpret a float as a 32-bit integer.
Definition:
intfloat.h:50
av_int2float
static av_always_inline float av_int2float(uint32_t i)
Reinterpret a 32-bit integer as a float.
Definition:
intfloat.h:40
av_intfloat64
Definition:
intfloat.h:32
av_intfloat64::i
uint64_t i
Definition:
intfloat.h:33
av_intfloat32
Definition:
intfloat.h:27
f
f
Definition:
af_crystalizer.c:122
attributes.h
av_double2int
static av_always_inline uint64_t av_double2int(double f)
Reinterpret a double as a 64-bit integer.
Definition:
intfloat.h:70
i
#define i(width, name, range_min, range_max)
Definition:
cbs_h2645.c:256
av_always_inline
#define av_always_inline
Definition:
attributes.h:49
av_intfloat64::f
double f
Definition:
intfloat.h:34
av_intfloat32::f
float f
Definition:
intfloat.h:29
Generated on Wed Mar 12 2025 19:23:12 for FFmpeg by
1.8.17