[beast/devel: 3/28] BSE: FLAC handle: Adjusted data scaling to work for 24 bit flac, too.



commit 3ccfe006d3dd496a7932be6c89ca44cc6afdd515
Author: Stefan Westerfeld <stefan space twc de>
Date:   Tue Aug 17 13:44:02 2010 +0200

    BSE: FLAC handle: Adjusted data scaling to work for 24 bit flac, too.

 bse/bsedatahandle-flac.cc |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
---
diff --git a/bse/bsedatahandle-flac.cc b/bse/bsedatahandle-flac.cc
index 43f2c01..65ccf49 100644
--- a/bse/bsedatahandle-flac.cc
+++ b/bse/bsedatahandle-flac.cc
@@ -50,8 +50,11 @@ private:
     DataHandleFlac *dh = static_cast<DataHandleFlac *> (client_data);
     dh->m_buffer_start = frame->header.number.sample_number;
     dh->m_buffer.clear();
+
+    // scale with 1/32768 for 16 bit, 1/(2^23) for 24 bit
+    double scale = 2.0 / (1 << frame->header.bits_per_sample);
     for (int i = 0; i < frame->header.blocksize; i++)
-      dh->m_buffer.push_back (buffer[0][i] * (1 / 32768.0));
+      dh->m_buffer.push_back (buffer[0][i] * scale);
     return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
   }
   static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]