12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #ifndef MODULES_VIDEO_CODING_TIMESTAMP_MAP_H_
- #define MODULES_VIDEO_CODING_TIMESTAMP_MAP_H_
- #include <memory>
- namespace webrtc {
- struct VCMFrameInformation;
- class VCMTimestampMap {
- public:
- explicit VCMTimestampMap(size_t capacity);
- ~VCMTimestampMap();
- void Add(uint32_t timestamp, VCMFrameInformation* data);
- VCMFrameInformation* Pop(uint32_t timestamp);
- private:
- struct TimestampDataTuple {
- uint32_t timestamp;
- VCMFrameInformation* data;
- };
- bool IsEmpty() const;
- std::unique_ptr<TimestampDataTuple[]> ring_buffer_;
- const size_t capacity_;
- size_t next_add_idx_;
- size_t next_pop_idx_;
- };
- }
- #endif
|