OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright (c) 2012 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 #ifndef WEBRTC_MODULES_AUDIO_CODING_MAIN_TEST_PCMFILE_H_ | |
12 #define WEBRTC_MODULES_AUDIO_CODING_MAIN_TEST_PCMFILE_H_ | |
13 | |
14 #include <stdio.h> | |
15 #include <stdlib.h> | |
16 | |
17 #include <string> | |
18 | |
19 #include "webrtc/modules/include/module_common_types.h" | |
20 #include "webrtc/typedefs.h" | |
21 | |
22 namespace webrtc { | |
23 | |
24 class PCMFile { | |
25 public: | |
26 PCMFile(); | |
27 PCMFile(uint32_t timestamp); | |
28 ~PCMFile() { | |
29 if (pcm_file_ != NULL) { | |
30 fclose(pcm_file_); | |
31 } | |
32 } | |
33 | |
34 void Open(const std::string& filename, uint16_t frequency, const char* mode, | |
35 bool auto_rewind = false); | |
36 | |
37 int32_t Read10MsData(AudioFrame& audio_frame); | |
38 | |
39 void Write10MsData(int16_t *playout_buffer, size_t length_smpls); | |
40 void Write10MsData(AudioFrame& audio_frame); | |
41 | |
42 uint16_t PayloadLength10Ms() const; | |
43 int32_t SamplingFrequency() const; | |
44 void Close(); | |
45 bool EndOfFile() const { | |
46 return end_of_file_; | |
47 } | |
48 void Rewind(); | |
49 static int16_t ChooseFile(std::string* file_name, int16_t max_len, | |
50 uint16_t* frequency_hz); | |
51 bool Rewinded(); | |
52 void SaveStereo(bool is_stereo = true); | |
53 void ReadStereo(bool is_stereo = true); | |
54 private: | |
55 FILE* pcm_file_; | |
56 uint16_t samples_10ms_; | |
57 int32_t frequency_; | |
58 bool end_of_file_; | |
59 bool auto_rewind_; | |
60 bool rewinded_; | |
61 uint32_t timestamp_; | |
62 bool read_stereo_; | |
63 bool save_stereo_; | |
64 }; | |
65 | |
66 } // namespace webrtc | |
67 | |
68 #endif // WEBRTC_MODULES_AUDIO_CODING_MAIN_TEST_PCMFILE_H_ | |
OLD | NEW |