Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
bbcab7b
add third player moudle
Aug 22, 2023
0829c64
add Audio Waveform Moudle
Aug 24, 2023
2456acb
Fixed an issue where remote users joined player pause when rtc and pl…
Sep 7, 2023
2843983
fix ui issue
Sep 8, 2023
b9a7e8c
update content inspect config
Sep 11, 2023
c86dca5
add Feature Available On Device
Sep 11, 2023
f7b447e
add take snapshot ex
Sep 11, 2023
f2f8f60
update beautyAPI version to 1.0.3
Sep 11, 2023
fadeb22
add Feature Available On Device
Sep 11, 2023
7363855
add snapshot ex
Sep 11, 2023
30d7224
fix snapshot remote bug
Sep 11, 2023
e04af7c
[Android]Add AudioRouterPlayer case.
xgfd3 Aug 30, 2023
0806301
[Android]Add AudioWaveform case.
xgfd3 Aug 30, 2023
eaac1c5
[Android][Audio]add AudioWaveform case.
xgfd3 Aug 30, 2023
c6bc746
[Android]adjust content inspect case.
xgfd3 Sep 11, 2023
d6ec2ed
[Android]Add isFeatureAvailableOnDevice api in VideoProcessExtension.
xgfd3 Sep 11, 2023
e4c33ac
[Android]Add takesnapshotex for JoinMultipleChannel.
xgfd3 Sep 11, 2023
a44cc0c
[Android]update beauty api to 1.0.3 and etc.
xgfd3 Sep 11, 2023
51261de
[Windows]add snapshot for MultiChannel.
xgfd3 Sep 11, 2023
470b1c0
[Windows]fix snapshot bug.
xgfd3 Sep 11, 2023
5a25c47
fix oc crate stream data bug
Sep 12, 2023
6eed57d
fix swift create stream data bug
Sep 12, 2023
013c4bb
[Android]fix remote render error when rejoining channel(NMS-15581).
xgfd3 Sep 14, 2023
34a6355
[Android]perfect PushExternalVideoYUV case.
xgfd3 Sep 14, 2023
cb30098
add file sharing key
Sep 14, 2023
7625e78
fix title
Sep 14, 2023
ed3d06f
fix multi channel bug
Sep 14, 2023
8f6f43e
fix conent inspect bug
Sep 14, 2023
b2a00b6
[Windows]fix media player crash.
xgfd3 Sep 14, 2023
528ec69
[Android]perfect MultiVideoSourceTracks case.
xgfd3 Sep 14, 2023
f9c38ce
fix input token crash bug
Sep 14, 2023
e44d429
fix input token crash bug
Sep 14, 2023
b9aef50
[Android]Update readme. (#355)
xgfd3 Sep 14, 2023
a115dc9
[Android]add 4K 60fps h265. (#356)
xgfd3 Sep 14, 2023
8602102
[Android]fix ui bug.
xgfd3 Sep 15, 2023
ac97852
[Android]fix render bug(CSD-59845).
xgfd3 Sep 15, 2023
c90e2ab
Fix the issue of no sound during AVPlayer playback
Sep 15, 2023
fcd5460
Merge branch 'dev/4.2.3' of github.com:AgoraIO/API-Examples into dev/…
Sep 15, 2023
f68aac4
[Android]add cases of enableVideoImageSource and setAINSMode api and …
xgfd3 Sep 22, 2023
68f7694
[Android]add setAINSMode api case and etc.
xgfd3 Sep 22, 2023
b7d0627
add video image push
Sep 22, 2023
3d893ca
add AINS Mode
Sep 22, 2023
12a0ac2
iOS Add AINS Mode
Sep 22, 2023
b95b279
ios add video image push
Sep 22, 2023
ed64a7d
[Windows]add enableVideoImageSource and setAINSMode api case.
xgfd3 Sep 23, 2023
73c7098
Merge branch 'dev/4.2.3' of github.com:AgoraIO/API-Examples into dev/…
Sep 26, 2023
0195245
[MacOS]fix audio recording path bug.
xgfd3 Oct 3, 2023
30a00ae
fix startAudioRecording path bug
Oct 8, 2023
6c65cea
fix audio session change issue
Oct 8, 2023
f62be74
Merge branch 'dev/4.2.3' of github.com:AgoraIO/API-Examples into dev/…
Oct 8, 2023
4303e02
fix video image source issue
Oct 9, 2023
f3a194d
..
Oct 9, 2023
0081c67
fix exit screen leave channel issue
Oct 9, 2023
5551dcb
screen shareing auto close system interface
Oct 11, 2023
d812398
[Android]update rtc verstion and etc.
xgfd3 Oct 12, 2023
d75a622
[Windows]Update rtc verstion.
xgfd3 Oct 12, 2023
e1ac4d3
update SDK version to 4.2.3
Oct 12, 2023
118b2fb
Merge branch 'dev/4.2.3' of github.com:AgoraIO/API-Examples into dev/…
Oct 12, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Android/APIExample-Audio/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ dependencies {
implementation fileTree(dir: "${localSdkPath}", include: ['*.jar', '*.aar'])
}
else{
def agora_sdk_version = "4.2.2"
def agora_sdk_version = "4.2.3"
// case 1: full single lib with voice only
implementation "io.agora.rtc:voice-sdk:${agora_sdk_version}"
// case 2: partial libs with voice only
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -731,6 +731,10 @@ enum ERROR_CODE_TYPE {
* 1501: Video Device Module: The camera is not authorized.
*/
ERR_VDM_CAMERA_NOT_AUTHORIZED = 1501,
/**
* 2007: Audio Device Module: An error occurs in starting the application loopback.
*/
ERR_ADM_APPLICATION_LOOPBACK = 2007,
};

enum LICENSE_ERROR_TYPE {
Expand Down Expand Up @@ -2784,6 +2788,22 @@ enum LOCAL_VIDEO_STREAM_ERROR {
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_FAILURE = 21,
/** 22: No permision to capture screen. */
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_NO_PERMISSION = 22,
/**
* 23: The screen capture paused.
*
* Common scenarios for reporting this error code:
* - When the desktop switch to the secure desktop such as UAC dialog or the Winlogon desktop on
* Windows platform, the SDK reports this error code.
*/
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_PAUSED = 23,
/** 24: The screen capture is resumed. */
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_RESUMED = 24,
/** 25: (Windows only) The local screen capture window is currently hidden and not visible on the desktop. */
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_HIDDEN = 25,
/** 26: (Windows only) The local screen capture window is recovered from its hidden state. */
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_RECOVER_FROM_HIDDEN = 26,
/** 27:(Windows only) The window is recovered from miniminzed */
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_RECOVER_FROM_MINIMIZED = 27,
};

/**
Expand Down Expand Up @@ -3776,10 +3796,6 @@ struct LocalTranscoderConfiguration {
};

enum VIDEO_TRANSCODER_ERROR {
/**
* No error
*/
VT_ERR_OK = 0,
/**
* The video track of the video source is not started.
*/
Expand Down Expand Up @@ -3998,6 +4014,10 @@ enum CONNECTION_CHANGED_REASON_TYPE
* 21: The connection is failed due to license validation failure.
*/
CONNECTION_CHANGED_LICENSE_VALIDATION_FAILURE = 21,
/**
* 22: The connection is failed due to certification verify failure.
*/
CONNECTION_CHANGED_CERTIFICATION_VERYFY_FAILURE = 22,
};

/**
Expand Down Expand Up @@ -4108,6 +4128,10 @@ enum NETWORK_TYPE {
* 5: The network type is mobile 4G.
*/
NETWORK_TYPE_MOBILE_4G = 5,
/**
* 6: The network type is mobile 5G.
*/
NETWORK_TYPE_MOBILE_5G = 6,
};

/**
Expand Down Expand Up @@ -5268,7 +5292,7 @@ struct ChannelMediaRelayConfiguration {
*/
ChannelMediaInfo *destInfos;
/** The number of destination channels. The default value is 0, and the value range is from 0 to
* 4. Ensure that the value of this parameter corresponds to the number of `ChannelMediaInfo`
* 6. Ensure that the value of this parameter corresponds to the number of `ChannelMediaInfo`
* structs you define in `destInfo`.
*/
int destCount;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -261,13 +261,18 @@ enum CONTENT_INSPECT_TYPE {
*/
CONTENT_INSPECT_INVALID = 0,
/**
* @deprecated
* Content inspect type moderation
*/
CONTENT_INSPECT_MODERATION = 1,
CONTENT_INSPECT_MODERATION __deprecated = 1,
/**
* Content inspect type supervise
*/
CONTENT_INSPECT_SUPERVISION = 2
CONTENT_INSPECT_SUPERVISION = 2,
/**
* Content inspect type image moderation
*/
CONTENT_INSPECT_IMAGE_MODERATION = 3
};

struct ContentInspectModule {
Expand All @@ -288,7 +293,10 @@ struct ContentInspectModule {
*/
struct ContentInspectConfig {
const char* extraInfo;

/**
* The specific server configuration for image moderation. Please contact technical support.
*/
const char* serverConfig;
/**The content inspect modules, max length of modules is 32.
* the content(snapshot of send video stream, image) can be used to max of 32 types functions.
*/
Expand All @@ -299,11 +307,12 @@ struct ContentInspectConfig {
ContentInspectConfig& operator=(const ContentInspectConfig& rth)
{
extraInfo = rth.extraInfo;
serverConfig = rth.serverConfig;
moduleCount = rth.moduleCount;
memcpy(&modules, &rth.modules, MAX_CONTENT_INSPECT_MODULE_COUNT * sizeof(ContentInspectModule));
return *this;
}
ContentInspectConfig() :extraInfo(NULL), moduleCount(0){}
ContentInspectConfig() :extraInfo(NULL), serverConfig(NULL), moduleCount(0){}
};

namespace base {
Expand Down Expand Up @@ -496,6 +505,10 @@ enum VIDEO_PIXEL_FORMAT {
* 16: I422.
*/
VIDEO_PIXEL_I422 = 16,
/**
* 17: ID3D11Texture2D, only support DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_B8G8R8A8_TYPELESS, DXGI_FORMAT_NV12 texture format
*/
VIDEO_TEXTURE_ID3D11TEXTURE2D = 17,
};

/**
Expand Down Expand Up @@ -559,7 +572,9 @@ struct ExternalVideoFrame {
textureId(0),
metadata_buffer(NULL),
metadata_size(0),
alphaBuffer(NULL){}
alphaBuffer(NULL),
d3d11_texture_2d(NULL),
texture_slice_index(0){}

/**
* The EGL context type.
Expand Down Expand Up @@ -681,6 +696,16 @@ struct ExternalVideoFrame {
* The default value is NULL
*/
uint8_t* alphaBuffer;

/**
* [Windows Texture related parameter] The pointer of ID3D11Texture2D used by the video frame.
*/
void *d3d11_texture_2d;

/**
* [Windows Texture related parameter] The index of ID3D11Texture2D array used by the video frame.
*/
int texture_slice_index;
};

/**
Expand All @@ -704,6 +729,7 @@ struct VideoFrame {
metadata_size(0),
sharedContext(0),
textureId(0),
d3d11Texture2d(NULL),
alphaBuffer(NULL),
pixelBuffer(NULL){
memset(matrix, 0, sizeof(matrix));
Expand Down Expand Up @@ -777,6 +803,10 @@ struct VideoFrame {
* [Texture related parameter], Texture ID used by the video frame.
*/
int textureId;
/**
* [Texture related parameter] The pointer of ID3D11Texture2D used by the video frame,for Windows only.
*/
void* d3d11Texture2d;
/**
* [Texture related parameter], Incoming 4 × 4 transformational matrix.
*/
Expand Down Expand Up @@ -894,14 +924,14 @@ class IAudioFrameObserverBase {
*/
int channels;
/**
*The number of samples per channel in the audio frame.
* The sample rate
*/
int samplesPerSec;
/**
* The data buffer of the audio frame. When the audio frame uses a stereo channel, the data
* buffer is interleaved.
*
* Buffer data size: buffer = samples × channels × bytesPerSample.
* Buffer data size: buffer = samplesPerChannel × channels × bytesPerSample.
*/
void* buffer;
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -305,21 +305,24 @@ class ICameraCapturer : public RefCountInterface {
*/
virtual int setCameraExposurePosition(float positionXinView, float positionYinView) = 0;

/** Checks whether camera supports to set exposure value.
*
* @since v4.2.1.
* @return
* <ul>
* <li>true: The device supports the camera exposure function.</li>
* <li>false: The device does not support the camera exposure function.</li>
* </ul>
*/
/**
* Returns whether exposure value adjusting is supported by the current device.
* Exposure compensation is in auto exposure mode.
* @since v4.2.2.
* @note
* This method only supports Android and iOS.
* This interface returns valid values only after the device is initialized.
*
* @return
* - true: exposure value adjusting is supported.
* - false: exposure value adjusting is not supported or device is not initialized.
*/
virtual bool isCameraExposureSupported() = 0;

/**
* Sets the camera exposure ratio.
*
* @since v4.2.1.
* @since v4.2.2.
* @param value Absolute EV bias will set to camera.
*
* @return
Expand Down Expand Up @@ -365,31 +368,6 @@ class ICameraCapturer : public RefCountInterface {
* </ul>
*/
virtual int setCameraAutoExposureFaceModeEnabled(bool enabled) = 0;

/**
* Returns whether exposure value adjusting is supported by the current device.
* @note
* This method applies to iOS only.
* This interface returns valid values only after the device is initialized.
*
* @return
* - true: exposure value adjusting is supported.
* - false: exposure value adjusting is not supported or device is not initialized.
*/
virtual bool isExposureBiasSupported() = 0;
/**
* Sets the exposure factor of the device.
*
* @note
* This method applies to iOS only.
*
* @param exposureValue The exposure value bias factor of the device.
*
* @return
* - 0: Success.
* - < 0: Failure.
*/
virtual int32_t setCameraExposure(float exposureValue) = 0;
#endif

#elif defined(_WIN32) || (defined(__linux__) && !defined(__ANDROID__)) || \
Expand Down
2 changes: 1 addition & 1 deletion Android/APIExample/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ dependencies {
implementation fileTree(dir: "${localSdkPath}", include: ['*.jar', '*.aar'])
}
else{
def agora_sdk_version = "4.2.2"
def agora_sdk_version = "4.2.3"
// case 1: full libs
implementation "io.agora.rtc:full-sdk:${agora_sdk_version}"
implementation "io.agora.rtc:full-screen-sharing:${agora_sdk_version}"
Expand Down
2 changes: 1 addition & 1 deletion windows/APIExample/install.ps1
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
$ThirdPartysrc = 'https://download.agora.io/staging/ThirdParty.zip'
$ThirdPartydes = 'ThirdParty.zip'
$agora_sdk = 'https://download.agora.io/sdk/release/Agora_Native_SDK_for_Windows_v4.2.2_FULL.zip'
$agora_sdk = 'https://download.agora.io/sdk/release/Agora_Native_SDK_for_Windows_v4.2.3_FULL.zip'
$agora_des = 'AgoraSdk.zip'
$agora_local_sdk = '../../sdk'

Expand Down