traverso-commit
[Top][All Lists]
Advanced

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

[Traverso-commit] traverso/src/core AbstractAudioReader.h WPAudio...


From: Ben Levitt
Subject: [Traverso-commit] traverso/src/core AbstractAudioReader.h WPAudio...
Date: Thu, 19 Jul 2007 06:58:40 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Ben Levitt <benjie>     07/07/19 06:58:40

Modified files:
        src/core       : AbstractAudioReader.h WPAudioReader.cpp 
                         WPAudioReader.h 

Log message:
        finish support for non-float wavpack files

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AbstractAudioReader.h?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/WPAudioReader.cpp?cvsroot=traverso&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/WPAudioReader.h?cvsroot=traverso&r1=1.1&r2=1.2

Patches:
Index: AbstractAudioReader.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/AbstractAudioReader.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10

Index: WPAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/WPAudioReader.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- WPAudioReader.cpp   19 Jul 2007 05:28:56 -0000      1.2
+++ WPAudioReader.cpp   19 Jul 2007 06:58:39 -0000      1.3
@@ -40,6 +40,8 @@
        }
        
        m_isFloat = ((WavpackGetMode(m_wp) & MODE_FLOAT) != 0);
+       m_bitsPerSample = WavpackGetBitsPerSample(m_wp);
+       m_channels = WavpackGetReducedChannels(m_wp);
        
        m_tmpBuffer = 0;
        m_tmpBufferSize = 0;
@@ -77,7 +79,7 @@
 int WPAudioReader::get_num_channels()
 {
        if (m_wp) {
-               return WavpackGetReducedChannels(m_wp);
+               return m_channels;
        }
        return 0;
 }
@@ -158,19 +160,19 @@
                switch (get_num_channels()) {
                        case 1:
                                for (int f = 0; f < framesRead; f++) {
-                                       buffer[0][f] = m_tmpBuffer[f];
+                                       buffer[0][f] = 
(float)((float)m_tmpBuffer[f]/ (float)((uint)1<<(m_bitsPerSample-1)));
                                }
                                break;  
                        case 2:
                                for (int f = 0; f < framesRead; f++) {
-                                       buffer[0][f] = m_tmpBuffer[f * 2];
-                                       buffer[1][f] = m_tmpBuffer[f * 2 + 1];
+                                       buffer[0][f] = 
(float)((float)m_tmpBuffer[f * 2]/ (float)((uint)1<<(m_bitsPerSample-1)));
+                                       buffer[1][f] = 
(float)((float)m_tmpBuffer[f * 2 + 1]/ (float)((uint)1<<(m_bitsPerSample-1)));
                                }
                                break;  
                        default:
                                for (int f = 0; f < framesRead; f++) {
                                        for (int c = 0; c < get_num_channels(); 
c++) {
-                                               buffer[c][f] = m_tmpBuffer[f * 
get_num_channels() + c];
+                                               buffer[c][f] = 
(float)((float)m_tmpBuffer[f + get_num_channels() + c]/ 
(float)((uint)1<<(m_bitsPerSample-1)));
                                        }
                                }
                }

Index: WPAudioReader.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/WPAudioReader.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- WPAudioReader.h     19 Jul 2007 05:25:59 -0000      1.1
+++ WPAudioReader.h     19 Jul 2007 06:58:39 -0000      1.2
@@ -43,6 +43,8 @@
 protected:
        WavpackContext* m_wp;
        bool            m_isFloat;
+       int             m_bitsPerSample;
+       int             m_channels;
        int32_t         *m_tmpBuffer;
        int             m_tmpBufferSize;
 };




reply via email to

[Prev in Thread] Current Thread [Next in Thread]