OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
11 #ifndef WEBRTC_MODULES_VIDEO_CODING_FRAME_BUFFER_H_ | 11 #ifndef WEBRTC_MODULES_VIDEO_CODING_FRAME_BUFFER_H_ |
12 #define WEBRTC_MODULES_VIDEO_CODING_FRAME_BUFFER_H_ | 12 #define WEBRTC_MODULES_VIDEO_CODING_FRAME_BUFFER_H_ |
13 | 13 |
14 #include <vector> | |
15 | |
16 #include "webrtc/modules/include/module_common_types.h" | 14 #include "webrtc/modules/include/module_common_types.h" |
17 #include "webrtc/modules/video_coding/include/video_coding.h" | 15 #include "webrtc/modules/video_coding/include/video_coding.h" |
18 #include "webrtc/modules/video_coding/encoded_frame.h" | 16 #include "webrtc/modules/video_coding/encoded_frame.h" |
19 #include "webrtc/modules/video_coding/jitter_buffer_common.h" | 17 #include "webrtc/modules/video_coding/jitter_buffer_common.h" |
20 #include "webrtc/modules/video_coding/session_info.h" | 18 #include "webrtc/modules/video_coding/session_info.h" |
21 #include "webrtc/typedefs.h" | 19 #include "webrtc/typedefs.h" |
22 | 20 |
23 namespace webrtc { | 21 namespace webrtc { |
24 | 22 |
25 class VCMFrameBuffer : public VCMEncodedFrame { | 23 class VCMFrameBuffer : public VCMEncodedFrame { |
(...skipping 30 matching lines...) Expand all Loading... |
56 int32_t GetLowSeqNum() const; | 54 int32_t GetLowSeqNum() const; |
57 // Get highest packet sequence number in frame | 55 // Get highest packet sequence number in frame |
58 int32_t GetHighSeqNum() const; | 56 int32_t GetHighSeqNum() const; |
59 | 57 |
60 int PictureId() const; | 58 int PictureId() const; |
61 int TemporalId() const; | 59 int TemporalId() const; |
62 bool LayerSync() const; | 60 bool LayerSync() const; |
63 int Tl0PicId() const; | 61 int Tl0PicId() const; |
64 bool NonReference() const; | 62 bool NonReference() const; |
65 | 63 |
66 std::vector<NaluInfo> GetNaluInfos() const; | |
67 | |
68 void SetGofInfo(const GofInfoVP9& gof_info, size_t idx); | 64 void SetGofInfo(const GofInfoVP9& gof_info, size_t idx); |
69 | 65 |
70 // Increments a counter to keep track of the number of packets of this frame | 66 // Increments a counter to keep track of the number of packets of this frame |
71 // which were NACKed before they arrived. | 67 // which were NACKed before they arrived. |
72 void IncrementNackCount(); | 68 void IncrementNackCount(); |
73 // Returns the number of packets of this frame which were NACKed before they | 69 // Returns the number of packets of this frame which were NACKed before they |
74 // arrived. | 70 // arrived. |
75 int16_t GetNackCount() const; | 71 int16_t GetNackCount() const; |
76 | 72 |
77 int64_t LatestPacketTimeMs() const; | 73 int64_t LatestPacketTimeMs() const; |
78 | 74 |
79 webrtc::FrameType FrameType() const; | 75 webrtc::FrameType FrameType() const; |
80 void SetPreviousFrameLoss(); | 76 void SetPreviousFrameLoss(); |
81 | 77 |
82 // The number of packets discarded because the decoder can't make use of them. | 78 // The number of packets discarded because the decoder can't make use of them. |
83 int NotDecodablePackets() const; | 79 int NotDecodablePackets() const; |
84 | 80 |
85 private: | 81 private: |
86 void SetState(VCMFrameBufferStateEnum state); // Set state of frame | 82 void SetState(VCMFrameBufferStateEnum state); // Set state of frame |
87 | 83 |
88 VCMFrameBufferStateEnum _state; // Current state of the frame | 84 VCMFrameBufferStateEnum _state; // Current state of the frame |
89 VCMSessionInfo _sessionInfo; | 85 VCMSessionInfo _sessionInfo; |
90 uint16_t _nackCount; | 86 uint16_t _nackCount; |
91 int64_t _latestPacketTimeMs; | 87 int64_t _latestPacketTimeMs; |
92 }; | 88 }; |
93 | 89 |
94 } // namespace webrtc | 90 } // namespace webrtc |
95 | 91 |
96 #endif // WEBRTC_MODULES_VIDEO_CODING_FRAME_BUFFER_H_ | 92 #endif // WEBRTC_MODULES_VIDEO_CODING_FRAME_BUFFER_H_ |
OLD | NEW |