Update talk to 59410372.
R=jiayl@webrtc.org, wu@webrtc.org Review URL: https://webrtc-codereview.appspot.com/6929004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@5367 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@@ -32,14 +32,12 @@
|
||||
#include <sstream>
|
||||
#include <vector>
|
||||
|
||||
#include "talk/app/webrtc/datachannelinterface.h"
|
||||
#include "talk/base/buffer.h"
|
||||
#include "talk/base/helpers.h"
|
||||
#include "talk/base/logging.h"
|
||||
#include "talk/media/base/codec.h"
|
||||
#include "talk/media/base/constants.h"
|
||||
#include "talk/media/base/streamparams.h"
|
||||
#include "talk/media/sctp/sctputils.h"
|
||||
#include "usrsctplib/usrsctp.h"
|
||||
|
||||
namespace {
|
||||
@@ -497,11 +495,17 @@ bool SctpDataMediaChannel::RemoveSendStream(uint32 ssrc) {
|
||||
}
|
||||
|
||||
bool SctpDataMediaChannel::AddRecvStream(const StreamParams& stream) {
|
||||
return AddStream(stream);
|
||||
// SCTP DataChannels are always bi-directional and calling AddSendStream will
|
||||
// enable both sending and receiving on the stream. So AddRecvStream is a
|
||||
// no-op.
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SctpDataMediaChannel::RemoveRecvStream(uint32 ssrc) {
|
||||
return ResetStream(ssrc);
|
||||
// SCTP DataChannels are always bi-directional and calling RemoveSendStream
|
||||
// will disable both sending and receiving on the stream. So RemoveRecvStream
|
||||
// is a no-op.
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SctpDataMediaChannel::SendData(
|
||||
@@ -619,34 +623,12 @@ void SctpDataMediaChannel::OnInboundPacketFromSctpToChannel(
|
||||
|
||||
void SctpDataMediaChannel::OnDataFromSctpToChannel(
|
||||
const ReceiveDataParams& params, talk_base::Buffer* buffer) {
|
||||
if (open_streams_.find(params.ssrc) == open_streams_.end()) {
|
||||
if (params.type == DMT_CONTROL) {
|
||||
std::string label;
|
||||
webrtc::DataChannelInit config;
|
||||
if (ParseDataChannelOpenMessage(*buffer, &label, &config)) {
|
||||
config.id = params.ssrc;
|
||||
// Do not send the OPEN message for this data channel.
|
||||
config.negotiated = true;
|
||||
SignalNewStreamReceived(label, config);
|
||||
|
||||
// Add the stream immediately.
|
||||
StreamParams sparams = StreamParams::CreateLegacy(params.ssrc);
|
||||
AddSendStream(sparams);
|
||||
AddRecvStream(sparams);
|
||||
} else {
|
||||
LOG(LS_ERROR) << debug_name_ << "->OnDataFromSctpToChannel(...): "
|
||||
<< "Received malformed control message";
|
||||
}
|
||||
} else {
|
||||
LOG(LS_WARNING) << debug_name_ << "->OnDataFromSctpToChannel(...): "
|
||||
<< "Received packet for unknown ssrc: " << params.ssrc;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (receiving_) {
|
||||
LOG(LS_VERBOSE) << debug_name_ << "->OnDataFromSctpToChannel(...): "
|
||||
<< "Posting with length: " << buffer->length();
|
||||
<< "Posting with length: " << buffer->length()
|
||||
<< " on stream " << params.ssrc;
|
||||
// Reports all received messages to upper layers, no matter whether the sid
|
||||
// is known.
|
||||
SignalDataReceived(params, buffer->data(), buffer->length());
|
||||
} else {
|
||||
LOG(LS_WARNING) << debug_name_ << "->OnDataFromSctpToChannel(...): "
|
||||
@@ -663,9 +645,7 @@ bool SctpDataMediaChannel::AddStream(const StreamParams& stream) {
|
||||
|
||||
const uint32 ssrc = stream.first_ssrc();
|
||||
if (open_streams_.find(ssrc) != open_streams_.end()) {
|
||||
// We usually get an AddSendStream and an AddRecvStream for each stream, so
|
||||
// this is really unlikely to be a useful warning message.
|
||||
LOG(LS_VERBOSE) << debug_name_ << "->Add(Send|Recv)Stream(...): "
|
||||
LOG(LS_WARNING) << debug_name_ << "->Add(Send|Recv)Stream(...): "
|
||||
<< "Not adding data stream '" << stream.id
|
||||
<< "' with ssrc=" << ssrc
|
||||
<< " because stream is already open.";
|
||||
@@ -976,5 +956,4 @@ void SctpDataMediaChannel::OnMessage(talk_base::Message* msg) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace cricket
|
||||
|
||||
Reference in New Issue
Block a user