Bug 1432779 - P12. Fix constness. r?padenot draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Sat, 10 Mar 2018 10:21:51 +0100
changeset 765785 3d858560b6f4f4b727006d60ce184f2946557ab3
parent 765784 19b1f4597116f0eb412624739f9af2c1f329fa1f
push id102162
push userbmo:jyavenard@mozilla.com
push dateSat, 10 Mar 2018 09:23:15 +0000
reviewerspadenot
bugs1432779
milestone60.0a1
Bug 1432779 - P12. Fix constness. r?padenot MozReview-Commit-ID: GJP6Cl3dJuy
media/libcubeb/src/cubeb_mixer.cpp
media/libcubeb/src/cubeb_mixer.h
--- a/media/libcubeb/src/cubeb_mixer.cpp
+++ b/media/libcubeb/src/cubeb_mixer.cpp
@@ -583,17 +583,17 @@ int MixerContext::init()
       }
     }
     _matrix_ch[i][0] = ch_in;
   }
 
   return 0;
 }
 
-static int rematrix(const MixerContext * s, void * out, void * in, uint32_t frames)
+static int rematrix(const MixerContext * s, void * out, const void * in, uint32_t frames)
 {
   for (uint32_t out_i = 0; out_i < s->_out_ch_count; out_i++) {
     switch (s->_matrix_ch[out_i][0]) {
       case 0:
         if (s->_format == CUBEB_SAMPLE_FLOAT32NE) {
           float* outf = static_cast<float*>(out) + out_i;
           for (uint32_t i = 0; i < frames; i++) {
             outf[i * s->_out_ch_count] = 0;
@@ -605,27 +605,27 @@ static int rematrix(const MixerContext *
             outi[i * s->_out_ch_count] = 0;
           }
         }
         break;
       case 1: {
         int in_i = s->_matrix_ch[out_i][1];
         if (s->_format == CUBEB_SAMPLE_FLOAT32NE) {
           float* outf = static_cast<float*>(out) + out_i;
-          float* inf = static_cast<float*>(in) + in_i;
+          const float* inf = static_cast<const float*>(in) + in_i;
           copy(outf,
                s->_out_ch_count,
                inf,
                s->_in_ch_count,
                s->_matrix_flt[out_i][in_i],
                frames);
         } else {
           assert(s->_format == CUBEB_SAMPLE_S16NE);
           int16_t* outi = static_cast<int16_t*>(out) + out_i;
-          int16_t* ini = static_cast<int16_t*>(in) + in_i;
+          const int16_t* ini = static_cast<const int16_t*>(in) + in_i;
           if (s->_clipping) {
             copy<int16_t, int, true>(outi,
                                      s->_out_ch_count,
                                      ini,
                                      s->_in_ch_count,
                                      s->_matrix32[out_i][in_i],
                                      frames);
           } else {
@@ -636,31 +636,31 @@ static int rematrix(const MixerContext *
                                       s->_matrix32[out_i][in_i],
                                       frames);
           }
         }
       } break;
       case 2:
         if (s->_format == CUBEB_SAMPLE_FLOAT32NE) {
           float* outf = static_cast<float*>(out) + out_i;
-          float* inf1 = static_cast<float*>(in) + s->_matrix_ch[out_i][1];
-          float* inf2 = static_cast<float*>(in) + s->_matrix_ch[out_i][2];
+          const float* inf1 = static_cast<const float*>(in) + s->_matrix_ch[out_i][1];
+          const float* inf2 = static_cast<const float*>(in) + s->_matrix_ch[out_i][2];
           sum2(outf,
                s->_out_ch_count,
                inf1,
                inf2,
                s->_in_ch_count,
                s->_matrix_flt[out_i][s->_matrix_ch[out_i][1]],
                s->_matrix_flt[out_i][s->_matrix_ch[out_i][2]],
                frames);
         } else {
           assert(s->_format == CUBEB_SAMPLE_S16NE);
           int16_t* outi = static_cast<int16_t*>(out) + out_i;
-          int16_t* ini1 = static_cast<int16_t*>(in) + s->_matrix_ch[out_i][1];
-          int16_t* ini2 = static_cast<int16_t*>(in) + s->_matrix_ch[out_i][2];
+          const int16_t* ini1 = static_cast<const int16_t*>(in) + s->_matrix_ch[out_i][1];
+          const int16_t* ini2 = static_cast<const int16_t*>(in) + s->_matrix_ch[out_i][2];
           if (s->_clipping) {
             sum2<int16_t, int, true>(
               outi,
               s->_out_ch_count,
               ini1,
               ini2,
               s->_in_ch_count,
               s->_matrix32[out_i][s->_matrix_ch[out_i][1]],
@@ -677,30 +677,30 @@ static int rematrix(const MixerContext *
               s->_matrix32[out_i][s->_matrix_ch[out_i][2]],
               frames);
           }
         }
         break;
       default:
         if (s->_format == CUBEB_SAMPLE_FLOAT32NE) {
           float* outf = static_cast<float*>(out) + out_i;
-          float* inf = static_cast<float*>(in);
+          const float* inf = static_cast<const float*>(in);
           for (uint32_t i = 0; i < frames; i++) {
             float v = 0;
             for (uint32_t j = 0; j < s->_matrix_ch[out_i][0]; j++) {
               uint32_t in_i = s->_matrix_ch[out_i][1 + j];
               v += *(inf + in_i + i * s->_in_ch_count) *
                    s->_matrix_flt[out_i][in_i];
             }
             outf[i * s->_out_ch_count] = v;
           }
         } else {
           assert(s->_format == CUBEB_SAMPLE_S16NE);
           int16_t* outi = static_cast<int16_t*>(out) + out_i;
-          int16_t* ini = static_cast<int16_t*>(in);
+          const int16_t* ini = static_cast<const int16_t*>(in);
           for (uint32_t i = 0; i < frames; i++) {
             int v = 0;
             for (uint32_t j = 0; j < s->_matrix_ch[out_i][0]; j++) {
               uint32_t in_i = s->_matrix_ch[out_i][1 + j];
               v +=
                 *(ini + in_i + i * s->_in_ch_count) * s->_matrix32[out_i][in_i];
             }
             if (s->_clipping) {
@@ -723,18 +723,18 @@ struct cubeb_mixer
               uint32_t out_channels,
               cubeb_channel_layout out_layout)
     : _context(format, in_channels, in_layout, out_channels, out_layout)
   {
   }
 
   template<typename T>
   void copy_and_trunc(unsigned long frames,
-                      T* input_buffer,
-                      T* output_buffer) const
+                      const T * input_buffer,
+                      T * output_buffer) const
   {
     if (_context._in_ch_count <= _context._out_ch_count) {
       // Not enough channels to copy, fill the gaps with silence.
       for (uint32_t i = 0; i < frames; i++) {
         PodCopy(output_buffer, input_buffer, _context._in_ch_count);
         output_buffer += _context._in_ch_count;
         input_buffer += _context._in_ch_count;
         PodZero(output_buffer, _context._out_ch_count - _context._in_ch_count);
@@ -745,17 +745,17 @@ struct cubeb_mixer
         PodCopy(output_buffer, input_buffer, _context._out_ch_count);
         output_buffer += _context._out_ch_count;
         input_buffer += _context._in_ch_count;
       }
     }
   }
 
   int mix(unsigned long frames,
-          void * input_buffer,
+          const void * input_buffer,
           unsigned long input_buffer_size,
           void * output_buffer,
           unsigned long output_buffer_size) const
   {
     if (frames <= 0 || _context._out_ch_count == 0) {
       return 0;
     }
 
@@ -771,23 +771,23 @@ struct cubeb_mixer
       return -1;
     }
 
     if (!valid()) {
       // The channel layouts were invalid or unsupported, instead we will simply
       // either drop the extra channels, or fill with silence the missing ones
       if (_context._format == CUBEB_SAMPLE_FLOAT32NE) {
         copy_and_trunc(frames,
-                       reinterpret_cast<float*>(input_buffer),
-                       reinterpret_cast<float*>(output_buffer));
+                       static_cast<const float*>(input_buffer),
+                       static_cast<float*>(output_buffer));
       } else {
         assert(_context._format == CUBEB_SAMPLE_S16NE);
         copy_and_trunc(frames,
-                       reinterpret_cast<int16_t*>(input_buffer),
-                       reinterpret_cast<int16_t*>(output_buffer));
+                       static_cast<const int16_t*>(input_buffer),
+                       static_cast<int16_t*>(output_buffer));
       }
     }
 
     return rematrix(&_context, output_buffer, input_buffer, frames);
   }
 
   // Return false if any of the input or ouput layout were invalid.
   bool valid() const { return _context._valid; }
@@ -809,16 +809,16 @@ cubeb_mixer* cubeb_mixer_create(cubeb_sa
 
 void cubeb_mixer_destroy(cubeb_mixer * mixer)
 {
   delete mixer;
 }
 
 int cubeb_mixer_mix(cubeb_mixer * mixer,
                     unsigned long frames,
-                    void* input_buffer,
+                    const void * input_buffer,
                     unsigned long input_buffer_size,
-                    void* output_buffer,
+                    void * output_buffer,
                     unsigned long output_buffer_size)
 {
   return mixer->mix(
     frames, input_buffer, input_buffer_size, output_buffer, output_buffer_size);
 }
--- a/media/libcubeb/src/cubeb_mixer.h
+++ b/media/libcubeb/src/cubeb_mixer.h
@@ -18,17 +18,17 @@ typedef struct cubeb_mixer cubeb_mixer;
 cubeb_mixer * cubeb_mixer_create(cubeb_sample_format format,
                                  uint32_t in_channels,
                                  cubeb_channel_layout in_layout,
                                  uint32_t out_channels,
                                  cubeb_channel_layout out_layout);
 void cubeb_mixer_destroy(cubeb_mixer * mixer);
 int cubeb_mixer_mix(cubeb_mixer * mixer,
                     unsigned long frames,
-                    void * input_buffer,
+                    const void * input_buffer,
                     unsigned long input_buffer_size,
                     void * output_buffer,
                     unsigned long output_buffer_size);
 
 unsigned int cubeb_channel_layout_nb_channels(cubeb_channel_layout channel_layout);
 
 #if defined(__cplusplus)
 }