Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
AgoraMediaBase.h
1// Agora Engine SDK
2//
3// Created by Sting Feng in 2017-11.
4// Copyright (c) 2017 Agora.io. All rights reserved.
5
6#pragma once // NOLINT(build/header_guard)
7
8#include <cstring>
9#include <stdint.h>
10#include <limits>
11#include <stddef.h>
12
13#ifndef OPTIONAL_ENUM_SIZE_T
14#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
15#define OPTIONAL_ENUM_SIZE_T enum : size_t
16#else
17#define OPTIONAL_ENUM_SIZE_T enum
18#endif
19#endif
20
21#if !defined(__APPLE__)
22#define __deprecated
23#endif
24
25namespace agora {
26namespace rtc {
27
28typedef unsigned int uid_t;
29typedef unsigned int track_id_t;
30typedef unsigned int conn_id_t;
31typedef unsigned int video_track_id_t;
32
33static const unsigned int INVALID_TRACK_ID = 0xffffffff;
34static const unsigned int DEFAULT_CONNECTION_ID = 0;
35static const unsigned int DUMMY_CONNECTION_ID = (std::numeric_limits<unsigned int>::max)();
36
47 bool isValid;
56 const char *providerName;
60 const char *extensionName;
62};
63
64
123
152
206
216
224
240
241} // namespace rtc
242
243namespace media {
309
310namespace base {
311
312typedef void* view_t;
313
314typedef const char* user_id_t;
315
316static const uint8_t kMaxCodecNameLength = 50;
317
326 uint32_t timestamp;
327 // Audio level indication.
330};
331
335
340 uint64_t sendTs;
344 uint8_t codec;
346};
347
356 // Stereo, 32 kHz, 60 ms (2 * 32 * 60)
364 kMaxDataSizeSamples = 3840,
366 kMaxDataSizeBytes = kMaxDataSizeSamples * sizeof(int16_t),
367 };
368
389 int16_t data_[kMaxDataSizeSamples];
390
396
398 if (this == &src) {
399 return *this;
400 }
401
408 this->audio_track_number_ = src.audio_track_number_;
409
410 size_t length = src.samples_per_channel_ * src.num_channels_;
411 if (length > kMaxDataSizeSamples) {
412 length = kMaxDataSizeSamples;
413 }
414
415 memcpy(data_, src.data_, length * sizeof(int16_t));
416
417 return *this;
418 }
419
424 num_channels_(0),
426 bytes_per_sample(rtc::TWO_BYTES_PER_SAMPLE),
427 is_stereo_(false) {
428 memset(data_, 0, sizeof(data_));
429 }
430
439 size_t length = src.samples_per_channel_ * src.num_channels_;
440 if (length > kMaxDataSizeSamples) {
441 length = kMaxDataSizeSamples;
442 }
443
444 memcpy(this->data_, src.data_, length * sizeof(int16_t));
445 }
446};
447
460
497 /*
498 12: pixel format for iOS CVPixelBuffer NV12
499 */
501 /*
502 13: pixel format for iOS CVPixelBuffer I420
503 */
505 /*
506 14: pixel format for iOS CVPixelBuffer BGRA
507 */
527};
528
548 RENDER_MODE_ADAPTIVE __deprecated = 3,
549};
550
568
574 public:
579 virtual const char* getMetaInfoStr(META_INFO_KEY key) const = 0;
580};
581
584 // The indices are equal to the values specified in T-REC H.273 Table 2.
589 PRIMARYID_SMPTE170M = 6, // Identical to BT601
596 PRIMARYID_JEDECP22 = 22, // Identical to EBU3213-E
597 };
598
599 enum RangeID {
600 // The indices are equal to the values specified at
601 // https://www.webmproject.org/docs/container/#colour for the element Range.
603 // Limited Rec. 709 color range with RGB values ranging from 16 to 235.
605 // Full RGB color range with RGB valees from 0 to 255.
607 // Range is defined by MatrixCoefficients/TransferCharacteristics.
609 };
610
628
649
654
658
664};
665
739
765
766
959
1102
1107 public:
1116 virtual void onFrame(const VideoFrame* frame) = 0;
1118 virtual bool isExternal() { return true; }
1120};
1121
1141
1148
1149} // namespace base
1150
1153#define MAX_CONTENT_INSPECT_MODULE_COUNT 32
1159
1179
1199
1202 const char* extraInfo;
1206 const char* serverConfig;
1210 ContentInspectModule modules[MAX_CONTENT_INSPECT_MODULE_COUNT];
1215 extraInfo = rth.extraInfo;
1218 memcpy(&modules, &rth.modules, MAX_CONTENT_INSPECT_MODULE_COUNT * sizeof(ContentInspectModule));
1219 return *this;
1220 }
1222};
1223
1246
1251 public:
1262};
1263
1268 public:
1278 enum { MAX_HANDLE_TIME_CNT = 10 };
1357
1376
1387
1388 /* The number of audio channels, which can be set as either of the following values:
1389
1390 - `1`: Mono (Default)
1391 - `2`: Stereo
1392 */
1394
1395 /* The use mode of the audio data. See AgoraAudioRawFrameOperationMode.
1396 */
1398
1403
1405 : sample_rate(0),
1406 channels(0),
1407 mode(rtc::RAW_AUDIO_FRAME_OP_MODE_READ_ONLY),
1408 samples_per_call(0) {}
1409 AudioParams(int samplerate, int channel, rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE type,
1410 int samplesPerCall)
1411 : sample_rate(samplerate),
1412 channels(channel),
1413 mode(type),
1414 samples_per_call(samplesPerCall) {}
1415 };
1416
1417 public:
1419
1428 virtual bool onRecordAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;
1437 virtual bool onPlaybackAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;
1446 virtual bool onMixedAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;
1454 virtual bool onEarMonitoringAudioFrame(AudioFrame& audioFrame) = 0;
1464 virtual bool onPlaybackAudioFrameBeforeMixing(const char* channelId, base::user_id_t userId,
1465 AudioFrame& audioFrame) {
1466 (void)channelId;
1467 (void)userId;
1468 (void)audioFrame;
1469 return true;
1470 }
1471
1493
1495
1508
1520
1532
1544};
1545
1550 public:
1561 virtual bool onPlaybackAudioFrameBeforeMixing(const char* channelId, rtc::uid_t uid,
1562 AudioFrame& audioFrame) = 0;
1563};
1564
1569 const float* audioSpectrumData;
1574
1576 AudioSpectrumData(const float* data, int length) : audioSpectrumData(data), dataLength(length) {}
1577};
1578
1594
1599 public:
1601
1615 virtual bool onLocalAudioSpectrum(const AudioSpectrumData& data) = 0;
1635 virtual bool onRemoteAudioSpectrum(const UserAudioSpectrumInfo* spectrums,
1636 unsigned int spectrumNumber) = 0;
1637};
1638
1643 public:
1655 rtc::uid_t uid, const uint8_t* imageBuffer, size_t length,
1656 const rtc::EncodedVideoFrameInfo& videoEncodedFrameInfo) = 0;
1657
1659};
1660
1665 public:
1676 PROCESS_MODE_READ_ONLY, // Observer works as a pure renderer and will not modify the original
1677 // frame.
1683 PROCESS_MODE_READ_WRITE, // Observer works as a filter that will process the video frame and
1684 // affect the following frame processing in SDK.
1685 };
1686
1687 public:
1689
1713 VideoFrame& videoFrame) = 0;
1714
1739 VideoFrame& videoFrame) = 0;
1740
1764 virtual bool onMediaPlayerVideoFrame(VideoFrame& videoFrame, int mediaPlayerId) = 0;
1765
1785 virtual bool onRenderVideoFrame(const char* channelId, rtc::uid_t remoteUid,
1786 VideoFrame& videoFrame) = 0;
1787
1788 virtual bool onTranscodedVideoFrame(VideoFrame& videoFrame) = 0;
1789
1800
1817
1833 virtual bool getRotationApplied() { return false; }
1834
1851 virtual bool getMirrorApplied() { return false; }
1852
1878
1886 virtual bool isExternal() { return true; }
1887};
1888
1902
1914
1933
1952
1980
1994 const char* storagePath;
2026 int fps;
2039
2041 : storagePath(NULL),
2044 maxDurationMs(120000),
2046 width(1280),
2047 height(720),
2048 fps(30),
2049 sample_rate(48000),
2050 channel_num(1),
2051 videoSourceType(rtc::VIDEO_SOURCE_CAMERA_PRIMARY) {}
2053 MediaRecorderStreamType type, int duration, int interval)
2054 : storagePath(path),
2055 containerFormat(format),
2056 streamType(type),
2057 maxDurationMs(duration),
2059 width(1280),
2060 height(720),
2061 fps(30),
2062 sample_rate(48000),
2063 channel_num(1),
2064 videoSourceType(rtc::VIDEO_SOURCE_CAMERA_PRIMARY) {}
2065};
2066
2068 public:
2076 virtual bool onFaceInfo(const char* outFaceInfo) = 0;
2077
2079};
2080
2090 const char* fileName;
2094 unsigned int durationMs;
2098 unsigned int fileSize;
2099
2101 RecorderInfo(const char* name, unsigned int dur, unsigned int size)
2102 : fileName(name), durationMs(dur), fileSize(size) {}
2103};
2104
2106 public:
2121 virtual void onRecorderStateChanged(const char* channelId, rtc::uid_t uid, RecorderState state,
2122 RecorderReasonCode reason) = 0;
2139 virtual void onRecorderInfoUpdated(const char* channelId, rtc::uid_t uid,
2140 const RecorderInfo& info) = 0;
2141
2143};
2144
2145} // namespace media
2146} // namespace agora
Definition AgoraMediaBase.h:1267
virtual bool onPlaybackAudioFrame(const char *channelId, AudioFrame &audioFrame)=0
virtual ~IAudioFrameObserverBase()
Definition AgoraMediaBase.h:1418
virtual bool onEarMonitoringAudioFrame(AudioFrame &audioFrame)=0
@ MAX_HANDLE_TIME_CNT
Definition AgoraMediaBase.h:1278
AUDIO_FRAME_TYPE
Definition AgoraMediaBase.h:1272
@ FRAME_TYPE_PCM16
Definition AgoraMediaBase.h:1276
virtual bool onRecordAudioFrame(const char *channelId, AudioFrame &audioFrame)=0
virtual AudioParams getPlaybackAudioParams()=0
virtual AudioParams getMixedAudioParams()=0
virtual AudioParams getEarMonitoringAudioParams()=0
AUDIO_FRAME_POSITION
Definition AgoraMediaBase.h:1358
@ AUDIO_FRAME_POSITION_BEFORE_MIXING
Definition AgoraMediaBase.h:1371
@ AUDIO_FRAME_POSITION_RECORD
Definition AgoraMediaBase.h:1365
@ AUDIO_FRAME_POSITION_PLAYBACK
Definition AgoraMediaBase.h:1362
@ AUDIO_FRAME_POSITION_MIXED
Definition AgoraMediaBase.h:1368
@ AUDIO_FRAME_POSITION_NONE
Definition AgoraMediaBase.h:1359
@ AUDIO_FRAME_POSITION_EAR_MONITORING
Definition AgoraMediaBase.h:1374
virtual AudioParams getRecordAudioParams()=0
virtual bool onMixedAudioFrame(const char *channelId, AudioFrame &audioFrame)=0
virtual bool onPlaybackAudioFrameBeforeMixing(const char *channelId, base::user_id_t userId, AudioFrame &audioFrame)
Definition AgoraMediaBase.h:1464
Definition AgoraMediaBase.h:1549
virtual bool onPlaybackAudioFrameBeforeMixing(const char *channelId, rtc::uid_t uid, AudioFrame &audioFrame)=0
Definition AgoraMediaBase.h:1250
virtual ~IAudioPcmFrameSink()
Definition AgoraMediaBase.h:1261
virtual void onFrame(agora::media::base::AudioPcmFrame *frame)=0
Definition AgoraMediaBase.h:1598
virtual bool onRemoteAudioSpectrum(const UserAudioSpectrumInfo *spectrums, unsigned int spectrumNumber)=0
virtual ~IAudioSpectrumObserver()
Definition AgoraMediaBase.h:1600
virtual bool onLocalAudioSpectrum(const AudioSpectrumData &data)=0
Definition AgoraMediaBase.h:2067
virtual ~IFaceInfoObserver()
Definition AgoraMediaBase.h:2078
virtual bool onFaceInfo(const char *outFaceInfo)=0
Definition AgoraMediaBase.h:2105
virtual void onRecorderStateChanged(const char *channelId, rtc::uid_t uid, RecorderState state, RecorderReasonCode reason)=0
virtual ~IMediaRecorderObserver()
Definition AgoraMediaBase.h:2142
virtual void onRecorderInfoUpdated(const char *channelId, rtc::uid_t uid, const RecorderInfo &info)=0
Definition AgoraMediaBase.h:1642
virtual ~IVideoEncodedFrameObserver()
Definition AgoraMediaBase.h:1658
virtual bool onEncodedVideoFrameReceived(rtc::uid_t uid, const uint8_t *imageBuffer, size_t length, const rtc::EncodedVideoFrameInfo &videoEncodedFrameInfo)=0
Definition AgoraMediaBase.h:1664
virtual bool onMediaPlayerVideoFrame(VideoFrame &videoFrame, int mediaPlayerId)=0
virtual bool isExternal()
Definition AgoraMediaBase.h:1886
virtual bool onRenderVideoFrame(const char *channelId, rtc::uid_t remoteUid, VideoFrame &videoFrame)=0
VIDEO_FRAME_PROCESS_MODE
Definition AgoraMediaBase.h:1670
@ PROCESS_MODE_READ_ONLY
Definition AgoraMediaBase.h:1676
@ PROCESS_MODE_READ_WRITE
Definition AgoraMediaBase.h:1683
virtual ~IVideoFrameObserver()
Definition AgoraMediaBase.h:1688
virtual bool onPreEncodeVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE sourceType, VideoFrame &videoFrame)=0
virtual base::VIDEO_PIXEL_FORMAT getVideoFormatPreference()
Definition AgoraMediaBase.h:1816
virtual bool onCaptureVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE sourceType, VideoFrame &videoFrame)=0
virtual uint32_t getObservedFramePosition()
Definition AgoraMediaBase.h:1875
virtual bool onTranscodedVideoFrame(VideoFrame &videoFrame)=0
media::base::VideoFrame VideoFrame
Definition AgoraMediaBase.h:1666
virtual VIDEO_FRAME_PROCESS_MODE getVideoFrameProcessMode()
Definition AgoraMediaBase.h:1799
virtual bool getMirrorApplied()
Definition AgoraMediaBase.h:1851
virtual bool getRotationApplied()
Definition AgoraMediaBase.h:1833
Definition AgoraMediaBase.h:573
META_INFO_KEY
Definition AgoraMediaBase.h:575
@ KEY_FACE_CAPTURE
Definition AgoraMediaBase.h:576
virtual ~IVideoFrameMetaInfo()
Definition AgoraMediaBase.h:578
virtual const char * getMetaInfoStr(META_INFO_KEY key) const =0
Definition AgoraMediaBase.h:1106
virtual ~IVideoFrameObserver()
Definition AgoraMediaBase.h:1117
virtual bool isExternal()
Definition AgoraMediaBase.h:1118
virtual VIDEO_PIXEL_FORMAT getVideoFormatPreference()
Definition AgoraMediaBase.h:1119
virtual void onFrame(const VideoFrame *frame)=0
Definition IAgoraService.h:72
Definition NGIAgoraAudioDeviceManager.h:16
CAMERA_VIDEO_SOURCE_TYPE
Definition AgoraMediaBase.h:554
@ CAMERA_SOURCE_BACK
Definition AgoraMediaBase.h:562
@ CAMERA_SOURCE_FRONT
Definition AgoraMediaBase.h:558
@ VIDEO_SOURCE_UNSPECIFIED
Definition AgoraMediaBase.h:566
static const uint8_t kMaxCodecNameLength
Definition AgoraMediaBase.h:316
VIDEO_MODULE_POSITION
Definition AgoraMediaBase.h:1142
@ POSITION_PRE_RENDERER
Definition AgoraMediaBase.h:1144
@ POSITION_POST_CAPTURER
Definition AgoraMediaBase.h:1143
@ POSITION_PRE_ENCODER
Definition AgoraMediaBase.h:1145
@ POSITION_POST_CAPTURER_ORIGIN
Definition AgoraMediaBase.h:1146
RENDER_MODE_TYPE
Definition AgoraMediaBase.h:532
@ RENDER_MODE_HIDDEN
Definition AgoraMediaBase.h:537
@ __deprecated
Definition AgoraMediaBase.h:548
@ RENDER_MODE_FIT
Definition AgoraMediaBase.h:543
AUDIO_DUAL_MONO_MODE
Definition AgoraMediaBase.h:450
@ AUDIO_DUAL_MONO_MIX
Definition AgoraMediaBase.h:458
@ AUDIO_DUAL_MONO_L
Definition AgoraMediaBase.h:454
@ AUDIO_DUAL_MONO_STEREO
Definition AgoraMediaBase.h:452
@ AUDIO_DUAL_MONO_R
Definition AgoraMediaBase.h:456
const char * user_id_t
Definition AgoraMediaBase.h:314
void * view_t
Definition AgoraMediaBase.h:312
VIDEO_PIXEL_FORMAT
Definition AgoraMediaBase.h:464
@ VIDEO_TEXTURE_OES
Definition AgoraMediaBase.h:496
@ VIDEO_PIXEL_I010
Definition AgoraMediaBase.h:526
@ VIDEO_PIXEL_DEFAULT
Definition AgoraMediaBase.h:468
@ VIDEO_CVPIXEL_BGRA
Definition AgoraMediaBase.h:508
@ VIDEO_CVPIXEL_I420
Definition AgoraMediaBase.h:504
@ VIDEO_TEXTURE_2D
Definition AgoraMediaBase.h:492
@ VIDEO_TEXTURE_ID3D11TEXTURE2D
Definition AgoraMediaBase.h:521
@ VIDEO_PIXEL_BGRA
Definition AgoraMediaBase.h:476
@ VIDEO_PIXEL_I420
Definition AgoraMediaBase.h:472
@ VIDEO_PIXEL_NV21
Definition AgoraMediaBase.h:480
@ VIDEO_PIXEL_I422
Definition AgoraMediaBase.h:516
@ VIDEO_CVPIXEL_P010
Definition AgoraMediaBase.h:512
@ VIDEO_CVPIXEL_NV12
Definition AgoraMediaBase.h:500
@ VIDEO_PIXEL_NV12
Definition AgoraMediaBase.h:488
@ VIDEO_PIXEL_RGBA
Definition AgoraMediaBase.h:484
MEDIA_PLAYER_SOURCE_TYPE
Definition AgoraMediaBase.h:1122
@ MEDIA_PLAYER_SOURCE_SIMPLE
Definition AgoraMediaBase.h:1139
@ MEDIA_PLAYER_SOURCE_DEFAULT
Definition AgoraMediaBase.h:1128
@ MEDIA_PLAYER_SOURCE_FULL_FEATURED
Definition AgoraMediaBase.h:1134
ALPHA_STITCH_MODE
Definition AgoraMediaBase.h:743
@ ALPHA_STITCH_BELOW
Definition AgoraMediaBase.h:755
@ NO_ALPHA_STITCH
Definition AgoraMediaBase.h:747
@ ALPHA_STITCH_UP
Definition AgoraMediaBase.h:751
@ ALPHA_STITCH_LEFT
Definition AgoraMediaBase.h:759
@ ALPHA_STITCH_RIGHT
Definition AgoraMediaBase.h:763
Definition content_inspect_i.h:15
CONTENT_INSPECT_TYPE
Definition AgoraMediaBase.h:1160
@ CONTENT_INSPECT_IMAGE_MODERATION
Definition AgoraMediaBase.h:1177
@ __deprecated
Definition AgoraMediaBase.h:1169
@ CONTENT_INSPECT_SUPERVISION
Definition AgoraMediaBase.h:1173
@ CONTENT_INSPECT_INVALID
Definition AgoraMediaBase.h:1164
MEDIA_SOURCE_TYPE
Definition AgoraMediaBase.h:247
@ SPEECH_DRIVEN_VIDEO_SOURCE
Definition AgoraMediaBase.h:303
@ PRIMARY_SCREEN_SOURCE
Definition AgoraMediaBase.h:267
@ AUDIO_RECORDING_SOURCE
Definition AgoraMediaBase.h:255
@ RTC_IMAGE_JPEG_SOURCE
Definition AgoraMediaBase.h:287
@ REMOTE_VIDEO_SOURCE
Definition AgoraMediaBase.h:295
@ RTC_IMAGE_PNG_SOURCE
Definition AgoraMediaBase.h:283
@ SECONDARY_CAMERA_SOURCE
Definition AgoraMediaBase.h:263
@ CUSTOM_VIDEO_SOURCE
Definition AgoraMediaBase.h:275
@ PRIMARY_CAMERA_SOURCE
Definition AgoraMediaBase.h:259
@ TRANSCODED_VIDEO_SOURCE
Definition AgoraMediaBase.h:299
@ MEDIA_PLAYER_SOURCE
Definition AgoraMediaBase.h:279
@ RTC_IMAGE_GIF_SOURCE
Definition AgoraMediaBase.h:291
@ AUDIO_PLAYOUT_SOURCE
Definition AgoraMediaBase.h:251
@ SECONDARY_SCREEN_SOURCE
Definition AgoraMediaBase.h:271
@ UNKNOWN_MEDIA_SOURCE
Definition AgoraMediaBase.h:307
CONTENT_INSPECT_RESULT
Definition AgoraMediaBase.h:1154
@ CONTENT_INSPECT_NEUTRAL
Definition AgoraMediaBase.h:1155
@ CONTENT_INSPECT_SEXY
Definition AgoraMediaBase.h:1156
@ CONTENT_INSPECT_PORN
Definition AgoraMediaBase.h:1157
MediaRecorderStreamType
Definition AgoraMediaBase.h:1919
@ STREAM_TYPE_AUDIO
Definition AgoraMediaBase.h:1923
@ STREAM_TYPE_VIDEO
Definition AgoraMediaBase.h:1927
@ STREAM_TYPE_BOTH
Definition AgoraMediaBase.h:1931
RecorderState
Definition AgoraMediaBase.h:1938
@ RECORDER_STATE_START
Definition AgoraMediaBase.h:1946
@ RECORDER_STATE_ERROR
Definition AgoraMediaBase.h:1942
@ RECORDER_STATE_STOP
Definition AgoraMediaBase.h:1950
MediaRecorderContainerFormat
Definition AgoraMediaBase.h:1908
@ FORMAT_MP4
Definition AgoraMediaBase.h:1912
EXTERNAL_VIDEO_SOURCE_TYPE
Definition AgoraMediaBase.h:1892
@ ENCODED_VIDEO_FRAME
Definition AgoraMediaBase.h:1900
@ VIDEO_FRAME
Definition AgoraMediaBase.h:1896
RecorderReasonCode
Definition AgoraMediaBase.h:1957
@ RECORDER_REASON_NO_STREAM
Definition AgoraMediaBase.h:1970
@ RECORDER_REASON_OVER_MAX_DURATION
Definition AgoraMediaBase.h:1974
@ RECORDER_REASON_WRITE_FAILED
Definition AgoraMediaBase.h:1965
@ RECORDER_REASON_NONE
Definition AgoraMediaBase.h:1961
@ RECORDER_REASON_CONFIG_CHANGED
Definition AgoraMediaBase.h:1978
Definition AgoraExtensions.h:5
unsigned int video_track_id_t
Definition AgoraMediaBase.h:31
AUDIO_SOURCE_TYPE
Definition AgoraMediaBase.h:127
@ AUDIO_SOURCE_UNKNOWN
Definition AgoraMediaBase.h:150
@ AUDIO_SOURCE_REMOTE_CHANNEL
Definition AgoraMediaBase.h:148
@ AUDIO_SOURCE_MICROPHONE
Definition AgoraMediaBase.h:130
@ AUDIO_SOURCE_REMOTE_USER
Definition AgoraMediaBase.h:145
@ AUDIO_SOURCE_LOOPBACK_RECORDING
Definition AgoraMediaBase.h:139
@ AUDIO_SOURCE_MIXED_STREAM
Definition AgoraMediaBase.h:142
@ AUDIO_SOURCE_CUSTOM
Definition AgoraMediaBase.h:133
@ AUDIO_SOURCE_MEDIA_PLAYER
Definition AgoraMediaBase.h:136
unsigned int track_id_t
Definition AgoraMediaBase.h:29
BYTES_PER_SAMPLE
Definition AgoraMediaBase.h:210
@ TWO_BYTES_PER_SAMPLE
Definition AgoraMediaBase.h:214
static const unsigned int INVALID_TRACK_ID
Definition AgoraMediaBase.h:33
unsigned int uid_t
Definition AgoraMediaBase.h:28
unsigned int conn_id_t
Definition AgoraMediaBase.h:30
static const unsigned int DUMMY_CONNECTION_ID
Definition AgoraMediaBase.h:35
VIDEO_SOURCE_TYPE
Definition AgoraMediaBase.h:68
@ VIDEO_SOURCE_CAMERA_PRIMARY
Definition AgoraMediaBase.h:71
@ VIDEO_SOURCE_RTC_IMAGE_JPEG
Definition AgoraMediaBase.h:94
@ VIDEO_SOURCE_CUSTOM
Definition AgoraMediaBase.h:85
@ VIDEO_SOURCE_RTC_IMAGE_GIF
Definition AgoraMediaBase.h:97
@ VIDEO_SOURCE_CAMERA_THIRD
Definition AgoraMediaBase.h:107
@ VIDEO_SOURCE_SCREEN_THIRD
Definition AgoraMediaBase.h:113
@ VIDEO_SOURCE_CAMERA
Definition AgoraMediaBase.h:72
@ VIDEO_SOURCE_SCREEN_PRIMARY
Definition AgoraMediaBase.h:78
@ VIDEO_SOURCE_REMOTE
Definition AgoraMediaBase.h:100
@ VIDEO_SOURCE_SCREEN_FOURTH
Definition AgoraMediaBase.h:116
@ VIDEO_SOURCE_CAMERA_FOURTH
Definition AgoraMediaBase.h:110
@ VIDEO_SOURCE_SPEECH_DRIVEN
Definition AgoraMediaBase.h:119
@ VIDEO_SOURCE_CAMERA_SECONDARY
Definition AgoraMediaBase.h:75
@ VIDEO_SOURCE_SCREEN_SECONDARY
Definition AgoraMediaBase.h:82
@ VIDEO_SOURCE_UNKNOWN
Definition AgoraMediaBase.h:121
@ VIDEO_SOURCE_MEDIA_PLAYER
Definition AgoraMediaBase.h:88
@ VIDEO_SOURCE_SCREEN
Definition AgoraMediaBase.h:79
@ VIDEO_SOURCE_TRANSCODED
Definition AgoraMediaBase.h:103
@ VIDEO_SOURCE_RTC_IMAGE_PNG
Definition AgoraMediaBase.h:91
AudioRoute
Definition AgoraMediaBase.h:156
@ ROUTE_HEADSET
Definition AgoraMediaBase.h:164
@ ROUTE_DISPLAYPORT
Definition AgoraMediaBase.h:196
@ ROUTE_SPEAKERPHONE
Definition AgoraMediaBase.h:176
@ ROUTE_HEADSETNOMIC
Definition AgoraMediaBase.h:172
@ ROUTE_EARPIECE
Definition AgoraMediaBase.h:168
@ ROUTE_AIRPLAY
Definition AgoraMediaBase.h:200
@ ROUTE_DEFAULT
Definition AgoraMediaBase.h:160
@ ROUTE_LOUDSPEAKER
Definition AgoraMediaBase.h:180
@ ROUTE_HDMI
Definition AgoraMediaBase.h:192
@ ROUTE_BLUETOOTH_DEVICE_HFP
Definition AgoraMediaBase.h:184
@ ROUTE_USB
Definition AgoraMediaBase.h:188
@ ROUTE_BLUETOOTH_DEVICE_A2DP
Definition AgoraMediaBase.h:204
RAW_AUDIO_FRAME_OP_MODE_TYPE
Definition AgoraMediaBase.h:228
@ RAW_AUDIO_FRAME_OP_MODE_READ_WRITE
Definition AgoraMediaBase.h:238
@ RAW_AUDIO_FRAME_OP_MODE_READ_ONLY
Definition AgoraMediaBase.h:232
static const unsigned int DEFAULT_CONNECTION_ID
Definition AgoraMediaBase.h:34
Definition AgoraAtomicOps.h:21
Definition video_node_i.h:28
Definition AgoraMediaBase.h:1565
AudioSpectrumData(const float *data, int length)
Definition AgoraMediaBase.h:1576
AudioSpectrumData()
Definition AgoraMediaBase.h:1575
const float * audioSpectrumData
Definition AgoraMediaBase.h:1569
int dataLength
Definition AgoraMediaBase.h:1573
const char * serverConfig
Definition AgoraMediaBase.h:1206
ContentInspectModule modules[MAX_CONTENT_INSPECT_MODULE_COUNT]
Definition AgoraMediaBase.h:1210
ContentInspectConfig()
Definition AgoraMediaBase.h:1221
ContentInspectConfig & operator=(const ContentInspectConfig &rth)
Definition AgoraMediaBase.h:1214
const char * extraInfo
Definition AgoraMediaBase.h:1202
int moduleCount
Definition AgoraMediaBase.h:1213
Definition AgoraMediaBase.h:1180
unsigned int interval
Definition AgoraMediaBase.h:1188
base::VIDEO_MODULE_POSITION position
Definition AgoraMediaBase.h:1192
ContentInspectModule()
Definition AgoraMediaBase.h:1193
CONTENT_INSPECT_TYPE type
Definition AgoraMediaBase.h:1184
AudioFrame()
Definition AgoraMediaBase.h:1344
int64_t presentationMs
Definition AgoraMediaBase.h:1334
uint32_t rtpTimestamp
Definition AgoraMediaBase.h:1342
int channels
Definition AgoraMediaBase.h:1300
int samplesPerChannel
Definition AgoraMediaBase.h:1290
int samplesPerSec
Definition AgoraMediaBase.h:1304
int avsync_type
Definition AgoraMediaBase.h:1327
void * buffer
Definition AgoraMediaBase.h:1311
int audioTrackNumber
Definition AgoraMediaBase.h:1338
AUDIO_FRAME_TYPE type
Definition AgoraMediaBase.h:1286
agora::rtc::BYTES_PER_SAMPLE bytesPerSample
Definition AgoraMediaBase.h:1294
int64_t renderTimeMs
Definition AgoraMediaBase.h:1319
int samples_per_call
Definition AgoraMediaBase.h:1402
int sample_rate
Definition AgoraMediaBase.h:1386
AudioParams(int samplerate, int channel, rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE type, int samplesPerCall)
Definition AgoraMediaBase.h:1409
AudioParams()
Definition AgoraMediaBase.h:1404
int channels
Definition AgoraMediaBase.h:1393
rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE mode
Definition AgoraMediaBase.h:1397
const char * storagePath
Definition AgoraMediaBase.h:1994
agora::rtc::VIDEO_SOURCE_TYPE videoSourceType
Definition AgoraMediaBase.h:2038
int sample_rate
Definition AgoraMediaBase.h:2030
MediaRecorderStreamType streamType
Definition AgoraMediaBase.h:2003
int maxDurationMs
Definition AgoraMediaBase.h:2007
MediaRecorderContainerFormat containerFormat
Definition AgoraMediaBase.h:1999
int width
Definition AgoraMediaBase.h:2018
MediaRecorderConfiguration()
Definition AgoraMediaBase.h:2040
int fps
Definition AgoraMediaBase.h:2026
MediaRecorderConfiguration(const char *path, MediaRecorderContainerFormat format, MediaRecorderStreamType type, int duration, int interval)
Definition AgoraMediaBase.h:2052
int recorderInfoUpdateInterval
Definition AgoraMediaBase.h:2014
int height
Definition AgoraMediaBase.h:2022
int channel_num
Definition AgoraMediaBase.h:2034
Definition AgoraMediaBase.h:2086
RecorderInfo(const char *name, unsigned int dur, unsigned int size)
Definition AgoraMediaBase.h:2101
unsigned int fileSize
Definition AgoraMediaBase.h:2098
RecorderInfo()
Definition AgoraMediaBase.h:2100
const char * fileName
Definition AgoraMediaBase.h:2090
unsigned int durationMs
Definition AgoraMediaBase.h:2094
const char * filePath
Definition AgoraMediaBase.h:1233
SnapshotConfig()
Definition AgoraMediaBase.h:1244
media::base::VIDEO_MODULE_POSITION position
Definition AgoraMediaBase.h:1243
Definition AgoraMediaBase.h:1579
UserAudioSpectrumInfo(agora::rtc::uid_t uid, const float *data, int length)
Definition AgoraMediaBase.h:1591
struct AudioSpectrumData spectrumData
Definition AgoraMediaBase.h:1587
agora::rtc::uid_t uid
Definition AgoraMediaBase.h:1583
UserAudioSpectrumInfo()
Definition AgoraMediaBase.h:1589
uint64_t sendTs
Definition AgoraMediaBase.h:340
AudioEncodedFrameInfo()
Definition AgoraMediaBase.h:345
uint8_t codec
Definition AgoraMediaBase.h:344
Definition AgoraMediaBase.h:351
int audio_track_number_
Definition AgoraMediaBase.h:384
bool is_stereo_
Definition AgoraMediaBase.h:395
rtc::BYTES_PER_SAMPLE bytes_per_sample
Definition AgoraMediaBase.h:387
AudioPcmFrame()
Definition AgoraMediaBase.h:420
int sample_rate_hz_
Definition AgoraMediaBase.h:377
size_t num_channels_
Definition AgoraMediaBase.h:380
size_t samples_per_channel_
Definition AgoraMediaBase.h:374
int64_t capture_timestamp
Definition AgoraMediaBase.h:371
int16_t data_[kMaxDataSizeSamples]
Definition AgoraMediaBase.h:389
OPTIONAL_ENUM_SIZE_T
Definition AgoraMediaBase.h:355
AudioPcmFrame & operator=(const AudioPcmFrame &src)
Definition AgoraMediaBase.h:397
AudioPcmFrame(const AudioPcmFrame &src)
Definition AgoraMediaBase.h:431
Definition AgoraMediaBase.h:582
RangeID range
Definition AgoraMediaBase.h:653
MatrixID matrix
Definition AgoraMediaBase.h:652
RangeID
Definition AgoraMediaBase.h:599
@ RANGEID_FULL
Definition AgoraMediaBase.h:606
@ RANGEID_DERIVED
Definition AgoraMediaBase.h:608
@ RANGEID_INVALID
Definition AgoraMediaBase.h:602
@ RANGEID_LIMITED
Definition AgoraMediaBase.h:604
ColorSpace()
Definition AgoraMediaBase.h:655
bool validate() const
Definition AgoraMediaBase.h:659
MatrixID
Definition AgoraMediaBase.h:611
@ MATRIXID_CDNCLS
Definition AgoraMediaBase.h:624
@ MATRIXID_UNSPECIFIED
Definition AgoraMediaBase.h:615
@ MATRIXID_RGB
Definition AgoraMediaBase.h:613
@ MATRIXID_SMPTE240M
Definition AgoraMediaBase.h:619
@ MATRIXID_BT2100_ICTCP
Definition AgoraMediaBase.h:626
@ MATRIXID_CDCLS
Definition AgoraMediaBase.h:625
@ MATRIXID_SMPTE170M
Definition AgoraMediaBase.h:618
@ MATRIXID_BT2020_CL
Definition AgoraMediaBase.h:622
@ MATRIXID_YCOCG
Definition AgoraMediaBase.h:620
@ MATRIXID_FCC
Definition AgoraMediaBase.h:616
@ MATRIXID_BT2020_NCL
Definition AgoraMediaBase.h:621
@ MATRIXID_BT470BG
Definition AgoraMediaBase.h:617
@ MATRIXID_BT709
Definition AgoraMediaBase.h:614
@ MATRIXID_SMPTE2085
Definition AgoraMediaBase.h:623
PrimaryID primaries
Definition AgoraMediaBase.h:650
TransferID transfer
Definition AgoraMediaBase.h:651
TransferID
Definition AgoraMediaBase.h:629
@ TRANSFERID_SMPTEST428
Definition AgoraMediaBase.h:646
@ TRANSFERID_BT1361_ECG
Definition AgoraMediaBase.h:641
@ TRANSFERID_BT2020_10
Definition AgoraMediaBase.h:643
@ TRANSFERID_SMPTE240M
Definition AgoraMediaBase.h:636
@ TRANSFERID_LINEAR
Definition AgoraMediaBase.h:637
@ TRANSFERID_LOG
Definition AgoraMediaBase.h:638
@ TRANSFERID_SMPTEST2084
Definition AgoraMediaBase.h:645
@ TRANSFERID_GAMMA28
Definition AgoraMediaBase.h:634
@ TRANSFERID_GAMMA22
Definition AgoraMediaBase.h:633
@ TRANSFERID_UNSPECIFIED
Definition AgoraMediaBase.h:632
@ TRANSFERID_LOG_SQRT
Definition AgoraMediaBase.h:639
@ TRANSFERID_IEC61966_2_4
Definition AgoraMediaBase.h:640
@ TRANSFERID_IEC61966_2_1
Definition AgoraMediaBase.h:642
@ TRANSFERID_BT2020_12
Definition AgoraMediaBase.h:644
@ TRANSFERID_BT709
Definition AgoraMediaBase.h:631
@ TRANSFERID_ARIB_STD_B67
Definition AgoraMediaBase.h:647
@ TRANSFERID_SMPTE170M
Definition AgoraMediaBase.h:635
PrimaryID
Definition AgoraMediaBase.h:583
@ PRIMARYID_SMPTEST432
Definition AgoraMediaBase.h:595
@ PRIMARYID_FILM
Definition AgoraMediaBase.h:591
@ PRIMARYID_BT470M
Definition AgoraMediaBase.h:587
@ PRIMARYID_BT709
Definition AgoraMediaBase.h:585
@ PRIMARYID_SMPTE170M
Definition AgoraMediaBase.h:589
@ PRIMARYID_SMPTEST428
Definition AgoraMediaBase.h:593
@ PRIMARYID_UNSPECIFIED
Definition AgoraMediaBase.h:586
@ PRIMARYID_BT2020
Definition AgoraMediaBase.h:592
@ PRIMARYID_SMPTEST431
Definition AgoraMediaBase.h:594
@ PRIMARYID_JEDECP22
Definition AgoraMediaBase.h:596
@ PRIMARYID_BT470BG
Definition AgoraMediaBase.h:588
@ PRIMARYID_SMPTE240M
Definition AgoraMediaBase.h:590
long long fenceObject
Definition AgoraMediaBase.h:902
Hdr10MetadataInfo hdr10MetadataInfo
Definition AgoraMediaBase.h:952
EGL_CONTEXT_TYPE
Definition AgoraMediaBase.h:798
@ EGL_CONTEXT14
Definition AgoraMediaBase.h:806
@ EGL_CONTEXT10
Definition AgoraMediaBase.h:802
int cropTop
Definition AgoraMediaBase.h:858
VIDEO_PIXEL_FORMAT format
Definition AgoraMediaBase.h:834
int cropLeft
Definition AgoraMediaBase.h:853
void * d3d11Texture2d
Definition AgoraMediaBase.h:942
int cropRight
Definition AgoraMediaBase.h:863
uint8_t * metadataBuffer
Definition AgoraMediaBase.h:911
bool fillAlphaBuffer
Definition AgoraMediaBase.h:927
int stride
Definition AgoraMediaBase.h:844
uint8_t * alphaBuffer
Definition AgoraMediaBase.h:922
void * buffer
Definition AgoraMediaBase.h:839
EGL_CONTEXT_TYPE eglType
Definition AgoraMediaBase.h:892
int cropBottom
Definition AgoraMediaBase.h:868
int height
Definition AgoraMediaBase.h:848
ExternalVideoFrame()
Definition AgoraMediaBase.h:771
long long timestamp
Definition AgoraMediaBase.h:881
int metadataSize
Definition AgoraMediaBase.h:916
VIDEO_BUFFER_TYPE
Definition AgoraMediaBase.h:812
@ VIDEO_BUFFER_RAW_DATA
Definition AgoraMediaBase.h:816
@ VIDEO_BUFFER_ARRAY
Definition AgoraMediaBase.h:820
@ VIDEO_BUFFER_TEXTURE
Definition AgoraMediaBase.h:824
int textureId
Definition AgoraMediaBase.h:897
ALPHA_STITCH_MODE alphaStitchMode
Definition AgoraMediaBase.h:937
void * eglContext
Definition AgoraMediaBase.h:888
int rotation
Definition AgoraMediaBase.h:873
VIDEO_BUFFER_TYPE type
Definition AgoraMediaBase.h:830
float matrix[16]
Definition AgoraMediaBase.h:906
ColorSpace colorSpace
Definition AgoraMediaBase.h:957
int textureSliceIndex
Definition AgoraMediaBase.h:947
Definition AgoraMediaBase.h:669
uint16_t bluePrimaryY
Definition AgoraMediaBase.h:693
uint16_t redPrimaryY
Definition AgoraMediaBase.h:677
bool validate() const
Definition AgoraMediaBase.h:733
uint16_t bluePrimaryX
Definition AgoraMediaBase.h:689
uint16_t redPrimaryX
Definition AgoraMediaBase.h:673
uint16_t whitePointY
Definition AgoraMediaBase.h:701
uint16_t greenPrimaryX
Definition AgoraMediaBase.h:681
Hdr10MetadataInfo()
Definition AgoraMediaBase.h:719
uint16_t whitePointX
Definition AgoraMediaBase.h:697
unsigned int minMasteringLuminance
Definition AgoraMediaBase.h:709
uint16_t maxFrameAverageLightLevel
Definition AgoraMediaBase.h:717
uint16_t greenPrimaryY
Definition AgoraMediaBase.h:685
uint16_t maxContentLightLevel
Definition AgoraMediaBase.h:713
unsigned int maxMasteringLuminance
Definition AgoraMediaBase.h:705
PacketOptions()
Definition AgoraMediaBase.h:329
uint32_t timestamp
Definition AgoraMediaBase.h:326
uint8_t audioLevelIndication
Definition AgoraMediaBase.h:328
Definition AgoraMediaBase.h:963
int uStride
Definition AgoraMediaBase.h:1007
ColorSpace colorSpace
Definition AgoraMediaBase.h:1100
int rotation
Definition AgoraMediaBase.h:1027
VideoFrame()
Definition AgoraMediaBase.h:964
Hdr10MetadataInfo hdr10MetadataInfo
Definition AgoraMediaBase.h:1095
VIDEO_PIXEL_FORMAT type
Definition AgoraMediaBase.h:991
int vStride
Definition AgoraMediaBase.h:1011
float matrix[16]
Definition AgoraMediaBase.h:1065
uint8_t * alphaBuffer
Definition AgoraMediaBase.h:1071
int avsync_type
Definition AgoraMediaBase.h:1038
void * d3d11Texture2d
Definition AgoraMediaBase.h:1061
uint8_t * vBuffer
Definition AgoraMediaBase.h:1023
int metadata_size
Definition AgoraMediaBase.h:1048
void * pixelBuffer
Definition AgoraMediaBase.h:1085
int textureId
Definition AgoraMediaBase.h:1056
uint8_t * metadata_buffer
Definition AgoraMediaBase.h:1043
uint8_t * yBuffer
Definition AgoraMediaBase.h:1015
void * sharedContext
Definition AgoraMediaBase.h:1052
int yStride
Definition AgoraMediaBase.h:1003
int height
Definition AgoraMediaBase.h:999
int width
Definition AgoraMediaBase.h:995
IVideoFrameMetaInfo * metaInfo
Definition AgoraMediaBase.h:1090
uint8_t * uBuffer
Definition AgoraMediaBase.h:1019
int64_t renderTimeMs
Definition AgoraMediaBase.h:1034
ALPHA_STITCH_MODE alphaStitchMode
Definition AgoraMediaBase.h:1081
size_t channels
Definition AgoraMediaBase.h:219
int sample_rate
Definition AgoraMediaBase.h:218
AudioParameters()
Definition AgoraMediaBase.h:222
size_t frames_per_buffer
Definition AgoraMediaBase.h:220
Definition AgoraBase.h:1679
uid_t uid
Definition AgoraMediaBase.h:52
const char * providerName
Definition AgoraMediaBase.h:56
bool isValid
Definition AgoraMediaBase.h:47
const char * extensionName
Definition AgoraMediaBase.h:60
ExtensionContext()
Definition AgoraMediaBase.h:61