Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
media_recorder_i.h
1//
2// media_recorder.hpp
3//
4// Created by zexiong qin on 2019-06.
5// Copyright © 2018 Agora. All rights reserved.
6//
7
8#pragma once
9
10#include "AgoraMediaBase.h"
11#include <stdint.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17typedef void AyseMuxerContext;
18
19#define AYSE_IO_FLAG_READ 0x1
20#define AYSE_IO_FLAG_WRITE 0x2
21#define AYSE_IO_FLAG_ODIRECT 0x4
22
23#ifdef __cplusplus
24}
25#endif
26
27namespace agora {
28namespace media {
30}
31namespace rtc {
32
36 public:
54
66
78
79 struct VDataInfo {
80 unsigned int codec;
81 unsigned int width;
82 unsigned int height;
85 bool equal(const VDataInfo& vinfo) const {
86 return codec == vinfo.codec && width == vinfo.width && height == vinfo.height &&
87 rotation == vinfo.rotation;
88 }
89
90 VDataInfo() : codec(0), width(0), height(0), frameType(0), rotation(0) {}
91 };
92
93 struct ADataInfo {
94 unsigned int codec;
95 unsigned int bitwidth;
96 unsigned int sample_rate;
97 unsigned int channel;
98 unsigned int sample_size;
99
100 bool equal(const ADataInfo& ainfo) const {
101 return codec == ainfo.codec && bitwidth == ainfo.bitwidth &&
102 sample_rate == ainfo.sample_rate && channel == ainfo.channel;
103 };
104
106 };
107
108 struct AVData {
112 unsigned int uid;
119 unsigned int size;
122 unsigned char* buffer;
125 unsigned int timestamp;
134
136 };
137
138 virtual ~IAVDataObserver() {}
139
140 virtual bool onAVDataReady(const AVData& avdata) = 0;
141};
142
146 public:
147 virtual int startRecording(const media::MediaRecorderConfiguration& config) = 0;
148
149 virtual int stopRecording() = 0;
150
151 virtual void release() = 0;
152
154
155 virtual void setSysVersion(int sys_version) = 0;
156
157 bool onPlaybackAudioFrame(const char* channelId, AudioFrame& audioFrame) override{return true;}
158 bool onMixedAudioFrame(const char* channelId, AudioFrame& audioFrame) override{return true;}
159 bool onEarMonitoringAudioFrame(AudioFrame& audioFrame) override { return true; }
160
162
164
166
168};
169
170} // namespace rtc
171} // namespace agora
Definition AgoraMediaBase.h:1549
Definition rtc_engine_i.h:47
Definition AgoraMediaBase.h:1642
Definition media_recorder_i.h:35
virtual bool onAVDataReady(const AVData &avdata)=0
virtual ~IAVDataObserver()
Definition media_recorder_i.h:138
CODEC_VIDEO
Definition media_recorder_i.h:55
@ CODEC_VIDEO_HEVC
Definition media_recorder_i.h:61
@ CODEC_VIDEO_VP8
Definition media_recorder_i.h:64
@ CODEC_VIDEO_AVC
Definition media_recorder_i.h:58
AVDATA_TYPE
Definition media_recorder_i.h:40
@ AVDATA_AUDIO_MUTE
Definition media_recorder_i.h:52
@ AVDATA_AUDIO
Definition media_recorder_i.h:49
@ AVDATA_VIDEO
Definition media_recorder_i.h:46
@ AVDATA_UNKNOWN
Definition media_recorder_i.h:43
CODEC_AUDIO
Definition media_recorder_i.h:67
@ CODEC_AUDIO_AAC
Definition media_recorder_i.h:73
@ CODEC_AUDIO_G722
Definition media_recorder_i.h:76
@ CODEC_AUDIO_PCM
Definition media_recorder_i.h:70
Definition media_recorder_i.h:145
bool onEarMonitoringAudioFrame(AudioFrame &audioFrame) override
Definition media_recorder_i.h:159
AudioParams getRecordAudioParams() override
Definition media_recorder_i.h:163
virtual int startRecording(const media::MediaRecorderConfiguration &config)=0
virtual void setSysVersion(int sys_version)=0
AudioParams getMixedAudioParams() override
Definition media_recorder_i.h:165
virtual void setMediaRecorderObserver(media::IMediaRecorderObserverEx *observer)=0
AudioParams getPlaybackAudioParams() override
Definition media_recorder_i.h:161
AudioParams getEarMonitoringAudioParams() override
Definition media_recorder_i.h:167
bool onPlaybackAudioFrame(const char *channelId, AudioFrame &audioFrame) override
Definition media_recorder_i.h:157
virtual int stopRecording()=0
bool onMixedAudioFrame(const char *channelId, AudioFrame &audioFrame) override
Definition media_recorder_i.h:158
Definition content_inspect_i.h:15
Definition AgoraExtensions.h:5
@ RAW_AUDIO_FRAME_OP_MODE_READ_ONLY
Definition AgoraMediaBase.h:232
Definition AgoraAtomicOps.h:21
Definition AgoraMediaBase.h:1985
Definition media_recorder_i.h:93
ADataInfo()
Definition media_recorder_i.h:105
bool equal(const ADataInfo &ainfo) const
Definition media_recorder_i.h:100
unsigned int sample_size
Definition media_recorder_i.h:98
unsigned int bitwidth
Definition media_recorder_i.h:95
unsigned int codec
Definition media_recorder_i.h:94
unsigned int channel
Definition media_recorder_i.h:97
unsigned int sample_rate
Definition media_recorder_i.h:96
Definition media_recorder_i.h:108
VDataInfo vinfo
Definition media_recorder_i.h:129
ADataInfo ainfo
Definition media_recorder_i.h:133
enum AVDATA_TYPE type
Definition media_recorder_i.h:116
unsigned char * buffer
Definition media_recorder_i.h:122
AVData()
Definition media_recorder_i.h:135
unsigned int size
Definition media_recorder_i.h:119
unsigned int timestamp
Definition media_recorder_i.h:125
unsigned int uid
Definition media_recorder_i.h:112
Definition media_recorder_i.h:79
unsigned int height
Definition media_recorder_i.h:82
unsigned int width
Definition media_recorder_i.h:81
int frameType
Definition media_recorder_i.h:83
VDataInfo()
Definition media_recorder_i.h:90
int rotation
Definition media_recorder_i.h:84
bool equal(const VDataInfo &vinfo) const
Definition media_recorder_i.h:85
unsigned int codec
Definition media_recorder_i.h:80