aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanil Chapovalov <danilchap@webrtc.org>2021-06-08 12:30:46 +0200
committerWebRTC LUCI CQ <webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com>2021-06-21 09:17:52 +0000
commit76a35d9ce2e0fddbc661969a596d16d639cee7ec (patch)
tree69d1903aedceb98383e28146b570f9411c4dad5c
parent257f81b98e437c22964b9be40d967b68c5ad83c4 (diff)
downloadwebrtc-76a35d9ce2e0fddbc661969a596d16d639cee7ec.tar.gz
Delete legacy RtpHeaderParser wrapper
Bug: None Change-Id: I4deec4fab631488ef2d0706848cbbe4e085825bc Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221617 Reviewed-by: Erik Språng <sprang@webrtc.org> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#34341}
-rw-r--r--rtc_tools/BUILD.gn1
-rw-r--r--rtc_tools/video_replay.cc33
-rw-r--r--test/BUILD.gn1
-rw-r--r--test/fuzzers/rtp_header_parser_fuzzer.cc21
-rw-r--r--test/fuzzers/utils/BUILD.gn1
-rw-r--r--test/fuzzers/utils/rtp_replayer.cc37
-rw-r--r--test/rtp_header_parser.cc70
-rw-r--r--test/rtp_header_parser.h32
8 files changed, 36 insertions, 160 deletions
diff --git a/rtc_tools/BUILD.gn b/rtc_tools/BUILD.gn
index 08f2742528..b841228a8e 100644
--- a/rtc_tools/BUILD.gn
+++ b/rtc_tools/BUILD.gn
@@ -243,6 +243,7 @@ if (!is_component_build) {
"../call:call_interfaces",
"../common_video",
"../media:rtc_internal_video_codecs",
+ "../modules/rtp_rtcp:rtp_rtcp_format",
"../modules/video_coding:video_coding_utility",
"../rtc_base:checks",
"../rtc_base:rtc_json",
diff --git a/rtc_tools/video_replay.cc b/rtc_tools/video_replay.cc
index 08f4c7accc..d96c7be410 100644
--- a/rtc_tools/video_replay.cc
+++ b/rtc_tools/video_replay.cc
@@ -25,6 +25,7 @@
#include "call/call.h"
#include "common_video/libyuv/include/webrtc_libyuv.h"
#include "media/engine/internal_decoder_factory.h"
+#include "modules/rtp_rtcp/source/rtp_packet.h"
#include "modules/video_coding/utility/ivf_file_writer.h"
#include "rtc_base/checks.h"
#include "rtc_base/string_to_number.h"
@@ -39,7 +40,6 @@
#include "test/gtest.h"
#include "test/null_transport.h"
#include "test/rtp_file_reader.h"
-#include "test/rtp_header_parser.h"
#include "test/run_loop.h"
#include "test/run_test.h"
#include "test/test_video_capturer.h"
@@ -544,11 +544,11 @@ class RtpReplayer final {
if (!rtp_reader->NextPacket(&packet)) {
break;
}
- RTPHeader header;
- std::unique_ptr<RtpHeaderParser> parser(RtpHeaderParser::CreateForTest());
- parser->Parse(packet.data, packet.length, &header);
- if (header.timestamp < start_timestamp ||
- header.timestamp > stop_timestamp) {
+ rtc::CopyOnWriteBuffer packet_buffer(packet.data, packet.length);
+ RtpPacket header;
+ header.Parse(packet_buffer);
+ if (header.Timestamp() < start_timestamp ||
+ header.Timestamp() > stop_timestamp) {
continue;
}
@@ -560,10 +560,9 @@ class RtpReplayer final {
++num_packets;
PacketReceiver::DeliveryStatus result = PacketReceiver::DELIVERY_OK;
worker_thread->PostTask(ToQueuedTask([&]() {
- result = call->Receiver()->DeliverPacket(
- webrtc::MediaType::VIDEO,
- rtc::CopyOnWriteBuffer(packet.data, packet.length),
- /* packet_time_us */ -1);
+ result = call->Receiver()->DeliverPacket(webrtc::MediaType::VIDEO,
+ std::move(packet_buffer),
+ /* packet_time_us */ -1);
event.Set();
}));
event.Wait(/*give_up_after_ms=*/10000);
@@ -571,21 +570,17 @@ class RtpReplayer final {
case PacketReceiver::DELIVERY_OK:
break;
case PacketReceiver::DELIVERY_UNKNOWN_SSRC: {
- if (unknown_packets[header.ssrc] == 0)
- fprintf(stderr, "Unknown SSRC: %u!\n", header.ssrc);
- ++unknown_packets[header.ssrc];
+ if (unknown_packets[header.Ssrc()] == 0)
+ fprintf(stderr, "Unknown SSRC: %u!\n", header.Ssrc());
+ ++unknown_packets[header.Ssrc()];
break;
}
case PacketReceiver::DELIVERY_PACKET_ERROR: {
fprintf(stderr,
"Packet error, corrupt packets or incorrect setup?\n");
- RTPHeader header;
- std::unique_ptr<RtpHeaderParser> parser(
- RtpHeaderParser::CreateForTest());
- parser->Parse(packet.data, packet.length, &header);
fprintf(stderr, "Packet len=%zu pt=%u seq=%u ts=%u ssrc=0x%8x\n",
- packet.length, header.payloadType, header.sequenceNumber,
- header.timestamp, header.ssrc);
+ packet.length, header.PayloadType(), header.SequenceNumber(),
+ header.Timestamp(), header.Ssrc());
break;
}
}
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 988d15fd30..77f003cfbe 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -212,6 +212,7 @@ rtc_library("rtp_test_utils") {
"../rtc_base/synchronization:mutex",
"../rtc_base/system:arch",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_library("field_trial") {
diff --git a/test/fuzzers/rtp_header_parser_fuzzer.cc b/test/fuzzers/rtp_header_parser_fuzzer.cc
index d6af5ca3ce..cb5bea2456 100644
--- a/test/fuzzers/rtp_header_parser_fuzzer.cc
+++ b/test/fuzzers/rtp_header_parser_fuzzer.cc
@@ -22,27 +22,6 @@ namespace webrtc {
void FuzzOneInput(const uint8_t* data, size_t size) {
RtpHeaderParser::IsRtcp(data, size);
RtpHeaderParser::GetSsrc(data, size);
- RTPHeader rtp_header;
-
- std::unique_ptr<RtpHeaderParser> rtp_header_parser(
- RtpHeaderParser::CreateForTest());
-
- rtp_header_parser->Parse(data, size, &rtp_header);
- for (int i = 1; i < kRtpExtensionNumberOfExtensions; ++i) {
- if (size > 0 && i >= data[size - 1]) {
- RTPExtensionType add_extension = static_cast<RTPExtensionType>(i);
- rtp_header_parser->RegisterRtpHeaderExtension(add_extension, i);
- }
- }
- rtp_header_parser->Parse(data, size, &rtp_header);
-
- for (int i = 1; i < kRtpExtensionNumberOfExtensions; ++i) {
- if (size > 1 && i >= data[size - 2]) {
- RTPExtensionType remove_extension = static_cast<RTPExtensionType>(i);
- rtp_header_parser->DeregisterRtpHeaderExtension(remove_extension);
- }
- }
- rtp_header_parser->Parse(data, size, &rtp_header);
}
} // namespace webrtc
diff --git a/test/fuzzers/utils/BUILD.gn b/test/fuzzers/utils/BUILD.gn
index 6249156058..3e0782f39d 100644
--- a/test/fuzzers/utils/BUILD.gn
+++ b/test/fuzzers/utils/BUILD.gn
@@ -24,6 +24,7 @@ rtc_library("rtp_replayer") {
"../../../call:call_interfaces",
"../../../common_video",
"../../../media:rtc_internal_video_codecs",
+ "../../../modules/rtp_rtcp:rtp_rtcp_format",
"../../../rtc_base:checks",
"../../../rtc_base:rtc_base_approved",
"../../../rtc_base:rtc_base_tests_utils",
diff --git a/test/fuzzers/utils/rtp_replayer.cc b/test/fuzzers/utils/rtp_replayer.cc
index a664adb31d..43b1fc2ea4 100644
--- a/test/fuzzers/utils/rtp_replayer.cc
+++ b/test/fuzzers/utils/rtp_replayer.cc
@@ -17,13 +17,13 @@
#include "api/task_queue/default_task_queue_factory.h"
#include "api/transport/field_trial_based_config.h"
+#include "modules/rtp_rtcp/source/rtp_packet.h"
#include "rtc_base/strings/json.h"
#include "system_wrappers/include/clock.h"
#include "test/call_config_utils.h"
#include "test/encoder_settings.h"
#include "test/fake_decoder.h"
#include "test/rtp_file_reader.h"
-#include "test/rtp_header_parser.h"
#include "test/run_loop.h"
namespace webrtc {
@@ -164,37 +164,32 @@ void RtpReplayer::ReplayPackets(rtc::FakeClock* clock,
std::min(deliver_in_ms, static_cast<int64_t>(100))));
}
+ rtc::CopyOnWriteBuffer packet_buffer(packet.data, packet.length);
++num_packets;
- switch (call->Receiver()->DeliverPacket(
- webrtc::MediaType::VIDEO,
- rtc::CopyOnWriteBuffer(packet.data, packet.length),
- /* packet_time_us */ -1)) {
+ switch (call->Receiver()->DeliverPacket(webrtc::MediaType::VIDEO,
+ packet_buffer,
+ /* packet_time_us */ -1)) {
case PacketReceiver::DELIVERY_OK:
break;
case PacketReceiver::DELIVERY_UNKNOWN_SSRC: {
- RTPHeader header;
- std::unique_ptr<RtpHeaderParser> parser(
- RtpHeaderParser::CreateForTest());
-
- parser->Parse(packet.data, packet.length, &header);
- if (unknown_packets[header.ssrc] == 0) {
- RTC_LOG(LS_ERROR) << "Unknown SSRC: " << header.ssrc;
+ webrtc::RtpPacket header;
+ header.Parse(packet_buffer);
+ if (unknown_packets[header.Ssrc()] == 0) {
+ RTC_LOG(LS_ERROR) << "Unknown SSRC: " << header.Ssrc();
}
- ++unknown_packets[header.ssrc];
+ ++unknown_packets[header.Ssrc()];
break;
}
case PacketReceiver::DELIVERY_PACKET_ERROR: {
RTC_LOG(LS_ERROR)
<< "Packet error, corrupt packets or incorrect setup?";
- RTPHeader header;
- std::unique_ptr<RtpHeaderParser> parser(
- RtpHeaderParser::CreateForTest());
- parser->Parse(packet.data, packet.length, &header);
+ webrtc::RtpPacket header;
+ header.Parse(packet_buffer);
RTC_LOG(LS_ERROR) << "Packet packet_length=" << packet.length
- << " payload_type=" << header.payloadType
- << " sequence_number=" << header.sequenceNumber
- << " time_stamp=" << header.timestamp
- << " ssrc=" << header.ssrc;
+ << " payload_type=" << header.PayloadType()
+ << " sequence_number=" << header.SequenceNumber()
+ << " time_stamp=" << header.Timestamp()
+ << " ssrc=" << header.Ssrc();
break;
}
}
diff --git a/test/rtp_header_parser.cc b/test/rtp_header_parser.cc
index 45686acb4c..6a7df4b095 100644
--- a/test/rtp_header_parser.cc
+++ b/test/rtp_header_parser.cc
@@ -9,41 +9,10 @@
*/
#include "test/rtp_header_parser.h"
-#include <memory>
-
-#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
#include "modules/rtp_rtcp/source/rtp_utility.h"
-#include "rtc_base/synchronization/mutex.h"
-#include "rtc_base/thread_annotations.h"
namespace webrtc {
-class RtpHeaderParserImpl : public RtpHeaderParser {
- public:
- RtpHeaderParserImpl();
- ~RtpHeaderParserImpl() override = default;
-
- bool Parse(const uint8_t* packet,
- size_t length,
- RTPHeader* header) const override;
-
- bool RegisterRtpHeaderExtension(RTPExtensionType type, uint8_t id) override;
- bool RegisterRtpHeaderExtension(RtpExtension extension) override;
-
- bool DeregisterRtpHeaderExtension(RTPExtensionType type) override;
- bool DeregisterRtpHeaderExtension(RtpExtension extension) override;
-
- private:
- mutable Mutex mutex_;
- RtpHeaderExtensionMap rtp_header_extension_map_ RTC_GUARDED_BY(mutex_);
-};
-
-std::unique_ptr<RtpHeaderParser> RtpHeaderParser::CreateForTest() {
- return std::make_unique<RtpHeaderParserImpl>();
-}
-
-RtpHeaderParserImpl::RtpHeaderParserImpl() {}
-
bool RtpHeaderParser::IsRtcp(const uint8_t* packet, size_t length) {
RtpUtility::RtpHeaderParser rtp_parser(packet, length);
return rtp_parser.RTCP();
@@ -59,43 +28,4 @@ absl::optional<uint32_t> RtpHeaderParser::GetSsrc(const uint8_t* packet,
return absl::nullopt;
}
-bool RtpHeaderParserImpl::Parse(const uint8_t* packet,
- size_t length,
- RTPHeader* header) const {
- RtpUtility::RtpHeaderParser rtp_parser(packet, length);
- *header = RTPHeader();
-
- RtpHeaderExtensionMap map;
- {
- MutexLock lock(&mutex_);
- map = rtp_header_extension_map_;
- }
-
- const bool valid_rtpheader = rtp_parser.Parse(header, &map);
- if (!valid_rtpheader) {
- return false;
- }
- return true;
-}
-bool RtpHeaderParserImpl::RegisterRtpHeaderExtension(RtpExtension extension) {
- MutexLock lock(&mutex_);
- return rtp_header_extension_map_.RegisterByUri(extension.id, extension.uri);
-}
-
-bool RtpHeaderParserImpl::RegisterRtpHeaderExtension(RTPExtensionType type,
- uint8_t id) {
- MutexLock lock(&mutex_);
- return rtp_header_extension_map_.RegisterByType(id, type);
-}
-
-bool RtpHeaderParserImpl::DeregisterRtpHeaderExtension(RtpExtension extension) {
- MutexLock lock(&mutex_);
- return rtp_header_extension_map_.Deregister(
- rtp_header_extension_map_.GetType(extension.id));
-}
-
-bool RtpHeaderParserImpl::DeregisterRtpHeaderExtension(RTPExtensionType type) {
- MutexLock lock(&mutex_);
- return rtp_header_extension_map_.Deregister(type) == 0;
-}
} // namespace webrtc
diff --git a/test/rtp_header_parser.h b/test/rtp_header_parser.h
index 851ccf3bc2..ca4eaf657c 100644
--- a/test/rtp_header_parser.h
+++ b/test/rtp_header_parser.h
@@ -10,44 +10,18 @@
#ifndef TEST_RTP_HEADER_PARSER_H_
#define TEST_RTP_HEADER_PARSER_H_
-#include <memory>
+#include <stddef.h>
+#include <stdint.h>
-#include "api/rtp_parameters.h"
-#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
+#include "absl/types/optional.h"
namespace webrtc {
-struct RTPHeader;
-
class RtpHeaderParser {
public:
- static std::unique_ptr<RtpHeaderParser> CreateForTest();
- virtual ~RtpHeaderParser() {}
-
// Returns true if the packet is an RTCP packet, false otherwise.
static bool IsRtcp(const uint8_t* packet, size_t length);
static absl::optional<uint32_t> GetSsrc(const uint8_t* packet, size_t length);
-
- // Parses the packet and stores the parsed packet in |header|. Returns true on
- // success, false otherwise.
- // This method is thread-safe in the sense that it can parse multiple packets
- // at once.
- virtual bool Parse(const uint8_t* packet,
- size_t length,
- RTPHeader* header) const = 0;
-
- // Registers an RTP header extension and binds it to |id|.
- virtual bool RegisterRtpHeaderExtension(RTPExtensionType type,
- uint8_t id) = 0;
-
- // Registers an RTP header extension.
- virtual bool RegisterRtpHeaderExtension(RtpExtension extension) = 0;
-
- // De-registers an RTP header extension.
- virtual bool DeregisterRtpHeaderExtension(RTPExtensionType type) = 0;
-
- // De-registers an RTP header extension.
- virtual bool DeregisterRtpHeaderExtension(RtpExtension extension) = 0;
};
} // namespace webrtc
#endif // TEST_RTP_HEADER_PARSER_H_