Sets up framework for decoding with errors: collects frame sizes (in number of packets) in JB and passes this information to VCMSessionInfo with rtt_ms as FrameData.
R=marpan@google.com, mikhal@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1841004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4424 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/video_coding/main/source/frame_buffer.h b/webrtc/modules/video_coding/main/source/frame_buffer.h
index 4f6f8ae..bad333c 100644
--- a/webrtc/modules/video_coding/main/source/frame_buffer.h
+++ b/webrtc/modules/video_coding/main/source/frame_buffer.h
@@ -8,8 +8,8 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#ifndef WEBRTC_MODULES_VIDEO_CODING_FRAME_BUFFER_H_
-#define WEBRTC_MODULES_VIDEO_CODING_FRAME_BUFFER_H_
+#ifndef WEBRTC_MODULES_VIDEO_CODING_MAIN_SOURCE_FRAME_BUFFER_H_
+#define WEBRTC_MODULES_VIDEO_CODING_MAIN_SOURCE_FRAME_BUFFER_H_
#include "webrtc/modules/interface/module_common_types.h"
#include "webrtc/modules/video_coding/main/source/encoded_frame.h"
@@ -17,82 +17,81 @@
#include "webrtc/modules/video_coding/main/source/session_info.h"
#include "webrtc/typedefs.h"
-namespace webrtc
-{
+namespace webrtc {
-class VCMFrameBuffer : public VCMEncodedFrame
-{
-public:
- VCMFrameBuffer();
- virtual ~VCMFrameBuffer();
+class VCMFrameBuffer : public VCMEncodedFrame {
+ public:
+ VCMFrameBuffer();
+ virtual ~VCMFrameBuffer();
- VCMFrameBuffer(VCMFrameBuffer& rhs);
+ VCMFrameBuffer(const VCMFrameBuffer& rhs);
- virtual void Reset();
+ virtual void Reset();
- VCMFrameBufferEnum InsertPacket(const VCMPacket& packet,
- int64_t timeInMs,
- bool enableDecodableState,
- uint32_t rttMs);
+ VCMFrameBufferEnum InsertPacket(const VCMPacket& packet,
+ int64_t timeInMs,
+ bool enableDecodableState,
+ const FrameData& frame_data);
- // State
- // Get current state of frame
- VCMFrameBufferStateEnum GetState() const;
- // Get current state and timestamp of frame
- VCMFrameBufferStateEnum GetState(uint32_t& timeStamp) const;
- void PrepareForDecode(bool continuous);
+ // State
+ // Get current state of frame
+ VCMFrameBufferStateEnum GetState() const;
+ // Get current state and timestamp of frame
+ VCMFrameBufferStateEnum GetState(uint32_t& timeStamp) const;
+ void PrepareForDecode(bool continuous);
- bool IsRetransmitted() const;
- bool IsSessionComplete() const;
- bool HaveFirstPacket() const;
- bool HaveLastPacket() const;
- // Makes sure the session contain a decodable stream.
- void MakeSessionDecodable();
+ bool IsRetransmitted() const;
+ bool IsSessionComplete() const;
+ bool HaveFirstPacket() const;
+ bool HaveLastPacket() const;
+ int NumPackets() const;
+ // Makes sure the session contain a decodable stream.
+ void MakeSessionDecodable();
- // Sequence numbers
- // Get lowest packet sequence number in frame
- int32_t GetLowSeqNum() const;
- // Get highest packet sequence number in frame
- int32_t GetHighSeqNum() const;
+ // Sequence numbers
+ // Get lowest packet sequence number in frame
+ int32_t GetLowSeqNum() const;
+ // Get highest packet sequence number in frame
+ int32_t GetHighSeqNum() const;
- int PictureId() const;
- int TemporalId() const;
- bool LayerSync() const;
- int Tl0PicId() const;
- bool NonReference() const;
+ int PictureId() const;
+ int TemporalId() const;
+ bool LayerSync() const;
+ int Tl0PicId() const;
+ bool NonReference() const;
- // Set counted status (as counted by JB or not)
- void SetCountedFrame(bool frameCounted);
- bool GetCountedFrame() const;
+ // Set counted status (as counted by JB or not)
+ void SetCountedFrame(bool frameCounted);
+ bool GetCountedFrame() const;
- // Increments a counter to keep track of the number of packets of this frame
- // which were NACKed before they arrived.
- void IncrementNackCount();
- // Returns the number of packets of this frame which were NACKed before they
- // arrived.
- int16_t GetNackCount() const;
+ // Increments a counter to keep track of the number of packets of this frame
+ // which were NACKed before they arrived.
+ void IncrementNackCount();
+ // Returns the number of packets of this frame which were NACKed before they
+ // arrived.
+ int16_t GetNackCount() const;
- int64_t LatestPacketTimeMs() const;
+ int64_t LatestPacketTimeMs() const;
- webrtc::FrameType FrameType() const;
- void SetPreviousFrameLoss();
+ webrtc::FrameType FrameType() const;
+ void SetPreviousFrameLoss();
- int32_t ExtractFromStorage(const EncodedVideoData& frameFromStorage);
+ int32_t ExtractFromStorage(const EncodedVideoData& frameFromStorage);
- // The number of packets discarded because the decoder can't make use of
- // them.
- int NotDecodablePackets() const;
+ // The number of packets discarded because the decoder can't make use of
+ // them.
+ int NotDecodablePackets() const;
-private:
- void SetState(VCMFrameBufferStateEnum state); // Set state of frame
+ private:
+ void SetState(VCMFrameBufferStateEnum state); // Set state of frame
- VCMFrameBufferStateEnum _state; // Current state of the frame
- bool _frameCounted; // Was this frame counted by JB?
- VCMSessionInfo _sessionInfo;
- uint16_t _nackCount;
- int64_t _latestPacketTimeMs;
+ VCMFrameBufferStateEnum _state; // Current state of the frame
+ bool _frameCounted; // Was this frame counted by JB?
+ VCMSessionInfo _sessionInfo;
+ uint16_t _nackCount;
+ int64_t _latestPacketTimeMs;
};
} // namespace webrtc
-#endif // WEBRTC_MODULES_VIDEO_CODING_FRAME_BUFFER_H_
+#endif // WEBRTC_MODULES_VIDEO_CODING_MAIN_SOURCE_FRAME_BUFFER_H_