123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #ifndef VIDEO_JBUFF_FRAME_H
- #define VIDEO_JBUFF_FRAME_H
- #include "../adaptive_jitter_buffer/video_jbuff_packet.h"
- #include "../video_common/video_encoded_image.h"
- #include <list>
- namespace AJB {
-
- enum FrameBufferStateEnum
- {
- kStateIncomplete, // frame that have one or more packet(s) stored
- kStateComplete, // frame that have all packets
- };
-
- class Frame
- {
- private:
- unsigned int _timestamp;
- int _allocSize;
- int _bufferSize;
- int _keyFrame;
- unsigned _pt;
- EncodedImage _encoded_image;
-
- FrameBufferStateEnum _state;
- PacketList _packetList;
- bool CheckFrameCompleted();
- public:
- Frame();
- ~Frame();
- unsigned int Timestamp() const { return _timestamp; };
- int IsKey() const { return _keyFrame; };
- FrameBufferStateEnum State() const { return _state; };
- const EncodedImage* Buffer() const { return &_encoded_image; }
- const int BufferSize() const { return _bufferSize; }
- FrameBufferEnum InsertPacket(std::shared_ptr<Packet>);
- void MakeFrameComplete();
- unsigned short GetLowSeqNum() const;
- unsigned short GetHighSeqNum() const;
- void Reset();
- void ToString();
- };
- }
- #endif /* VIDEO_JBUFF_FRAME_H */
|