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

Side by Side Diff: webrtc/modules/audio_coding/neteq/tools/rtc_event_log_source.cc

Issue 2005873002: Let PacketSource::NextPacket() return an std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 7 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 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 21 matching lines...) Expand all
32 } 32 }
33 33
34 RtcEventLogSource::~RtcEventLogSource() {} 34 RtcEventLogSource::~RtcEventLogSource() {}
35 35
36 bool RtcEventLogSource::RegisterRtpHeaderExtension(RTPExtensionType type, 36 bool RtcEventLogSource::RegisterRtpHeaderExtension(RTPExtensionType type,
37 uint8_t id) { 37 uint8_t id) {
38 RTC_CHECK(parser_.get()); 38 RTC_CHECK(parser_.get());
39 return parser_->RegisterRtpHeaderExtension(type, id); 39 return parser_->RegisterRtpHeaderExtension(type, id);
40 } 40 }
41 41
42 Packet* RtcEventLogSource::NextPacket() { 42 std::unique_ptr<Packet> RtcEventLogSource::NextPacket() {
43 while (rtp_packet_index_ < parsed_stream_.GetNumberOfEvents()) { 43 while (rtp_packet_index_ < parsed_stream_.GetNumberOfEvents()) {
44 if (parsed_stream_.GetEventType(rtp_packet_index_) == 44 if (parsed_stream_.GetEventType(rtp_packet_index_) ==
45 ParsedRtcEventLog::RTP_EVENT) { 45 ParsedRtcEventLog::RTP_EVENT) {
46 PacketDirection direction; 46 PacketDirection direction;
47 MediaType media_type; 47 MediaType media_type;
48 size_t header_length; 48 size_t header_length;
49 size_t packet_length; 49 size_t packet_length;
50 uint64_t timestamp_us = parsed_stream_.GetTimestamp(rtp_packet_index_); 50 uint64_t timestamp_us = parsed_stream_.GetTimestamp(rtp_packet_index_);
51 parsed_stream_.GetRtpHeader(rtp_packet_index_, &direction, &media_type, 51 parsed_stream_.GetRtpHeader(rtp_packet_index_, &direction, &media_type,
52 nullptr, &header_length, &packet_length); 52 nullptr, &header_length, &packet_length);
53 if (direction == kIncomingPacket && media_type == MediaType::AUDIO) { 53 if (direction == kIncomingPacket && media_type == MediaType::AUDIO) {
54 uint8_t* packet_header = new uint8_t[header_length]; 54 uint8_t* packet_header = new uint8_t[header_length];
55 parsed_stream_.GetRtpHeader(rtp_packet_index_, nullptr, nullptr, 55 parsed_stream_.GetRtpHeader(rtp_packet_index_, nullptr, nullptr,
56 packet_header, nullptr, nullptr); 56 packet_header, nullptr, nullptr);
57 Packet* packet = new Packet(packet_header, header_length, packet_length, 57 std::unique_ptr<Packet> packet(new Packet(
58 static_cast<double>(timestamp_us) / 1000, 58 packet_header, header_length, packet_length,
59 *parser_.get()); 59 static_cast<double>(timestamp_us) / 1000, *parser_.get()));
60 if (packet->valid_header()) { 60 if (packet->valid_header()) {
61 // Check if the packet should not be filtered out. 61 // Check if the packet should not be filtered out.
62 if (!filter_.test(packet->header().payloadType) && 62 if (!filter_.test(packet->header().payloadType) &&
63 !(use_ssrc_filter_ && packet->header().ssrc != ssrc_)) { 63 !(use_ssrc_filter_ && packet->header().ssrc != ssrc_)) {
64 rtp_packet_index_++; 64 rtp_packet_index_++;
65 return packet; 65 return packet;
66 } 66 }
67 } else { 67 } else {
68 std::cout << "Warning: Packet with index " << rtp_packet_index_ 68 std::cout << "Warning: Packet with index " << rtp_packet_index_
69 << " has an invalid header and will be ignored." 69 << " has an invalid header and will be ignored."
70 << std::endl; 70 << std::endl;
71 } 71 }
72 // The packet has either an invalid header or needs to be filtered out, 72 // The packet has either an invalid header or needs to be filtered out,
73 // so it can be deleted. 73 // so it can be deleted. Implicitly done since the |packet| goes out of
74 delete packet; 74 // scope.
kwiberg-webrtc 2016/05/24 09:04:56 You can probably delete this comment.
hlundin-webrtc 2016/05/24 10:59:15 Done.
75 } 75 }
76 } 76 }
77 rtp_packet_index_++; 77 rtp_packet_index_++;
78 } 78 }
79 return nullptr; 79 return nullptr;
80 } 80 }
81 81
82 int64_t RtcEventLogSource::NextAudioOutputEventMs() { 82 int64_t RtcEventLogSource::NextAudioOutputEventMs() {
83 while (audio_output_index_ < parsed_stream_.GetNumberOfEvents()) { 83 while (audio_output_index_ < parsed_stream_.GetNumberOfEvents()) {
84 if (parsed_stream_.GetEventType(audio_output_index_) == 84 if (parsed_stream_.GetEventType(audio_output_index_) ==
(...skipping 12 matching lines...) Expand all
97 97
98 RtcEventLogSource::RtcEventLogSource() 98 RtcEventLogSource::RtcEventLogSource()
99 : PacketSource(), parser_(RtpHeaderParser::Create()) {} 99 : PacketSource(), parser_(RtpHeaderParser::Create()) {}
100 100
101 bool RtcEventLogSource::OpenFile(const std::string& file_name) { 101 bool RtcEventLogSource::OpenFile(const std::string& file_name) {
102 return parsed_stream_.ParseFile(file_name); 102 return parsed_stream_.ParseFile(file_name);
103 } 103 }
104 104
105 } // namespace test 105 } // namespace test
106 } // namespace webrtc 106 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698