Add move constructor and assign operator to RtpPacket

RtpPacket has CopyOnWriteBuffer and std::vector that can be moved more
efficiently than copied, thus move of the RtpPacket is also more efficient

Bug: None
Change-Id: I5509346e426cd32d0fb0649ef1a6883b7176df1d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/290726
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39053}
This commit is contained in:
Danil Chapovalov 2023-01-10 10:56:20 +01:00 committed by WebRTC LUCI CQ
parent c3891e3a4e
commit 885ededbb8
2 changed files with 11 additions and 6 deletions

View File

@ -60,8 +60,6 @@ RtpPacket::RtpPacket() : RtpPacket(nullptr, kDefaultPacketSize) {}
RtpPacket::RtpPacket(const ExtensionManager* extensions)
: RtpPacket(extensions, kDefaultPacketSize) {}
RtpPacket::RtpPacket(const RtpPacket&) = default;
RtpPacket::RtpPacket(const ExtensionManager* extensions, size_t capacity)
: extensions_(extensions ? *extensions : ExtensionManager()),
buffer_(capacity) {
@ -69,7 +67,11 @@ RtpPacket::RtpPacket(const ExtensionManager* extensions, size_t capacity)
Clear();
}
RtpPacket::~RtpPacket() {}
RtpPacket::RtpPacket(const RtpPacket&) = default;
RtpPacket::RtpPacket(RtpPacket&&) = default;
RtpPacket& RtpPacket::operator=(const RtpPacket&) = default;
RtpPacket& RtpPacket::operator=(RtpPacket&&) = default;
RtpPacket::~RtpPacket() = default;
void RtpPacket::IdentifyExtensions(ExtensionManager extensions) {
extensions_ = std::move(extensions);

View File

@ -34,11 +34,14 @@ class RtpPacket {
// stored.
RtpPacket();
explicit RtpPacket(const ExtensionManager* extensions);
RtpPacket(const RtpPacket&);
RtpPacket(const ExtensionManager* extensions, size_t capacity);
~RtpPacket();
RtpPacket& operator=(const RtpPacket&) = default;
RtpPacket(const RtpPacket&);
RtpPacket(RtpPacket&&);
RtpPacket& operator=(const RtpPacket&);
RtpPacket& operator=(RtpPacket&&);
~RtpPacket();
// Parse and copy given buffer into Packet.
// Does not require extension map to be registered (map is only required to