| 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 |