Skip to content

Commit 0a25577

Browse files
committed
Fix bug for unified-plan.
1 parent 495a644 commit 0a25577

File tree

9 files changed

+115
-27
lines changed

9 files changed

+115
-27
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# Changelog
22

33
--------------------------------------------
4+
0.2.2
5+
6+
* Fix bug for unified-plan.
7+
8+
49
0.2.1
510

611
* Fix getStats.

lib/src/rtc_peerconnection.dart

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,12 @@ class RTCOfferOptions {
3636
@JS()
3737
@anonymous
3838
class RTCAnswerOptions {
39-
external factory RTCAnswerOptions({bool voiceActivityDetection});
39+
external factory RTCAnswerOptions(
40+
{bool offerToReceiveAudio,
41+
bool offerToReceiveVideo,
42+
bool voiceActivityDetection});
43+
external bool get offerToReceiveAudio;
44+
external bool get offerToReceiveVideo;
4045
external bool get voiceActivityDetection;
4146
}
4247

@@ -49,19 +54,15 @@ class MediaStreamEvent {
4954
@JS()
5055
@anonymous
5156
class RTCConfiguration {
52-
external factory RTCConfiguration({
53-
List<RTCIceServer> iceServers,
54-
String rtcpMuxPolicy,
55-
String iceTransportPolicy,
56-
String bundlePolicy,
57-
String peerIdentity,
58-
int iceCandidatePoolSize,
59-
});
57+
external factory RTCConfiguration(
58+
{List<RTCIceServer> iceServers,
59+
String iceTransportPolicy,
60+
String bundlePolicy,
61+
String peerIdentity,
62+
String sdpSemantics,
63+
int iceCandidatePoolSize});
6064
external List<RTCIceServer> get iceServers;
6165

62-
///Optional: 'negotiate' or 'require'
63-
external String get rtcpMuxPolicy;
64-
6566
///Optional: 'relay' or 'all'
6667
external String get iceTransportPolicy;
6768

@@ -75,6 +76,9 @@ class RTCConfiguration {
7576

7677
///Optional: 'balanced' | 'max-compat' | 'max-bundle'
7778
external String get bundlePolicy;
79+
80+
/// 'plan-b' | 'unified-plan'
81+
external String get sdpSemantics;
7882
}
7983

8084
@JS()
@@ -104,8 +108,7 @@ class RTCPeerConnectionJs {
104108
external void removeStream(MediaStreamJs stream);
105109
external List<MediaStreamJs> getLocalStreams();
106110
external List<MediaStreamJs> getRemoteStreams();
107-
external RTCRtpSender addTrack(
108-
MediaStreamTrack track, List<MediaStreamJs> streams);
111+
external RTCRtpSender addTrack(MediaStreamTrack track, MediaStreamJs stream);
109112
external void removeTrack(RTCRtpSender sender);
110113
external dynamic setLocalDescription(RTCSessionDescription desc);
111114
external dynamic setRemoteDescription(RTCSessionDescription desc);
@@ -208,11 +211,9 @@ class RTCPeerConnection {
208211
}
209212

210213
Future<RTCRtpSender> addTrack(
211-
{MediaStreamTrack track, List<MediaStreamJs> streams}) async {
214+
{MediaStreamTrack track, MediaStreamJs stream}) async {
212215
try {
213-
var sender = await promiseToFuture<RTCRtpSender>(
214-
_internal.addTrack(track, streams));
215-
return sender;
216+
return _internal.addTrack(track, stream);
216217
} catch (e) {
217218
rethrow;
218219
}
@@ -238,7 +239,7 @@ class RTCPeerConnection {
238239

239240
Future<void> addIceCandidate(RTCIceCandidate candidate) async {
240241
try {
241-
_internal.addIceCandidate(candidate);
242+
await promiseToFuture<void>(_internal.addIceCandidate(candidate));
242243
} catch (e) {
243244
rethrow;
244245
}

lib/src/rtc_rtcp_parameters.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,11 @@ class RTCRTCPParameters {
1414
/// Whether reduced size RTCP is configured or compound RTCP
1515
external bool get reducedSize;
1616
}
17+
18+
Map<String, dynamic> rtcpParametersToMap(RTCRTCPParameters parameters) {
19+
return {'cname': parameters.cname, 'reducedSize': parameters.reducedSize};
20+
}
21+
22+
RTCRTCPParameters rtcpParametersFromMap(Map<String, dynamic> map) {
23+
return RTCRTCPParameters(cname: map['cnam'], reducedSize: map['reducedSize']);
24+
}

lib/src/rtc_rtp_parameters.dart

Lines changed: 74 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,82 @@ class RTCRtpEncodingParameters {
113113

114114
Map<String, dynamic> rtpEncodingParametersToMap(
115115
RTCRtpEncodingParameters parameters) {
116-
return {};
116+
return {
117+
'rtcp': rtcpParametersToMap(parameters.rtcp),
118+
'headerExtensions': parameters.headerExtensions
119+
.map((e) => headerExtensionToMap(e))
120+
.toList(),
121+
'encodings': parameters.encodings.map((e) => rtpEncodingToMap(e)).toList(),
122+
'codecs': parameters.codecs.map((e) => rtcCodecToMap(e)).toList(),
123+
};
117124
}
118125

119126
RTCRtpEncodingParameters rtpEncodingParametersFromMap(
120127
Map<String, dynamic> map) {
121-
return RTCRtpEncodingParameters();
128+
return RTCRtpEncodingParameters(
129+
rtcp: rtcpParametersFromMap(map['rtcp']),
130+
codecs: (map['codecs'] as List).map((e) => rtcCodecFromMap(e)).toList(),
131+
encodings:
132+
(map['encodings'] as List).map((e) => rtpEncodingFromMap(e)).toList(),
133+
headerExtensions: (map['headerExtensions'] as List)
134+
.map((e) => headerExtensionFromMap(e))
135+
.toList());
136+
}
137+
138+
Map<String, dynamic> rtpEncodingToMap(RTCRtpEncoding encoding) {
139+
return {
140+
'rid': encoding.rid,
141+
'active': encoding.active,
142+
'maxBitrateBps': encoding.maxBitrateBps,
143+
'minBitrateBps': encoding.minBitrateBps,
144+
'maxFramerate': encoding.maxFramerate,
145+
'numTemporalLayers': encoding.numTemporalLayers,
146+
'scaleResolutionDownBy': encoding.scaleResolutionDownBy,
147+
'ssrc': encoding.ssrc
148+
};
149+
}
150+
151+
RTCRtpEncoding rtpEncodingFromMap(Map<String, dynamic> map) {
152+
return RTCRtpEncoding(
153+
rid: map['rid'],
154+
active: map['active'],
155+
maxBitrateBps: map['maxBitrateBps'],
156+
minBitrateBps: map['minBitrateBps'],
157+
numTemporalLayers: map['numTemporalLayers'],
158+
scaleResolutionDownBy: map['scaleResolutionDownBy'],
159+
ssrc: map['ssrc']);
160+
}
161+
162+
Map<String, dynamic> rtcCodecToMap(RTCRTPCodec codec) {
163+
return {
164+
'payloadType': codec.payloadType,
165+
'name': codec.name,
166+
'kind': codec.kind,
167+
'clockRate': codec.clockRate,
168+
'numChannels': codec.numChannels,
169+
'parameters': codec.parameters
170+
};
171+
}
172+
173+
RTCRTPCodec rtcCodecFromMap(Map<String, dynamic> map) {
174+
return RTCRTPCodec(
175+
payloadType: map['payloadType'],
176+
name: map['name'],
177+
kind: map['kind'],
178+
clockRate: map['clockRate'],
179+
numChannels: map['numChannels'],
180+
parameters: map['parameters']);
181+
}
182+
183+
Map<String, dynamic> headerExtensionToMap(RTCHeaderExtension headerExtension) {
184+
return {
185+
'uri': headerExtension.uri,
186+
'id': headerExtension.id,
187+
'encrypted': headerExtension.encrypted
188+
};
189+
}
190+
191+
RTCHeaderExtension headerExtensionFromMap(Map<String, dynamic> map) {
192+
return RTCHeaderExtension(
193+
encrypted: map['encrypted'], id: map['id'], uri: map['uri']);
122194
}

lib/src/rtc_rtp_sender.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class RTCRtpSender {
1717
external RTCRtpEncodingParameters getParameters();
1818
external bool setParameters(RTCRtpEncodingParameters parameters);
1919
external RTCStatsReportJs getStats();
20-
external void setStreams(List<MediaStream> streams);
20+
external void setStreams(List<MediaStreamJs> streams);
2121
external void replaceTrack(MediaStreamTrack track);
2222
external static dynamic getCapabilities();
2323
}

lib/src/rtc_rtp_transceiver.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,18 @@ import 'rtc_rtp_sender.dart';
1313
class RTCRtpTransceiverInit {
1414
external factory RTCRtpTransceiverInit(
1515
{String direction,
16-
List<MediaStream> streams,
16+
List<MediaStreamJs> streams,
1717
List<RTCRtpEncodingParameters> sendEncodings});
1818
external String get direction;
19-
external List<MediaStream> get streams;
19+
external List<MediaStreamJs> get streams;
2020
external List<RTCRtpEncodingParameters> get sendEncodings;
2121
}
2222

2323
@JS('RTCRtpTransceiver')
2424
class RTCRtpTransceiver {
2525
external factory RTCRtpTransceiver();
2626
external String get direction;
27+
external set direction(String dir);
2728
external String get mid;
2829
external RTCRtpReceiver get receiver;
2930
external RTCRtpSender get sender;

lib/src/rtc_stats_resport.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class RTCStatsReport {
3030
}));
3131
}
3232
final RTCStatsReportJs _jsStats;
33-
Map<String, RTCStats> _stats = {};
33+
final Map<String, RTCStats> _stats = {};
3434

3535
int get size => _jsStats.size;
3636

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: dart_webrtc
22
description: Use the dart/js library to re-wrap the webrtc js interface of the browser, to adapted common browsers.
3-
version: 0.2.1
3+
version: 0.2.2
44
homepage: https://github.com/flutter-webrtc/dart-webrtc
55

66
environment:

web/main.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ import 'dart:html' as html;
22

33
import 'package:dart_webrtc/dart_webrtc.dart';
44

5+
/*
56
import 'test_media_devices.dart' as media_devices_tests;
67
import 'test_media_stream.dart' as media_stream_tests;
78
import 'test_media_stream_track.dart' as media_stream_track_tests;
89
import 'test_peerconnection.dart' as peerconnection_tests;
910
import 'test_video_element.dart' as video_elelment_tests;
10-
11+
*/
1112
void main() {
1213
/*
1314
video_elelment_tests.testFunctions.forEach((Function func) => func());

0 commit comments

Comments
 (0)