Home | History | Annotate | Download | only in logging
      1 /*
      2  *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
      3  *
      4  *  Use of this source code is governed by a BSD-style license
      5  *  that can be found in the LICENSE file in the root of the source
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS.  All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 #include "webrtc/modules/audio_processing/logging/aec_logging_file_handling.h"
     12 
     13 #include <stdint.h>
     14 #include <stdio.h>
     15 
     16 #include "webrtc/base/checks.h"
     17 #include "webrtc/base/stringutils.h"
     18 #include "webrtc/common_audio/wav_file.h"
     19 #include "webrtc/typedefs.h"
     20 
     21 #ifdef WEBRTC_AEC_DEBUG_DUMP
     22 void WebRtcAec_ReopenWav(const char* name,
     23                          int instance_index,
     24                          int process_rate,
     25                          int sample_rate,
     26                          rtc_WavWriter** wav_file) {
     27   if (*wav_file) {
     28     if (rtc_WavSampleRate(*wav_file) == sample_rate)
     29       return;
     30     rtc_WavClose(*wav_file);
     31   }
     32   char filename[64];
     33   int written = rtc::sprintfn(filename, sizeof(filename), "%s%d-%d.wav", name,
     34                               instance_index, process_rate);
     35 
     36   // Ensure there was no buffer output error.
     37   RTC_DCHECK_GE(written, 0);
     38   // Ensure that the buffer size was sufficient.
     39   RTC_DCHECK_LT(static_cast<size_t>(written), sizeof(filename));
     40 
     41   *wav_file = rtc_WavOpen(filename, sample_rate, 1);
     42 }
     43 
     44 void WebRtcAec_RawFileOpen(const char* name, int instance_index, FILE** file) {
     45   char filename[64];
     46   int written = rtc::sprintfn(filename, sizeof(filename), "%s_%d.dat", name,
     47                               instance_index);
     48 
     49   // Ensure there was no buffer output error.
     50   RTC_DCHECK_GE(written, 0);
     51   // Ensure that the buffer size was sufficient.
     52   RTC_DCHECK_LT(static_cast<size_t>(written), sizeof(filename));
     53 
     54   *file = fopen(filename, "wb");
     55 }
     56 
     57 #endif  // WEBRTC_AEC_DEBUG_DUMP
     58