Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(226)

Side by Side Diff: webrtc/modules/audio_coding/test/PCMFile.h

Issue 1513223002: Reduce the runtime of some ACM tests in modules_tests (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fixing win64 build Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 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 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 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #ifndef WEBRTC_MODULES_AUDIO_CODING_TEST_PCMFILE_H_ 11 #ifndef WEBRTC_MODULES_AUDIO_CODING_TEST_PCMFILE_H_
12 #define WEBRTC_MODULES_AUDIO_CODING_TEST_PCMFILE_H_ 12 #define WEBRTC_MODULES_AUDIO_CODING_TEST_PCMFILE_H_
13 13
14 #include <stdio.h> 14 #include <stdio.h>
15 #include <stdlib.h> 15 #include <stdlib.h>
16 16
17 #include <string> 17 #include <string>
18 18
19 #include "webrtc/base/optional.h"
19 #include "webrtc/modules/include/module_common_types.h" 20 #include "webrtc/modules/include/module_common_types.h"
20 #include "webrtc/typedefs.h" 21 #include "webrtc/typedefs.h"
21 22
22 namespace webrtc { 23 namespace webrtc {
23 24
24 class PCMFile { 25 class PCMFile {
25 public: 26 public:
26 PCMFile(); 27 PCMFile();
27 PCMFile(uint32_t timestamp); 28 PCMFile(uint32_t timestamp);
28 ~PCMFile() { 29 ~PCMFile() {
29 if (pcm_file_ != NULL) { 30 if (pcm_file_ != NULL) {
30 fclose(pcm_file_); 31 fclose(pcm_file_);
31 } 32 }
32 } 33 }
33 34
34 void Open(const std::string& filename, uint16_t frequency, const char* mode, 35 void Open(const std::string& filename, uint16_t frequency, const char* mode,
35 bool auto_rewind = false); 36 bool auto_rewind = false);
36 37
37 int32_t Read10MsData(AudioFrame& audio_frame); 38 int32_t Read10MsData(AudioFrame& audio_frame);
38 39
39 void Write10MsData(int16_t *playout_buffer, size_t length_smpls); 40 void Write10MsData(int16_t *playout_buffer, size_t length_smpls);
40 void Write10MsData(AudioFrame& audio_frame); 41 void Write10MsData(AudioFrame& audio_frame);
41 42
42 uint16_t PayloadLength10Ms() const; 43 uint16_t PayloadLength10Ms() const;
43 int32_t SamplingFrequency() const; 44 int32_t SamplingFrequency() const;
44 void Close(); 45 void Close();
45 bool EndOfFile() const { 46 bool EndOfFile() const {
46 return end_of_file_; 47 return end_of_file_;
47 } 48 }
49 // Moves forward the specified number of 10 ms blocks. If a limit has been set
50 // with SetNum10MsBlocksToRead, fast-forwarding does not count towards this
51 // limit.
52 void FastForward(int num_10ms_blocks);
48 void Rewind(); 53 void Rewind();
49 static int16_t ChooseFile(std::string* file_name, int16_t max_len, 54 static int16_t ChooseFile(std::string* file_name, int16_t max_len,
50 uint16_t* frequency_hz); 55 uint16_t* frequency_hz);
51 bool Rewinded(); 56 bool Rewinded();
52 void SaveStereo(bool is_stereo = true); 57 void SaveStereo(bool is_stereo = true);
53 void ReadStereo(bool is_stereo = true); 58 void ReadStereo(bool is_stereo = true);
59 // If set, the reading will stop after the specified number of blocks have
60 // been read. When that has happened, EndOfFile() will return true. Calling
61 // Rewind() will reset the counter and start over.
62 void SetNum10MsBlocksToRead(int value);
63
54 private: 64 private:
55 FILE* pcm_file_; 65 FILE* pcm_file_;
56 uint16_t samples_10ms_; 66 uint16_t samples_10ms_;
57 int32_t frequency_; 67 int32_t frequency_;
58 bool end_of_file_; 68 bool end_of_file_;
59 bool auto_rewind_; 69 bool auto_rewind_;
60 bool rewinded_; 70 bool rewinded_;
61 uint32_t timestamp_; 71 uint32_t timestamp_;
62 bool read_stereo_; 72 bool read_stereo_;
63 bool save_stereo_; 73 bool save_stereo_;
74 rtc::Optional<int> num_10ms_blocks_to_read_;
75 int blocks_read_ = 0;
64 }; 76 };
65 77
66 } // namespace webrtc 78 } // namespace webrtc
67 79
68 #endif // WEBRTC_MODULES_AUDIO_CODING_TEST_PCMFILE_H_ 80 #endif // WEBRTC_MODULES_AUDIO_CODING_TEST_PCMFILE_H_
OLDNEW
« no previous file with comments | « webrtc/modules/audio_coding/test/EncodeDecodeTest.cc ('k') | webrtc/modules/audio_coding/test/PCMFile.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698