Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef AVUTIL_INTFLOAT_H
00022 #define AVUTIL_INTFLOAT_H
00023
00024 #include <stdint.h>
00025 #include "attributes.h"
00026
00027 union av_intfloat32 {
00028 uint32_t i;
00029 float f;
00030 };
00031
00032 union av_intfloat64 {
00033 uint64_t i;
00034 double f;
00035 };
00036
00040 static av_always_inline float av_int2float(uint32_t i)
00041 {
00042 union av_intfloat32 v = { .i = i };
00043 return v.f;
00044 }
00045
00049 static av_always_inline uint32_t av_float2int(float f)
00050 {
00051 union av_intfloat32 v = { .f = f };
00052 return v.i;
00053 }
00054
00058 static av_always_inline double av_int2double(uint64_t i)
00059 {
00060 union av_intfloat64 v = { .i = i };
00061 return v.f;
00062 }
00063
00067 static av_always_inline uint64_t av_double2int(double f)
00068 {
00069 union av_intfloat64 v = { .f = f };
00070 return v.i;
00071 }
00072
00073 #endif