Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 3 additions & 2 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,12 @@ dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
} else {
// iris dependencies start
api 'io.agora.rtc:iris-rtc:4.2.6.168-build.3'
api 'io.agora.rtc:iris-rtc:4.5.3.123-build.1'
// iris dependencies end

// native dependencies start
api 'io.agora.rtc:agora-special-full:4.2.6.168'
api 'io.agora.rtc:full-screen-sharing:4.5.3.123.OTEST.1'
api 'io.agora.rtc:agora-special-full:4.5.3.123.OTEST.1'
// native dependencies end
}
}
Expand Down
4 changes: 2 additions & 2 deletions ios/agora_rtc_engine.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ Pod::Spec.new do |s|
s.vendored_frameworks = 'libs/*.xcframework'
else
# iris dependencies start
s.dependency 'AgoraIrisRTC_iOS', '4.2.6.168-build.3'
s.dependency 'AgoraIrisRTC_iOS', '4.5.3.123-build.1'
# iris dependencies end

# native dependencies start
s.dependency 'AgoraRtcEngine_Special_iOS', '4.2.6.168'
s.dependency 'AgoraRtcEngine_Special_iOS', '4.5.3.123.OTEST.1'
# native dependencies end
end

Expand Down
157 changes: 66 additions & 91 deletions lib/src/binding/agora_base_event_impl.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,108 +5,83 @@
import 'package:agora_rtc_engine/src/binding_forward_export.dart';
import 'package:agora_rtc_engine/src/binding/impl_forward_export.dart';
import 'package:iris_method_channel/iris_method_channel.dart';

class AudioEncodedFrameObserverWrapper implements EventLoopEventHandler {
const AudioEncodedFrameObserverWrapper(this.audioEncodedFrameObserver);

class AudioEncodedFrameObserverWrapper implements EventLoopEventHandler {
const AudioEncodedFrameObserverWrapper(this.audioEncodedFrameObserver);
final AudioEncodedFrameObserver audioEncodedFrameObserver;

final AudioEncodedFrameObserver audioEncodedFrameObserver;

@override
bool operator ==(Object other) {
if (other.runtimeType != runtimeType) {
return false;
}
return other is AudioEncodedFrameObserverWrapper &&
other.audioEncodedFrameObserver == audioEncodedFrameObserver;
@override
bool operator ==(Object other) {
if (other.runtimeType != runtimeType) {
return false;
}
return other is AudioEncodedFrameObserverWrapper &&
other.audioEncodedFrameObserver == audioEncodedFrameObserver;
}
@override
int get hashCode => audioEncodedFrameObserver.hashCode;

@override
int get hashCode => audioEncodedFrameObserver.hashCode;

@override
bool handleEventInternal(
String eventName, String eventData, List<Uint8List> buffers) {
@override
bool handleEventInternal(String eventName, String eventData, List<Uint8List> buffers) {
switch (eventName) {
case 'onRecordAudioEncodedFrame':
if (audioEncodedFrameObserver.onRecordAudioEncodedFrame == null) {
return true;
}
final jsonMap = jsonDecode(eventData);
AudioEncodedFrameObserverOnRecordAudioEncodedFrameJson paramJson =
AudioEncodedFrameObserverOnRecordAudioEncodedFrameJson.fromJson(
jsonMap);
paramJson = paramJson.fillBuffers(buffers);
Uint8List? frameBuffer = paramJson.frameBuffer;
int? length = paramJson.length;
EncodedAudioFrameInfo? audioEncodedFrameInfo =
paramJson.audioEncodedFrameInfo;
if (frameBuffer == null ||
length == null ||
audioEncodedFrameInfo == null) {
return true;
}
audioEncodedFrameInfo = audioEncodedFrameInfo.fillBuffers(buffers);
audioEncodedFrameObserver.onRecordAudioEncodedFrame!(
frameBuffer, length, audioEncodedFrameInfo);
return true;

case 'onRecordAudioEncodedFrame_d930ddc':
if (audioEncodedFrameObserver.onRecordAudioEncodedFrame == null) {
return true;
}
final jsonMap = jsonDecode(eventData);
AudioEncodedFrameObserverOnRecordAudioEncodedFrameJson paramJson = AudioEncodedFrameObserverOnRecordAudioEncodedFrameJson.fromJson(jsonMap);
paramJson = paramJson.fillBuffers(buffers);
Uint8List? frameBuffer = paramJson.frameBuffer;
int? length = paramJson.length;
EncodedAudioFrameInfo? audioEncodedFrameInfo = paramJson.audioEncodedFrameInfo;
if (frameBuffer == null||length == null||audioEncodedFrameInfo == null) { return true; }
audioEncodedFrameInfo = audioEncodedFrameInfo.fillBuffers(buffers);
audioEncodedFrameObserver.onRecordAudioEncodedFrame!(frameBuffer,length,audioEncodedFrameInfo);
return true;

case 'onPlaybackAudioEncodedFrame':
if (audioEncodedFrameObserver.onPlaybackAudioEncodedFrame == null) {
return true;
}
final jsonMap = jsonDecode(eventData);
AudioEncodedFrameObserverOnPlaybackAudioEncodedFrameJson paramJson =
AudioEncodedFrameObserverOnPlaybackAudioEncodedFrameJson.fromJson(
jsonMap);
paramJson = paramJson.fillBuffers(buffers);
Uint8List? frameBuffer = paramJson.frameBuffer;
int? length = paramJson.length;
EncodedAudioFrameInfo? audioEncodedFrameInfo =
paramJson.audioEncodedFrameInfo;
if (frameBuffer == null ||
length == null ||
audioEncodedFrameInfo == null) {
return true;
}
audioEncodedFrameInfo = audioEncodedFrameInfo.fillBuffers(buffers);
audioEncodedFrameObserver.onPlaybackAudioEncodedFrame!(
frameBuffer, length, audioEncodedFrameInfo);
return true;

case 'onMixedAudioEncodedFrame':
if (audioEncodedFrameObserver.onMixedAudioEncodedFrame == null) {
return true;
}
final jsonMap = jsonDecode(eventData);
AudioEncodedFrameObserverOnMixedAudioEncodedFrameJson paramJson =
AudioEncodedFrameObserverOnMixedAudioEncodedFrameJson.fromJson(
jsonMap);
paramJson = paramJson.fillBuffers(buffers);
Uint8List? frameBuffer = paramJson.frameBuffer;
int? length = paramJson.length;
EncodedAudioFrameInfo? audioEncodedFrameInfo =
paramJson.audioEncodedFrameInfo;
if (frameBuffer == null ||
length == null ||
audioEncodedFrameInfo == null) {
return true;
}
audioEncodedFrameInfo = audioEncodedFrameInfo.fillBuffers(buffers);
audioEncodedFrameObserver.onMixedAudioEncodedFrame!(
frameBuffer, length, audioEncodedFrameInfo);
return true;
case 'onPlaybackAudioEncodedFrame_d930ddc':
if (audioEncodedFrameObserver.onPlaybackAudioEncodedFrame == null) {
return true;
}
final jsonMap = jsonDecode(eventData);
AudioEncodedFrameObserverOnPlaybackAudioEncodedFrameJson paramJson = AudioEncodedFrameObserverOnPlaybackAudioEncodedFrameJson.fromJson(jsonMap);
paramJson = paramJson.fillBuffers(buffers);
Uint8List? frameBuffer = paramJson.frameBuffer;
int? length = paramJson.length;
EncodedAudioFrameInfo? audioEncodedFrameInfo = paramJson.audioEncodedFrameInfo;
if (frameBuffer == null||length == null||audioEncodedFrameInfo == null) { return true; }
audioEncodedFrameInfo = audioEncodedFrameInfo.fillBuffers(buffers);
audioEncodedFrameObserver.onPlaybackAudioEncodedFrame!(frameBuffer,length,audioEncodedFrameInfo);
return true;


case 'onMixedAudioEncodedFrame_d930ddc':
if (audioEncodedFrameObserver.onMixedAudioEncodedFrame == null) {
return true;
}
final jsonMap = jsonDecode(eventData);
AudioEncodedFrameObserverOnMixedAudioEncodedFrameJson paramJson = AudioEncodedFrameObserverOnMixedAudioEncodedFrameJson.fromJson(jsonMap);
paramJson = paramJson.fillBuffers(buffers);
Uint8List? frameBuffer = paramJson.frameBuffer;
int? length = paramJson.length;
EncodedAudioFrameInfo? audioEncodedFrameInfo = paramJson.audioEncodedFrameInfo;
if (frameBuffer == null||length == null||audioEncodedFrameInfo == null) { return true; }
audioEncodedFrameInfo = audioEncodedFrameInfo.fillBuffers(buffers);
audioEncodedFrameObserver.onMixedAudioEncodedFrame!(frameBuffer,length,audioEncodedFrameInfo);
return true;

}
return false;
}
}

@override
bool handleEvent(
String eventName, String eventData, List<Uint8List> buffers) {
@override
bool handleEvent(String eventName, String eventData, List<Uint8List> buffers) {
if (!eventName.startsWith('AudioEncodedFrameObserver')) return false;
final newEvent = eventName.replaceFirst('AudioEncodedFrameObserver_', '');
if (handleEventInternal(newEvent, eventData, buffers)) {
return true;
}
if (handleEventInternal(newEvent, eventData, buffers)) { return true; }
return false;
}
}
}
83 changes: 83 additions & 0 deletions lib/src/binding/agora_h265_transcoder_event_impl.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
/// GENERATED BY terra, DO NOT MODIFY BY HAND.

// ignore_for_file: public_member_api_docs, unused_local_variable, unused_import

import 'package:agora_rtc_engine/src/binding_forward_export.dart';
import 'package:agora_rtc_engine/src/binding/impl_forward_export.dart';
import 'package:iris_method_channel/iris_method_channel.dart';

class H265TranscoderObserverWrapper implements EventLoopEventHandler {
const H265TranscoderObserverWrapper(this.h265TranscoderObserver);

final H265TranscoderObserver h265TranscoderObserver;

@override
bool operator ==(Object other) {
if (other.runtimeType != runtimeType) {
return false;
}
return other is H265TranscoderObserverWrapper &&
other.h265TranscoderObserver == h265TranscoderObserver;
}
@override
int get hashCode => h265TranscoderObserver.hashCode;

@override
bool handleEventInternal(String eventName, String eventData, List<Uint8List> buffers) {
switch (eventName) {

case 'onEnableTranscode_6ba6646':
if (h265TranscoderObserver.onEnableTranscode == null) {
return true;
}
final jsonMap = jsonDecode(eventData);
H265TranscoderObserverOnEnableTranscodeJson paramJson = H265TranscoderObserverOnEnableTranscodeJson.fromJson(jsonMap);
paramJson = paramJson.fillBuffers(buffers);
H265TranscodeResult? result = paramJson.result;
if (result == null) { return true; }

h265TranscoderObserver.onEnableTranscode!(result);
return true;


case 'onQueryChannel_31ba3df':
if (h265TranscoderObserver.onQueryChannel == null) {
return true;
}
final jsonMap = jsonDecode(eventData);
H265TranscoderObserverOnQueryChannelJson paramJson = H265TranscoderObserverOnQueryChannelJson.fromJson(jsonMap);
paramJson = paramJson.fillBuffers(buffers);
H265TranscodeResult? result = paramJson.result;
String? originChannel = paramJson.originChannel;
String? transcodeChannel = paramJson.transcodeChannel;
if (result == null||originChannel == null||transcodeChannel == null) { return true; }

h265TranscoderObserver.onQueryChannel!(result,originChannel,transcodeChannel);
return true;


case 'onTriggerTranscode_6ba6646':
if (h265TranscoderObserver.onTriggerTranscode == null) {
return true;
}
final jsonMap = jsonDecode(eventData);
H265TranscoderObserverOnTriggerTranscodeJson paramJson = H265TranscoderObserverOnTriggerTranscodeJson.fromJson(jsonMap);
paramJson = paramJson.fillBuffers(buffers);
H265TranscodeResult? result = paramJson.result;
if (result == null) { return true; }

h265TranscoderObserver.onTriggerTranscode!(result);
return true;

}
return false;
}

@override
bool handleEvent(String eventName, String eventData, List<Uint8List> buffers) {
if (!eventName.startsWith('H265TranscoderObserver')) return false;
final newEvent = eventName.replaceFirst('H265TranscoderObserver_', '');
if (handleEventInternal(newEvent, eventData, buffers)) { return true; }
return false;
}
}
Loading
Loading