Line data Source code
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_VOICE_ENGINE_FILE_RECORDER_H_
12 : #define WEBRTC_VOICE_ENGINE_FILE_RECORDER_H_
13 :
14 : #include <memory>
15 :
16 : #include "webrtc/common_types.h"
17 : #include "webrtc/modules/include/module_common_types.h"
18 : #include "webrtc/modules/media_file/media_file_defines.h"
19 : #include "webrtc/typedefs.h"
20 :
21 : namespace webrtc {
22 :
23 0 : class FileRecorder {
24 : public:
25 : // Note: will return NULL for unsupported formats.
26 : static std::unique_ptr<FileRecorder> CreateFileRecorder(
27 : const uint32_t instanceID,
28 : const FileFormats fileFormat);
29 :
30 0 : virtual ~FileRecorder() = default;
31 :
32 : virtual int32_t RegisterModuleFileCallback(FileCallback* callback) = 0;
33 :
34 : virtual FileFormats RecordingFileFormat() const = 0;
35 :
36 : virtual int32_t StartRecordingAudioFile(const char* fileName,
37 : const CodecInst& codecInst,
38 : uint32_t notification) = 0;
39 :
40 : virtual int32_t StartRecordingAudioFile(OutStream* destStream,
41 : const CodecInst& codecInst,
42 : uint32_t notification) = 0;
43 :
44 : // Stop recording.
45 : virtual int32_t StopRecording() = 0;
46 :
47 : // Return true if recording.
48 : virtual bool IsRecording() const = 0;
49 :
50 : virtual int32_t codec_info(CodecInst* codecInst) const = 0;
51 :
52 : // Write frame to file. Frame should contain 10ms of un-ecoded audio data.
53 : virtual int32_t RecordAudioToFile(const AudioFrame& frame) = 0;
54 : };
55 :
56 : } // namespace webrtc
57 : #endif // WEBRTC_VOICE_ENGINE_FILE_RECORDER_H_
|