Chromium Code Reviews| Index: media/cast/transport/rtp_sender/packet_storage/packet_storage.h |
| diff --git a/media/cast/transport/rtp_sender/packet_storage/packet_storage.h b/media/cast/transport/rtp_sender/packet_storage/packet_storage.h |
| index 85efc664c48b96f7574d22c456a9c8397651df78..3883e1b868a9e6231a9bd0ba1d6e5444cf492067 100644 |
| --- a/media/cast/transport/rtp_sender/packet_storage/packet_storage.h |
| +++ b/media/cast/transport/rtp_sender/packet_storage/packet_storage.h |
| @@ -5,6 +5,7 @@ |
| #ifndef MEDIA_CAST_TRANSPORT_RTP_SENDER_PACKET_STORAGE_PACKET_STORAGE_H_ |
| #define MEDIA_CAST_TRANSPORT_RTP_SENDER_PACKET_STORAGE_PACKET_STORAGE_H_ |
| +#include <deque> |
| #include <list> |
| #include <map> |
| #include <vector> |
| @@ -28,45 +29,45 @@ class StoredPacket; |
| typedef std::pair<uint32, uint16> StorageIndex; |
| typedef std::map<StorageIndex, std::pair<PacketKey, PacketRef> > PacketMap; |
| +// Stores a list of frames. Each frame consists a list of packets. |
| +typedef std::deque<SendPacketVector> FrameList; |
|
miu
2014/06/07 00:59:42
naming nit: FrameQueue or FrameDeque?
Alpha Left Google
2014/06/07 01:15:09
Done.
|
| + |
| // Frame IDs are generally stored as 8-bit values when sent over the |
| // wire. This means that having a history longer than 255 frames makes |
| // no sense. |
| -const int kMaxStoredFrames = 255; |
| +const size_t kMaxStoredFrames = 255; |
|
miu
2014/06/07 00:59:41
You can kill this. This constant is defined in ca
Alpha Left Google
2014/06/07 01:15:09
Done.
|
| class PacketStorage { |
| public: |
| - PacketStorage(int stored_frames); |
| + PacketStorage(size_t stored_frames); |
|
miu
2014/06/07 00:59:41
Need 'explicit' keyword.
miu
2014/06/07 00:59:41
This pruning/upper-limit would not be necessary if
Alpha Left Google
2014/06/07 01:15:09
I think I'll keep the current design. There is ext
miu
2014/06/07 02:00:09
SGTM for this change. The benefits I see are:
1.
|
| virtual ~PacketStorage(); |
| // Returns true if this class is configured correctly. |
| // (stored frames > 0 && stored_frames < kMaxStoredFrames) |
| bool IsValid() const; |
| - void StorePacket(uint32 frame_id, |
| - uint16 packet_id, |
| - const PacketKey& key, |
| - PacketRef packet); |
| + // Store a list of packets for a frame. |
|
miu
2014/06/07 00:59:41
nit: s/a list of/all of the/
Alpha Left Google
2014/06/07 01:15:09
Done.
|
| + void StoreFrame(uint32 frame_id, const SendPacketVector& packets); |
| - // Copies all missing packets into the packet list. |
| - void GetPackets( |
| - const MissingFramesAndPacketsMap& missing_frames_and_packets, |
| - SendPacketVector* packets_to_resend); |
| + // Returns a list of packets for a frame indexed by a 8-bits ID. |
|
miu
2014/06/07 00:59:41
s/by a 8-bits ID/by the lowest 8 bits of the ID/
Alpha Left Google
2014/06/07 01:15:09
This one unfortunately needs to be 8 bits because
|
| + // Returns NULL if the frame cannot be found. |
| + const SendPacketVector* GetFrame8(uint8 frame_id_8bits) const; |
| - // Copies packet into the packet list. |
| - bool GetPacket(uint8 frame_id_8bit, |
| - uint16 packet_id, |
| - SendPacketVector* packets); |
| - private: |
| - FRIEND_TEST_ALL_PREFIXES(PacketStorageTest, PacketContent); |
| + // Get the number of stored frames. |
| + size_t GetNumberOfStoredFrames() const; |
| - // Same as GetPacket, but takes a 32-bit frame id. |
| - bool GetPacket32(uint32 frame_id, |
| - uint16 packet_id, |
| - SendPacketVector* packets); |
| - void CleanupOldPackets(uint32 current_frame_id); |
| + // If there is only one referecne to the packet then copy the |
| + // reference and return. |
| + // Otherwise return a deep copy of the packet. |
| + static PacketRef FastCopyPacket(const PacketRef& packet); |
|
miu
2014/06/07 00:59:41
There's no need for this to be a member of this cl
Alpha Left Google
2014/06/07 01:15:09
There might be other place that needs this. And it
miu
2014/06/07 02:00:09
However, the function is static. It has no way of
|
| + private: |
| PacketMap stored_packets_; |
|
miu
2014/06/07 00:59:41
naming nit: Can we call this max_frames_to_keep_ i
miu
2014/06/07 00:59:41
This member is no longer used.
Alpha Left Google
2014/06/07 01:15:09
Done.
Alpha Left Google
2014/06/07 01:15:09
Changed it to max_stored_frames_.
|
| - int stored_frames_; |
| + size_t stored_frames_; |
|
miu
2014/06/07 00:59:42
nit: const
Alpha Left Google
2014/06/07 01:15:09
Done.
|
| + |
| + FrameList frames_; |
| + uint32 first_frame_id_in_list_; |
| + uint32 last_frame_id_in_list_; |
| DISALLOW_COPY_AND_ASSIGN(PacketStorage); |
| }; |