/src/vlc/contrib/x86_64-unknown-linux-gnu/include/libavutil/intfloat.h
Line | Count | Source |
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 | 0 | { |
42 | 0 | union av_intfloat32 v; |
43 | 0 | v.i = i; |
44 | 0 | return v.f; |
45 | 0 | } Unexecuted instantiation: avcodec.c:av_int2float Unexecuted instantiation: encoder.c:av_int2float Unexecuted instantiation: chroma.c:av_int2float Unexecuted instantiation: fourcc.c:av_int2float Unexecuted instantiation: video.c:av_int2float Unexecuted instantiation: subtitle.c:av_int2float Unexecuted instantiation: audio.c:av_int2float Unexecuted instantiation: va.c:av_int2float |
46 | | |
47 | | /** |
48 | | * Reinterpret a float as a 32-bit integer. |
49 | | */ |
50 | | static av_always_inline uint32_t av_float2int(float f) |
51 | 0 | { |
52 | 0 | union av_intfloat32 v; |
53 | 0 | v.f = f; |
54 | 0 | return v.i; |
55 | 0 | } Unexecuted instantiation: avcodec.c:av_float2int Unexecuted instantiation: encoder.c:av_float2int Unexecuted instantiation: chroma.c:av_float2int Unexecuted instantiation: fourcc.c:av_float2int Unexecuted instantiation: video.c:av_float2int Unexecuted instantiation: subtitle.c:av_float2int Unexecuted instantiation: audio.c:av_float2int Unexecuted instantiation: va.c:av_float2int |
56 | | |
57 | | /** |
58 | | * Reinterpret a 64-bit integer as a double. |
59 | | */ |
60 | | static av_always_inline double av_int2double(uint64_t i) |
61 | 0 | { |
62 | 0 | union av_intfloat64 v; |
63 | 0 | v.i = i; |
64 | 0 | return v.f; |
65 | 0 | } Unexecuted instantiation: avcodec.c:av_int2double Unexecuted instantiation: encoder.c:av_int2double Unexecuted instantiation: chroma.c:av_int2double Unexecuted instantiation: fourcc.c:av_int2double Unexecuted instantiation: video.c:av_int2double Unexecuted instantiation: subtitle.c:av_int2double Unexecuted instantiation: audio.c:av_int2double Unexecuted instantiation: va.c:av_int2double |
66 | | |
67 | | /** |
68 | | * Reinterpret a double as a 64-bit integer. |
69 | | */ |
70 | | static av_always_inline uint64_t av_double2int(double f) |
71 | 0 | { |
72 | 0 | union av_intfloat64 v; |
73 | 0 | v.f = f; |
74 | 0 | return v.i; |
75 | 0 | } Unexecuted instantiation: avcodec.c:av_double2int Unexecuted instantiation: encoder.c:av_double2int Unexecuted instantiation: chroma.c:av_double2int Unexecuted instantiation: fourcc.c:av_double2int Unexecuted instantiation: video.c:av_double2int Unexecuted instantiation: subtitle.c:av_double2int Unexecuted instantiation: audio.c:av_double2int Unexecuted instantiation: va.c:av_double2int |
76 | | |
77 | | #endif /* AVUTIL_INTFLOAT_H */ |