Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(148)

Side by Side Diff: talk/media/base/mediachannel.h

Issue 1229283003: Refactor the relationship between BaseChannel and MediaChannel so that we send over all the paramet… (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: merge Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | talk/media/webrtc/webrtcvideoengine2.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2004 Google Inc. 3 * Copyright 2004 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 std::string str; 131 std::string str;
132 if (val.IsSet()) { 132 if (val.IsSet()) {
133 str = key; 133 str = key;
134 str += ": "; 134 str += ": ";
135 str += val.ToString(); 135 str += val.ToString();
136 str += ", "; 136 str += ", ";
137 } 137 }
138 return str; 138 return str;
139 } 139 }
140 140
141 template <class T>
142 static std::string VectorToString(const std::vector<T>& vals) {
143 std::ostringstream ost;
144 ost << "[";
145 for (size_t i = 0; i < vals.size(); ++i) {
146 if (i > 0) {
147 ost << ", ";
148 }
149 ost << vals[i].ToString();
150 }
151 ost << "]";
152 return ost.str();
153 }
154
141 // Options that can be applied to a VoiceMediaChannel or a VoiceMediaEngine. 155 // Options that can be applied to a VoiceMediaChannel or a VoiceMediaEngine.
142 // Used to be flags, but that makes it hard to selectively apply options. 156 // Used to be flags, but that makes it hard to selectively apply options.
143 // We are moving all of the setting of options to structs like this, 157 // We are moving all of the setting of options to structs like this,
144 // but some things currently still use flags. 158 // but some things currently still use flags.
145 struct AudioOptions { 159 struct AudioOptions {
146 void SetAll(const AudioOptions& change) { 160 void SetAll(const AudioOptions& change) {
147 echo_cancellation.SetFrom(change.echo_cancellation); 161 echo_cancellation.SetFrom(change.echo_cancellation);
148 auto_gain_control.SetFrom(change.auto_gain_control); 162 auto_gain_control.SetFrom(change.auto_gain_control);
149 rx_auto_gain_control.SetFrom(change.rx_auto_gain_control); 163 rx_auto_gain_control.SetFrom(change.rx_auto_gain_control);
150 noise_suppression.SetFrom(change.noise_suppression); 164 noise_suppression.SetFrom(change.noise_suppression);
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 Settable<int> unsignalled_recv_stream_limit; 460 Settable<int> unsignalled_recv_stream_limit;
447 // Enable use of simulcast adapter. 461 // Enable use of simulcast adapter.
448 Settable<bool> use_simulcast_adapter; 462 Settable<bool> use_simulcast_adapter;
449 // Force screencast to use a minimum bitrate 463 // Force screencast to use a minimum bitrate
450 Settable<int> screencast_min_bitrate; 464 Settable<int> screencast_min_bitrate;
451 }; 465 };
452 466
453 struct RtpHeaderExtension { 467 struct RtpHeaderExtension {
454 RtpHeaderExtension() : id(0) {} 468 RtpHeaderExtension() : id(0) {}
455 RtpHeaderExtension(const std::string& u, int i) : uri(u), id(i) {} 469 RtpHeaderExtension(const std::string& u, int i) : uri(u), id(i) {}
456 std::string uri;
457 int id;
458 // TODO(juberti): SendRecv direction;
459 470
460 bool operator==(const RtpHeaderExtension& ext) const { 471 bool operator==(const RtpHeaderExtension& ext) const {
461 // id is a reserved word in objective-c. Therefore the id attribute has to 472 // id is a reserved word in objective-c. Therefore the id attribute has to
462 // be a fully qualified name in order to compile on IOS. 473 // be a fully qualified name in order to compile on IOS.
463 return this->id == ext.id && 474 return this->id == ext.id &&
464 uri == ext.uri; 475 uri == ext.uri;
465 } 476 }
477
478 std::string ToString() const {
479 std::ostringstream ost;
480 ost << "{";
481 ost << "id: , " << id;
482 ost << "uri: " << uri;
483 ost << "}";
484 return ost.str();
485 }
486
487 std::string uri;
488 int id;
489 // TODO(juberti): SendRecv direction;
466 }; 490 };
467 491
468 // Returns the named header extension if found among all extensions, NULL 492 // Returns the named header extension if found among all extensions, NULL
469 // otherwise. 493 // otherwise.
470 inline const RtpHeaderExtension* FindHeaderExtension( 494 inline const RtpHeaderExtension* FindHeaderExtension(
471 const std::vector<RtpHeaderExtension>& extensions, 495 const std::vector<RtpHeaderExtension>& extensions,
472 const std::string& name) { 496 const std::string& name) {
473 for (std::vector<RtpHeaderExtension>::const_iterator it = extensions.begin(); 497 for (std::vector<RtpHeaderExtension>::const_iterator it = extensions.begin();
474 it != extensions.end(); ++it) { 498 it != extensions.end(); ++it) {
475 if (it->uri == name) 499 if (it->uri == name)
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
978 1002
979 struct DataMediaInfo { 1003 struct DataMediaInfo {
980 void Clear() { 1004 void Clear() {
981 senders.clear(); 1005 senders.clear();
982 receivers.clear(); 1006 receivers.clear();
983 } 1007 }
984 std::vector<DataSenderInfo> senders; 1008 std::vector<DataSenderInfo> senders;
985 std::vector<DataReceiverInfo> receivers; 1009 std::vector<DataReceiverInfo> receivers;
986 }; 1010 };
987 1011
1012 template <class Codec>
1013 struct RtpParameters {
1014 virtual std::string ToString() {
1015 std::ostringstream ost;
1016 ost << "{";
1017 ost << "codecs: " << VectorToString(codecs) << ", ";
1018 ost << "extensions: " << VectorToString(extensions);
1019 ost << "}";
1020 return ost.str();
1021 }
1022
1023 std::vector<Codec> codecs;
1024 std::vector<RtpHeaderExtension> extensions;
1025 // TODO(pthatcher): Add streams.
1026 };
1027
1028 template <class Codec, class Options>
1029 struct RtpSendParameters : RtpParameters<Codec> {
1030 std::string ToString() override {
1031 std::ostringstream ost;
1032 ost << "{";
1033 ost << "codecs: " << VectorToString(this->codecs) << ", ";
1034 ost << "extensions: " << VectorToString(this->extensions) << ", ";
1035 ost << "max_bandiwidth_bps: " << max_bandwidth_bps << ", ";
1036 ost << "options: " << options.ToString();
1037 ost << "}";
1038 return ost.str();
1039 }
1040
1041 int max_bandwidth_bps = -1;
1042 Options options;
1043 };
1044
1045 struct AudioSendParameters : RtpSendParameters<AudioCodec, AudioOptions> {
1046 };
1047
1048 struct AudioRecvParameters : RtpParameters<AudioCodec> {
1049 };
1050
988 class VoiceMediaChannel : public MediaChannel { 1051 class VoiceMediaChannel : public MediaChannel {
989 public: 1052 public:
990 enum Error { 1053 enum Error {
991 ERROR_NONE = 0, // No error. 1054 ERROR_NONE = 0, // No error.
992 ERROR_OTHER, // Other errors. 1055 ERROR_OTHER, // Other errors.
993 ERROR_REC_DEVICE_OPEN_FAILED = 100, // Could not open mic. 1056 ERROR_REC_DEVICE_OPEN_FAILED = 100, // Could not open mic.
994 ERROR_REC_DEVICE_MUTED, // Mic was muted by OS. 1057 ERROR_REC_DEVICE_MUTED, // Mic was muted by OS.
995 ERROR_REC_DEVICE_SILENT, // No background noise picked up. 1058 ERROR_REC_DEVICE_SILENT, // No background noise picked up.
996 ERROR_REC_DEVICE_SATURATION, // Mic input is clipping. 1059 ERROR_REC_DEVICE_SATURATION, // Mic input is clipping.
997 ERROR_REC_DEVICE_REMOVED, // Mic was removed while active. 1060 ERROR_REC_DEVICE_REMOVED, // Mic was removed while active.
998 ERROR_REC_RUNTIME_ERROR, // Processing is encountering errors. 1061 ERROR_REC_RUNTIME_ERROR, // Processing is encountering errors.
999 ERROR_REC_SRTP_ERROR, // Generic SRTP failure. 1062 ERROR_REC_SRTP_ERROR, // Generic SRTP failure.
1000 ERROR_REC_SRTP_AUTH_FAILED, // Failed to authenticate packets. 1063 ERROR_REC_SRTP_AUTH_FAILED, // Failed to authenticate packets.
1001 ERROR_REC_TYPING_NOISE_DETECTED, // Typing noise is detected. 1064 ERROR_REC_TYPING_NOISE_DETECTED, // Typing noise is detected.
1002 ERROR_PLAY_DEVICE_OPEN_FAILED = 200, // Could not open playout. 1065 ERROR_PLAY_DEVICE_OPEN_FAILED = 200, // Could not open playout.
1003 ERROR_PLAY_DEVICE_MUTED, // Playout muted by OS. 1066 ERROR_PLAY_DEVICE_MUTED, // Playout muted by OS.
1004 ERROR_PLAY_DEVICE_REMOVED, // Playout removed while active. 1067 ERROR_PLAY_DEVICE_REMOVED, // Playout removed while active.
1005 ERROR_PLAY_RUNTIME_ERROR, // Errors in voice processing. 1068 ERROR_PLAY_RUNTIME_ERROR, // Errors in voice processing.
1006 ERROR_PLAY_SRTP_ERROR, // Generic SRTP failure. 1069 ERROR_PLAY_SRTP_ERROR, // Generic SRTP failure.
1007 ERROR_PLAY_SRTP_AUTH_FAILED, // Failed to authenticate packets. 1070 ERROR_PLAY_SRTP_AUTH_FAILED, // Failed to authenticate packets.
1008 ERROR_PLAY_SRTP_REPLAY, // Packet replay detected. 1071 ERROR_PLAY_SRTP_REPLAY, // Packet replay detected.
1009 }; 1072 };
1010 1073
1011 VoiceMediaChannel() {} 1074 VoiceMediaChannel() {}
1012 virtual ~VoiceMediaChannel() {} 1075 virtual ~VoiceMediaChannel() {}
1076 // TODO(pthatcher): Remove SetSendCodecs,
1077 // SetSendRtpHeaderExtensions, SetMaxSendBandwidth, and SetOptions
1078 // once all implementations implement SetSendParameters.
1079 virtual bool SetSendParameters(const AudioSendParameters& params) {
1080 return (SetSendCodecs(params.codecs) &&
1081 SetSendRtpHeaderExtensions(params.extensions) &&
1082 SetMaxSendBandwidth(params.max_bandwidth_bps) &&
1083 SetOptions(params.options));
1084 }
1085 // TODO(pthatcher): Remove SetRecvCodecs and
1086 // SetRecvRtpHeaderExtensions once all implementations implement
1087 // SetRecvParameters.
1088 virtual bool SetRecvParameters(const AudioRecvParameters& params) {
1089 return (SetRecvCodecs(params.codecs) &&
1090 SetRecvRtpHeaderExtensions(params.extensions));
1091 }
1013 // Sets the codecs/payload types to be used for incoming media. 1092 // Sets the codecs/payload types to be used for incoming media.
1014 virtual bool SetRecvCodecs(const std::vector<AudioCodec>& codecs) = 0; 1093 virtual bool SetRecvCodecs(const std::vector<AudioCodec>& codecs) = 0;
1015 // Sets the codecs/payload types to be used for outgoing media. 1094 // Sets the codecs/payload types to be used for outgoing media.
1016 virtual bool SetSendCodecs(const std::vector<AudioCodec>& codecs) = 0; 1095 virtual bool SetSendCodecs(const std::vector<AudioCodec>& codecs) = 0;
1017 // Starts or stops playout of received audio. 1096 // Starts or stops playout of received audio.
1018 virtual bool SetPlayout(bool playout) = 0; 1097 virtual bool SetPlayout(bool playout) = 0;
1019 // Starts or stops sending (and potentially capture) of local audio. 1098 // Starts or stops sending (and potentially capture) of local audio.
1020 virtual bool SetSend(SendFlags flag) = 0; 1099 virtual bool SetSend(SendFlags flag) = 0;
1021 // Sets the renderer object to be used for the specified remote audio stream. 1100 // Sets the renderer object to be used for the specified remote audio stream.
1022 virtual bool SetRemoteRenderer(uint32 ssrc, AudioRenderer* renderer) = 0; 1101 virtual bool SetRemoteRenderer(uint32 ssrc, AudioRenderer* renderer) = 0;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1058 } 1137 }
1059 // Sets the media options to use. 1138 // Sets the media options to use.
1060 virtual bool SetOptions(const AudioOptions& options) = 0; 1139 virtual bool SetOptions(const AudioOptions& options) = 0;
1061 virtual bool GetOptions(AudioOptions* options) const = 0; 1140 virtual bool GetOptions(AudioOptions* options) const = 0;
1062 1141
1063 // Signal errors from MediaChannel. Arguments are: 1142 // Signal errors from MediaChannel. Arguments are:
1064 // ssrc(uint32), and error(VoiceMediaChannel::Error). 1143 // ssrc(uint32), and error(VoiceMediaChannel::Error).
1065 sigslot::signal2<uint32, VoiceMediaChannel::Error> SignalMediaError; 1144 sigslot::signal2<uint32, VoiceMediaChannel::Error> SignalMediaError;
1066 }; 1145 };
1067 1146
1147 struct VideoSendParameters : RtpSendParameters<VideoCodec, VideoOptions> {
1148 };
1149
1150 struct VideoRecvParameters : RtpParameters<VideoCodec> {
1151 };
1152
1068 class VideoMediaChannel : public MediaChannel { 1153 class VideoMediaChannel : public MediaChannel {
1069 public: 1154 public:
1070 enum Error { 1155 enum Error {
1071 ERROR_NONE = 0, // No error. 1156 ERROR_NONE = 0, // No error.
1072 ERROR_OTHER, // Other errors. 1157 ERROR_OTHER, // Other errors.
1073 ERROR_REC_DEVICE_OPEN_FAILED = 100, // Could not open camera. 1158 ERROR_REC_DEVICE_OPEN_FAILED = 100, // Could not open camera.
1074 ERROR_REC_DEVICE_NO_DEVICE, // No camera. 1159 ERROR_REC_DEVICE_NO_DEVICE, // No camera.
1075 ERROR_REC_DEVICE_IN_USE, // Device is in already use. 1160 ERROR_REC_DEVICE_IN_USE, // Device is in already use.
1076 ERROR_REC_DEVICE_REMOVED, // Device is removed. 1161 ERROR_REC_DEVICE_REMOVED, // Device is removed.
1077 ERROR_REC_SRTP_ERROR, // Generic sender SRTP failure. 1162 ERROR_REC_SRTP_ERROR, // Generic sender SRTP failure.
1078 ERROR_REC_SRTP_AUTH_FAILED, // Failed to authenticate packets. 1163 ERROR_REC_SRTP_AUTH_FAILED, // Failed to authenticate packets.
1079 ERROR_REC_CPU_MAX_CANT_DOWNGRADE, // Can't downgrade capture anymore. 1164 ERROR_REC_CPU_MAX_CANT_DOWNGRADE, // Can't downgrade capture anymore.
1080 ERROR_PLAY_SRTP_ERROR = 200, // Generic receiver SRTP failure. 1165 ERROR_PLAY_SRTP_ERROR = 200, // Generic receiver SRTP failure.
1081 ERROR_PLAY_SRTP_AUTH_FAILED, // Failed to authenticate packets. 1166 ERROR_PLAY_SRTP_AUTH_FAILED, // Failed to authenticate packets.
1082 ERROR_PLAY_SRTP_REPLAY, // Packet replay detected. 1167 ERROR_PLAY_SRTP_REPLAY, // Packet replay detected.
1083 }; 1168 };
1084 1169
1085 VideoMediaChannel() : renderer_(NULL) {} 1170 VideoMediaChannel() : renderer_(NULL) {}
1086 virtual ~VideoMediaChannel() {} 1171 virtual ~VideoMediaChannel() {}
1087 // Allow video channel to unhook itself from an associated voice channel. 1172 // Allow video channel to unhook itself from an associated voice channel.
1088 virtual void DetachVoiceChannel() = 0; 1173 virtual void DetachVoiceChannel() = 0;
1174 // TODO(pthatcher): Remove SetSendCodecs,
1175 // SetSendRtpHeaderExtensions, SetMaxSendBandwidth, and SetOptions
1176 // once all implementations implement SetSendParameters.
1177 virtual bool SetSendParameters(const VideoSendParameters& params) {
1178 return (SetSendCodecs(params.codecs) &&
1179 SetSendRtpHeaderExtensions(params.extensions) &&
1180 SetMaxSendBandwidth(params.max_bandwidth_bps) &&
1181 SetOptions(params.options));
1182 }
1183 // TODO(pthatcher): Remove SetRecvCodecs and
1184 // SetRecvRtpHeaderExtensions once all implementations implement
1185 // SetRecvParameters.
1186 virtual bool SetRecvParameters(const VideoRecvParameters& params) {
1187 return (SetRecvCodecs(params.codecs) &&
1188 SetRecvRtpHeaderExtensions(params.extensions));
1189 }
1089 // Sets the codecs/payload types to be used for incoming media. 1190 // Sets the codecs/payload types to be used for incoming media.
1090 virtual bool SetRecvCodecs(const std::vector<VideoCodec>& codecs) = 0; 1191 virtual bool SetRecvCodecs(const std::vector<VideoCodec>& codecs) = 0;
1091 // Sets the codecs/payload types to be used for outgoing media. 1192 // Sets the codecs/payload types to be used for outgoing media.
1092 virtual bool SetSendCodecs(const std::vector<VideoCodec>& codecs) = 0; 1193 virtual bool SetSendCodecs(const std::vector<VideoCodec>& codecs) = 0;
1093 // Gets the currently set codecs/payload types to be used for outgoing media. 1194 // Gets the currently set codecs/payload types to be used for outgoing media.
1094 virtual bool GetSendCodec(VideoCodec* send_codec) = 0; 1195 virtual bool GetSendCodec(VideoCodec* send_codec) = 0;
1095 // Sets the format of a specified outgoing stream. 1196 // Sets the format of a specified outgoing stream.
1096 virtual bool SetSendStreamFormat(uint32 ssrc, const VideoFormat& format) = 0; 1197 virtual bool SetSendStreamFormat(uint32 ssrc, const VideoFormat& format) = 0;
1097 // Starts or stops playout of received video. 1198 // Starts or stops playout of received video.
1098 virtual bool SetRender(bool render) = 0; 1199 virtual bool SetRender(bool render) = 0;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
1182 // TODO(pthatcher): Make these true by default? 1283 // TODO(pthatcher): Make these true by default?
1183 ordered(false), 1284 ordered(false),
1184 reliable(false), 1285 reliable(false),
1185 max_rtx_count(0), 1286 max_rtx_count(0),
1186 max_rtx_ms(0) { 1287 max_rtx_ms(0) {
1187 } 1288 }
1188 }; 1289 };
1189 1290
1190 enum SendDataResult { SDR_SUCCESS, SDR_ERROR, SDR_BLOCK }; 1291 enum SendDataResult { SDR_SUCCESS, SDR_ERROR, SDR_BLOCK };
1191 1292
1293 struct DataOptions {
1294 std::string ToString() {
1295 return "{}";
1296 }
1297 };
1298
1299 struct DataSendParameters : RtpSendParameters<DataCodec, DataOptions> {
1300 std::string ToString() {
1301 std::ostringstream ost;
1302 // Options and extensions aren't used.
1303 ost << "{";
1304 ost << "codecs: " << VectorToString(codecs) << ", ";
1305 ost << "max_bandiwidth_bps: " << max_bandwidth_bps;
1306 ost << "}";
1307 return ost.str();
1308 }
1309 };
1310
1311 struct DataRecvParameters : RtpParameters<DataCodec> {
1312 };
1313
1192 class DataMediaChannel : public MediaChannel { 1314 class DataMediaChannel : public MediaChannel {
1193 public: 1315 public:
1194 enum Error { 1316 enum Error {
1195 ERROR_NONE = 0, // No error. 1317 ERROR_NONE = 0, // No error.
1196 ERROR_OTHER, // Other errors. 1318 ERROR_OTHER, // Other errors.
1197 ERROR_SEND_SRTP_ERROR = 200, // Generic SRTP failure. 1319 ERROR_SEND_SRTP_ERROR = 200, // Generic SRTP failure.
1198 ERROR_SEND_SRTP_AUTH_FAILED, // Failed to authenticate packets. 1320 ERROR_SEND_SRTP_AUTH_FAILED, // Failed to authenticate packets.
1199 ERROR_RECV_SRTP_ERROR, // Generic SRTP failure. 1321 ERROR_RECV_SRTP_ERROR, // Generic SRTP failure.
1200 ERROR_RECV_SRTP_AUTH_FAILED, // Failed to authenticate packets. 1322 ERROR_RECV_SRTP_AUTH_FAILED, // Failed to authenticate packets.
1201 ERROR_RECV_SRTP_REPLAY, // Packet replay detected. 1323 ERROR_RECV_SRTP_REPLAY, // Packet replay detected.
1202 }; 1324 };
1203 1325
1204 virtual ~DataMediaChannel() {} 1326 virtual ~DataMediaChannel() {}
1205 1327
1328 // TODO(pthatcher): Remove SetSendCodecs,
1329 // SetSendRtpHeaderExtensions, SetMaxSendBandwidth, and SetOptions
1330 // once all implementations implement SetSendParameters.
1331 virtual bool SetSendParameters(const DataSendParameters& params) {
1332 return (SetSendCodecs(params.codecs) &&
1333 SetMaxSendBandwidth(params.max_bandwidth_bps));
1334 }
1335 // TODO(pthatcher): Remove SetRecvCodecs and
1336 // SetRecvRtpHeaderExtensions once all implementations implement
1337 // SetRecvParameters.
1338 virtual bool SetRecvParameters(const DataRecvParameters& params) {
1339 return SetRecvCodecs(params.codecs);
1340 }
1206 virtual bool SetSendCodecs(const std::vector<DataCodec>& codecs) = 0; 1341 virtual bool SetSendCodecs(const std::vector<DataCodec>& codecs) = 0;
1207 virtual bool SetRecvCodecs(const std::vector<DataCodec>& codecs) = 0; 1342 virtual bool SetRecvCodecs(const std::vector<DataCodec>& codecs) = 0;
1208 1343
1209 virtual bool MuteStream(uint32 ssrc, bool on) { return false; } 1344 virtual bool MuteStream(uint32 ssrc, bool on) { return false; }
1210 // TODO(pthatcher): Implement this. 1345 // TODO(pthatcher): Implement this.
1211 virtual bool GetStats(DataMediaInfo* info) { return true; } 1346 virtual bool GetStats(DataMediaInfo* info) { return true; }
1212 1347
1213 virtual bool SetSend(bool send) = 0; 1348 virtual bool SetSend(bool send) = 0;
1214 virtual bool SetReceive(bool receive) = 0; 1349 virtual bool SetReceive(bool receive) = 0;
1215 1350
(...skipping 11 matching lines...) Expand all
1227 // Signal when the media channel is ready to send the stream. Arguments are: 1362 // Signal when the media channel is ready to send the stream. Arguments are:
1228 // writable(bool) 1363 // writable(bool)
1229 sigslot::signal1<bool> SignalReadyToSend; 1364 sigslot::signal1<bool> SignalReadyToSend;
1230 // Signal for notifying that the remote side has closed the DataChannel. 1365 // Signal for notifying that the remote side has closed the DataChannel.
1231 sigslot::signal1<uint32> SignalStreamClosedRemotely; 1366 sigslot::signal1<uint32> SignalStreamClosedRemotely;
1232 }; 1367 };
1233 1368
1234 } // namespace cricket 1369 } // namespace cricket
1235 1370
1236 #endif // TALK_MEDIA_BASE_MEDIACHANNEL_H_ 1371 #endif // TALK_MEDIA_BASE_MEDIACHANNEL_H_
OLDNEW
« no previous file with comments | « no previous file | talk/media/webrtc/webrtcvideoengine2.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698