File tree 2 files changed +53
-0
lines changed
2 files changed +53
-0
lines changed Original file line number Diff line number Diff line change @@ -85,6 +85,43 @@ class StreamManager {
85
85
return client;
86
86
}
87
87
88
+ Future <List <Resolution >> getStreamOptions (String name) async {
89
+ final sanitizedName = _getValidSDPTrackName (name);
90
+ try {
91
+ final response = await _client.getStreamOptions (GetStreamOptionsRequest ()..name = sanitizedName);
92
+ _logger.d ('Got options for stream named $name ' );
93
+ return response.resolutions;
94
+ } catch (e) {
95
+ _logger.e ('Failed to get options for stream named $name ' );
96
+ return [];
97
+ }
98
+ }
99
+
100
+ Future <void > setStreamOptions (String name, int width, int height) async {
101
+ final sanitizedName = _getValidSDPTrackName (name);
102
+ final resolution = Resolution ()
103
+ ..width = width
104
+ ..height = height;
105
+ try {
106
+ await _client.setStreamOptions (SetStreamOptionsRequest ()
107
+ ..name = sanitizedName
108
+ ..resolution = resolution);
109
+ _logger.d ('Set options for stream named $name ' );
110
+ } catch (e) {
111
+ _logger.e ('Failed to set options for stream named $name ' );
112
+ }
113
+ }
114
+
115
+ Future <void > resetStreamOptions (String name) async {
116
+ final sanitizedName = _getValidSDPTrackName (name);
117
+ try {
118
+ await _client.setStreamOptions (SetStreamOptionsRequest ()..name = sanitizedName);
119
+ _logger.d ('Reset options for stream named $name ' );
120
+ } catch (e) {
121
+ _logger.e ('Failed to reset options for stream named $name ' );
122
+ }
123
+ }
124
+
88
125
/// Request that a stream get added to the WebRTC channel
89
126
Future <void > _add (String name) async {
90
127
final sanitizedName = _getValidSDPTrackName (name);
Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ import 'package:logger/logger.dart';
7
7
import '../gen/common/v1/common.pb.dart' ;
8
8
import '../gen/google/protobuf/struct.pb.dart' ;
9
9
import '../gen/robot/v1/robot.pbgrpc.dart' as rpb;
10
+ import '../gen/stream/v1/stream.pbgrpc.dart' ;
10
11
import '../media/stream/client.dart' ;
11
12
import '../resource/base.dart' ;
12
13
import '../resource/manager.dart' ;
@@ -308,6 +309,21 @@ class RobotClient {
308
309
return _streamManager.getStreamClient (name);
309
310
}
310
311
312
+ /// Get the stream options for a stream with the given name.
313
+ Future <List <Resolution >> getStreamOptions (String name) async {
314
+ return _streamManager.getStreamOptions (name);
315
+ }
316
+
317
+ /// Set the options for a stream with the given name.
318
+ Future <void > setStreamOptions (String name, int width, int height) {
319
+ return _streamManager.setStreamOptions (name, width, height);
320
+ }
321
+
322
+ /// Reset the options for a stream with the given name.
323
+ Future <void > resetStreamOptions (String name) {
324
+ return _streamManager.resetStreamOptions (name);
325
+ }
326
+
311
327
/// Get app-related information about the machine.
312
328
///
313
329
/// ```
You can’t perform that action at this time.
0 commit comments