OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #ifndef MEDIA_CAST_TRANSPORT_CAST_TRANSPORT_DEFINES_H_ | 5 #ifndef MEDIA_CAST_TRANSPORT_CAST_TRANSPORT_DEFINES_H_ |
6 #define MEDIA_CAST_TRANSPORT_CAST_TRANSPORT_DEFINES_H_ | 6 #define MEDIA_CAST_TRANSPORT_CAST_TRANSPORT_DEFINES_H_ |
7 | 7 |
8 #include <list> | 8 #include <list> |
9 #include <map> | 9 #include <map> |
10 #include <set> | 10 #include <set> |
| 11 #include <string> |
11 | 12 |
12 #include "base/basictypes.h" | 13 #include "base/basictypes.h" |
13 #include "base/time/time.h" | 14 #include "base/time/time.h" |
14 | 15 |
15 namespace media { | 16 namespace media { |
16 namespace cast { | 17 namespace cast { |
17 namespace transport { | 18 namespace transport { |
18 | 19 |
19 // TODO(mikhal): Implement and add more types. | 20 // TODO(mikhal): Implement and add more types. |
20 enum CastTransportStatus { | 21 enum CastTransportStatus { |
21 TRANSPORT_UNINITIALIZED = 0, | 22 TRANSPORT_UNINITIALIZED = 0, |
22 TRANSPORT_INITIALIZED, | 23 TRANSPORT_INITIALIZED, |
23 TRANSPORT_INVALID_CRYPTO_CONFIG, | 24 TRANSPORT_INVALID_CRYPTO_CONFIG, |
24 TRANSPORT_SOCKET_ERROR | 25 TRANSPORT_SOCKET_ERROR |
25 }; | 26 }; |
26 | 27 |
27 const size_t kMaxIpPacketSize = 1500; | 28 const size_t kMaxIpPacketSize = 1500; |
28 // Each uint16 represents one packet id within a cast frame. | 29 // Each uint16 represents one packet id within a cast frame. |
29 typedef std::set<uint16> PacketIdSet; | 30 typedef std::set<uint16> PacketIdSet; |
30 // Each uint8 represents one cast frame. | 31 // Each uint8 represents one cast frame. |
31 typedef std::map<uint8, PacketIdSet> MissingFramesAndPacketsMap; | 32 typedef std::map<uint8, PacketIdSet> MissingFramesAndPacketsMap; |
32 | 33 |
| 34 // Crypto. |
| 35 const size_t kAesBlockSize = 16; |
| 36 const size_t kAesKeySize = 16; |
| 37 |
| 38 inline std::string GetAesNonce(uint32 frame_id, const std::string& iv_mask) { |
| 39 std::string aes_nonce(kAesBlockSize, 0); |
| 40 |
| 41 // Serializing frame_id in big-endian order (aes_nonce[8] is the most |
| 42 // significant byte of frame_id). |
| 43 aes_nonce[11] = frame_id & 0xff; |
| 44 aes_nonce[10] = (frame_id >> 8) & 0xff; |
| 45 aes_nonce[9] = (frame_id >> 16) & 0xff; |
| 46 aes_nonce[8] = (frame_id >> 24) & 0xff; |
| 47 |
| 48 for (size_t i = 0; i < kAesBlockSize; ++i) { |
| 49 aes_nonce[i] ^= iv_mask[i]; |
| 50 } |
| 51 return aes_nonce; |
| 52 } |
| 53 |
33 // Rtcp defines. | 54 // Rtcp defines. |
34 | 55 |
35 enum RtcpPacketTypes { | 56 enum RtcpPacketTypes { |
36 kPacketTypeLow = 194, // SMPTE time-code mapping. | 57 kPacketTypeLow = 194, // SMPTE time-code mapping. |
37 kPacketTypeInterArrivalJitterReport = 195, | 58 kPacketTypeInterArrivalJitterReport = 195, |
38 kPacketTypeSenderReport = 200, | 59 kPacketTypeSenderReport = 200, |
39 kPacketTypeReceiverReport = 201, | 60 kPacketTypeReceiverReport = 201, |
40 kPacketTypeSdes = 202, | 61 kPacketTypeSdes = 202, |
41 kPacketTypeBye = 203, | 62 kPacketTypeBye = 203, |
42 kPacketTypeApplicationDefined = 204, | 63 kPacketTypeApplicationDefined = 204, |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 base::TimeDelta recorded_delta = time_ticks - zero_time; | 142 base::TimeDelta recorded_delta = time_ticks - zero_time; |
122 // Timestamp is in 90 KHz for video. | 143 // Timestamp is in 90 KHz for video. |
123 return static_cast<uint32>(recorded_delta.InMilliseconds() * 90); | 144 return static_cast<uint32>(recorded_delta.InMilliseconds() * 90); |
124 } | 145 } |
125 | 146 |
126 } // namespace transport | 147 } // namespace transport |
127 } // namespace cast | 148 } // namespace cast |
128 } // namespace media | 149 } // namespace media |
129 | 150 |
130 #endif // MEDIA_CAST_TRANSPORT_CAST_TRANSPORT_DEFINES_H_ | 151 #endif // MEDIA_CAST_TRANSPORT_CAST_TRANSPORT_DEFINES_H_ |
OLD | NEW |