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_