From 47d62b0dd3bdd1c4656fc46958853399ddacb4dd Mon Sep 17 00:00:00 2001 From: peilinok Date: Thu, 22 May 2025 02:51:05 +0000 Subject: [PATCH] feat: update dependencies --- android/build.gradle | 6 +- ios/agora_rtc_engine.podspec | 4 +- lib/src/agora_base.dart | 83 +++---------------- lib/src/agora_h265_transcoder.dart | 1 + lib/src/agora_log.dart | 1 - lib/src/agora_media_base.dart | 21 ++--- lib/src/agora_media_base.g.dart | 2 + lib/src/agora_media_engine.dart | 5 +- lib/src/agora_media_player.dart | 1 + lib/src/agora_media_player_source.dart | 1 + lib/src/agora_media_player_types.dart | 6 -- lib/src/agora_media_recorder.dart | 1 + lib/src/agora_media_streaming_source.dart | 1 - lib/src/agora_music_content_center.dart | 6 -- lib/src/agora_pip_controller.dart | 2 +- lib/src/agora_rhythm_player.dart | 1 - lib/src/agora_rtc_engine.dart | 39 ++------- lib/src/agora_rtc_engine_ex.dart | 8 +- lib/src/agora_rtc_engine_ext.dart | 2 +- lib/src/agora_spatial_audio.dart | 2 - .../call_api_event_handler_buffer_ext.dart | 1 + macos/agora_rtc_engine.podspec | 4 +- pubspec.yaml | 2 +- ...ngine_rtcengineeventhandler_testcases.dart | 9 +- .../testcases/agora_video_view_testcases.dart | 6 +- .../fake_agora_video_view_testcases.dart | 12 ++- .../mediaengine_smoke_test_testcases.dart | 3 +- .../mediaplayer_smoke_test_testcases.dart | 9 +- .../rtcengine_smoke_test_testcases.dart | 3 +- .../lib/fake_remote_user.dart | 3 +- .../agora_video_view_render_test.dart | 66 ++++++++++----- .../agora_video_view_smoke_test.dart | 6 +- .../integration_test/common/fake_camera.dart | 3 +- .../integration_test/local_video_view.dart | 3 +- .../integration_test/remote_video_view.dart | 3 +- tool/terra/package.json | 2 +- tool/terra/terra_config_main.yaml | 26 +++--- windows/cmake/DownloadSDK.cmake | 4 +- 38 files changed, 149 insertions(+), 209 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 73e7bb856..17eeec106 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -58,12 +58,12 @@ dependencies { api fileTree(dir: "libs", include: ["*.jar"]) } else { // iris dependencies start - api 'io.agora.rtc:iris-rtc:4.3.2.11-build.1' + api 'io.agora.rtc:iris-rtc:4.3.2.16-build.1' // iris dependencies end // native dependencies start - api 'io.agora.rtc:agora-special-full:4.3.2.11' - api 'io.agora.rtc:full-screen-sharing:4.3.2.11' + api 'io.agora.rtc:agora-special-full:4.3.2.16.1' + api 'io.agora.rtc:full-screen-sharing:4.3.2.16' // native dependencies end api 'io.agora.rtc:pip:0.0.1-rc.1' diff --git a/ios/agora_rtc_engine.podspec b/ios/agora_rtc_engine.podspec index 5a6cec8ca..64e2bbbe8 100644 --- a/ios/agora_rtc_engine.podspec +++ b/ios/agora_rtc_engine.podspec @@ -26,11 +26,11 @@ Pod::Spec.new do |s| s.vendored_frameworks = 'libs/*.xcframework' else # iris dependencies start - s.dependency 'AgoraIrisRTC_iOS', '4.3.2.11-build.3' + s.dependency 'AgoraIrisRTC_iOS', '4.3.2.16-build.1' # iris dependencies end # native dependencies start - s.dependency 'AgoraRtcEngine_Special_iOS', '4.3.2.11' + s.dependency 'AgoraRtcEngine_Special_iOS', '4.3.2.16' # native dependencies end s.dependency 'AgoraPIP_iOS', '0.0.2-rc.1' diff --git a/lib/src/agora_base.dart b/lib/src/agora_base.dart index 951f4bebc..de0ef7603 100644 --- a/lib/src/agora_base.dart +++ b/lib/src/agora_base.dart @@ -983,7 +983,6 @@ class VideoDimensions implements AgoraSerializable { factory VideoDimensions.fromJson(Map json) => _$VideoDimensionsFromJson(json); - /// @nodoc @override Map toJson() => _$VideoDimensionsToJson(this); } @@ -1201,7 +1200,6 @@ class SenderOptions implements AgoraSerializable { factory SenderOptions.fromJson(Map json) => _$SenderOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$SenderOptionsToJson(this); } @@ -1364,7 +1362,6 @@ class EncodedAudioFrameAdvancedSettings implements AgoraSerializable { Map json) => _$EncodedAudioFrameAdvancedSettingsFromJson(json); - /// @nodoc @override Map toJson() => _$EncodedAudioFrameAdvancedSettingsToJson(this); @@ -1410,7 +1407,6 @@ class EncodedAudioFrameInfo implements AgoraSerializable { factory EncodedAudioFrameInfo.fromJson(Map json) => _$EncodedAudioFrameInfoFromJson(json); - /// @nodoc @override Map toJson() => _$EncodedAudioFrameInfoToJson(this); } @@ -1450,7 +1446,6 @@ class AudioPcmDataInfo implements AgoraSerializable { factory AudioPcmDataInfo.fromJson(Map json) => _$AudioPcmDataInfoFromJson(json); - /// @nodoc @override Map toJson() => _$AudioPcmDataInfoToJson(this); } @@ -1547,7 +1542,6 @@ class VideoSubscriptionOptions implements AgoraSerializable { factory VideoSubscriptionOptions.fromJson(Map json) => _$VideoSubscriptionOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$VideoSubscriptionOptionsToJson(this); } @@ -1643,7 +1637,6 @@ class EncodedVideoFrameInfo implements AgoraSerializable { factory EncodedVideoFrameInfo.fromJson(Map json) => _$EncodedVideoFrameInfoFromJson(json); - /// @nodoc @override Map toJson() => _$EncodedVideoFrameInfoToJson(this); } @@ -1720,7 +1713,6 @@ class AdvanceOptions implements AgoraSerializable { factory AdvanceOptions.fromJson(Map json) => _$AdvanceOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$AdvanceOptionsToJson(this); } @@ -1836,7 +1828,6 @@ class CodecCapLevels implements AgoraSerializable { factory CodecCapLevels.fromJson(Map json) => _$CodecCapLevelsFromJson(json); - /// @nodoc @override Map toJson() => _$CodecCapLevelsToJson(this); } @@ -1863,7 +1854,6 @@ class CodecCapInfo implements AgoraSerializable { factory CodecCapInfo.fromJson(Map json) => _$CodecCapInfoFromJson(json); - /// @nodoc @override Map toJson() => _$CodecCapInfoToJson(this); } @@ -1888,7 +1878,6 @@ class FocalLengthInfo implements AgoraSerializable { factory FocalLengthInfo.fromJson(Map json) => _$FocalLengthInfoFromJson(json); - /// @nodoc @override Map toJson() => _$FocalLengthInfoToJson(this); } @@ -1948,7 +1937,6 @@ class VideoEncoderConfiguration implements AgoraSerializable { factory VideoEncoderConfiguration.fromJson(Map json) => _$VideoEncoderConfigurationFromJson(json); - /// @nodoc @override Map toJson() => _$VideoEncoderConfigurationToJson(this); } @@ -1973,7 +1961,6 @@ class DataStreamConfig implements AgoraSerializable { factory DataStreamConfig.fromJson(Map json) => _$DataStreamConfigFromJson(json); - /// @nodoc @override Map toJson() => _$DataStreamConfigToJson(this); } @@ -2029,7 +2016,6 @@ class SimulcastStreamConfig implements AgoraSerializable { factory SimulcastStreamConfig.fromJson(Map json) => _$SimulcastStreamConfigFromJson(json); - /// @nodoc @override Map toJson() => _$SimulcastStreamConfigToJson(this); } @@ -2048,7 +2034,6 @@ class SimulcastConfig implements AgoraSerializable { factory SimulcastConfig.fromJson(Map json) => _$SimulcastConfigFromJson(json); - /// @nodoc @override Map toJson() => _$SimulcastConfigToJson(this); } @@ -2124,7 +2109,6 @@ class StreamLayerConfig implements AgoraSerializable { factory StreamLayerConfig.fromJson(Map json) => _$StreamLayerConfigFromJson(json); - /// @nodoc @override Map toJson() => _$StreamLayerConfigToJson(this); } @@ -2155,7 +2139,6 @@ class Rectangle implements AgoraSerializable { factory Rectangle.fromJson(Map json) => _$RectangleFromJson(json); - /// @nodoc @override Map toJson() => _$RectangleToJson(this); } @@ -2186,7 +2169,6 @@ class WatermarkRatio implements AgoraSerializable { factory WatermarkRatio.fromJson(Map json) => _$WatermarkRatioFromJson(json); - /// @nodoc @override Map toJson() => _$WatermarkRatioToJson(this); } @@ -2226,7 +2208,6 @@ class WatermarkOptions implements AgoraSerializable { factory WatermarkOptions.fromJson(Map json) => _$WatermarkOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$WatermarkOptionsToJson(this); } @@ -2409,7 +2390,6 @@ class RtcStats implements AgoraSerializable { factory RtcStats.fromJson(Map json) => _$RtcStatsFromJson(json); - /// @nodoc @override Map toJson() => _$RtcStatsToJson(this); } @@ -2507,7 +2487,6 @@ class ClientRoleOptions implements AgoraSerializable { factory ClientRoleOptions.fromJson(Map json) => _$ClientRoleOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$ClientRoleOptionsToJson(this); } @@ -2633,7 +2612,7 @@ enum AudioProfileType { @JsonValue(5) audioProfileMusicHighQualityStereo, - /// 6: A sample rate of 16 kHz, audio encoding, mono, and Acoustic Echo Cancellation (AES) enabled. + /// 6: A sample rate of 16 kHz, audio encoding, mono, and Acoustic Echo Cancellation (AEC) enabled. @JsonValue(6) audioProfileIot, @@ -2718,7 +2697,6 @@ class VideoFormat implements AgoraSerializable { factory VideoFormat.fromJson(Map json) => _$VideoFormatFromJson(json); - /// @nodoc @override Map toJson() => _$VideoFormatToJson(this); } @@ -3147,7 +3125,7 @@ enum LocalVideoStreamReason { @JsonValue(22) localVideoStreamReasonScreenCaptureNoPermission, - /// 24: (Windows only) An unexpected error occurred during screen sharing (possibly due to window blocking failure), resulting in decreased performance, but the screen sharing process itself was not affected. + /// 24: (Windows only) An unexpected error occurred during screen sharing (possibly due to window blocking failure), resulting in decreased performance, but the screen sharing process itself was not affected. During screen sharing, if blocking a specific window fails due to device driver issues, the SDK will report this event and automatically fall back to sharing the entire screen. If your use case requires masking specific windows to protect privacy, we recommend listening for this event and implementing additional privacy protection mechanisms when it is triggered." @JsonValue(24) localVideoStreamReasonScreenCaptureAutoFallback, @@ -3171,7 +3149,7 @@ enum LocalVideoStreamReason { @JsonValue(29) localVideoStreamReasonScreenCaptureResumed, - /// 30: (Windows and macOS only) The displayer used for screen capture is disconnected. + /// 30: (Windows and macOS only) The displayer used for screen capture is disconnected. The current screen sharing has been paused. Prompt the user to restart the screen sharing. @JsonValue(30) localVideoStreamReasonScreenCaptureDisplayDisconnected, } @@ -3476,7 +3454,6 @@ class VideoTrackInfo implements AgoraSerializable { factory VideoTrackInfo.fromJson(Map json) => _$VideoTrackInfoFromJson(json); - /// @nodoc @override Map toJson() => _$VideoTrackInfoToJson(this); } @@ -3550,7 +3527,6 @@ class AudioVolumeInfo implements AgoraSerializable { factory AudioVolumeInfo.fromJson(Map json) => _$AudioVolumeInfoFromJson(json); - /// @nodoc @override Map toJson() => _$AudioVolumeInfoToJson(this); } @@ -3571,7 +3547,6 @@ class DeviceInfo implements AgoraSerializable { factory DeviceInfo.fromJson(Map json) => _$DeviceInfoFromJson(json); - /// @nodoc @override Map toJson() => _$DeviceInfoToJson(this); } @@ -3593,7 +3568,6 @@ class Packet implements AgoraSerializable { /// @nodoc factory Packet.fromJson(Map json) => _$PacketFromJson(json); - /// @nodoc @override Map toJson() => _$PacketToJson(this); } @@ -3765,7 +3739,6 @@ class LocalAudioStats implements AgoraSerializable { factory LocalAudioStats.fromJson(Map json) => _$LocalAudioStatsFromJson(json); - /// @nodoc @override Map toJson() => _$LocalAudioStatsToJson(this); } @@ -3980,7 +3953,6 @@ class RtcImage implements AgoraSerializable { factory RtcImage.fromJson(Map json) => _$RtcImageFromJson(json); - /// @nodoc @override Map toJson() => _$RtcImageToJson(this); } @@ -4005,7 +3977,6 @@ class LiveStreamAdvancedFeature implements AgoraSerializable { factory LiveStreamAdvancedFeature.fromJson(Map json) => _$LiveStreamAdvancedFeatureFromJson(json); - /// @nodoc @override Map toJson() => _$LiveStreamAdvancedFeatureToJson(this); } @@ -4111,7 +4082,6 @@ class TranscodingUser implements AgoraSerializable { factory TranscodingUser.fromJson(Map json) => _$TranscodingUserFromJson(json); - /// @nodoc @override Map toJson() => _$TranscodingUserToJson(this); } @@ -4250,7 +4220,6 @@ class LiveTranscoding implements AgoraSerializable { factory LiveTranscoding.fromJson(Map json) => _$LiveTranscodingFromJson(json); - /// @nodoc @override Map toJson() => _$LiveTranscodingToJson(this); } @@ -4280,7 +4249,11 @@ class TranscodingVideoStream implements AgoraSerializable { @JsonKey(name: 'remoteUserUid') final int? remoteUserUid; - /// The URL of the image. Use this parameter only when the source type is the image for local video mixing. + /// The file path of local images. Use this parameter only when the source type is the image for local video mixing. Examples: + /// Android: /storage/emulated/0/Pictures/image.png + /// iOS: /var/mobile/Containers/Data/Application//Documents/image.png + /// macOS: ~/Pictures/image.png + /// Windows: C:\\Users\\{username}\\Pictures\\image.png @JsonKey(name: 'imageUrl') final String? imageUrl; @@ -4322,7 +4295,6 @@ class TranscodingVideoStream implements AgoraSerializable { factory TranscodingVideoStream.fromJson(Map json) => _$TranscodingVideoStreamFromJson(json); - /// @nodoc @override Map toJson() => _$TranscodingVideoStreamToJson(this); } @@ -4357,7 +4329,6 @@ class LocalTranscoderConfiguration implements AgoraSerializable { factory LocalTranscoderConfiguration.fromJson(Map json) => _$LocalTranscoderConfigurationFromJson(json); - /// @nodoc @override Map toJson() => _$LocalTranscoderConfigurationToJson(this); } @@ -4433,7 +4404,6 @@ class LastmileProbeConfig implements AgoraSerializable { factory LastmileProbeConfig.fromJson(Map json) => _$LastmileProbeConfigFromJson(json); - /// @nodoc @override Map toJson() => _$LastmileProbeConfigToJson(this); } @@ -4490,7 +4460,6 @@ class LastmileProbeOneWayResult implements AgoraSerializable { factory LastmileProbeOneWayResult.fromJson(Map json) => _$LastmileProbeOneWayResultFromJson(json); - /// @nodoc @override Map toJson() => _$LastmileProbeOneWayResultToJson(this); } @@ -4522,7 +4491,6 @@ class LastmileProbeResult implements AgoraSerializable { factory LastmileProbeResult.fromJson(Map json) => _$LastmileProbeResultFromJson(json); - /// @nodoc @override Map toJson() => _$LastmileProbeResultToJson(this); } @@ -4770,7 +4738,6 @@ class WlAccStats implements AgoraSerializable { factory WlAccStats.fromJson(Map json) => _$WlAccStatsFromJson(json); - /// @nodoc @override Map toJson() => _$WlAccStatsToJson(this); } @@ -4835,7 +4802,7 @@ enum VideoViewSetupMode { @JsonValue(1) videoViewSetupAdd, - /// 2: Deletes a view. + /// 2: Deletes a view. When you no longer need to use a certain view, it is recommended to delete the view by setting setupMode to videoViewSetupRemove, otherwise it may lead to leak of rendering resources. @JsonValue(2) videoViewSetupRemove, } @@ -4883,7 +4850,7 @@ class VideoCanvas implements AgoraSerializable { @JsonKey(name: 'view', readValue: readIntPtr) final int? view; - /// The background color of the video canvas in RGBA format. The default value is 0x00000000, which represents completely transparent black. + /// The background color of the video canvas in RGBA format. The default value is 0x00000000, which represents black. @JsonKey(name: 'backgroundColor') final int? backgroundColor; @@ -4927,7 +4894,6 @@ class VideoCanvas implements AgoraSerializable { factory VideoCanvas.fromJson(Map json) => _$VideoCanvasFromJson(json); - /// @nodoc @override Map toJson() => _$VideoCanvasToJson(this); } @@ -4996,7 +4962,6 @@ class PipOptions implements AgoraSerializable { factory PipOptions.fromJson(Map json) => _$PipOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$PipOptionsToJson(this); } @@ -5036,7 +5001,6 @@ class BeautyOptions implements AgoraSerializable { factory BeautyOptions.fromJson(Map json) => _$BeautyOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$BeautyOptionsToJson(this); } @@ -5088,7 +5052,6 @@ class LowlightEnhanceOptions implements AgoraSerializable { factory LowlightEnhanceOptions.fromJson(Map json) => _$LowlightEnhanceOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$LowlightEnhanceOptionsToJson(this); } @@ -5161,7 +5124,6 @@ class VideoDenoiserOptions implements AgoraSerializable { factory VideoDenoiserOptions.fromJson(Map json) => _$VideoDenoiserOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$VideoDenoiserOptionsToJson(this); } @@ -5240,7 +5202,6 @@ class ColorEnhanceOptions implements AgoraSerializable { factory ColorEnhanceOptions.fromJson(Map json) => _$ColorEnhanceOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$ColorEnhanceOptionsToJson(this); } @@ -5272,7 +5233,6 @@ class VirtualBackgroundSource implements AgoraSerializable { factory VirtualBackgroundSource.fromJson(Map json) => _$VirtualBackgroundSourceFromJson(json); - /// @nodoc @override Map toJson() => _$VirtualBackgroundSourceToJson(this); } @@ -5361,7 +5321,6 @@ class SegmentationProperty implements AgoraSerializable { factory SegmentationProperty.fromJson(Map json) => _$SegmentationPropertyFromJson(json); - /// @nodoc @override Map toJson() => _$SegmentationPropertyToJson(this); } @@ -5449,7 +5408,6 @@ class AudioTrackConfig implements AgoraSerializable { factory AudioTrackConfig.fromJson(Map json) => _$AudioTrackConfigFromJson(json); - /// @nodoc @override Map toJson() => _$AudioTrackConfigToJson(this); } @@ -5812,7 +5770,6 @@ class ScreenCaptureParameters implements AgoraSerializable { factory ScreenCaptureParameters.fromJson(Map json) => _$ScreenCaptureParametersFromJson(json); - /// @nodoc @override Map toJson() => _$ScreenCaptureParametersToJson(this); } @@ -5956,7 +5913,6 @@ class AudioRecordingConfiguration implements AgoraSerializable { factory AudioRecordingConfiguration.fromJson(Map json) => _$AudioRecordingConfigurationFromJson(json); - /// @nodoc @override Map toJson() => _$AudioRecordingConfigurationToJson(this); } @@ -5979,7 +5935,6 @@ class AudioEncodedFrameObserverConfig implements AgoraSerializable { factory AudioEncodedFrameObserverConfig.fromJson(Map json) => _$AudioEncodedFrameObserverConfigFromJson(json); - /// @nodoc @override Map toJson() => _$AudioEncodedFrameObserverConfigToJson(this); @@ -6252,7 +6207,6 @@ class ChannelMediaInfo implements AgoraSerializable { factory ChannelMediaInfo.fromJson(Map json) => _$ChannelMediaInfoFromJson(json); - /// @nodoc @override Map toJson() => _$ChannelMediaInfoToJson(this); } @@ -6284,7 +6238,6 @@ class ChannelMediaRelayConfiguration implements AgoraSerializable { factory ChannelMediaRelayConfiguration.fromJson(Map json) => _$ChannelMediaRelayConfigurationFromJson(json); - /// @nodoc @override Map toJson() => _$ChannelMediaRelayConfigurationToJson(this); } @@ -6303,7 +6256,6 @@ class UplinkNetworkInfo implements AgoraSerializable { factory UplinkNetworkInfo.fromJson(Map json) => _$UplinkNetworkInfoFromJson(json); - /// @nodoc @override Map toJson() => _$UplinkNetworkInfoToJson(this); } @@ -6343,7 +6295,6 @@ class DownlinkNetworkInfo implements AgoraSerializable { factory DownlinkNetworkInfo.fromJson(Map json) => _$DownlinkNetworkInfoFromJson(json); - /// @nodoc @override Map toJson() => _$DownlinkNetworkInfoToJson(this); } @@ -6378,7 +6329,6 @@ class PeerDownlinkInfo implements AgoraSerializable { factory PeerDownlinkInfo.fromJson(Map json) => _$PeerDownlinkInfoFromJson(json); - /// @nodoc @override Map toJson() => _$PeerDownlinkInfoToJson(this); } @@ -6468,7 +6418,6 @@ class EncryptionConfig implements AgoraSerializable { factory EncryptionConfig.fromJson(Map json) => _$EncryptionConfigFromJson(json); - /// @nodoc @override Map toJson() => _$EncryptionConfigToJson(this); } @@ -6688,7 +6637,6 @@ class EchoTestConfiguration implements AgoraSerializable { factory EchoTestConfiguration.fromJson(Map json) => _$EchoTestConfigurationFromJson(json); - /// @nodoc @override Map toJson() => _$EchoTestConfigurationToJson(this); } @@ -6711,7 +6659,6 @@ class UserInfo implements AgoraSerializable { factory UserInfo.fromJson(Map json) => _$UserInfoFromJson(json); - /// @nodoc @override Map toJson() => _$UserInfoToJson(this); } @@ -6817,7 +6764,6 @@ class ScreenVideoParameters implements AgoraSerializable { factory ScreenVideoParameters.fromJson(Map json) => _$ScreenVideoParametersFromJson(json); - /// @nodoc @override Map toJson() => _$ScreenVideoParametersToJson(this); } @@ -6847,7 +6793,6 @@ class ScreenAudioParameters implements AgoraSerializable { factory ScreenAudioParameters.fromJson(Map json) => _$ScreenAudioParametersFromJson(json); - /// @nodoc @override Map toJson() => _$ScreenAudioParametersToJson(this); } @@ -6884,7 +6829,6 @@ class ScreenCaptureParameters2 implements AgoraSerializable { factory ScreenCaptureParameters2.fromJson(Map json) => _$ScreenCaptureParameters2FromJson(json); - /// @nodoc @override Map toJson() => _$ScreenCaptureParameters2ToJson(this); } @@ -6971,7 +6915,6 @@ class VideoRenderingTracingInfo implements AgoraSerializable { factory VideoRenderingTracingInfo.fromJson(Map json) => _$VideoRenderingTracingInfoFromJson(json); - /// @nodoc @override Map toJson() => _$VideoRenderingTracingInfoToJson(this); } @@ -7053,7 +6996,6 @@ class LogUploadServerInfo implements AgoraSerializable { factory LogUploadServerInfo.fromJson(Map json) => _$LogUploadServerInfoFromJson(json); - /// @nodoc @override Map toJson() => _$LogUploadServerInfoToJson(this); } @@ -7072,7 +7014,6 @@ class AdvancedConfigInfo implements AgoraSerializable { factory AdvancedConfigInfo.fromJson(Map json) => _$AdvancedConfigInfoFromJson(json); - /// @nodoc @override Map toJson() => _$AdvancedConfigInfoToJson(this); } @@ -7127,7 +7068,6 @@ class LocalAccessPointConfiguration implements AgoraSerializable { factory LocalAccessPointConfiguration.fromJson(Map json) => _$LocalAccessPointConfigurationFromJson(json); - /// @nodoc @override Map toJson() => _$LocalAccessPointConfigurationToJson(this); } @@ -7150,7 +7090,6 @@ class RecorderStreamInfo implements AgoraSerializable { factory RecorderStreamInfo.fromJson(Map json) => _$RecorderStreamInfoFromJson(json); - /// @nodoc @override Map toJson() => _$RecorderStreamInfoToJson(this); } @@ -7205,7 +7144,6 @@ class SpatialAudioParams implements AgoraSerializable { factory SpatialAudioParams.fromJson(Map json) => _$SpatialAudioParamsFromJson(json); - /// @nodoc @override Map toJson() => _$SpatialAudioParamsToJson(this); } @@ -7263,7 +7201,6 @@ class VideoLayout implements AgoraSerializable { factory VideoLayout.fromJson(Map json) => _$VideoLayoutFromJson(json); - /// @nodoc @override Map toJson() => _$VideoLayoutToJson(this); } diff --git a/lib/src/agora_h265_transcoder.dart b/lib/src/agora_h265_transcoder.dart index 9717711ac..54296194c 100644 --- a/lib/src/agora_h265_transcoder.dart +++ b/lib/src/agora_h265_transcoder.dart @@ -1,3 +1,4 @@ +import '/src/_serializable.dart'; import '/src/binding_forward_export.dart'; part 'agora_h265_transcoder.g.dart'; diff --git a/lib/src/agora_log.dart b/lib/src/agora_log.dart index 371d73bbb..383633dbe 100644 --- a/lib/src/agora_log.dart +++ b/lib/src/agora_log.dart @@ -123,7 +123,6 @@ class LogConfig implements AgoraSerializable { factory LogConfig.fromJson(Map json) => _$LogConfigFromJson(json); - /// @nodoc @override Map toJson() => _$LogConfigToJson(this); } diff --git a/lib/src/agora_media_base.dart b/lib/src/agora_media_base.dart index 1aa52460a..368a6a35f 100644 --- a/lib/src/agora_media_base.dart +++ b/lib/src/agora_media_base.dart @@ -1,6 +1,5 @@ import '/src/_serializable.dart'; import '/src/binding_forward_export.dart'; - part 'agora_media_base.g.dart'; /// @nodoc @@ -213,7 +212,6 @@ class AudioParameters implements AgoraSerializable { factory AudioParameters.fromJson(Map json) => _$AudioParametersFromJson(json); - /// @nodoc @override Map toJson() => _$AudioParametersToJson(this); } @@ -341,7 +339,6 @@ class PacketOptions implements AgoraSerializable { factory PacketOptions.fromJson(Map json) => _$PacketOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$PacketOptionsToJson(this); } @@ -364,7 +361,6 @@ class AudioEncodedFrameInfo implements AgoraSerializable { factory AudioEncodedFrameInfo.fromJson(Map json) => _$AudioEncodedFrameInfoFromJson(json); - /// @nodoc @override Map toJson() => _$AudioEncodedFrameInfoToJson(this); } @@ -414,7 +410,6 @@ class AudioPcmFrame implements AgoraSerializable { factory AudioPcmFrame.fromJson(Map json) => _$AudioPcmFrameFromJson(json); - /// @nodoc @override Map toJson() => _$AudioPcmFrameToJson(this); } @@ -628,6 +623,7 @@ class ExternalVideoFrame implements AgoraSerializable { this.timestamp, this.eglType, this.textureId, + this.fenceObject, this.matrix, this.metadataBuffer, this.metadataSize, @@ -687,6 +683,10 @@ class ExternalVideoFrame implements AgoraSerializable { @JsonKey(name: 'textureId') final int? textureId; + /// @nodoc + @JsonKey(name: 'fence_object') + final int? fenceObject; + /// This parameter only applies to video data in Texture format. Incoming 4 × 4 transformational matrix. The typical value is a unit matrix. @JsonKey(name: 'matrix') final List? matrix; @@ -717,7 +717,6 @@ class ExternalVideoFrame implements AgoraSerializable { factory ExternalVideoFrame.fromJson(Map json) => _$ExternalVideoFrameFromJson(json); - /// @nodoc @override Map toJson() => _$ExternalVideoFrameToJson(this); } @@ -886,7 +885,6 @@ class VideoFrame implements AgoraSerializable { factory VideoFrame.fromJson(Map json) => _$VideoFrameFromJson(json); - /// @nodoc @override Map toJson() => _$VideoFrameToJson(this); } @@ -1039,7 +1037,6 @@ class ContentInspectModule implements AgoraSerializable { factory ContentInspectModule.fromJson(Map json) => _$ContentInspectModuleFromJson(json); - /// @nodoc @override Map toJson() => _$ContentInspectModuleToJson(this); } @@ -1071,7 +1068,6 @@ class ContentInspectConfig implements AgoraSerializable { factory ContentInspectConfig.fromJson(Map json) => _$ContentInspectConfigFromJson(json); - /// @nodoc @override Map toJson() => _$ContentInspectConfigToJson(this); } @@ -1098,7 +1094,6 @@ class SnapshotConfig implements AgoraSerializable { factory SnapshotConfig.fromJson(Map json) => _$SnapshotConfigFromJson(json); - /// @nodoc @override Map toJson() => _$SnapshotConfigToJson(this); } @@ -1257,7 +1252,6 @@ class AudioFrame implements AgoraSerializable { factory AudioFrame.fromJson(Map json) => _$AudioFrameFromJson(json); - /// @nodoc @override Map toJson() => _$AudioFrameToJson(this); } @@ -1340,7 +1334,6 @@ class AudioParams implements AgoraSerializable { factory AudioParams.fromJson(Map json) => _$AudioParamsFromJson(json); - /// @nodoc @override Map toJson() => _$AudioParamsToJson(this); } @@ -1398,7 +1391,6 @@ class AudioSpectrumData implements AgoraSerializable { factory AudioSpectrumData.fromJson(Map json) => _$AudioSpectrumDataFromJson(json); - /// @nodoc @override Map toJson() => _$AudioSpectrumDataToJson(this); } @@ -1421,7 +1413,6 @@ class UserAudioSpectrumInfo implements AgoraSerializable { factory UserAudioSpectrumInfo.fromJson(Map json) => _$UserAudioSpectrumInfoFromJson(json); - /// @nodoc @override Map toJson() => _$UserAudioSpectrumInfoToJson(this); } @@ -1737,7 +1728,6 @@ class MediaRecorderConfiguration implements AgoraSerializable { factory MediaRecorderConfiguration.fromJson(Map json) => _$MediaRecorderConfigurationFromJson(json); - /// @nodoc @override Map toJson() => _$MediaRecorderConfigurationToJson(this); } @@ -1791,7 +1781,6 @@ class RecorderInfo implements AgoraSerializable { factory RecorderInfo.fromJson(Map json) => _$RecorderInfoFromJson(json); - /// @nodoc @override Map toJson() => _$RecorderInfoToJson(this); } diff --git a/lib/src/agora_media_base.g.dart b/lib/src/agora_media_base.g.dart index 280667390..76c77c706 100644 --- a/lib/src/agora_media_base.g.dart +++ b/lib/src/agora_media_base.g.dart @@ -124,6 +124,7 @@ ExternalVideoFrame _$ExternalVideoFrameFromJson(Map json) => timestamp: (json['timestamp'] as num?)?.toInt(), eglType: $enumDecodeNullable(_$EglContextTypeEnumMap, json['eglType']), textureId: (json['textureId'] as num?)?.toInt(), + fenceObject: (json['fence_object'] as num?)?.toInt(), matrix: (json['matrix'] as List?) ?.map((e) => (e as num).toDouble()) .toList(), @@ -153,6 +154,7 @@ Map _$ExternalVideoFrameToJson(ExternalVideoFrame instance) { writeNotNull('timestamp', instance.timestamp); writeNotNull('eglType', _$EglContextTypeEnumMap[instance.eglType]); writeNotNull('textureId', instance.textureId); + writeNotNull('fence_object', instance.fenceObject); writeNotNull('matrix', instance.matrix); writeNotNull('metadata_size', instance.metadataSize); writeNotNull('fillAlphaBuffer', instance.fillAlphaBuffer); diff --git a/lib/src/agora_media_engine.dart b/lib/src/agora_media_engine.dart index eb739141c..874558ad5 100644 --- a/lib/src/agora_media_engine.dart +++ b/lib/src/agora_media_engine.dart @@ -1,3 +1,4 @@ +import '/src/_serializable.dart'; import '/src/binding_forward_export.dart'; part 'agora_media_engine.g.dart'; @@ -183,14 +184,14 @@ abstract class MediaEngine { /// Pushes the external raw video frame to the SDK through video tracks. /// /// To publish a custom video source, see the following steps: - /// Call createCustomVideoTrack to create a video track and get the video track ID. + /// Call createCustomVideoTrack to create a video track and get the video track ID. If you only need to push one custom video source to the channel, you can directly call the setExternalVideoSource method and the SDK will automatically create a video track with the videoTrackId set to 0. /// Call joinChannel to join the channel. In ChannelMediaOptions, set customVideoTrackId to the video track ID that you want to publish, and set publishCustomVideoTrack to true. /// Call this method and specify videoTrackId as the video track ID set in step 2. You can then publish the corresponding custom video source in the channel. After calling this method, even if you stop pushing external video frames to the SDK, the custom video stream will still be counted as the video duration usage and incur charges. Agora recommends that you take appropriate measures based on the actual situation to avoid such video billing. /// If you no longer need to capture external video data, you can call destroyCustomVideoTrack to destroy the custom video track. /// If you only want to use the external video data for local preview and not publish it in the channel, you can call muteLocalVideoStream to cancel sending video stream or call updateChannelMediaOptions to set publishCustomVideoTrack to false. /// /// * [frame] The external raw video frame to be pushed. See ExternalVideoFrame. - /// * [videoTrackId] The video track ID returned by calling the createCustomVideoTrack method. The default value is 0. + /// * [videoTrackId] The video track ID returned by calling the createCustomVideoTrack method. If you only need to push one custom video source, set videoTrackId to 0. /// /// Returns /// When the method call succeeds, there is no return value; when fails, the AgoraRtcException exception is thrown. You need to catch the exception and handle it accordingly. diff --git a/lib/src/agora_media_player.dart b/lib/src/agora_media_player.dart index 3bef30356..d3ba4cfcd 100644 --- a/lib/src/agora_media_player.dart +++ b/lib/src/agora_media_player.dart @@ -1,3 +1,4 @@ +import '/src/_serializable.dart'; import '/src/binding_forward_export.dart'; /// This class provides media player functions and supports multiple instances. diff --git a/lib/src/agora_media_player_source.dart b/lib/src/agora_media_player_source.dart index 023408a1e..7484092d4 100644 --- a/lib/src/agora_media_player_source.dart +++ b/lib/src/agora_media_player_source.dart @@ -1,3 +1,4 @@ +import '/src/_serializable.dart'; import '/src/binding_forward_export.dart'; /// Provides callbacks for media players. diff --git a/lib/src/agora_media_player_types.dart b/lib/src/agora_media_player_types.dart index d0b106632..6b5c36181 100644 --- a/lib/src/agora_media_player_types.dart +++ b/lib/src/agora_media_player_types.dart @@ -397,7 +397,6 @@ class PlayerStreamInfo implements AgoraSerializable { factory PlayerStreamInfo.fromJson(Map json) => _$PlayerStreamInfoFromJson(json); - /// @nodoc @override Map toJson() => _$PlayerStreamInfoToJson(this); } @@ -420,7 +419,6 @@ class SrcInfo implements AgoraSerializable { factory SrcInfo.fromJson(Map json) => _$SrcInfoFromJson(json); - /// @nodoc @override Map toJson() => _$SrcInfoToJson(this); } @@ -472,7 +470,6 @@ class CacheStatistics implements AgoraSerializable { factory CacheStatistics.fromJson(Map json) => _$CacheStatisticsFromJson(json); - /// @nodoc @override Map toJson() => _$CacheStatisticsToJson(this); } @@ -507,7 +504,6 @@ class PlayerPlaybackStats implements AgoraSerializable { factory PlayerPlaybackStats.fromJson(Map json) => _$PlayerPlaybackStatsFromJson(json); - /// @nodoc @override Map toJson() => _$PlayerPlaybackStatsToJson(this); } @@ -557,7 +553,6 @@ class PlayerUpdatedInfo implements AgoraSerializable { factory PlayerUpdatedInfo.fromJson(Map json) => _$PlayerUpdatedInfoFromJson(json); - /// @nodoc @override Map toJson() => _$PlayerUpdatedInfoToJson(this); } @@ -615,7 +610,6 @@ class MediaSource implements AgoraSerializable { factory MediaSource.fromJson(Map json) => _$MediaSourceFromJson(json); - /// @nodoc @override Map toJson() => _$MediaSourceToJson(this); } diff --git a/lib/src/agora_media_recorder.dart b/lib/src/agora_media_recorder.dart index 7730f90f6..5ab360fad 100644 --- a/lib/src/agora_media_recorder.dart +++ b/lib/src/agora_media_recorder.dart @@ -1,3 +1,4 @@ +import '/src/_serializable.dart'; import '/src/binding_forward_export.dart'; /// @nodoc diff --git a/lib/src/agora_media_streaming_source.dart b/lib/src/agora_media_streaming_source.dart index b819e6532..23d42df86 100644 --- a/lib/src/agora_media_streaming_source.dart +++ b/lib/src/agora_media_streaming_source.dart @@ -187,7 +187,6 @@ class InputSeiData implements AgoraSerializable { factory InputSeiData.fromJson(Map json) => _$InputSeiDataFromJson(json); - /// @nodoc @override Map toJson() => _$InputSeiDataToJson(this); } diff --git a/lib/src/agora_music_content_center.dart b/lib/src/agora_music_content_center.dart index 0a50ae3d2..56dc6f4cf 100644 --- a/lib/src/agora_music_content_center.dart +++ b/lib/src/agora_music_content_center.dart @@ -131,7 +131,6 @@ class MusicChartInfo implements AgoraSerializable { factory MusicChartInfo.fromJson(Map json) => _$MusicChartInfoFromJson(json); - /// @nodoc @override Map toJson() => _$MusicChartInfoToJson(this); } @@ -179,7 +178,6 @@ class MusicCacheInfo implements AgoraSerializable { factory MusicCacheInfo.fromJson(Map json) => _$MusicCacheInfoFromJson(json); - /// @nodoc @override Map toJson() => _$MusicCacheInfoToJson(this); } @@ -211,7 +209,6 @@ class MvProperty implements AgoraSerializable { factory MvProperty.fromJson(Map json) => _$MvPropertyFromJson(json); - /// @nodoc @override Map toJson() => _$MvPropertyToJson(this); } @@ -234,7 +231,6 @@ class ClimaxSegment implements AgoraSerializable { factory ClimaxSegment.fromJson(Map json) => _$ClimaxSegmentFromJson(json); - /// @nodoc @override Map toJson() => _$ClimaxSegmentToJson(this); } @@ -318,7 +314,6 @@ class Music implements AgoraSerializable { /// @nodoc factory Music.fromJson(Map json) => _$MusicFromJson(json); - /// @nodoc @override Map toJson() => _$MusicToJson(this); } @@ -421,7 +416,6 @@ class MusicContentCenterConfiguration implements AgoraSerializable { factory MusicContentCenterConfiguration.fromJson(Map json) => _$MusicContentCenterConfigurationFromJson(json); - /// @nodoc @override Map toJson() => _$MusicContentCenterConfigurationToJson(this); diff --git a/lib/src/agora_pip_controller.dart b/lib/src/agora_pip_controller.dart index c8c7321ba..42b801ad4 100644 --- a/lib/src/agora_pip_controller.dart +++ b/lib/src/agora_pip_controller.dart @@ -343,4 +343,4 @@ abstract class AgoraPipController { /// Releases resources associated with PiP mode. Future pipDispose(); -} +} \ No newline at end of file diff --git a/lib/src/agora_rhythm_player.dart b/lib/src/agora_rhythm_player.dart index 73282a731..e07861641 100644 --- a/lib/src/agora_rhythm_player.dart +++ b/lib/src/agora_rhythm_player.dart @@ -94,7 +94,6 @@ class AgoraRhythmPlayerConfig implements AgoraSerializable { factory AgoraRhythmPlayerConfig.fromJson(Map json) => _$AgoraRhythmPlayerConfigFromJson(json); - /// @nodoc @override Map toJson() => _$AgoraRhythmPlayerConfigToJson(this); } diff --git a/lib/src/agora_rtc_engine.dart b/lib/src/agora_rtc_engine.dart index 84c02f7ec..2659bd4d4 100644 --- a/lib/src/agora_rtc_engine.dart +++ b/lib/src/agora_rtc_engine.dart @@ -498,7 +498,6 @@ class LocalVideoStats implements AgoraSerializable { factory LocalVideoStats.fromJson(Map json) => _$LocalVideoStatsFromJson(json); - /// @nodoc @override Map toJson() => _$LocalVideoStatsToJson(this); } @@ -618,7 +617,6 @@ class RemoteAudioStats implements AgoraSerializable { factory RemoteAudioStats.fromJson(Map json) => _$RemoteAudioStatsFromJson(json); - /// @nodoc @override Map toJson() => _$RemoteAudioStatsToJson(this); } @@ -728,7 +726,6 @@ class RemoteVideoStats implements AgoraSerializable { factory RemoteVideoStats.fromJson(Map json) => _$RemoteVideoStatsFromJson(json); - /// @nodoc @override Map toJson() => _$RemoteVideoStatsToJson(this); } @@ -778,7 +775,6 @@ class VideoCompositingLayout implements AgoraSerializable { factory VideoCompositingLayout.fromJson(Map json) => _$VideoCompositingLayoutFromJson(json); - /// @nodoc @override Map toJson() => _$VideoCompositingLayoutToJson(this); } @@ -832,7 +828,6 @@ class Region implements AgoraSerializable { /// @nodoc factory Region.fromJson(Map json) => _$RegionFromJson(json); - /// @nodoc @override Map toJson() => _$RegionToJson(this); } @@ -887,7 +882,6 @@ class InjectStreamConfig implements AgoraSerializable { factory InjectStreamConfig.fromJson(Map json) => _$InjectStreamConfigFromJson(json); - /// @nodoc @override Map toJson() => _$InjectStreamConfigToJson(this); } @@ -994,7 +988,6 @@ class PublisherConfiguration implements AgoraSerializable { factory PublisherConfiguration.fromJson(Map json) => _$PublisherConfigurationFromJson(json); - /// @nodoc @override Map toJson() => _$PublisherConfigurationToJson(this); } @@ -1102,7 +1095,6 @@ class CameraCapturerConfiguration implements AgoraSerializable { factory CameraCapturerConfiguration.fromJson(Map json) => _$CameraCapturerConfigurationFromJson(json); - /// @nodoc @override Map toJson() => _$CameraCapturerConfigurationToJson(this); } @@ -1147,7 +1139,6 @@ class ScreenCaptureConfiguration implements AgoraSerializable { factory ScreenCaptureConfiguration.fromJson(Map json) => _$ScreenCaptureConfigurationFromJson(json); - /// @nodoc @override Map toJson() => _$ScreenCaptureConfigurationToJson(this); } @@ -1169,7 +1160,6 @@ class SIZE implements AgoraSerializable { /// @nodoc factory SIZE.fromJson(Map json) => _$SIZEFromJson(json); - /// @nodoc @override Map toJson() => _$SIZEToJson(this); } @@ -1202,7 +1192,6 @@ class ThumbImageBuffer implements AgoraSerializable { factory ThumbImageBuffer.fromJson(Map json) => _$ThumbImageBufferFromJson(json); - /// @nodoc @override Map toJson() => _$ThumbImageBufferToJson(this); } @@ -1310,7 +1299,6 @@ class ScreenCaptureSourceInfo implements AgoraSerializable { factory ScreenCaptureSourceInfo.fromJson(Map json) => _$ScreenCaptureSourceInfoFromJson(json); - /// @nodoc @override Map toJson() => _$ScreenCaptureSourceInfoToJson(this); } @@ -1329,7 +1317,6 @@ class AdvancedAudioOptions implements AgoraSerializable { factory AdvancedAudioOptions.fromJson(Map json) => _$AdvancedAudioOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$AdvancedAudioOptionsToJson(this); } @@ -1356,7 +1343,6 @@ class ImageTrackOptions implements AgoraSerializable { factory ImageTrackOptions.fromJson(Map json) => _$ImageTrackOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$ImageTrackOptionsToJson(this); } @@ -1562,7 +1548,6 @@ class ChannelMediaOptions implements AgoraSerializable { factory ChannelMediaOptions.fromJson(Map json) => _$ChannelMediaOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$ChannelMediaOptionsToJson(this); } @@ -1660,7 +1645,6 @@ class LeaveChannelOptions implements AgoraSerializable { factory LeaveChannelOptions.fromJson(Map json) => _$LeaveChannelOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$LeaveChannelOptionsToJson(this); } @@ -2214,7 +2198,7 @@ class RtcEngineEventHandler { /// Occurs when the local user receives the data stream from the remote user. /// - /// The SDK triggers this callback when the local user receives the stream message that the remote user sends by calling the sendStreamMessage method. + /// If you need a more comprehensive solution for low-latency, high-concurrency, and scalable real-time messaging and status synchronization, it is recommended to use. The SDK triggers this callback when the local user receives the stream message that the remote user sends by calling the sendStreamMessage method. /// /// * [connection] The connection information. See RtcConnection. /// * [remoteUid] The ID of the remote user sending the message. @@ -2227,7 +2211,7 @@ class RtcEngineEventHandler { /// Occurs when the local user does not receive the data stream from the remote user. /// - /// The SDK triggers this callback when the local user fails to receive the stream message that the remote user sends by calling the sendStreamMessage method. + /// If you need a more comprehensive solution for low-latency, high-concurrency, and scalable real-time messaging and status synchronization, it is recommended to use. The SDK triggers this callback when the local user fails to receive the stream message that the remote user sends by calling the sendStreamMessage method. /// /// * [connection] The connection information. See RtcConnection. /// * [remoteUid] The ID of the remote user sending the message. @@ -2797,7 +2781,6 @@ class RtcEngineContext implements AgoraSerializable { factory RtcEngineContext.fromJson(Map json) => _$RtcEngineContextFromJson(json); - /// @nodoc @override Map toJson() => _$RtcEngineContextToJson(this); } @@ -2897,7 +2880,6 @@ class Metadata implements AgoraSerializable { factory Metadata.fromJson(Map json) => _$MetadataFromJson(json); - /// @nodoc @override Map toJson() => _$MetadataToJson(this); } @@ -3015,7 +2997,6 @@ class DirectCdnStreamingStats implements AgoraSerializable { factory DirectCdnStreamingStats.fromJson(Map json) => _$DirectCdnStreamingStatsFromJson(json); - /// @nodoc @override Map toJson() => _$DirectCdnStreamingStatsToJson(this); } @@ -3093,7 +3074,6 @@ class DirectCdnStreamingMediaOptions implements AgoraSerializable { factory DirectCdnStreamingMediaOptions.fromJson(Map json) => _$DirectCdnStreamingMediaOptionsFromJson(json); - /// @nodoc @override Map toJson() => _$DirectCdnStreamingMediaOptionsToJson(this); } @@ -3125,7 +3105,6 @@ class ExtensionInfo implements AgoraSerializable { factory ExtensionInfo.fromJson(Map json) => _$ExtensionInfoFromJson(json); - /// @nodoc @override Map toJson() => _$ExtensionInfoToJson(this); } @@ -3523,6 +3502,7 @@ abstract class RtcEngine { /// Enables/Disables the virtual background. /// /// The virtual background feature enables the local user to replace their original background with a static image, dynamic video, blurred background, or portrait-background segmentation to achieve picture-in-picture effect. Once the virtual background feature is enabled, all users in the channel can see the custom background. Call this method after calling enableVideo or startPreview. + /// Using a video as a your virtual background will lead to continuous increase in memory usage, which may cause issues such as app crashes. Therefore,it is recommended to reduce the resolution and frame rate of the video when using it. /// This feature has high requirements on device performance. When calling this method, the SDK automatically checks the capabilities of the current device. Agora recommends you use virtual background on devices with the following processors: /// Snapdragon 700 series 750G and later /// Snapdragon 800 series 835 and later @@ -3599,7 +3579,7 @@ abstract class RtcEngine { /// If someone subscribes to the low-quality stream, the SDK enables the low-quality stream and resets it to the SimulcastStreamConfig configuration used in the most recent calling of setDualStreamMode. If no configuration has been set by the user previously, the following values are used: /// Resolution: 480 × 272 /// Frame rate: 15 fps - /// Bitrate: 500 Kbps applicationScenario1v1 (2) This is applicable to the scenario. To meet the requirements for low latency and high-quality video in this scenario, the SDK optimizes its strategies, improving performance in terms of video quality, first frame rendering, latency on mid-to-low-end devices, and smoothness under weak network conditions. applicationScenarioLiveshow (3) This is applicable to the scenario. In this scenario, fast video rendering and high image quality are crucial. The SDK implements several performance optimizations, including automatically enabling accelerated audio and video frame rendering to minimize first-frame latency (no need to call enableInstantMediaRendering), and B-frame encoding to achieve better image quality and bandwidth efficiency. The SDK also provides enhanced video quality and smooth playback, even in poor network conditions or on lower-end devices. + /// Bitrate: 500 Kbps applicationScenario1v1 (2) This is applicable to the scenario. To meet the requirements for low latency and high-quality video in this scenario, the SDK optimizes its strategies, improving performance in terms of video quality, first frame rendering, latency on mid-to-low-end devices, and smoothness under weak network conditions. This enumeration value is only applicable to the broadcaster vs. broadcaster scenario. applicationScenarioLiveshow (3) This is applicable to the scenario. In this scenario, fast video rendering and high image quality are crucial. The SDK implements several performance optimizations, including automatically enabling accelerated audio and video frame rendering to minimize first-frame latency (no need to call enableInstantMediaRendering), and B-frame encoding to achieve better image quality and bandwidth efficiency. The SDK also provides enhanced video quality and smooth playback, even in poor network conditions or on lower-end devices. /// /// Returns /// When the method call succeeds, there is no return value; when fails, the AgoraRtcException exception is thrown. You need to catch the exception and handle it accordingly. @@ -5679,6 +5659,8 @@ abstract class RtcEngine { /// Creates a data stream. /// + /// If you need a more comprehensive solution for low-latency, high-concurrency, and scalable real-time messaging and status synchronization, it is recommended to use. + /// /// * [config] The configurations for the data stream. See DataStreamConfig. /// /// Returns @@ -5688,11 +5670,11 @@ abstract class RtcEngine { /// Sends data stream messages. /// - /// After calling createDataStream, you can call this method to send data stream messages to all users in the channel. The SDK has the following restrictions on this method: + /// If you need a more comprehensive solution for low-latency, high-concurrency, and scalable real-time messaging and status synchronization, it is recommended to use. After calling createDataStream, you can call this method to send data stream messages to all users in the channel. The SDK has the following restrictions on this method: /// Each client within the channel can have up to 5 data channels simultaneously, with a total shared packet bitrate limit of 30 KB/s for all data channels. /// Each data channel can send up to 60 packets per second, with each packet being a maximum of 1 KB. A successful method call triggers the onStreamMessage callback on the remote client, from which the remote user gets the stream message. A failed method call triggers the onStreamMessageError callback on the remote client. /// This method needs to be called after createDataStream and joining the channel. - /// In live streaming scenarios, this method only applies to hosts. + /// This method applies to broadcasters only. /// /// * [streamId] The data stream ID. You can get the data stream ID by calling createDataStream. /// * [data] The message to be sent. @@ -6197,7 +6179,7 @@ abstract class RtcEngine { /// Enables tracing the video frame rendering process. /// /// The SDK starts tracing the rendering status of the video frames in the channel from the moment this method is successfully called and reports information about the event through the onVideoRenderingTracingResult callback. - /// By default, the SDK starts tracing the video rendering event automatically when the local user successfully joins the channel. You can call this method at an appropriate time according to the actual application scenario to customize the tracing process. + /// The SDK automatically starts tracking the rendering events of the video from the moment that you call joinChannel to join the channel. You can call this method at an appropriate time according to the actual application scenario to customize the tracing process. /// After the local user leaves the current channel, the SDK automatically resets the time point to the next time when the user successfully joins the channel. /// /// Returns @@ -6745,7 +6727,6 @@ class SDKBuildInfo implements AgoraSerializable { factory SDKBuildInfo.fromJson(Map json) => _$SDKBuildInfoFromJson(json); - /// @nodoc @override Map toJson() => _$SDKBuildInfoToJson(this); } @@ -6768,7 +6749,6 @@ class VideoDeviceInfo implements AgoraSerializable { factory VideoDeviceInfo.fromJson(Map json) => _$VideoDeviceInfoFromJson(json); - /// @nodoc @override Map toJson() => _$VideoDeviceInfoToJson(this); } @@ -6795,7 +6775,6 @@ class AudioDeviceInfo implements AgoraSerializable { factory AudioDeviceInfo.fromJson(Map json) => _$AudioDeviceInfoFromJson(json); - /// @nodoc @override Map toJson() => _$AudioDeviceInfoToJson(this); } diff --git a/lib/src/agora_rtc_engine_ex.dart b/lib/src/agora_rtc_engine_ex.dart index d2535b63e..398dbd2e8 100644 --- a/lib/src/agora_rtc_engine_ex.dart +++ b/lib/src/agora_rtc_engine_ex.dart @@ -20,7 +20,6 @@ class RtcConnection implements AgoraSerializable { factory RtcConnection.fromJson(Map json) => _$RtcConnectionFromJson(json); - /// @nodoc @override Map toJson() => _$RtcConnectionToJson(this); } @@ -103,6 +102,7 @@ abstract class RtcEngineEx implements RtcEngine { /// /// This method initializes the video view of a remote stream on the local device. It affects only the video view that the local user sees. Call this method to bind the remote video stream to a video view and to set the rendering and mirror modes of the video view. The application specifies the uid of the remote video in the VideoCanvas method before the remote user joins the channel. If the remote uid is unknown to the application, set it after the application receives the onUserJoined callback. If the Video Recording function is enabled, the Video Recording Service joins the channel as a dummy client, causing other clients to also receive the onUserJoined callback. Do not bind the dummy client to the application view because the dummy client does not send any video streams. To unbind the remote user from the view, set the view parameter to NULL. Once the remote user leaves the channel, the SDK unbinds the remote user. /// In Flutter, you don't need to call this method. Use AgoraVideoView instead to render local and remote views. + /// Call this method after joinChannelEx. /// To update the rendering or mirror mode of the remote video view during a call, use the setRemoteRenderModeEx method. /// /// * [canvas] The remote video view settings. See VideoCanvas. @@ -423,6 +423,8 @@ abstract class RtcEngineEx implements RtcEngine { /// Creates a data stream. /// + /// If you need a more comprehensive solution for low-latency, high-concurrency, and scalable real-time messaging and status synchronization, it is recommended to use. + /// /// * [config] The configurations for the data stream. See DataStreamConfig. /// * [connection] The connection information. See RtcConnection. /// @@ -437,9 +439,9 @@ abstract class RtcEngineEx implements RtcEngine { /// A successful method call triggers the onStreamMessage callback on the remote client, from which the remote user gets the stream message. A failed method call triggers the onStreamMessageError callback on the remote client. The SDK has the following restrictions on this method: /// Each client within the channel can have up to 5 data channels simultaneously, with a total shared packet bitrate limit of 30 KB/s for all data channels. /// Each data channel can send up to 60 packets per second, with each packet being a maximum of 1 KB. After calling createDataStreamEx, you can call this method to send data stream messages to all users in the channel. + /// If you need a more comprehensive solution for low-latency, high-concurrency, and scalable real-time messaging and status synchronization, it is recommended to use. /// Call this method after joinChannelEx. /// Ensure that you call createDataStreamEx to create a data channel before calling this method. - /// This method applies only to the COMMUNICATION profile or to the hosts in the LIVE_BROADCASTING profile. If an audience in the LIVE_BROADCASTING profile calls this method, the audience may be switched to a host. /// /// * [streamId] The data stream ID. You can get the data stream ID by calling createDataStreamEx. /// * [data] The message to be sent. @@ -723,7 +725,7 @@ abstract class RtcEngineEx implements RtcEngine { /// Enables tracing the video frame rendering process. /// - /// By default, the SDK starts tracing the video rendering event automatically when the local user successfully joins the channel. You can call this method at an appropriate time according to the actual application scenario to customize the tracing process. + /// The SDK automatically starts tracking the rendering events of the video from the moment that you call joinChannel to join the channel. You can call this method at an appropriate time according to the actual application scenario to customize the tracing process. /// After the local user leaves the current channel, the SDK automatically resets the time point to the next time when the user successfully joins the channel. The SDK starts tracing the rendering status of the video frames in the channel from the moment this method is successfully called and reports information about the event through the onVideoRenderingTracingResult callback. /// /// * [connection] The connection information. See RtcConnection. diff --git a/lib/src/agora_rtc_engine_ext.dart b/lib/src/agora_rtc_engine_ext.dart index cbee0314b..6db1d278c 100644 --- a/lib/src/agora_rtc_engine_ext.dart +++ b/lib/src/agora_rtc_engine_ext.dart @@ -177,4 +177,4 @@ RtcEngineEx createAgoraRtcEngineEx({Object? sharedNativeHandle}) { /// The MediaPlayerCacheManager instance. MediaPlayerCacheManager getMediaPlayerCacheManager(RtcEngine rtcEngine) { return MediaPlayerCacheManagerImpl.create(rtcEngine); -} +} \ No newline at end of file diff --git a/lib/src/agora_spatial_audio.dart b/lib/src/agora_spatial_audio.dart index 68cc56abe..1e2c6870d 100644 --- a/lib/src/agora_spatial_audio.dart +++ b/lib/src/agora_spatial_audio.dart @@ -20,7 +20,6 @@ class RemoteVoicePositionInfo implements AgoraSerializable { factory RemoteVoicePositionInfo.fromJson(Map json) => _$RemoteVoicePositionInfoFromJson(json); - /// @nodoc @override Map toJson() => _$RemoteVoicePositionInfoToJson(this); } @@ -84,7 +83,6 @@ class SpatialAudioZone implements AgoraSerializable { factory SpatialAudioZone.fromJson(Map json) => _$SpatialAudioZoneFromJson(json); - /// @nodoc @override Map toJson() => _$SpatialAudioZoneToJson(this); } diff --git a/lib/src/binding/call_api_event_handler_buffer_ext.dart b/lib/src/binding/call_api_event_handler_buffer_ext.dart index 7f08ae0a3..fd62c021b 100644 --- a/lib/src/binding/call_api_event_handler_buffer_ext.dart +++ b/lib/src/binding/call_api_event_handler_buffer_ext.dart @@ -908,6 +908,7 @@ extension ExternalVideoFrameBufferExt on ExternalVideoFrame { timestamp: timestamp, eglType: eglType, textureId: textureId, + fenceObject: fenceObject, matrix: matrix, metadataBuffer: metadataBuffer, metadataSize: metadataSize, diff --git a/macos/agora_rtc_engine.podspec b/macos/agora_rtc_engine.podspec index 816536269..0fc875cb9 100644 --- a/macos/agora_rtc_engine.podspec +++ b/macos/agora_rtc_engine.podspec @@ -22,11 +22,11 @@ A new flutter plugin project. s.vendored_frameworks = 'libs/*.xcframework', 'libs/*.framework' else # iris dependencies start - s.dependency 'AgoraIrisRTC_macOS', '4.3.2.11-build.1' + s.dependency 'AgoraIrisRTC_macOS', '4.3.2.16-build.1' # iris dependencies end # native dependencies start - s.dependency 'AgoraRtcEngine_Special_macOS', '4.3.2.11' + s.dependency 'AgoraRtcEngine_Special_macOS', '4.3.2.16' # native dependencies end end diff --git a/pubspec.yaml b/pubspec.yaml index 7d3a56df8..ac1ecf779 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: agora_rtc_engine description: >- Flutter plugin of Agora RTC SDK, allow you to simply integrate Agora Video Calling or Live Video Streaming to your app with just a few lines of code. -version: 6.3.2-sp.43211.b.8 +version: 6.3.2-sp.43216 homepage: https://www.agora.io repository: https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/tree/main environment: diff --git a/test_shard/fake_test_app/integration_test/testcases/rtcengine_rtcengineeventhandler_testcases.dart b/test_shard/fake_test_app/integration_test/testcases/rtcengine_rtcengineeventhandler_testcases.dart index 5399ba8ba..326830477 100644 --- a/test_shard/fake_test_app/integration_test/testcases/rtcengine_rtcengineeventhandler_testcases.dart +++ b/test_shard/fake_test_app/integration_test/testcases/rtcengine_rtcengineeventhandler_testcases.dart @@ -69,7 +69,8 @@ void testCases(ValueGetter irisTester) { } } - final eventCalled = await onFacePositionChangedCompleter.future.timeout(const Duration(seconds: 10)); + final eventCalled = await onFacePositionChangedCompleter.future + .timeout(const Duration(seconds: 10)); expect(eventCalled, isTrue); { @@ -227,7 +228,8 @@ void testCases(ValueGetter irisTester) { } } - final eventCalled = await onDownlinkNetworkInfoUpdatedCompleter.future.timeout(const Duration(seconds: 10)); + final eventCalled = await onDownlinkNetworkInfoUpdatedCompleter.future + .timeout(const Duration(seconds: 10)); expect(eventCalled, isTrue); { @@ -306,7 +308,8 @@ void testCases(ValueGetter irisTester) { } } - final eventCalled = await onStreamMessageCompleter.future.timeout(const Duration(seconds: 10)); + final eventCalled = await onStreamMessageCompleter.future + .timeout(const Duration(seconds: 10)); expect(eventCalled, isTrue); { diff --git a/test_shard/integration_test_app/integration_test/testcases/agora_video_view_testcases.dart b/test_shard/integration_test_app/integration_test/testcases/agora_video_view_testcases.dart index 6b4b1e784..2415644ba 100644 --- a/test_shard/integration_test_app/integration_test/testcases/agora_video_view_testcases.dart +++ b/test_shard/integration_test_app/integration_test/testcases/agora_video_view_testcases.dart @@ -168,7 +168,8 @@ class _MultipleVideoViewWithFlutterTextureState await mediaPlayerController2.open(url: widget.url, startPos: 0); await mediaPlayerController3.open(url: widget.url, startPos: 0); - await mediaPlayerControllerPlayed.future.timeout(const Duration(seconds: 10)); + await mediaPlayerControllerPlayed.future + .timeout(const Duration(seconds: 10)); } @override @@ -255,7 +256,8 @@ void testCases() { // pumpAndSettle again to ensure the `AgoraVideoView` shown await tester.pumpAndSettle(const Duration(milliseconds: 5000)); - final videoViewCreatedCalled = await videoViewCreatedCompleter.future.timeout(const Duration(seconds: 10)); + final videoViewCreatedCalled = await videoViewCreatedCompleter.future + .timeout(const Duration(seconds: 10)); expect(videoViewCreatedCalled, isTrue); await tester.pumpWidget(Container()); diff --git a/test_shard/integration_test_app/integration_test/testcases/fake_agora_video_view_testcases.dart b/test_shard/integration_test_app/integration_test/testcases/fake_agora_video_view_testcases.dart index d5d964428..6e3da73ec 100644 --- a/test_shard/integration_test_app/integration_test/testcases/fake_agora_video_view_testcases.dart +++ b/test_shard/integration_test_app/integration_test/testcases/fake_agora_video_view_testcases.dart @@ -227,7 +227,8 @@ void testCases() { // pumpAndSettle again to ensure the `AgoraVideoView` shown await tester.pumpAndSettle(const Duration(milliseconds: 5000)); - await videoViewCreatedCompleter.future.timeout(const Duration(seconds: 10)); + await videoViewCreatedCompleter.future + .timeout(const Duration(seconds: 10)); final setupLocalVideoCalls = irisMethodChannel.methodCallQueue .where((e) => e.funcName == 'RtcEngine_setupLocalVideo_acc9c38') @@ -296,7 +297,8 @@ void testCases() { // pumpAndSettle again to ensure the `AgoraVideoView` shown await tester.pumpAndSettle(const Duration(milliseconds: 5000)); - await videoViewCreatedCompleter.future.timeout(const Duration(seconds: 10)); + await videoViewCreatedCompleter.future + .timeout(const Duration(seconds: 10)); final setupLocalVideoCalls = irisMethodChannel.methodCallQueue .where( @@ -566,7 +568,8 @@ void testCases() { // pumpAndSettle again to ensure the `AgoraVideoView` shown await tester.pumpAndSettle(const Duration(milliseconds: 5000)); - await videoViewCreatedCompleter.future.timeout(const Duration(seconds: 10)); + await videoViewCreatedCompleter.future + .timeout(const Duration(seconds: 10)); { final createTextureRenderCalls = fakeMethodChannelController @@ -650,7 +653,8 @@ void testCases() { // pumpAndSettle again to ensure the `AgoraVideoView` shown await tester.pumpAndSettle(const Duration(milliseconds: 5000)); - await videoViewCreatedCompleter.future.timeout(const Duration(seconds: 10)); + await videoViewCreatedCompleter.future + .timeout(const Duration(seconds: 10)); { int textureId = -1; diff --git a/test_shard/integration_test_app/integration_test/testcases/mediaengine_smoke_test_testcases.dart b/test_shard/integration_test_app/integration_test/testcases/mediaengine_smoke_test_testcases.dart index 4ee74ae7c..ecad7fe5e 100644 --- a/test_shard/integration_test_app/integration_test/testcases/mediaengine_smoke_test_testcases.dart +++ b/test_shard/integration_test_app/integration_test/testcases/mediaengine_smoke_test_testcases.dart @@ -79,7 +79,8 @@ void testCases() { await remoteUser.joinChannel(); - final eventCalled = await eventCalledCompleter.future.timeout(const Duration(seconds: 10)); + final eventCalled = + await eventCalledCompleter.future.timeout(const Duration(seconds: 10)); expect(eventCalled, isTrue); mediaEngine.unregisterAudioFrameObserver(observer); diff --git a/test_shard/integration_test_app/integration_test/testcases/mediaplayer_smoke_test_testcases.dart b/test_shard/integration_test_app/integration_test/testcases/mediaplayer_smoke_test_testcases.dart index 9907d9897..4b2e75f4a 100644 --- a/test_shard/integration_test_app/integration_test/testcases/mediaplayer_smoke_test_testcases.dart +++ b/test_shard/integration_test_app/integration_test/testcases/mediaplayer_smoke_test_testcases.dart @@ -54,7 +54,8 @@ void testCases() { url: 'https://download.agora.io/demo/test/Agora.io-Interactions.mp4', startPos: 0); - final eventCalled = await eventCalledCompleter.future.timeout(const Duration(seconds: 10)); + final eventCalled = await eventCalledCompleter.future + .timeout(const Duration(seconds: 10)); expect(eventCalled, isTrue); eventCalledCompleter = null; @@ -119,7 +120,8 @@ void testCases() { url: 'https://download.agora.io/demo/test/Agora.io-Interactions.mp4', startPos: 0); - final eventCalled = await eventCalledCompleter.future.timeout(const Duration(seconds: 10)); + final eventCalled = await eventCalledCompleter.future + .timeout(const Duration(seconds: 10)); expect(eventCalled, isTrue); eventCalledCompleter = null; @@ -182,7 +184,8 @@ void testCases() { url: 'https://download.agora.io/demo/test/Agora.io-Interactions.mp4', startPos: 0); - final eventCalled = await eventCalledCompleter.future.timeout(const Duration(seconds: 10)); + final eventCalled = await eventCalledCompleter.future + .timeout(const Duration(seconds: 10)); expect(eventCalled, isTrue); eventCalledCompleter = null; diff --git a/test_shard/integration_test_app/integration_test/testcases/rtcengine_smoke_test_testcases.dart b/test_shard/integration_test_app/integration_test/testcases/rtcengine_smoke_test_testcases.dart index 9d8c299d4..5378559f7 100644 --- a/test_shard/integration_test_app/integration_test/testcases/rtcengine_smoke_test_testcases.dart +++ b/test_shard/integration_test_app/integration_test/testcases/rtcengine_smoke_test_testcases.dart @@ -63,7 +63,8 @@ void testCases() { final remoteUser = FakeRemoteUser(rtcEngine); await remoteUser.joinChannel(); - final eventCalled = await eventCalledCompleter.future.timeout(const Duration(seconds: 10)); + final eventCalled = await eventCalledCompleter.future + .timeout(const Duration(seconds: 10)); expect(eventCalled, isTrue); rtcEngine.unregisterAudioEncodedFrameObserver( observer, diff --git a/test_shard/integration_test_app/lib/fake_remote_user.dart b/test_shard/integration_test_app/lib/fake_remote_user.dart index 29999ee93..1ae7c0290 100644 --- a/test_shard/integration_test_app/lib/fake_remote_user.dart +++ b/test_shard/integration_test_app/lib/fake_remote_user.dart @@ -48,7 +48,8 @@ class FakeRemoteUser { url: 'https://download.agora.io/demo/test/Agora.io-Interactions.mp4', startPos: 0); - await mediaPlayerControllerPlayed.future.timeout(const Duration(seconds: 10)); + await mediaPlayerControllerPlayed.future + .timeout(const Duration(seconds: 10)); await rtcEngine.joinChannelEx( token: '', diff --git a/test_shard/rendering_test/integration_test/agora_video_view_render_test.dart b/test_shard/rendering_test/integration_test/agora_video_view_render_test.dart index 0aafe9cbf..08b27e074 100644 --- a/test_shard/rendering_test/integration_test/agora_video_view_render_test.dart +++ b/test_shard/rendering_test/integration_test/agora_video_view_render_test.dart @@ -65,7 +65,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); // This is required prior to taking the screenshot (Android only). @@ -111,7 +112,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); // This is required prior to taking the screenshot (Android only). @@ -157,7 +159,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); // This is required prior to taking the screenshot (Android only). @@ -203,7 +206,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); // This is required prior to taking the screenshot (Android only). @@ -249,7 +253,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); // This is required prior to taking the screenshot (Android only). @@ -295,7 +300,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); // This is required prior to taking the screenshot (Android only). @@ -340,7 +346,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); // This is required prior to taking the screenshot (Android only). @@ -385,7 +392,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); // This is required prior to taking the screenshot (Android only). @@ -430,7 +438,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); // This is required prior to taking the screenshot (Android only). @@ -476,7 +485,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); // This is required prior to taking the screenshot (Android only). @@ -587,7 +597,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); await binding.takeScreenshot( @@ -617,7 +628,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); await binding.takeScreenshot( @@ -648,7 +660,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); await binding.takeScreenshot( @@ -679,7 +692,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); await binding.takeScreenshot( @@ -710,7 +724,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); await binding.takeScreenshot( @@ -741,7 +756,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); await binding.takeScreenshot( @@ -773,7 +789,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); await binding.takeScreenshot( @@ -803,7 +820,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); await binding.takeScreenshot( @@ -833,7 +851,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); await binding.takeScreenshot( @@ -863,7 +882,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); await binding.takeScreenshot( @@ -893,7 +913,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); await binding.takeScreenshot( @@ -923,7 +944,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); await binding.takeScreenshot( diff --git a/test_shard/rendering_test/integration_test/agora_video_view_smoke_test.dart b/test_shard/rendering_test/integration_test/agora_video_view_smoke_test.dart index 59b4a8e5d..99ef34631 100644 --- a/test_shard/rendering_test/integration_test/agora_video_view_smoke_test.dart +++ b/test_shard/rendering_test/integration_test/agora_video_view_smoke_test.dart @@ -91,7 +91,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); await binding.takeScreenshot( @@ -189,7 +190,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 10)); - await onFrameCompleter.future.timeout(const Duration(seconds: 10)); + await onFrameCompleter.future + .timeout(const Duration(seconds: 10)); await waitFrame(tester); // This is required prior to taking the screenshot (Android only). diff --git a/test_shard/rendering_test/integration_test/common/fake_camera.dart b/test_shard/rendering_test/integration_test/common/fake_camera.dart index 762fcbf51..f9daab36a 100644 --- a/test_shard/rendering_test/integration_test/common/fake_camera.dart +++ b/test_shard/rendering_test/integration_test/common/fake_camera.dart @@ -12,7 +12,8 @@ class FakeCamera { final RtcEngine _rtcEngine; late final Completer _onFirstFrame; - Future get onFirstFrame => _onFirstFrame.future.timeout(const Duration(seconds: 10)); + Future get onFirstFrame => + _onFirstFrame.future.timeout(const Duration(seconds: 10)); late final Timer _pushVideoFrameTimer; diff --git a/test_shard/rendering_test/integration_test/local_video_view.dart b/test_shard/rendering_test/integration_test/local_video_view.dart index 9f652e080..2911b2cab 100644 --- a/test_shard/rendering_test/integration_test/local_video_view.dart +++ b/test_shard/rendering_test/integration_test/local_video_view.dart @@ -108,7 +108,8 @@ class _LocalVideoViewState extends State { await mediaPlayerController.open(url: widget.url, startPos: 0); - await mediaPlayerControllerPlayed.future.timeout(const Duration(seconds: 10)); + await mediaPlayerControllerPlayed.future + .timeout(const Duration(seconds: 10)); } @override diff --git a/test_shard/rendering_test/integration_test/remote_video_view.dart b/test_shard/rendering_test/integration_test/remote_video_view.dart index 14093911a..bcc728fd7 100644 --- a/test_shard/rendering_test/integration_test/remote_video_view.dart +++ b/test_shard/rendering_test/integration_test/remote_video_view.dart @@ -144,7 +144,8 @@ class _RemoteVideoViewState extends State { ), ); - await mediaPlayerControllerPlayed.future.timeout(const Duration(seconds: 10)); + await mediaPlayerControllerPlayed.future + .timeout(const Duration(seconds: 10)); // Simulate a remote user join await rtcEngine.joinChannelEx( diff --git a/tool/terra/package.json b/tool/terra/package.json index 300047b57..15a660794 100644 --- a/tool/terra/package.json +++ b/tool/terra/package.json @@ -21,5 +21,5 @@ "ts-node": "^10.9.1", "typescript": "^5.1.6" }, - "packageManager": "yarn@4.5.3" + "packageManager": "yarn@4.9.1" } diff --git a/tool/terra/terra_config_main.yaml b/tool/terra/terra_config_main.yaml index d1c115a7a..6be78656b 100644 --- a/tool/terra/terra_config_main.yaml +++ b/tool/terra/terra_config_main.yaml @@ -3,17 +3,17 @@ parsers: package: '@agoraio-extensions/cxx-parser' args: includeHeaderDirs: - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.11/include' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.16/include' parseFiles: include: - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.11/include/*.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.16/include/*.h' exclude: - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.11/include/AgoraRefPtr.h' - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.11/include/time_utils.h' - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.11/include/AgoraOptional.h' - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.11/include/AgoraRefPtr.h' - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.11/include/IAgoraMediaComponentFactory.h' - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.11/include/IAgoraParameter.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.16/include/AgoraRefPtr.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.16/include/time_utils.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.16/include/AgoraOptional.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.16/include/AgoraRefPtr.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.16/include/IAgoraMediaComponentFactory.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.16/include/IAgoraParameter.h' - name: IrisApiIdParser package: '@agoraio-extensions/terra_shared_configs' @@ -23,14 +23,14 @@ parsers: args: customHeaderFileNamePrefix: 'Custom' includeHeaderDirs: - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.11/include' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.16/include' parseFiles: include: - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.11/include/*.h' - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.11/custom_headers/*.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.16/include/*.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.16/custom_headers/*.h' exclude: - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.11/include/time_utils.h' - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.11/include/IAgoraMediaComponentFactory.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.16/include/time_utils.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.2.16/include/IAgoraMediaComponentFactory.h' - path: parsers/cud_node_parser.ts args: diff --git a/windows/cmake/DownloadSDK.cmake b/windows/cmake/DownloadSDK.cmake index 2354925a4..bc2dd1bd4 100644 --- a/windows/cmake/DownloadSDK.cmake +++ b/windows/cmake/DownloadSDK.cmake @@ -1,9 +1,9 @@ # iris dependencies start -set(IRIS_SDK_DOWNLOAD_URL "https://download.agora.io/sdk/release/iris_4.3.2.11-build.1_DCG_Windows_Video_Standalone_20241206_1146_579.zip") +set(IRIS_SDK_DOWNLOAD_URL "https://download.agora.io/sdk/release/iris_4.3.2.16-build.1_DCG_Windows_Video_Standalone_20250522_1007_31673.zip") # iris dependencies end # native dependencies start -set(NATIVE_SDK_DOWNLOAD_URL "https://download.agora.io/sdk/release/Agora_Native_SDK_for_Windows_rel.v4.3.2.11_27381_FULL_20241205_1437_464296.zip") +set(NATIVE_SDK_DOWNLOAD_URL "https://download.agora.io/sdk/release/Agora_Native_SDK_for_Windows_rel.v4.3.2.16_28728_FULL_20250421_1922_669674.zip") # native dependencies end function(download_and_extract URL TARGET_DIR EXTRACTED_DIR)