summaryrefslogtreecommitdiff
path: root/libavcodec/binkaudio.c
diff options
context:
space:
mode:
authorMans Rullgard <mans@mansr.com>2011-11-27 14:04:16 +0000
committerMans Rullgard <mans@mansr.com>2011-12-11 18:47:19 +0000
commit3383a53e7d0abb9639c3ea3481f0eda9dca61a26 (patch)
treed53f0c38d95d4256b727dc4f4c5add488aabe501 /libavcodec/binkaudio.c
parent5b3265a7181889b53ff8217c1bdccdf966c86955 (diff)
lavu: replace int/float punning functions
The existing functions defined in intfloat_readwrite.[ch] are both slow and incorrect (infinities are not handled). This introduces a new header with fast, inline conversion functions using direct union punning assuming an IEEE-754 system, an assumption already made throughout the code. The one use of Intel/Motorola extended 80-bit format is replaced by simpler code sufficient under the present constraints (positive normal values). The old functions are marked deprecated and retained for compatibility. Signed-off-by: Mans Rullgard <mans@mansr.com>
Diffstat (limited to 'libavcodec/binkaudio.c')
-rw-r--r--libavcodec/binkaudio.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libavcodec/binkaudio.c b/libavcodec/binkaudio.c
index 1dceeb74c3..adffc6b2b6 100644
--- a/libavcodec/binkaudio.c
+++ b/libavcodec/binkaudio.c
@@ -35,7 +35,7 @@
#include "dct.h"
#include "rdft.h"
#include "fmtconvert.h"
-#include "libavutil/intfloat_readwrite.h"
+#include "libavutil/intfloat.h"
extern const uint16_t ff_wma_critical_freqs[25];
@@ -193,8 +193,8 @@ static int decode_block(BinkAudioContext *s, int16_t *out, int use_dct)
if (s->version_b) {
if (get_bits_left(gb) < 64)
return AVERROR_INVALIDDATA;
- coeffs[0] = av_int2flt(get_bits(gb, 32)) * s->root;
- coeffs[1] = av_int2flt(get_bits(gb, 32)) * s->root;
+ coeffs[0] = av_int2float(get_bits_long(gb, 32)) * s->root;
+ coeffs[1] = av_int2float(get_bits_long(gb, 32)) * s->root;
} else {
if (get_bits_left(gb) < 58)
return AVERROR_INVALIDDATA;