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

Side by Side Diff: webrtc/modules/utility/source/file_recorder.cc

Issue 2049683003: FileRecorder + FilePlayer: Let Create functions return unique_ptr (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@remove3
Patch Set: Created 4 years, 4 months 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
(...skipping 22 matching lines...) Expand all
33 // The largest decoded frame size in samples (60ms with 32kHz sample rate). 33 // The largest decoded frame size in samples (60ms with 32kHz sample rate).
34 enum { MAX_AUDIO_BUFFER_IN_SAMPLES = 60 * 32 }; 34 enum { MAX_AUDIO_BUFFER_IN_SAMPLES = 60 * 32 };
35 enum { MAX_AUDIO_BUFFER_IN_BYTES = MAX_AUDIO_BUFFER_IN_SAMPLES * 2 }; 35 enum { MAX_AUDIO_BUFFER_IN_BYTES = MAX_AUDIO_BUFFER_IN_SAMPLES * 2 };
36 enum { kMaxAudioBufferQueueLength = 100 }; 36 enum { kMaxAudioBufferQueueLength = 100 };
37 37
38 class CriticalSectionWrapper; 38 class CriticalSectionWrapper;
39 39
40 class FileRecorderImpl : public FileRecorder { 40 class FileRecorderImpl : public FileRecorder {
41 public: 41 public:
42 FileRecorderImpl(uint32_t instanceID, FileFormats fileFormat); 42 FileRecorderImpl(uint32_t instanceID, FileFormats fileFormat);
43 virtual ~FileRecorderImpl(); 43 ~FileRecorderImpl() override;
44 44
45 // FileRecorder functions. 45 // FileRecorder functions.
46 int32_t RegisterModuleFileCallback(FileCallback* callback) override; 46 int32_t RegisterModuleFileCallback(FileCallback* callback) override;
47 FileFormats RecordingFileFormat() const override; 47 FileFormats RecordingFileFormat() const override;
48 int32_t StartRecordingAudioFile(const char* fileName, 48 int32_t StartRecordingAudioFile(const char* fileName,
49 const CodecInst& codecInst, 49 const CodecInst& codecInst,
50 uint32_t notificationTimeMs) override; 50 uint32_t notificationTimeMs) override;
51 int32_t StartRecordingAudioFile(OutStream& destStream, 51 int32_t StartRecordingAudioFile(OutStream& destStream,
52 const CodecInst& codecInst, 52 const CodecInst& codecInst,
53 uint32_t notificationTimeMs) override; 53 uint32_t notificationTimeMs) override;
54 int32_t StopRecording() override; 54 int32_t StopRecording() override;
55 bool IsRecording() const override; 55 bool IsRecording() const override;
56 int32_t codec_info(CodecInst& codecInst) const override; 56 int32_t codec_info(CodecInst& codecInst) const override;
57 int32_t RecordAudioToFile(const AudioFrame& frame) override; 57 int32_t RecordAudioToFile(const AudioFrame& frame) override;
58 58
59 protected: 59 private:
60 int32_t WriteEncodedAudioData(const int8_t* audioBuffer, size_t bufferLength); 60 int32_t WriteEncodedAudioData(const int8_t* audioBuffer, size_t bufferLength);
61 61
62 int32_t SetUpAudioEncoder(); 62 int32_t SetUpAudioEncoder();
63 63
64 uint32_t _instanceID; 64 uint32_t _instanceID;
65 FileFormats _fileFormat; 65 FileFormats _fileFormat;
66 MediaFile* _moduleFile; 66 MediaFile* _moduleFile;
67 67
68 private:
69 CodecInst codec_info_; 68 CodecInst codec_info_;
70 int8_t _audioBuffer[MAX_AUDIO_BUFFER_IN_BYTES]; 69 int8_t _audioBuffer[MAX_AUDIO_BUFFER_IN_BYTES];
71 AudioCoder _audioEncoder; 70 AudioCoder _audioEncoder;
72 Resampler _audioResampler; 71 Resampler _audioResampler;
73 }; 72 };
74 73
75 FileRecorderImpl::FileRecorderImpl(uint32_t instanceID, FileFormats fileFormat) 74 FileRecorderImpl::FileRecorderImpl(uint32_t instanceID, FileFormats fileFormat)
76 : _instanceID(instanceID), 75 : _instanceID(instanceID),
77 _fileFormat(fileFormat), 76 _fileFormat(fileFormat),
78 _moduleFile(MediaFile::CreateMediaFile(_instanceID)), 77 _moduleFile(MediaFile::CreateMediaFile(_instanceID)),
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 return 0; 247 return 0;
249 } 248 }
250 249
251 int32_t FileRecorderImpl::WriteEncodedAudioData(const int8_t* audioBuffer, 250 int32_t FileRecorderImpl::WriteEncodedAudioData(const int8_t* audioBuffer,
252 size_t bufferLength) { 251 size_t bufferLength) {
253 return _moduleFile->IncomingAudioData(audioBuffer, bufferLength); 252 return _moduleFile->IncomingAudioData(audioBuffer, bufferLength);
254 } 253 }
255 254
256 } // namespace 255 } // namespace
257 256
258 FileRecorder* FileRecorder::CreateFileRecorder(uint32_t instanceID, 257 std::unique_ptr<FileRecorder> FileRecorder::CreateFileRecorder(
259 FileFormats fileFormat) { 258 uint32_t instanceID,
260 return new FileRecorderImpl(instanceID, fileFormat); 259 FileFormats fileFormat) {
261 } 260 return std::unique_ptr<FileRecorder>(
262 261 new FileRecorderImpl(instanceID, fileFormat));
263 void FileRecorder::DestroyFileRecorder(FileRecorder* recorder) {
264 delete recorder;
265 } 262 }
266 263
267 } // namespace webrtc 264 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698