| 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 b5981e858463e34a22dc40e971b250bdb6020268..85efc664c48b96f7574d22c456a9c8397651df78 100644
|
| --- a/media/cast/transport/rtp_sender/packet_storage/packet_storage.h
|
| +++ b/media/cast/transport/rtp_sender/packet_storage/packet_storage.h
|
| @@ -23,16 +23,25 @@ namespace cast {
|
| namespace transport {
|
|
|
| class StoredPacket;
|
| -typedef std::map<uint32, std::pair<PacketKey, PacketRef> > PacketMap;
|
| -typedef std::multimap<base::TimeTicks, uint32> TimeToPacketMap;
|
| +
|
| +// StorageIndex contains {frame_id, packet_id}.
|
| +typedef std::pair<uint32, uint16> StorageIndex;
|
| +typedef std::map<StorageIndex, std::pair<PacketKey, PacketRef> > PacketMap;
|
| +
|
| +// 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;
|
|
|
| class PacketStorage {
|
| public:
|
| - static const unsigned int kMaxStoredPackets = 1000;
|
| -
|
| - PacketStorage(base::TickClock* clock, int max_time_stored_ms);
|
| + PacketStorage(int stored_frames);
|
| 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,
|
| @@ -44,15 +53,20 @@ class PacketStorage {
|
| SendPacketVector* packets_to_resend);
|
|
|
| // Copies packet into the packet list.
|
| - bool GetPacket(uint8 frame_id, uint16 packet_id, SendPacketVector* packets);
|
| -
|
| + bool GetPacket(uint8 frame_id_8bit,
|
| + uint16 packet_id,
|
| + SendPacketVector* packets);
|
| private:
|
| - void CleanupOldPackets(base::TimeTicks now);
|
| + FRIEND_TEST_ALL_PREFIXES(PacketStorageTest, PacketContent);
|
| +
|
| + // 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);
|
|
|
| - base::TickClock* const clock_; // Not owned by this class.
|
| - base::TimeDelta max_time_stored_;
|
| PacketMap stored_packets_;
|
| - TimeToPacketMap time_to_packet_map_;
|
| + int stored_frames_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(PacketStorage);
|
| };
|
|
|