OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "extensions/renderer/api/display_source/wifi_display/wifi_display_media
_packetizer.h" | 5 #include "extensions/renderer/api/display_source/wifi_display/wifi_display_media
_packetizer.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/rand_util.h" | 10 #include "base/rand_util.h" |
11 #include "crypto/random.h" | 11 #include "crypto/random.h" |
12 #include "extensions/renderer/api/display_source/wifi_display/wifi_display_eleme
ntary_stream_info.h" | 12 #include "extensions/renderer/api/display_source/wifi_display/wifi_display_eleme
ntary_stream_info.h" |
13 | 13 |
14 namespace extensions { | 14 namespace extensions { |
15 namespace { | 15 namespace { |
16 const size_t kMaxTransportStreamPacketCount = 7u; | 16 const size_t kMaxTransportStreamPacketCount = 7u; |
17 const uint8_t kProtocolPayloadTypeMP2T = 33u; | 17 const uint8_t kProtocolPayloadTypeMP2T = 33u; |
18 const uint8_t kProtocolVersion = 2u; | 18 const uint8_t kProtocolVersion = 2u; |
19 } // namespace | 19 } // namespace |
20 | 20 |
21 WiFiDisplayMediaDatagramPacket::WiFiDisplayMediaDatagramPacket() = default; | 21 WiFiDisplayMediaDatagramPacket::WiFiDisplayMediaDatagramPacket() = default; |
22 | 22 |
23 WiFiDisplayMediaDatagramPacket::WiFiDisplayMediaDatagramPacket( | 23 WiFiDisplayMediaDatagramPacket::WiFiDisplayMediaDatagramPacket( |
24 WiFiDisplayMediaDatagramPacket&&) = default; | 24 WiFiDisplayMediaDatagramPacket&&) = default; |
25 | 25 |
26 WiFiDisplayMediaPacketizer::WiFiDisplayMediaPacketizer( | 26 WiFiDisplayMediaPacketizer::WiFiDisplayMediaPacketizer( |
27 const base::TimeDelta& delay_for_unit_time_stamps, | 27 const base::TimeDelta& delay_for_unit_time_stamps, |
28 std::vector<WiFiDisplayElementaryStreamInfo> stream_infos, | 28 const std::vector<WiFiDisplayElementaryStreamInfo>& stream_infos, |
29 const PacketizedCallback& on_packetized) | 29 const PacketizedCallback& on_packetized) |
30 : WiFiDisplayTransportStreamPacketizer(delay_for_unit_time_stamps, | 30 : WiFiDisplayTransportStreamPacketizer(delay_for_unit_time_stamps, |
31 std::move(stream_infos)), | 31 stream_infos), |
32 on_packetized_media_datagram_packet_(on_packetized) { | 32 on_packetized_media_datagram_packet_(on_packetized) { |
33 // Sequence numbers are mainly used for detecting lossed packets within one | 33 // Sequence numbers are mainly used for detecting lossed packets within one |
34 // RTP session. The initial value SHOULD be random (unpredictable) to make | 34 // RTP session. The initial value SHOULD be random (unpredictable) to make |
35 // known-plaintext attacks on encryption more difficult, in case the packets | 35 // known-plaintext attacks on encryption more difficult, in case the packets |
36 // flow through a translator that encrypts them. | 36 // flow through a translator that encrypts them. |
37 crypto::RandBytes(&sequence_number_, sizeof(sequence_number_)); | 37 crypto::RandBytes(&sequence_number_, sizeof(sequence_number_)); |
38 base::RandBytes(&synchronization_source_identifier_, | 38 base::RandBytes(&synchronization_source_identifier_, |
39 sizeof(synchronization_source_identifier_)); | 39 sizeof(synchronization_source_identifier_)); |
40 } | 40 } |
41 | 41 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 if (transport_stream_packet_count < kMaxTransportStreamPacketCount) | 101 if (transport_stream_packet_count < kMaxTransportStreamPacketCount) |
102 return true; | 102 return true; |
103 } | 103 } |
104 | 104 |
105 WiFiDisplayMediaDatagramPacket packet; | 105 WiFiDisplayMediaDatagramPacket packet; |
106 packet.swap(media_datagram_packet_); | 106 packet.swap(media_datagram_packet_); |
107 return on_packetized_media_datagram_packet_.Run(std::move(packet)); | 107 return on_packetized_media_datagram_packet_.Run(std::move(packet)); |
108 } | 108 } |
109 | 109 |
110 } // namespace extensions | 110 } // namespace extensions |
OLD | NEW |