Use the sample rate as a temporary solution to unpack aecdumps with wrong sizes

The sizes saved in the aecdumps were always the input length, and this is not necessarily true when there is a change in sample rate. But the sample rates dumped are correct, so we can calculate the sizes from them knowing that we use 10ms chunks.

BUG=webrtc:3359
R=bjornv@webrtc.org, kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/24389004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7039 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/audio_processing/test/unpack.cc b/webrtc/modules/audio_processing/test/unpack.cc
index a225d58..bb76a2d 100644
--- a/webrtc/modules/audio_processing/test/unpack.cc
+++ b/webrtc/modules/audio_processing/test/unpack.cc
@@ -140,9 +140,12 @@
 
   Event event_msg;
   int frame_count = 0;
+  int reverse_samples_per_channel = 0;
+  int input_samples_per_channel = 0;
+  int output_samples_per_channel = 0;
+  int num_reverse_channels = 0;
   int num_input_channels = 0;
   int num_output_channels = 0;
-  int num_reverse_channels = 0;
   scoped_ptr<WavFile> reverse_wav_file;
   scoped_ptr<WavFile> input_wav_file;
   scoped_ptr<WavFile> output_wav_file;
@@ -158,8 +161,12 @@
 
       const ReverseStream msg = event_msg.reverse_stream();
       if (msg.has_data()) {
+        // TODO(aluebs): Replace "num_reverse_channels *
+        // reverse_samples_per_channel" with "msg.data().size() /
+        // sizeof(int16_t)" and so on when this fix in audio_processing has made
+        // it into stable: https://webrtc-codereview.appspot.com/15299004/
         WriteIntData(reinterpret_cast<const int16_t*>(msg.data().data()),
-                     msg.data().size() / sizeof(int16_t),
+                     num_reverse_channels * reverse_samples_per_channel,
                      reverse_wav_file.get(),
                      reverse_pcm_file.get());
       } else if (msg.channel_size() > 0) {
@@ -168,7 +175,7 @@
           data[i] = reinterpret_cast<const float*>(msg.channel(i).data());
         }
         WriteFloatData(data.get(),
-                       msg.channel(0).size() / sizeof(float),
+                       reverse_samples_per_channel,
                        num_reverse_channels,
                        reverse_wav_file.get(),
                        reverse_pcm_file.get());
@@ -183,7 +190,7 @@
       const Stream msg = event_msg.stream();
       if (msg.has_input_data()) {
         WriteIntData(reinterpret_cast<const int16_t*>(msg.input_data().data()),
-                     msg.input_data().size() / sizeof(int16_t),
+                     num_input_channels * input_samples_per_channel,
                      input_wav_file.get(),
                      input_pcm_file.get());
       } else if (msg.input_channel_size() > 0) {
@@ -192,7 +199,7 @@
           data[i] = reinterpret_cast<const float*>(msg.input_channel(i).data());
         }
         WriteFloatData(data.get(),
-                       msg.input_channel(0).size() / sizeof(float),
+                       input_samples_per_channel,
                        num_input_channels,
                        input_wav_file.get(),
                        input_pcm_file.get());
@@ -200,7 +207,7 @@
 
       if (msg.has_output_data()) {
         WriteIntData(reinterpret_cast<const int16_t*>(msg.output_data().data()),
-                     msg.output_data().size() / sizeof(int16_t),
+                     num_output_channels * output_samples_per_channel,
                      output_wav_file.get(),
                      output_pcm_file.get());
       } else if (msg.output_channel_size() > 0) {
@@ -210,7 +217,7 @@
               reinterpret_cast<const float*>(msg.output_channel(i).data());
         }
         WriteFloatData(data.get(),
-                       msg.output_channel(0).size() / sizeof(float),
+                       output_samples_per_channel,
                        num_output_channels,
                        output_wav_file.get(),
                        output_pcm_file.get());
@@ -276,6 +283,10 @@
         output_sample_rate = input_sample_rate;
       }
 
+      reverse_samples_per_channel = reverse_sample_rate / 100;
+      input_samples_per_channel = input_sample_rate / 100;
+      output_samples_per_channel = output_sample_rate / 100;
+
       if (FLAGS_pcm) {
         if (!reverse_pcm_file.get()) {
           reverse_pcm_file.reset(new PcmFile(FLAGS_reverse_file));
@@ -288,14 +299,14 @@
         }
       } else {
         reverse_wav_file.reset(new WavFile(FLAGS_reverse_wav_file,
-                                       reverse_sample_rate,
-                                       num_reverse_channels));
+                                           reverse_sample_rate,
+                                           num_reverse_channels));
         input_wav_file.reset(new WavFile(FLAGS_input_wav_file,
-                                     input_sample_rate,
-                                     num_input_channels));
+                                         input_sample_rate,
+                                         num_input_channels));
         output_wav_file.reset(new WavFile(FLAGS_output_wav_file,
-                                      output_sample_rate,
-                                      num_output_channels));
+                                          output_sample_rate,
+                                          num_output_channels));
       }
     }
   }