diff options
author | Timo Rothenpieler <timo@rothenpieler.org> | 2022-08-10 01:53:10 +0200 |
---|---|---|
committer | Timo Rothenpieler <timo@rothenpieler.org> | 2022-08-19 22:09:36 +0200 |
commit | 6dc79f1d04eb88ec97360c45be4cadc66b7e5780 (patch) | |
tree | 1d798db458f52f60adba3356d05308c06763c8c0 /libavutil/half2float.h | |
parent | f3fb528cd5bfecec6835a3951c75903a194ae1ad (diff) | |
download | ffmpeg-6dc79f1d04eb88ec97360c45be4cadc66b7e5780.tar.gz |
avutil/half2float: move non-inline init code out of header
Diffstat (limited to 'libavutil/half2float.h')
-rw-r--r-- | libavutil/half2float.h | 46 |
1 files changed, 2 insertions, 44 deletions
diff --git a/libavutil/half2float.h b/libavutil/half2float.h index 5696567a8c..428a27a19f 100644 --- a/libavutil/half2float.h +++ b/libavutil/half2float.h @@ -27,51 +27,9 @@ typedef struct Half2FloatTables { uint16_t offsettable[64]; } Half2FloatTables; -static uint32_t convertmantissa(uint32_t i) -{ - int32_t m = i << 13; // Zero pad mantissa bits - int32_t e = 0; // Zero exponent - - while (!(m & 0x00800000)) { // While not normalized - e -= 0x00800000; // Decrement exponent (1<<23) - m <<= 1; // Shift mantissa - } - - m &= ~0x00800000; // Clear leading 1 bit - e += 0x38800000; // Adjust bias ((127-14)<<23) - - return m | e; // Return combined number -} - -static void init_half2float_tables(Half2FloatTables *t) -{ - t->mantissatable[0] = 0; - for (int i = 1; i < 1024; i++) - t->mantissatable[i] = convertmantissa(i); - for (int i = 1024; i < 2048; i++) - t->mantissatable[i] = 0x38000000UL + ((i - 1024) << 13UL); - for (int i = 2048; i < 3072; i++) - t->mantissatable[i] = t->mantissatable[i - 1024] | 0x400000UL; - t->mantissatable[2048] = t->mantissatable[1024]; - - t->exponenttable[0] = 0; - for (int i = 1; i < 31; i++) - t->exponenttable[i] = i << 23; - for (int i = 33; i < 63; i++) - t->exponenttable[i] = 0x80000000UL + ((i - 32) << 23UL); - t->exponenttable[31]= 0x47800000UL; - t->exponenttable[32]= 0x80000000UL; - t->exponenttable[63]= 0xC7800000UL; - - t->offsettable[0] = 0; - for (int i = 1; i < 64; i++) - t->offsettable[i] = 1024; - t->offsettable[31] = 2048; - t->offsettable[32] = 0; - t->offsettable[63] = 2048; -} +void ff_init_half2float_tables(Half2FloatTables *t); -static uint32_t half2float(uint16_t h, const Half2FloatTables *t) +static inline uint32_t half2float(uint16_t h, const Half2FloatTables *t) { uint32_t f; |