Original Commit: r6 | ods15 | 2006-09-16 20:36:31 +0300 (Sat, 16 Sep 2006) | 2 lines

add correct and working put_float ...

Originally committed as revision 6417 to svn://svn.ffmpeg.org/ffmpeg/trunk
pull/126/head
Oded Shimon 19 years ago
parent 3112124154
commit 1f7e7464e9
  1. 8
      libavcodec/vorbis_enc.c

@ -67,7 +67,13 @@ static inline int ilog(unsigned int a) {
} }
static void put_float(PutBitContext * pb, float f) { static void put_float(PutBitContext * pb, float f) {
put_bits(pb, 32, *(uint32_t*)&f); int exp, mant;
uint32_t res = 0;
mant = (int)ldexp(frexp(f, &exp), 20);
exp += 788 - 20;
if (mant < 0) { res |= (1 << 31); mant = -mant; }
res |= mant | (exp << 21);
put_bits(pb, 32, res);
} }
static void put_codebook_header(PutBitContext * pb, codebook_t * cb) { static void put_codebook_header(PutBitContext * pb, codebook_t * cb) {

Loading…
Cancel
Save