| 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..037ead1edf6e78fb2a272435ae4f3fd7c0417e20 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>
|
| @@ -22,51 +23,34 @@ namespace media {
|
| namespace cast {
|
| namespace transport {
|
|
|
| -class StoredPacket;
|
| -
|
| -// 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;
|
| +// Stores a list of frames. Each frame consists a list of packets.
|
| +typedef std::deque<SendPacketVector> FrameQueue;
|
|
|
| class PacketStorage {
|
| public:
|
| - PacketStorage(int stored_frames);
|
| + explicit PacketStorage(size_t 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,
|
| - PacketRef packet);
|
| + // Store all of the packets for a frame.
|
| + 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.
|
| + // It is the lowest 8 bits of a frame ID.
|
| + // 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);
|
| -
|
| - PacketMap stored_packets_;
|
| - int stored_frames_;
|
| + private:
|
| + const size_t max_stored_frames_;
|
| + FrameQueue frames_;
|
| + uint32 first_frame_id_in_list_;
|
| + uint32 last_frame_id_in_list_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(PacketStorage);
|
| };
|
|
|