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;
55 const char *providerName;
59 const char *extensionName;
61};
62
63
147
185
239
249
257
276
277} // namespace rtc
278
279namespace media {
345
346namespace base {
347
348typedef void* view_t;
349
350typedef const char* user_id_t;
351
352static const uint8_t kMaxCodecNameLength = 50;
353
362 uint32_t timestamp;
363 // Audio level indication.
366};
367
371
376 uint64_t sendTs;
380 uint8_t codec;
382};
383
392 // Stereo, 32 kHz, 60 ms (2 * 32 * 60)
400 kMaxDataSizeSamples = 3840,
402 kMaxDataSizeBytes = kMaxDataSizeSamples * sizeof(int16_t),
403 };
404
432 int16_t data_[kMaxDataSizeSamples];
433
439
441 if (this == &src) {
442 return *this;
443 }
444
451 this->audio_track_number_ = src.audio_track_number_;
452
453 size_t length = src.samples_per_channel_ * src.num_channels_;
454 if (length > kMaxDataSizeSamples) {
455 length = kMaxDataSizeSamples;
456 }
457
458 memcpy(data_, src.data_, length * sizeof(int16_t));
459
460 return *this;
461 }
462
467 num_channels_(0),
469 bytes_per_sample(rtc::TWO_BYTES_PER_SAMPLE),
470 is_stereo_(false) {
471 memset(data_, 0, sizeof(data_));
472 }
473
482 size_t length = src.samples_per_channel_ * src.num_channels_;
483 if (length > kMaxDataSizeSamples) {
484 length = kMaxDataSizeSamples;
485 }
486
487 memcpy(this->data_, src.data_, length * sizeof(int16_t));
488 }
489};
490
515
552 /*
553 12: pixel format for iOS CVPixelBuffer NV12
554 */
556 /*
557 13: pixel format for iOS CVPixelBuffer I420
558 */
560 /*
561 14: pixel format for iOS CVPixelBuffer BGRA
562 */
582};
583
603 RENDER_MODE_ADAPTIVE __deprecated = 3,
604};
605
623
629 public:
634 virtual const char* getMetaInfoStr(META_INFO_KEY key) const = 0;
635};
636
639 // The indices are equal to the values specified in T-REC H.273 Table 2.
644 PRIMARYID_SMPTE170M = 6, // Identical to BT601
651 PRIMARYID_JEDECP22 = 22, // Identical to EBU3213-E
652 };
653
654 enum RangeID {
655 // The indices are equal to the values specified at
656 // https://www.webmproject.org/docs/container/#colour for the element Range.
658 // Limited Rec. 709 color range with RGB values ranging from 16 to 235.
660 // Full RGB color range with RGB valees from 0 to 255.
662 // Range is defined by MatrixCoefficients/TransferCharacteristics.
664 };
665
683
704
709
713
719};
720
794
820
821
1015
1027 width(0),
1028 height(0),
1029 yStride(0),
1030 uStride(0),
1031 vStride(0),
1032 yBuffer(NULL),
1033 uBuffer(NULL),
1034 vBuffer(NULL),
1035 rotation(0),
1036 renderTimeMs(0),
1037 avsync_type(0),
1038 metadata_buffer(NULL),
1039 metadata_size(0),
1040 sharedContext(0),
1041 textureId(0),
1042 d3d11Texture2d(NULL),
1043 alphaBuffer(NULL),
1045 pixelBuffer(NULL),
1046 metaInfo(NULL){
1047 memset(matrix, 0, sizeof(matrix));
1048 }
1049
1082 uint8_t* yBuffer;
1086 uint8_t* uBuffer;
1090 uint8_t* vBuffer;
1132 float matrix[16];
1142 uint8_t* alphaBuffer;
1156
1161
1167};
1168
1173 public:
1184 virtual void onFrame(const VideoFrame* frame) = 0;
1186 virtual bool isExternal() { return true; }
1214};
1215
1235
1268
1269} // namespace base
1270
1273#define MAX_CONTENT_INSPECT_MODULE_COUNT 32
1279
1305
1331
1341 const char* extraInfo;
1347 const char* serverConfig;
1355 ContentInspectModule modules[MAX_CONTENT_INSPECT_MODULE_COUNT];
1363 extraInfo = rth.extraInfo;
1366 memcpy(&modules, &rth.modules, MAX_CONTENT_INSPECT_MODULE_COUNT * sizeof(ContentInspectModule));
1367 return *this;
1368 }
1370};
1371
1391
1396 public:
1409};
1410
1415 public:
1425 enum { MAX_HANDLE_TIME_CNT = 10 };
1498
1517
1549
1556
1561
1566
1568 : sample_rate(0),
1569 channels(0),
1570 mode(rtc::RAW_AUDIO_FRAME_OP_MODE_READ_ONLY),
1571 samples_per_call(0) {}
1572 AudioParams(int samplerate, int channel, rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE type,
1573 int samplesPerCall)
1574 : sample_rate(samplerate),
1575 channels(channel),
1576 mode(type),
1577 samples_per_call(samplesPerCall) {}
1578 };
1579
1580 public:
1582
1608 virtual bool onRecordAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;
1634 virtual bool onPlaybackAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;
1660 virtual bool onMixedAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;
1686 virtual bool onEarMonitoringAudioFrame(AudioFrame& audioFrame) = 0;
1696 virtual bool onPlaybackAudioFrameBeforeMixing(const char* channelId, base::user_id_t userId,
1697 AudioFrame& audioFrame) {
1698 (void)channelId;
1699 (void)userId;
1700 (void)audioFrame;
1701 return true;
1702 }
1703
1734
1753
1772
1791
1810};
1811
1816 public:
1828 virtual bool onPlaybackAudioFrameBeforeMixing(const char* channelId, rtc::uid_t uid,
1829 AudioFrame& audioFrame) = 0;
1830};
1831
1841 const float* audioSpectrumData;
1846
1848 AudioSpectrumData(const float* data, int length) : audioSpectrumData(data), dataLength(length) {}
1849};
1850
1869
1874 public:
1876
1893 virtual bool onLocalAudioSpectrum(const AudioSpectrumData& data) = 0;
1913 virtual bool onRemoteAudioSpectrum(const UserAudioSpectrumInfo* spectrums,
1914 unsigned int spectrumNumber) = 0;
1915};
1916
1921 public:
1942 const char* channelId, rtc::uid_t uid, const uint8_t* imageBuffer, size_t length,
1943 const rtc::EncodedVideoFrameInfo& videoEncodedFrameInfo) = 0;
1944
1946};
1947
1952 public:
1962 PROCESS_MODE_READ_ONLY, // Observer works as a pure renderer and will not modify the original
1963 // frame.
1968 PROCESS_MODE_READ_WRITE, // Observer works as a filter that will process the video frame and
1969 // affect the following frame processing in SDK.
1970 };
1971
1972 public:
1974
2019 VideoFrame& videoFrame) = 0;
2020
2059 VideoFrame& videoFrame) = 0;
2060
2084 virtual bool onMediaPlayerVideoFrame(VideoFrame& videoFrame, int mediaPlayerId) = 0;
2085
2123 virtual bool onRenderVideoFrame(const char* channelId, rtc::uid_t remoteUid,
2124 VideoFrame& videoFrame) = 0;
2125
2126 virtual bool onTranscodedVideoFrame(VideoFrame& videoFrame) = 0;
2127
2141
2158
2184 virtual bool getRotationApplied() { return false; }
2185
2213 virtual bool getMirrorApplied() { return false; }
2214
2248
2256 virtual bool isExternal() { return true; }
2257};
2258
2272
2284
2303
2322
2350
2365 const char* storagePath;
2403 int fps;
2424
2426 : storagePath(NULL),
2429 maxDurationMs(120000),
2431 width(1280),
2432 height(720),
2433 fps(30),
2434 sample_rate(48000),
2435 channel_num(1),
2436 videoSourceType(rtc::VIDEO_SOURCE_CAMERA_PRIMARY) {}
2438 MediaRecorderStreamType type, int duration, int interval)
2439 : storagePath(path),
2440 containerFormat(format),
2441 streamType(type),
2442 maxDurationMs(duration),
2444 width(1280),
2445 height(720),
2446 fps(30),
2447 sample_rate(48000),
2448 channel_num(1),
2449 videoSourceType(rtc::VIDEO_SOURCE_CAMERA_PRIMARY) {}
2450};
2451
2453 public:
2496 virtual bool onFaceInfo(const char* outFaceInfo) = 0;
2497
2499};
2500
2510 const char* fileName;
2514 unsigned int durationMs;
2518 unsigned int fileSize;
2519
2521 RecorderInfo(const char* name, unsigned int dur, unsigned int size)
2522 : fileName(name), durationMs(dur), fileSize(size) {}
2523};
2524
2526 public:
2542 virtual void onRecorderStateChanged(const char* channelId, rtc::uid_t uid, RecorderState state,
2543 RecorderReasonCode reason) = 0;
2560 virtual void onRecorderInfoUpdated(const char* channelId, rtc::uid_t uid,
2561 const RecorderInfo& info) = 0;
2562
2564};
2565
2566} // namespace media
2567} // namespace agora
Definition AgoraMediaBase.h:1414
virtual int getObservedAudioFramePosition()=0
Sets the frame position for the video observer.
virtual bool onPlaybackAudioFrame(const char *channelId, AudioFrame &audioFrame)=0
Gets the raw audio frame for playback.
virtual ~IAudioFrameObserverBase()
Definition AgoraMediaBase.h:1581
virtual bool onEarMonitoringAudioFrame(AudioFrame &audioFrame)=0
Gets the in-ear monitoring audio frame.
@ MAX_HANDLE_TIME_CNT
Definition AgoraMediaBase.h:1425
AUDIO_FRAME_TYPE
Audio frame type.
Definition AgoraMediaBase.h:1419
@ FRAME_TYPE_PCM16
Definition AgoraMediaBase.h:1423
virtual bool onRecordAudioFrame(const char *channelId, AudioFrame &audioFrame)=0
Gets the captured audio frame.
virtual AudioParams getPlaybackAudioParams()=0
Sets the audio format for the onPlaybackAudioFrame callback.
virtual AudioParams getMixedAudioParams()=0
Sets the audio format for the onMixedAudioFrame callback.
virtual AudioParams getEarMonitoringAudioParams()=0
Sets the audio format for the onEarMonitoringAudioFrame callback.
AUDIO_FRAME_POSITION
Definition AgoraMediaBase.h:1499
@ AUDIO_FRAME_POSITION_BEFORE_MIXING
Definition AgoraMediaBase.h:1512
@ AUDIO_FRAME_POSITION_RECORD
Definition AgoraMediaBase.h:1506
@ AUDIO_FRAME_POSITION_PLAYBACK
Definition AgoraMediaBase.h:1503
@ AUDIO_FRAME_POSITION_MIXED
Definition AgoraMediaBase.h:1509
@ AUDIO_FRAME_POSITION_NONE
Definition AgoraMediaBase.h:1500
@ AUDIO_FRAME_POSITION_EAR_MONITORING
Definition AgoraMediaBase.h:1515
virtual AudioParams getRecordAudioParams()=0
Sets the audio format for the onRecordAudioFrame callback.
virtual bool onMixedAudioFrame(const char *channelId, AudioFrame &audioFrame)=0
Retrieves the mixed captured and playback audio frame.
virtual bool onPlaybackAudioFrameBeforeMixing(const char *channelId, base::user_id_t userId, AudioFrame &audioFrame)
Definition AgoraMediaBase.h:1696
Definition AgoraMediaBase.h:1815
virtual bool onPlaybackAudioFrameBeforeMixing(const char *channelId, rtc::uid_t uid, AudioFrame &audioFrame)=0
Retrieves the audio frame before mixing of subscribed remote users.
Definition AgoraMediaBase.h:1395
virtual ~IAudioPcmFrameSink()
Definition AgoraMediaBase.h:1408
virtual void onFrame(agora::media::base::AudioPcmFrame *frame)=0
Occurs each time the player receives an audio frame.
Definition AgoraMediaBase.h:1873
virtual bool onRemoteAudioSpectrum(const UserAudioSpectrumInfo *spectrums, unsigned int spectrumNumber)=0
Gets the remote audio spectrum.
virtual ~IAudioSpectrumObserver()
Definition AgoraMediaBase.h:1875
virtual bool onLocalAudioSpectrum(const AudioSpectrumData &data)=0
Gets the statistics of a local audio spectrum.
Definition AgoraMediaBase.h:2452
virtual ~IFaceInfoObserver()
Definition AgoraMediaBase.h:2498
virtual bool onFaceInfo(const char *outFaceInfo)=0
Occurs when the facial information processed by speech driven extension is received.
Definition AgoraMediaBase.h:2525
virtual void onRecorderStateChanged(const char *channelId, rtc::uid_t uid, RecorderState state, RecorderReasonCode reason)=0
Callback when the recording state changes.
virtual ~IMediaRecorderObserver()
Definition AgoraMediaBase.h:2563
virtual void onRecorderInfoUpdated(const char *channelId, rtc::uid_t uid, const RecorderInfo &info)=0
Callback for recording information updates.
Definition AgoraMediaBase.h:1920
virtual ~IVideoEncodedFrameObserver()
Definition AgoraMediaBase.h:1945
virtual bool onEncodedVideoFrameReceived(const char *channelId, rtc::uid_t uid, const uint8_t *imageBuffer, size_t length, const rtc::EncodedVideoFrameInfo &videoEncodedFrameInfo)=0
Reports that the receiver has received the to-be-decoded video frame sent by the remote end.
Definition AgoraMediaBase.h:1951
virtual bool onMediaPlayerVideoFrame(VideoFrame &videoFrame, int mediaPlayerId)=0
virtual bool isExternal()
Definition AgoraMediaBase.h:2256
virtual bool onRenderVideoFrame(const char *channelId, rtc::uid_t remoteUid, VideoFrame &videoFrame)=0
Occurs each time the SDK receives a video frame sent by the remote user.
VIDEO_FRAME_PROCESS_MODE
The process mode of the video frame:
Definition AgoraMediaBase.h:1957
@ PROCESS_MODE_READ_ONLY
Definition AgoraMediaBase.h:1962
@ PROCESS_MODE_READ_WRITE
Definition AgoraMediaBase.h:1968
virtual ~IVideoFrameObserver()
Definition AgoraMediaBase.h:1973
virtual bool onPreEncodeVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE sourceType, VideoFrame &videoFrame)=0
Occurs each time the SDK receives a video frame before encoding.
virtual base::VIDEO_PIXEL_FORMAT getVideoFormatPreference()
Definition AgoraMediaBase.h:2157
virtual bool onCaptureVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE sourceType, VideoFrame &videoFrame)=0
Occurs each time the SDK receives a video frame captured by local devices.
virtual uint32_t getObservedFramePosition()
Sets the frame position for the video observer.
Definition AgoraMediaBase.h:2245
virtual bool onTranscodedVideoFrame(VideoFrame &videoFrame)=0
media::base::VideoFrame VideoFrame
Definition AgoraMediaBase.h:1953
virtual VIDEO_FRAME_PROCESS_MODE getVideoFrameProcessMode()
Occurs each time the SDK receives a video frame and prompts you to set the process mode of the video ...
Definition AgoraMediaBase.h:2140
virtual bool getMirrorApplied()
Occurs each time the SDK receives a video frame and prompts you whether or not to mirror the captured...
Definition AgoraMediaBase.h:2213
virtual bool getRotationApplied()
Occurs each time the SDK receives a video frame, and prompts you whether to rotate the captured video...
Definition AgoraMediaBase.h:2184
Definition AgoraMediaBase.h:628
META_INFO_KEY
Definition AgoraMediaBase.h:630
@ KEY_FACE_CAPTURE
Definition AgoraMediaBase.h:631
virtual ~IVideoFrameMetaInfo()
Definition AgoraMediaBase.h:633
virtual const char * getMetaInfoStr(META_INFO_KEY key) const =0
Definition AgoraMediaBase.h:1172
virtual ~IVideoFrameObserver()
Definition AgoraMediaBase.h:1185
virtual bool isExternal()
Definition AgoraMediaBase.h:1186
virtual VIDEO_PIXEL_FORMAT getVideoFormatPreference()
Sets the format of the raw video data output by the SDK.
Definition AgoraMediaBase.h:1213
virtual void onFrame(const VideoFrame *frame)=0
Occurs each time the player receives a video frame.
Definition IAgoraService.h:73
Definition NGIAgoraAudioDeviceManager.h:16
CAMERA_VIDEO_SOURCE_TYPE
Definition AgoraMediaBase.h:609
@ CAMERA_SOURCE_BACK
Definition AgoraMediaBase.h:617
@ CAMERA_SOURCE_FRONT
Definition AgoraMediaBase.h:613
@ VIDEO_SOURCE_UNSPECIFIED
Definition AgoraMediaBase.h:621
static const uint8_t kMaxCodecNameLength
Definition AgoraMediaBase.h:352
VIDEO_MODULE_POSITION
The frame position of the video observer.
Definition AgoraMediaBase.h:1239
@ POSITION_PRE_RENDERER
Definition AgoraMediaBase.h:1250
@ POSITION_POST_CAPTURER
Definition AgoraMediaBase.h:1245
@ POSITION_PRE_ENCODER
Definition AgoraMediaBase.h:1260
@ POSITION_POST_CAPTURER_ORIGIN
Definition AgoraMediaBase.h:1266
RENDER_MODE_TYPE
Video display modes.
Definition AgoraMediaBase.h:587
@ RENDER_MODE_HIDDEN
Definition AgoraMediaBase.h:592
@ __deprecated
Definition AgoraMediaBase.h:603
@ RENDER_MODE_FIT
Definition AgoraMediaBase.h:598
AUDIO_DUAL_MONO_MODE
The channel mode.
Definition AgoraMediaBase.h:494
@ AUDIO_DUAL_MONO_MIX
Definition AgoraMediaBase.h:513
@ AUDIO_DUAL_MONO_L
Definition AgoraMediaBase.h:503
@ AUDIO_DUAL_MONO_STEREO
Definition AgoraMediaBase.h:498
@ AUDIO_DUAL_MONO_R
Definition AgoraMediaBase.h:508
const char * user_id_t
Definition AgoraMediaBase.h:350
void * view_t
Definition AgoraMediaBase.h:348
VIDEO_PIXEL_FORMAT
The video pixel format.
Definition AgoraMediaBase.h:519
@ VIDEO_TEXTURE_OES
Definition AgoraMediaBase.h:551
@ VIDEO_PIXEL_I010
Definition AgoraMediaBase.h:581
@ VIDEO_PIXEL_DEFAULT
Definition AgoraMediaBase.h:523
@ VIDEO_CVPIXEL_BGRA
Definition AgoraMediaBase.h:563
@ VIDEO_CVPIXEL_I420
Definition AgoraMediaBase.h:559
@ VIDEO_TEXTURE_2D
Definition AgoraMediaBase.h:547
@ VIDEO_TEXTURE_ID3D11TEXTURE2D
Definition AgoraMediaBase.h:576
@ VIDEO_PIXEL_BGRA
Definition AgoraMediaBase.h:531
@ VIDEO_PIXEL_I420
Definition AgoraMediaBase.h:527
@ VIDEO_PIXEL_NV21
Definition AgoraMediaBase.h:535
@ VIDEO_PIXEL_I422
Definition AgoraMediaBase.h:571
@ VIDEO_CVPIXEL_P010
Definition AgoraMediaBase.h:567
@ VIDEO_CVPIXEL_NV12
Definition AgoraMediaBase.h:555
@ VIDEO_PIXEL_NV12
Definition AgoraMediaBase.h:543
@ VIDEO_PIXEL_RGBA
Definition AgoraMediaBase.h:539
MEDIA_PLAYER_SOURCE_TYPE
Definition AgoraMediaBase.h:1216
@ MEDIA_PLAYER_SOURCE_SIMPLE
Definition AgoraMediaBase.h:1233
@ MEDIA_PLAYER_SOURCE_DEFAULT
Definition AgoraMediaBase.h:1222
@ MEDIA_PLAYER_SOURCE_FULL_FEATURED
Definition AgoraMediaBase.h:1228
ALPHA_STITCH_MODE
The relative position of alphaBuffer and video frames.
Definition AgoraMediaBase.h:798
@ ALPHA_STITCH_BELOW
Definition AgoraMediaBase.h:810
@ NO_ALPHA_STITCH
Definition AgoraMediaBase.h:802
@ ALPHA_STITCH_UP
Definition AgoraMediaBase.h:806
@ ALPHA_STITCH_LEFT
Definition AgoraMediaBase.h:814
@ ALPHA_STITCH_RIGHT
Definition AgoraMediaBase.h:818
Definition content_inspect_i.h:15
CONTENT_INSPECT_TYPE
The type of video content moderation module.
Definition AgoraMediaBase.h:1283
@ CONTENT_INSPECT_IMAGE_MODERATION
Definition AgoraMediaBase.h:1303
@ __deprecated
Definition AgoraMediaBase.h:1292
@ CONTENT_INSPECT_SUPERVISION
Definition AgoraMediaBase.h:1297
@ CONTENT_INSPECT_INVALID
Definition AgoraMediaBase.h:1287
MEDIA_SOURCE_TYPE
Media source type.
Definition AgoraMediaBase.h:283
@ SPEECH_DRIVEN_VIDEO_SOURCE
Definition AgoraMediaBase.h:339
@ PRIMARY_SCREEN_SOURCE
Definition AgoraMediaBase.h:303
@ AUDIO_RECORDING_SOURCE
Definition AgoraMediaBase.h:291
@ RTC_IMAGE_JPEG_SOURCE
Definition AgoraMediaBase.h:323
@ REMOTE_VIDEO_SOURCE
Definition AgoraMediaBase.h:331
@ RTC_IMAGE_PNG_SOURCE
Definition AgoraMediaBase.h:319
@ SECONDARY_CAMERA_SOURCE
Definition AgoraMediaBase.h:299
@ CUSTOM_VIDEO_SOURCE
Definition AgoraMediaBase.h:311
@ PRIMARY_CAMERA_SOURCE
Definition AgoraMediaBase.h:295
@ TRANSCODED_VIDEO_SOURCE
Definition AgoraMediaBase.h:335
@ MEDIA_PLAYER_SOURCE
Definition AgoraMediaBase.h:315
@ RTC_IMAGE_GIF_SOURCE
Definition AgoraMediaBase.h:327
@ AUDIO_PLAYOUT_SOURCE
Definition AgoraMediaBase.h:287
@ SECONDARY_SCREEN_SOURCE
Definition AgoraMediaBase.h:307
@ UNKNOWN_MEDIA_SOURCE
Definition AgoraMediaBase.h:343
CONTENT_INSPECT_RESULT
Definition AgoraMediaBase.h:1274
@ CONTENT_INSPECT_NEUTRAL
Definition AgoraMediaBase.h:1275
@ CONTENT_INSPECT_SEXY
Definition AgoraMediaBase.h:1276
@ CONTENT_INSPECT_PORN
Definition AgoraMediaBase.h:1277
MediaRecorderStreamType
The recording content.
Definition AgoraMediaBase.h:2289
@ STREAM_TYPE_AUDIO
Definition AgoraMediaBase.h:2293
@ STREAM_TYPE_VIDEO
Definition AgoraMediaBase.h:2297
@ STREAM_TYPE_BOTH
Definition AgoraMediaBase.h:2301
RecorderState
The current recording state.
Definition AgoraMediaBase.h:2308
@ RECORDER_STATE_START
Definition AgoraMediaBase.h:2316
@ RECORDER_STATE_ERROR
Definition AgoraMediaBase.h:2312
@ RECORDER_STATE_STOP
Definition AgoraMediaBase.h:2320
MediaRecorderContainerFormat
Format of the recording file.
Definition AgoraMediaBase.h:2278
@ FORMAT_MP4
Definition AgoraMediaBase.h:2282
EXTERNAL_VIDEO_SOURCE_TYPE
The external video frame encoding type.
Definition AgoraMediaBase.h:2262
@ ENCODED_VIDEO_FRAME
Definition AgoraMediaBase.h:2270
@ VIDEO_FRAME
Definition AgoraMediaBase.h:2266
RecorderReasonCode
The reason for the state change.
Definition AgoraMediaBase.h:2327
@ RECORDER_REASON_NO_STREAM
Definition AgoraMediaBase.h:2340
@ RECORDER_REASON_OVER_MAX_DURATION
Definition AgoraMediaBase.h:2344
@ RECORDER_REASON_WRITE_FAILED
Definition AgoraMediaBase.h:2335
@ RECORDER_REASON_NONE
Definition AgoraMediaBase.h:2331
@ RECORDER_REASON_CONFIG_CHANGED
Definition AgoraMediaBase.h:2348
Definition AgoraExtensions.h:5
unsigned int video_track_id_t
Definition AgoraMediaBase.h:31
AUDIO_SOURCE_TYPE
The audio source type.
Definition AgoraMediaBase.h:151
@ AUDIO_SOURCE_UNKNOWN
Definition AgoraMediaBase.h:183
@ AUDIO_SOURCE_REMOTE_CHANNEL
Definition AgoraMediaBase.h:178
@ AUDIO_SOURCE_MICROPHONE
Definition AgoraMediaBase.h:155
@ AUDIO_SOURCE_REMOTE_USER
Definition AgoraMediaBase.h:174
@ AUDIO_SOURCE_LOOPBACK_RECORDING
Definition AgoraMediaBase.h:167
@ AUDIO_SOURCE_MIXED_STREAM
Definition AgoraMediaBase.h:170
@ AUDIO_SOURCE_CUSTOM
Definition AgoraMediaBase.h:159
@ AUDIO_SOURCE_MEDIA_PLAYER
Definition AgoraMediaBase.h:163
unsigned int track_id_t
Definition AgoraMediaBase.h:29
BYTES_PER_SAMPLE
Definition AgoraMediaBase.h:243
@ TWO_BYTES_PER_SAMPLE
Definition AgoraMediaBase.h:247
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
The type of the video source.
Definition AgoraMediaBase.h:67
@ VIDEO_SOURCE_CAMERA_PRIMARY
Definition AgoraMediaBase.h:71
@ VIDEO_SOURCE_RTC_IMAGE_JPEG
Definition AgoraMediaBase.h:107
@ VIDEO_SOURCE_CUSTOM
Definition AgoraMediaBase.h:95
@ VIDEO_SOURCE_RTC_IMAGE_GIF
Definition AgoraMediaBase.h:111
@ VIDEO_SOURCE_CAMERA_THIRD
Definition AgoraMediaBase.h:124
@ VIDEO_SOURCE_SCREEN_THIRD
Definition AgoraMediaBase.h:132
@ VIDEO_SOURCE_CAMERA
Definition AgoraMediaBase.h:75
@ VIDEO_SOURCE_SCREEN_PRIMARY
Definition AgoraMediaBase.h:83
@ VIDEO_SOURCE_REMOTE
Definition AgoraMediaBase.h:115
@ VIDEO_SOURCE_SCREEN_FOURTH
Definition AgoraMediaBase.h:136
@ VIDEO_SOURCE_CAMERA_FOURTH
Definition AgoraMediaBase.h:128
@ VIDEO_SOURCE_SPEECH_DRIVEN
Definition AgoraMediaBase.h:140
@ VIDEO_SOURCE_CAMERA_SECONDARY
Definition AgoraMediaBase.h:79
@ VIDEO_SOURCE_SCREEN_SECONDARY
Definition AgoraMediaBase.h:91
@ VIDEO_SOURCE_UNKNOWN
Definition AgoraMediaBase.h:145
@ VIDEO_SOURCE_MEDIA_PLAYER
Definition AgoraMediaBase.h:99
@ VIDEO_SOURCE_SCREEN
Definition AgoraMediaBase.h:87
@ VIDEO_SOURCE_TRANSCODED
Definition AgoraMediaBase.h:119
@ VIDEO_SOURCE_RTC_IMAGE_PNG
Definition AgoraMediaBase.h:103
AudioRoute
The type of the audio route.
Definition AgoraMediaBase.h:189
@ ROUTE_HEADSET
Definition AgoraMediaBase.h:197
@ ROUTE_DISPLAYPORT
Definition AgoraMediaBase.h:229
@ ROUTE_SPEAKERPHONE
Definition AgoraMediaBase.h:209
@ ROUTE_HEADSETNOMIC
Definition AgoraMediaBase.h:205
@ ROUTE_EARPIECE
Definition AgoraMediaBase.h:201
@ ROUTE_AIRPLAY
Definition AgoraMediaBase.h:233
@ ROUTE_DEFAULT
Definition AgoraMediaBase.h:193
@ ROUTE_LOUDSPEAKER
Definition AgoraMediaBase.h:213
@ ROUTE_HDMI
Definition AgoraMediaBase.h:225
@ ROUTE_BLUETOOTH_DEVICE_HFP
Definition AgoraMediaBase.h:217
@ ROUTE_USB
Definition AgoraMediaBase.h:221
@ ROUTE_BLUETOOTH_DEVICE_A2DP
Definition AgoraMediaBase.h:237
RAW_AUDIO_FRAME_OP_MODE_TYPE
The use mode of the audio data.
Definition AgoraMediaBase.h:261
@ RAW_AUDIO_FRAME_OP_MODE_READ_WRITE
Definition AgoraMediaBase.h:274
@ RAW_AUDIO_FRAME_OP_MODE_READ_ONLY
Definition AgoraMediaBase.h:267
static const unsigned int DEFAULT_CONNECTION_ID
Definition AgoraMediaBase.h:34
Definition AgoraAtomicOps.h:21
Definition video_node_i.h:28
The audio spectrum data.
Definition AgoraMediaBase.h:1835
AudioSpectrumData(const float *data, int length)
Definition AgoraMediaBase.h:1848
AudioSpectrumData()
Definition AgoraMediaBase.h:1847
const float * audioSpectrumData
Definition AgoraMediaBase.h:1841
int dataLength
Definition AgoraMediaBase.h:1845
const char * serverConfig
Definition AgoraMediaBase.h:1347
ContentInspectModule modules[MAX_CONTENT_INSPECT_MODULE_COUNT]
Definition AgoraMediaBase.h:1355
ContentInspectConfig()
Definition AgoraMediaBase.h:1369
ContentInspectConfig & operator=(const ContentInspectConfig &rth)
Definition AgoraMediaBase.h:1362
const char * extraInfo
Definition AgoraMediaBase.h:1341
int moduleCount
Definition AgoraMediaBase.h:1361
ContentInspectModule class, a structure used to configure the frequency of video screenshot and uploa...
Definition AgoraMediaBase.h:1310
unsigned int interval
Definition AgoraMediaBase.h:1320
base::VIDEO_MODULE_POSITION position
Definition AgoraMediaBase.h:1324
ContentInspectModule()
Definition AgoraMediaBase.h:1325
CONTENT_INSPECT_TYPE type
Definition AgoraMediaBase.h:1314
Raw audio data.
Definition AgoraMediaBase.h:1429
AudioFrame()
Definition AgoraMediaBase.h:1485
int64_t presentationMs
Definition AgoraMediaBase.h:1475
uint32_t rtpTimestamp
Definition AgoraMediaBase.h:1483
int channels
Definition AgoraMediaBase.h:1447
int samplesPerChannel
Definition AgoraMediaBase.h:1437
int samplesPerSec
Definition AgoraMediaBase.h:1451
int avsync_type
Definition AgoraMediaBase.h:1468
void * buffer
Definition AgoraMediaBase.h:1457
int audioTrackNumber
Definition AgoraMediaBase.h:1479
AUDIO_FRAME_TYPE type
Definition AgoraMediaBase.h:1433
agora::rtc::BYTES_PER_SAMPLE bytesPerSample
Definition AgoraMediaBase.h:1441
int64_t renderTimeMs
Definition AgoraMediaBase.h:1464
Audio data format.
Definition AgoraMediaBase.h:1539
int samples_per_call
Definition AgoraMediaBase.h:1565
int sample_rate
Definition AgoraMediaBase.h:1548
AudioParams(int samplerate, int channel, rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE type, int samplesPerCall)
Definition AgoraMediaBase.h:1572
AudioParams()
Definition AgoraMediaBase.h:1567
int channels
Definition AgoraMediaBase.h:1555
rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE mode
Definition AgoraMediaBase.h:1560
const char * storagePath
Definition AgoraMediaBase.h:2365
agora::rtc::VIDEO_SOURCE_TYPE videoSourceType
Definition AgoraMediaBase.h:2423
int sample_rate
Definition AgoraMediaBase.h:2409
MediaRecorderStreamType streamType
Definition AgoraMediaBase.h:2373
int maxDurationMs
Definition AgoraMediaBase.h:2377
MediaRecorderContainerFormat containerFormat
Definition AgoraMediaBase.h:2369
int width
Definition AgoraMediaBase.h:2390
MediaRecorderConfiguration()
Definition AgoraMediaBase.h:2425
int fps
Definition AgoraMediaBase.h:2403
MediaRecorderConfiguration(const char *path, MediaRecorderContainerFormat format, MediaRecorderStreamType type, int duration, int interval)
Definition AgoraMediaBase.h:2437
int recorderInfoUpdateInterval
Definition AgoraMediaBase.h:2383
int height
Definition AgoraMediaBase.h:2397
int channel_num
Definition AgoraMediaBase.h:2417
Information about the recording file.
Definition AgoraMediaBase.h:2506
RecorderInfo(const char *name, unsigned int dur, unsigned int size)
Definition AgoraMediaBase.h:2521
unsigned int fileSize
Definition AgoraMediaBase.h:2518
RecorderInfo()
Definition AgoraMediaBase.h:2520
const char * fileName
Definition AgoraMediaBase.h:2510
unsigned int durationMs
Definition AgoraMediaBase.h:2514
const char * filePath
Definition AgoraMediaBase.h:1383
SnapshotConfig()
Definition AgoraMediaBase.h:1389
media::base::VIDEO_MODULE_POSITION position
Definition AgoraMediaBase.h:1388
Audio spectrum information of the remote user.
Definition AgoraMediaBase.h:1854
UserAudioSpectrumInfo(agora::rtc::uid_t uid, const float *data, int length)
Definition AgoraMediaBase.h:1866
struct AudioSpectrumData spectrumData
Definition AgoraMediaBase.h:1862
agora::rtc::uid_t uid
Definition AgoraMediaBase.h:1858
UserAudioSpectrumInfo()
Definition AgoraMediaBase.h:1864
uint64_t sendTs
Definition AgoraMediaBase.h:376
AudioEncodedFrameInfo()
Definition AgoraMediaBase.h:381
uint8_t codec
Definition AgoraMediaBase.h:380
The parameters of the audio frame in PCM format.
Definition AgoraMediaBase.h:387
int audio_track_number_
Definition AgoraMediaBase.h:424
bool is_stereo_
Definition AgoraMediaBase.h:438
rtc::BYTES_PER_SAMPLE bytes_per_sample
Definition AgoraMediaBase.h:428
AudioPcmFrame()
Definition AgoraMediaBase.h:463
int sample_rate_hz_
Definition AgoraMediaBase.h:416
size_t num_channels_
Definition AgoraMediaBase.h:420
size_t samples_per_channel_
Definition AgoraMediaBase.h:412
int64_t capture_timestamp
Definition AgoraMediaBase.h:408
int16_t data_[kMaxDataSizeSamples]
Definition AgoraMediaBase.h:432
OPTIONAL_ENUM_SIZE_T
Definition AgoraMediaBase.h:391
AudioPcmFrame & operator=(const AudioPcmFrame &src)
Definition AgoraMediaBase.h:440
AudioPcmFrame(const AudioPcmFrame &src)
Definition AgoraMediaBase.h:474
Definition AgoraMediaBase.h:637
RangeID range
Definition AgoraMediaBase.h:708
MatrixID matrix
Definition AgoraMediaBase.h:707
RangeID
Definition AgoraMediaBase.h:654
@ RANGEID_FULL
Definition AgoraMediaBase.h:661
@ RANGEID_DERIVED
Definition AgoraMediaBase.h:663
@ RANGEID_INVALID
Definition AgoraMediaBase.h:657
@ RANGEID_LIMITED
Definition AgoraMediaBase.h:659
ColorSpace()
Definition AgoraMediaBase.h:710
bool validate() const
Definition AgoraMediaBase.h:714
MatrixID
Definition AgoraMediaBase.h:666
@ MATRIXID_CDNCLS
Definition AgoraMediaBase.h:679
@ MATRIXID_UNSPECIFIED
Definition AgoraMediaBase.h:670
@ MATRIXID_RGB
Definition AgoraMediaBase.h:668
@ MATRIXID_SMPTE240M
Definition AgoraMediaBase.h:674
@ MATRIXID_BT2100_ICTCP
Definition AgoraMediaBase.h:681
@ MATRIXID_CDCLS
Definition AgoraMediaBase.h:680
@ MATRIXID_SMPTE170M
Definition AgoraMediaBase.h:673
@ MATRIXID_BT2020_CL
Definition AgoraMediaBase.h:677
@ MATRIXID_YCOCG
Definition AgoraMediaBase.h:675
@ MATRIXID_FCC
Definition AgoraMediaBase.h:671
@ MATRIXID_BT2020_NCL
Definition AgoraMediaBase.h:676
@ MATRIXID_BT470BG
Definition AgoraMediaBase.h:672
@ MATRIXID_BT709
Definition AgoraMediaBase.h:669
@ MATRIXID_SMPTE2085
Definition AgoraMediaBase.h:678
PrimaryID primaries
Definition AgoraMediaBase.h:705
TransferID transfer
Definition AgoraMediaBase.h:706
TransferID
Definition AgoraMediaBase.h:684
@ TRANSFERID_SMPTEST428
Definition AgoraMediaBase.h:701
@ TRANSFERID_BT1361_ECG
Definition AgoraMediaBase.h:696
@ TRANSFERID_BT2020_10
Definition AgoraMediaBase.h:698
@ TRANSFERID_SMPTE240M
Definition AgoraMediaBase.h:691
@ TRANSFERID_LINEAR
Definition AgoraMediaBase.h:692
@ TRANSFERID_LOG
Definition AgoraMediaBase.h:693
@ TRANSFERID_SMPTEST2084
Definition AgoraMediaBase.h:700
@ TRANSFERID_GAMMA28
Definition AgoraMediaBase.h:689
@ TRANSFERID_GAMMA22
Definition AgoraMediaBase.h:688
@ TRANSFERID_UNSPECIFIED
Definition AgoraMediaBase.h:687
@ TRANSFERID_LOG_SQRT
Definition AgoraMediaBase.h:694
@ TRANSFERID_IEC61966_2_4
Definition AgoraMediaBase.h:695
@ TRANSFERID_IEC61966_2_1
Definition AgoraMediaBase.h:697
@ TRANSFERID_BT2020_12
Definition AgoraMediaBase.h:699
@ TRANSFERID_BT709
Definition AgoraMediaBase.h:686
@ TRANSFERID_ARIB_STD_B67
Definition AgoraMediaBase.h:702
@ TRANSFERID_SMPTE170M
Definition AgoraMediaBase.h:690
PrimaryID
Definition AgoraMediaBase.h:638
@ PRIMARYID_SMPTEST432
Definition AgoraMediaBase.h:650
@ PRIMARYID_FILM
Definition AgoraMediaBase.h:646
@ PRIMARYID_BT470M
Definition AgoraMediaBase.h:642
@ PRIMARYID_BT709
Definition AgoraMediaBase.h:640
@ PRIMARYID_SMPTE170M
Definition AgoraMediaBase.h:644
@ PRIMARYID_SMPTEST428
Definition AgoraMediaBase.h:648
@ PRIMARYID_UNSPECIFIED
Definition AgoraMediaBase.h:641
@ PRIMARYID_BT2020
Definition AgoraMediaBase.h:647
@ PRIMARYID_SMPTEST431
Definition AgoraMediaBase.h:649
@ PRIMARYID_JEDECP22
Definition AgoraMediaBase.h:651
@ PRIMARYID_BT470BG
Definition AgoraMediaBase.h:643
@ PRIMARYID_SMPTE240M
Definition AgoraMediaBase.h:645
long long fenceObject
Definition AgoraMediaBase.h:951
Hdr10MetadataInfo hdr10MetadataInfo
Definition AgoraMediaBase.h:1007
EGL_CONTEXT_TYPE
Definition AgoraMediaBase.h:853
@ EGL_CONTEXT14
Definition AgoraMediaBase.h:861
@ EGL_CONTEXT10
Definition AgoraMediaBase.h:857
int cropTop
Definition AgoraMediaBase.h:911
VIDEO_PIXEL_FORMAT format
Definition AgoraMediaBase.h:889
int cropLeft
Definition AgoraMediaBase.h:907
void * d3d11Texture2d
Definition AgoraMediaBase.h:996
int cropRight
Definition AgoraMediaBase.h:915
uint8_t * metadataBuffer
Definition AgoraMediaBase.h:960
bool fillAlphaBuffer
Definition AgoraMediaBase.h:985
int stride
Definition AgoraMediaBase.h:899
uint8_t * alphaBuffer
Definition AgoraMediaBase.h:973
void * buffer
Definition AgoraMediaBase.h:894
EGL_CONTEXT_TYPE eglType
Definition AgoraMediaBase.h:941
int cropBottom
Definition AgoraMediaBase.h:919
int height
Definition AgoraMediaBase.h:903
ExternalVideoFrame()
Definition AgoraMediaBase.h:826
long long timestamp
Definition AgoraMediaBase.h:929
int metadataSize
Definition AgoraMediaBase.h:965
VIDEO_BUFFER_TYPE
The video buffer type.
Definition AgoraMediaBase.h:867
@ VIDEO_BUFFER_RAW_DATA
Definition AgoraMediaBase.h:871
@ VIDEO_BUFFER_ARRAY
Definition AgoraMediaBase.h:875
@ VIDEO_BUFFER_TEXTURE
Definition AgoraMediaBase.h:879
int textureId
Definition AgoraMediaBase.h:946
ALPHA_STITCH_MODE alphaStitchMode
Definition AgoraMediaBase.h:990
void * eglContext
Definition AgoraMediaBase.h:937
int rotation
Definition AgoraMediaBase.h:924
VIDEO_BUFFER_TYPE type
Definition AgoraMediaBase.h:885
float matrix[16]
Definition AgoraMediaBase.h:955
ColorSpace colorSpace
Definition AgoraMediaBase.h:1013
int textureSliceIndex
Definition AgoraMediaBase.h:1002
Definition AgoraMediaBase.h:724
uint16_t bluePrimaryY
Definition AgoraMediaBase.h:748
uint16_t redPrimaryY
Definition AgoraMediaBase.h:732
bool validate() const
Definition AgoraMediaBase.h:788
uint16_t bluePrimaryX
Definition AgoraMediaBase.h:744
uint16_t redPrimaryX
Definition AgoraMediaBase.h:728
uint16_t whitePointY
Definition AgoraMediaBase.h:756
uint16_t greenPrimaryX
Definition AgoraMediaBase.h:736
Hdr10MetadataInfo()
Definition AgoraMediaBase.h:774
uint16_t whitePointX
Definition AgoraMediaBase.h:752
unsigned int minMasteringLuminance
Definition AgoraMediaBase.h:764
uint16_t maxFrameAverageLightLevel
Definition AgoraMediaBase.h:772
uint16_t greenPrimaryY
Definition AgoraMediaBase.h:740
uint16_t maxContentLightLevel
Definition AgoraMediaBase.h:768
unsigned int maxMasteringLuminance
Definition AgoraMediaBase.h:760
PacketOptions()
Definition AgoraMediaBase.h:365
uint32_t timestamp
Definition AgoraMediaBase.h:362
uint8_t audioLevelIndication
Definition AgoraMediaBase.h:364
Configurations of the video frame.
Definition AgoraMediaBase.h:1024
int uStride
Definition AgoraMediaBase.h:1072
ColorSpace colorSpace
Definition AgoraMediaBase.h:1166
int rotation
Definition AgoraMediaBase.h:1095
VideoFrame()
Definition AgoraMediaBase.h:1025
Hdr10MetadataInfo hdr10MetadataInfo
Definition AgoraMediaBase.h:1160
VIDEO_PIXEL_FORMAT type
Definition AgoraMediaBase.h:1052
int vStride
Definition AgoraMediaBase.h:1078
float matrix[16]
Definition AgoraMediaBase.h:1132
uint8_t * alphaBuffer
Definition AgoraMediaBase.h:1142
int avsync_type
Definition AgoraMediaBase.h:1104
void * d3d11Texture2d
Definition AgoraMediaBase.h:1127
uint8_t * vBuffer
Definition AgoraMediaBase.h:1090
int metadata_size
Definition AgoraMediaBase.h:1114
void * pixelBuffer
Definition AgoraMediaBase.h:1151
int textureId
Definition AgoraMediaBase.h:1122
uint8_t * metadata_buffer
Definition AgoraMediaBase.h:1109
uint8_t * yBuffer
Definition AgoraMediaBase.h:1082
void * sharedContext
Definition AgoraMediaBase.h:1118
int yStride
Definition AgoraMediaBase.h:1066
int height
Definition AgoraMediaBase.h:1060
int width
Definition AgoraMediaBase.h:1056
IVideoFrameMetaInfo * metaInfo
Definition AgoraMediaBase.h:1155
uint8_t * uBuffer
Definition AgoraMediaBase.h:1086
int64_t renderTimeMs
Definition AgoraMediaBase.h:1100
ALPHA_STITCH_MODE alphaStitchMode
Definition AgoraMediaBase.h:1147
size_t channels
Definition AgoraMediaBase.h:252
int sample_rate
Definition AgoraMediaBase.h:251
AudioParameters()
Definition AgoraMediaBase.h:255
size_t frames_per_buffer
Definition AgoraMediaBase.h:253
Information about externally encoded video frames.
Definition AgoraBase.h:1735
uid_t uid
Definition AgoraMediaBase.h:51
const char * providerName
Definition AgoraMediaBase.h:55
bool isValid
Definition AgoraMediaBase.h:47
const char * extensionName
Definition AgoraMediaBase.h:59
ExtensionContext()
Definition AgoraMediaBase.h:60