]> git.sesse.net Git - vlc/commitdiff
Fixed PCM values given to projectm.
authorLaurent Aimar <fenrir@videolan.org>
Sun, 13 Dec 2009 12:21:28 +0000 (13:21 +0100)
committerLaurent Aimar <fenrir@videolan.org>
Sun, 13 Dec 2009 12:52:37 +0000 (13:52 +0100)
modules/visualization/projectm.cpp

index c74936f4552af0b4ad685b389ede70e2188ac602..42475fd39ac83f6d39587cabd0f0510f0e113ecd 100644 (file)
@@ -200,11 +200,17 @@ static block_t *DoWork( filter_t *p_filter, block_t *p_in_buf )
     vlc_mutex_lock( &p_sys->lock );
     if( p_sys->i_buffer_size > 0 )
     {
-        p_sys->p_buffer[0] = 0;
         p_sys->i_nb_samples = __MIN( p_sys->i_buffer_size,
                                      p_in_buf->i_nb_samples );
+
+        const float *p_src = (float*)p_in_buf->p_buffer;
         for( int i = 0; i < p_sys->i_nb_samples; i++ )
-            p_sys->p_buffer[i] = p_in_buf->p_buffer[i];
+        {
+            float v = 0;
+            for( int j = 0; j < p_sys->i_channels; j++ )
+                v += p_src[p_sys->i_channels * i + j];
+            p_sys->p_buffer[i] = v / p_sys->i_channels;
+        }
     }
     vlc_mutex_unlock( &p_sys->lock );