You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
/** 17: The request to join the channel is rejected.
308
316
*
309
-
* - This error usually occurs when the user is already in the channel, and still calls the method to join the channel, for example, \ref agora::rtc::IRtcEngine::joinChannel "joinChannel".
310
-
* - This error usually occurs when the user tries to join a channel during a call test (\ref agora::rtc::IRtcEngine::startEchoTest "startEchoTest"). Once you call \ref agora::rtc::IRtcEngine::startEchoTest "startEchoTest", you need to call \ref agora::rtc::IRtcEngine::stopEchoTest "stopEchoTest" before joining a channel.
317
+
* - This error usually occurs when the user is already in the channel, and still calls the method to join the
318
+
* channel, for example, \ref agora::rtc::IRtcEngine::joinChannel "joinChannel".
319
+
* - This error usually occurs when the user tries to join a channel
320
+
* during \ref agora::rtc::IRtcEngine::startEchoTest "startEchoTest". Once you
321
+
* call \ref agora::rtc::IRtcEngine::startEchoTest "startEchoTest", you need to
322
+
* call \ref agora::rtc::IRtcEngine::stopEchoTest "stopEchoTest" before joining a channel.
323
+
* - The user tries to join the channel with a token that is expired.
311
324
*/
312
325
ERR_JOIN_CHANNEL_REJECTED = 17,
313
326
/** 18: The request to leave the channel is rejected.
@@ -382,7 +395,7 @@ enum ERROR_CODE_TYPE
382
395
/** 120: Decryption fails. The user may have used a different encryption password to join the channel. Check your settings or try rejoining the channel.
383
396
*/
384
397
ERR_DECRYPTION_FAILED = 120,
385
-
/** 123: The client is banned by the server.
398
+
/** 123: The user is banned by the server. This error occurs when the user is kicked off the channel from the server.
386
399
*/
387
400
ERR_CLIENT_IS_BANNED_BY_SERVER = 123,
388
401
/** 124: Incorrect watermark file parameter.
@@ -589,27 +602,27 @@ enum ERROR_CODE_TYPE
589
602
* session category is not compatible with the settings of the Audio Unit.
590
603
*/
591
604
ERR_ADM_IOS_VPIO_RESTART_FAIL = 1214,
592
-
/// @cond
605
+
593
606
ERR_ADM_IOS_SET_RENDER_CALLBACK_FAIL = 1219,
594
-
/// @endcond
607
+
595
608
/** **DEPRECATED** */
596
609
ERR_ADM_IOS_SESSION_SAMPLERATR_ZERO = 1221,
597
-
/** 1301: Audio device module: An audio driver abnomality or a
610
+
/** 1301: Audio device module: An audio driver abnormality or a
598
611
* compatibility issue occurs. Solutions: Disable and restart the audio
599
612
* device, or reboot the system.*/
600
613
ERR_ADM_WIN_CORE_INIT = 1301,
601
-
/** 1303: Audio device module: A recording driver abnomality or a
614
+
/** 1303: Audio device module: A recording driver abnormality or a
602
615
* compatibility issue occurs. Solutions: Disable and restart the audio
603
616
* device, or reboot the system. */
604
617
ERR_ADM_WIN_CORE_INIT_RECORDING = 1303,
605
-
/** 1306: Audio device module: A playout driver abnomality or a
618
+
/** 1306: Audio device module: A playout driver abnormality or a
606
619
* compatibility issue occurs. Solutions: Disable and restart the audio
607
620
* device, or reboot the system. */
608
621
ERR_ADM_WIN_CORE_INIT_PLAYOUT = 1306,
609
622
/** 1307: Audio device module: No audio device is available. Solutions:
610
623
* Plug in a proper audio device. */
611
624
ERR_ADM_WIN_CORE_INIT_PLAYOUT_NULL = 1307,
612
-
/** 1309: Audio device module: An audio driver abnomality or a
625
+
/** 1309: Audio device module: An audio driver abnormality or a
613
626
* compatibility issue occurs. Solutions: Disable and restart the audio
Expand all lines: Android/APIExample/lib-raw-data/src/main/cpp/include/IAgoraMediaEngine.h
+41-25Lines changed: 41 additions & 25 deletions
Original file line number
Diff line number
Diff line change
@@ -48,7 +48,7 @@ class IAudioFrameObserver {
48
48
The size of the data buffer is as follows: `buffer` = `samples` × `channels` × `bytesPerSample`.
49
49
*/
50
50
void* buffer; //data buffer
51
-
/** The timestamp of the external audio frame. You can use this parameter for the following purposes:
51
+
/** The timestamp (ms) of the external audio frame. You can use this parameter for the following purposes:
52
52
- Restore the order of the captured audio frame.
53
53
- Synchronize audio and video frames in video-related scenarios, including where external video sources are used.
54
54
*/
@@ -124,7 +124,7 @@ class IAudioFrameObserver {
124
124
/** Gets the before-mixing playback audio frame from multiple channels.
125
125
126
126
After you successfully register the audio frame observer, if you set the return
127
-
value of isMultipleChannelFrameWanted as true, the SDK triggers this callback each
127
+
value of \ref IAudioFrameObserver::isMultipleChannelFrameWanted "isMultipleChannelFrameWanted" as true, the SDK triggers this callback each
128
128
time it receives a before-mixing audio frame from any of the channel.
129
129
130
130
@param channelId The channel ID of this audio frame.
@@ -207,7 +207,7 @@ class IVideoFrameObserver {
207
207
/** Set the rotation of this frame before rendering the video. Supports 0, 90, 180, 270 degrees clockwise.
208
208
*/
209
209
int rotation; // rotation of this frame (0, 90, 180, 270)
210
-
/** The timestamp of the external audio frame. It is mandatory. You can use this parameter for the following purposes:
210
+
/** The timestamp (ms) of the external audio frame. It is mandatory. You can use this parameter for the following purposes:
211
211
- Restore the order of the captured audio frame.
212
212
- Synchronize audio and video frames in video-related scenarios, including scenarios where external video sources are used.
213
213
@note This timestamp is for rendering the video stream, and not for capturing the video stream.
@@ -225,7 +225,8 @@ class IVideoFrameObserver {
225
225
* After pre-processing, you can send the processed video data back to the SDK by setting the `videoFrame` parameter in this callback.
226
226
*
227
227
* @note
228
-
* This callback does not support sending processed RGBA video data back to the SDK.
228
+
* - This callback does not support sending processed RGBA video data back to the SDK.
229
+
* - The video data that this callback gets has not been pre-processed, without the watermark, the cropped content, the rotation, and the image enhancement.
229
230
*
230
231
* @param videoFrame Pointer to VideoFrame.
231
232
* @return Whether or not to ignore the current video frame if the pre-processing fails:
@@ -352,12 +353,12 @@ class IVideoFrameObserver {
352
353
353
354
In the multi-channel scenario, if you want to get video data from multiple channels,
354
355
set the return value of this callback as true. After that, the SDK triggers the
355
-
onRenderVideoFrameEx callback to send you
356
+
\ref IVideoFrameObserver::onRenderVideoFrameEx "onRenderVideoFrameEx" callback to send you
356
357
the video data from various channels. You can also get the channel ID of each video frame.
357
358
358
359
@note
359
360
- Once you set the return value of this callback as true, the SDK triggers only the `onRenderVideoFrameEx` callback to
360
-
send the video frame. onRenderVideoFrame will not be triggered. In the multi-channel scenario, Agora recommends setting the return value as true.
361
+
send the video frame. \ref IVideoFrameObserver::onRenderVideoFrame "onRenderVideoFrame" will not be triggered. In the multi-channel scenario, Agora recommends setting the return value as true.
361
362
- If you set the return value of this callback as false, the SDK triggers only the `onRenderVideoFrame` callback to send the video data.
362
363
@return
363
364
- `true`: Receive video data from multiple channels.
@@ -368,7 +369,7 @@ class IVideoFrameObserver {
368
369
/** Gets the video frame from multiple channels.
369
370
370
371
After you successfully register the video frame observer, if you set the return value of
371
-
isMultipleChannelFrameWanted as true, the SDK triggers this callback each time it receives a video frame
372
+
\ref IVideoFrameObserver::isMultipleChannelFrameWanted "isMultipleChannelFrameWanted" as true, the SDK triggers this callback each time it receives a video frame
372
373
from any of the channel.
373
374
374
375
You can process the video data retrieved from this callback according to your scenario, and send the
@@ -456,7 +457,7 @@ class IVideoFrame {
456
457
/** Retrieves the height of the frame.
457
458
*/
458
459
virtualintheight() const = 0;
459
-
/** Retrieves the timestamp (90 ms) of the frame.
460
+
/** Retrieves the timestamp (ms) of the frame.
460
461
*/
461
462
virtualunsignedinttimestamp() const = 0;
462
463
/** Retrieves the render time (ms).
@@ -540,6 +541,8 @@ struct ExternalVideoFrame
540
541
};
541
542
542
543
/** The video pixel format.
544
+
*
545
+
* @note The SDK does not support the alpha channel, and discards any alpha value passed to the SDK.
543
546
*/
544
547
enum VIDEO_PIXEL_FORMAT
545
548
{
@@ -602,9 +605,17 @@ struct ExternalVideoFrame
602
605
/** [Raw data related parameter] The clockwise rotation of the video frame. You can set the rotation angle as 0, 90, 180, or 270. The default value is 0.
603
606
*/
604
607
int rotation;
605
-
/** Timestamp of the incoming video frame (ms). An incorrect timestamp results in frame loss or unsynchronized audio and video.
608
+
/** Timestamp (ms) of the incoming video frame. An incorrect timestamp results in frame loss or unsynchronized audio and video.
606
609
*/
607
610
longlong timestamp;
611
+
612
+
ExternalVideoFrame()
613
+
:cropLeft(0)
614
+
,cropTop(0)
615
+
,cropRight(0)
616
+
,cropBottom(0)
617
+
,rotation(0)
618
+
{}
608
619
};
609
620
610
621
classIMediaEngine {
@@ -615,6 +626,8 @@ class IMediaEngine {
615
626
616
627
This method is used to register an audio frame observer object (register a callback). This method is required to register callbacks when the engine is required to provide an \ref IAudioFrameObserver::onRecordAudioFrame "onRecordAudioFrame" or \ref IAudioFrameObserver::onPlaybackAudioFrame "onPlaybackAudioFrame" callback.
617
628
629
+
@note Ensure that you call this method before joining a channel.
630
+
618
631
@param observer Audio frame observer object instance. See IAudioFrameObserver. Set the value as NULL to release the
619
632
audio observer object. Agora recommends calling `registerAudioFrameObserver(NULL)` after receiving the \ref agora::rtc::IRtcEngineEventHandler::onLeaveChannel "onLeaveChannel" callback.
0 commit comments