OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 10 matching lines...) Expand all Loading... |
21 namespace test { | 21 namespace test { |
22 | 22 |
23 static const uint16_t kPacketHeaderSize = 8; | 23 static const uint16_t kPacketHeaderSize = 8; |
24 static const char kFirstLine[] = "#!rtpplay1.0 0.0.0.0/0\n"; | 24 static const char kFirstLine[] = "#!rtpplay1.0 0.0.0.0/0\n"; |
25 | 25 |
26 // Write RTP packets to file in rtpdump format, as documented at: | 26 // Write RTP packets to file in rtpdump format, as documented at: |
27 // http://www.cs.columbia.edu/irt/software/rtptools/ | 27 // http://www.cs.columbia.edu/irt/software/rtptools/ |
28 class RtpDumpWriter : public RtpFileWriter { | 28 class RtpDumpWriter : public RtpFileWriter { |
29 public: | 29 public: |
30 explicit RtpDumpWriter(FILE* file) : file_(file) { | 30 explicit RtpDumpWriter(FILE* file) : file_(file) { |
31 CHECK(file_ != NULL); | 31 RTC_CHECK(file_ != NULL); |
32 Init(); | 32 Init(); |
33 } | 33 } |
34 virtual ~RtpDumpWriter() { | 34 virtual ~RtpDumpWriter() { |
35 if (file_ != NULL) { | 35 if (file_ != NULL) { |
36 fclose(file_); | 36 fclose(file_); |
37 file_ = NULL; | 37 file_ = NULL; |
38 } | 38 } |
39 } | 39 } |
40 | 40 |
41 bool WritePacket(const RtpPacket* packet) override { | 41 bool WritePacket(const RtpPacket* packet) override { |
42 uint16_t len = static_cast<uint16_t>(packet->length + kPacketHeaderSize); | 42 uint16_t len = static_cast<uint16_t>(packet->length + kPacketHeaderSize); |
43 CHECK_GE(packet->original_length, packet->length); | 43 RTC_CHECK_GE(packet->original_length, packet->length); |
44 uint16_t plen = static_cast<uint16_t>(packet->original_length); | 44 uint16_t plen = static_cast<uint16_t>(packet->original_length); |
45 uint32_t offset = packet->time_ms; | 45 uint32_t offset = packet->time_ms; |
46 CHECK(WriteUint16(len)); | 46 RTC_CHECK(WriteUint16(len)); |
47 CHECK(WriteUint16(plen)); | 47 RTC_CHECK(WriteUint16(plen)); |
48 CHECK(WriteUint32(offset)); | 48 RTC_CHECK(WriteUint32(offset)); |
49 return fwrite(packet->data, sizeof(uint8_t), packet->length, file_) == | 49 return fwrite(packet->data, sizeof(uint8_t), packet->length, file_) == |
50 packet->length; | 50 packet->length; |
51 } | 51 } |
52 | 52 |
53 private: | 53 private: |
54 bool Init() { | 54 bool Init() { |
55 fprintf(file_, "%s", kFirstLine); | 55 fprintf(file_, "%s", kFirstLine); |
56 | 56 |
57 CHECK(WriteUint32(0)); | 57 RTC_CHECK(WriteUint32(0)); |
58 CHECK(WriteUint32(0)); | 58 RTC_CHECK(WriteUint32(0)); |
59 CHECK(WriteUint32(0)); | 59 RTC_CHECK(WriteUint32(0)); |
60 CHECK(WriteUint16(0)); | 60 RTC_CHECK(WriteUint16(0)); |
61 CHECK(WriteUint16(0)); | 61 RTC_CHECK(WriteUint16(0)); |
62 | 62 |
63 return true; | 63 return true; |
64 } | 64 } |
65 | 65 |
66 bool WriteUint32(uint32_t in) { | 66 bool WriteUint32(uint32_t in) { |
67 // Loop through shifts = {24, 16, 8, 0}. | 67 // Loop through shifts = {24, 16, 8, 0}. |
68 for (int shifts = 24; shifts >= 0; shifts -= 8) { | 68 for (int shifts = 24; shifts >= 0; shifts -= 8) { |
69 uint8_t tmp = static_cast<uint8_t>((in >> shifts) & 0xFF); | 69 uint8_t tmp = static_cast<uint8_t>((in >> shifts) & 0xFF); |
70 if (fwrite(&tmp, sizeof(uint8_t), 1, file_) != 1) | 70 if (fwrite(&tmp, sizeof(uint8_t), 1, file_) != 1) |
71 return false; | 71 return false; |
(...skipping 28 matching lines...) Expand all Loading... |
100 switch (format) { | 100 switch (format) { |
101 case kRtpDump: | 101 case kRtpDump: |
102 return new RtpDumpWriter(file); | 102 return new RtpDumpWriter(file); |
103 } | 103 } |
104 fclose(file); | 104 fclose(file); |
105 return NULL; | 105 return NULL; |
106 } | 106 } |
107 | 107 |
108 } // namespace test | 108 } // namespace test |
109 } // namespace webrtc | 109 } // namespace webrtc |
OLD | NEW |