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

Unified Diff: media/cast/transport/transport/udp_transport.cc

Issue 344953003: Cast: Use DSCP AF41 for all traffic if possible. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: dcheck Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/cast/transport/transport/udp_transport.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/cast/transport/transport/udp_transport.cc
diff --git a/media/cast/transport/transport/udp_transport.cc b/media/cast/transport/transport/udp_transport.cc
index bcce4f72f3172d1764e5d588cb880ae093908827..9669b17d4386a24fed929adeb96804cfaf996f5a 100644
--- a/media/cast/transport/transport/udp_transport.cc
+++ b/media/cast/transport/transport/udp_transport.cc
@@ -54,6 +54,7 @@ UdpTransport::UdpTransport(
send_pending_(false),
receive_pending_(false),
client_connected_(false),
+ next_dscp_value_(net::DSCP_NO_CHANGE),
status_callback_(status_callback),
weak_factory_(this) {
DCHECK(!IsEmpty(local_end_point) || !IsEmpty(remote_end_point));
@@ -88,6 +89,11 @@ void UdpTransport::StartReceiving(
ScheduleReceiveNextPacket();
}
+void UdpTransport::SetDscp(net::DiffServCodePoint dscp) {
+ DCHECK(io_thread_proxy_->RunsTasksOnCurrentThread());
+ next_dscp_value_ = dscp;
+}
+
void UdpTransport::ScheduleReceiveNextPacket() {
DCHECK(io_thread_proxy_->RunsTasksOnCurrentThread());
if (!packet_receiver_.is_null() && !receive_pending_) {
@@ -162,6 +168,16 @@ bool UdpTransport::SendPacket(PacketRef packet, const base::Closure& cb) {
return true;
}
+ if (next_dscp_value_ != net::DSCP_NO_CHANGE) {
+ int result = udp_socket_->SetDiffServCodePoint(next_dscp_value_);
+ if (result != net::OK) {
+ LOG(ERROR) << "Unable to set DSCP: " << next_dscp_value_
+ << " to socket; Error: " << result;
+ }
+ // Don't change DSCP in next send.
+ next_dscp_value_ = net::DSCP_NO_CHANGE;
+ }
+
scoped_refptr<net::IOBuffer> buf =
new net::WrappedIOBuffer(reinterpret_cast<char*>(&packet->data.front()));
« no previous file with comments | « media/cast/transport/transport/udp_transport.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698