| Index: webrtc/modules/rtp_rtcp/source/rtp_packet.h
 | 
| diff --git a/webrtc/modules/rtp_rtcp/source/rtp_packet.h b/webrtc/modules/rtp_rtcp/source/rtp_packet.h
 | 
| index b2687ca9babae03ab437fd14b6af89df650fd0a4..f1e3dd40f90cebcf80e3abe2cd4674f06249122c 100644
 | 
| --- a/webrtc/modules/rtp_rtcp/source/rtp_packet.h
 | 
| +++ b/webrtc/modules/rtp_rtcp/source/rtp_packet.h
 | 
| @@ -13,8 +13,7 @@
 | 
|  #include <vector>
 | 
|  
 | 
|  #include "webrtc/base/basictypes.h"
 | 
| -#include "webrtc/base/buffer.h"
 | 
| -#include "webrtc/base/constructormagic.h"
 | 
| +#include "webrtc/base/copyonwritebuffer.h"
 | 
|  #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 | 
|  
 | 
|  namespace webrtc {
 | 
| @@ -33,7 +32,7 @@ class Packet {
 | 
|    bool Parse(const uint8_t* buffer, size_t size);
 | 
|  
 | 
|    // Parse and move given buffer into Packet.
 | 
| -  bool Parse(rtc::Buffer packet);
 | 
| +  bool Parse(rtc::CopyOnWriteBuffer packet);
 | 
|  
 | 
|    // Maps parsed extensions to their types to allow use of GetExtension.
 | 
|    // Used after parsing when |extensions| can't be provided until base rtp
 | 
| @@ -60,6 +59,7 @@ class Packet {
 | 
|    const uint8_t* payload() const;
 | 
|  
 | 
|    // Buffer.
 | 
| +  rtc::CopyOnWriteBuffer Buffer() const;
 | 
|    size_t capacity() const;
 | 
|    size_t size() const;
 | 
|    const uint8_t* data() const;
 | 
| @@ -70,7 +70,7 @@ class Packet {
 | 
|    void Clear();
 | 
|  
 | 
|    // Header setters.
 | 
| -  void CopyHeader(const Packet& packet);
 | 
| +  void CopyHeaderFrom(const Packet& packet);
 | 
|    void SetMarker(bool marker_bit);
 | 
|    void SetPayloadType(uint8_t payload_type);
 | 
|    void SetSequenceNumber(uint16_t seq_no);
 | 
| @@ -103,9 +103,12 @@ class Packet {
 | 
|    // Adding and getting extensions will fail until |extensions| is
 | 
|    // provided via constructor or IdentifyExtensions function.
 | 
|    explicit Packet(const ExtensionManager* extensions);
 | 
| +  Packet(const Packet&) = default;
 | 
|    Packet(const ExtensionManager* extensions, size_t capacity);
 | 
|    virtual ~Packet();
 | 
|  
 | 
| +  Packet& operator=(const Packet&) = default;
 | 
| +
 | 
|   private:
 | 
|    struct ExtensionInfo {
 | 
|      ExtensionType type;
 | 
| @@ -152,9 +155,9 @@ class Packet {
 | 
|    uint8_t num_extensions_ = 0;
 | 
|    ExtensionInfo extension_entries_[kMaxExtensionHeaders];
 | 
|    uint16_t extensions_size_ = 0;  // Unaligned.
 | 
| -  rtc::Buffer buffer_;
 | 
| +  rtc::CopyOnWriteBuffer buffer_;
 | 
|  
 | 
| -  RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(Packet);
 | 
| +  Packet() = delete;
 | 
|  };
 | 
|  
 | 
|  template <typename Extension, typename... Values>
 | 
| 
 |