Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(39)

Side by Side Diff: celt/float_cast.h

Issue 107243004: Updating Opus to release 1.1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/opus
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « celt/fixed_generic.h ('k') | celt/mathops.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Copyright (C) 2001 Erik de Castro Lopo <erikd AT mega-nerd DOT com> */ 1 /* Copyright (C) 2001 Erik de Castro Lopo <erikd AT mega-nerd DOT com> */
2 /* 2 /*
3 Redistribution and use in source and binary forms, with or without 3 Redistribution and use in source and binary forms, with or without
4 modification, are permitted provided that the following conditions 4 modification, are permitted provided that the following conditions
5 are met: 5 are met:
6 6
7 - Redistributions of source code must retain the above copyright 7 - Redistributions of source code must retain the above copyright
8 notice, this list of conditions and the following disclaimer. 8 notice, this list of conditions and the following disclaimer.
9 9
10 - Redistributions in binary form must reproduce the above copyright 10 - Redistributions in binary form must reproduce the above copyright
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 #include <xmmintrin.h> 94 #include <xmmintrin.h>
95 95
96 __inline long int float2int(float value) 96 __inline long int float2int(float value)
97 { 97 {
98 return _mm_cvtss_si32(_mm_load_ss(&value)); 98 return _mm_cvtss_si32(_mm_load_ss(&value));
99 } 99 }
100 #elif (defined(_MSC_VER) && _MSC_VER >= 1400) && (defined (WIN32) || defined (_W IN32)) 100 #elif (defined(_MSC_VER) && _MSC_VER >= 1400) && (defined (WIN32) || defined (_W IN32))
101 #include <math.h> 101 #include <math.h>
102 102
103 /* Win32 doesn't seem to have these functions. 103 /* Win32 doesn't seem to have these functions.
104 ** Therefore implement inline versions of these functions here. 104 ** Therefore implement OPUS_INLINE versions of these functions here .
105 */ 105 */
106 106
107 __inline long int 107 __inline long int
108 float2int (float flt) 108 float2int (float flt)
109 { int intgr; 109 { int intgr;
110 110
111 _asm 111 _asm
112 { fld flt 112 { fld flt
113 fistp intgr 113 fistp intgr
114 } ; 114 } ;
115 115
116 return intgr ; 116 return intgr ;
117 } 117 }
118 118
119 #else 119 #else
120 120
121 #if (defined(__GNUC__) && defined(__STDC__) && __STDC__ && __STDC_VERSION__ >= 1 99901L) 121 #if (defined(__GNUC__) && defined(__STDC__) && __STDC__ && __STDC_VERSION__ >= 1 99901L)
122 /* supported by gcc in C99 mode, but not by all other compilers */ 122 /* supported by gcc in C99 mode, but not by all other compilers */
123 #warning "Don't have the functions lrint() and lrintf ()." 123 #warning "Don't have the functions lrint() and lrintf ()."
124 #warning "Replacing these functions with a standard C cast." 124 #warning "Replacing these functions with a standard C cast."
125 #endif /* __STDC_VERSION__ >= 199901L */ 125 #endif /* __STDC_VERSION__ >= 199901L */
126 #include <math.h> 126 #include <math.h>
127 #define float2int(flt) ((int)(floor(.5+flt))) 127 #define float2int(flt) ((int)(floor(.5+flt)))
128 #endif 128 #endif
129 129
130 #ifndef DISABLE_FLOAT_API 130 #ifndef DISABLE_FLOAT_API
131 static inline opus_int16 FLOAT2INT16(float x) 131 static OPUS_INLINE opus_int16 FLOAT2INT16(float x)
132 { 132 {
133 x = x*CELT_SIG_SCALE; 133 x = x*CELT_SIG_SCALE;
134 x = MAX32(x, -32768); 134 x = MAX32(x, -32768);
135 x = MIN32(x, 32767); 135 x = MIN32(x, 32767);
136 return (opus_int16)float2int(x); 136 return (opus_int16)float2int(x);
137 } 137 }
138 #endif /* DISABLE_FLOAT_API */ 138 #endif /* DISABLE_FLOAT_API */
139 139
140 #endif /* FLOAT_CAST_H */ 140 #endif /* FLOAT_CAST_H */
OLDNEW
« no previous file with comments | « celt/fixed_generic.h ('k') | celt/mathops.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698