Chromium Code Reviews| Index: webrtc/modules/video_coding/main/source/decoding_state.h |
| diff --git a/webrtc/modules/video_coding/main/source/decoding_state.h b/webrtc/modules/video_coding/main/source/decoding_state.h |
| index 99ee33519530fa78d431ed3ff43a38e360af4c39..69ab92eff81d0573cd107d94a4bc2f3ae9d799fa 100644 |
| --- a/webrtc/modules/video_coding/main/source/decoding_state.h |
| +++ b/webrtc/modules/video_coding/main/source/decoding_state.h |
| @@ -21,6 +21,11 @@ class VCMPacket; |
| class VCMDecodingState { |
| public: |
| + // The max number of bits used to reference back |
| + // to a previous frame when using flexible mode. |
| + static const uint16_t kNumRefBits = 14; |
| + static const uint16_t kFrameDecodedLength = 1 << kNumRefBits; |
| + |
| VCMDecodingState(); |
| ~VCMDecodingState(); |
| // Check for old frame |
| @@ -52,7 +57,9 @@ class VCMDecodingState { |
| bool ContinuousPictureId(int picture_id) const; |
| bool ContinuousSeqNum(uint16_t seq_num) const; |
| bool ContinuousLayer(int temporal_id, int tl0_pic_id) const; |
| + bool ContinuousFrameRefs(const VCMFrameBuffer* frame) const; |
| bool UsingPictureId(const VCMFrameBuffer* frame) const; |
| + bool UsingFlexibleMode(const VCMFrameBuffer* frame) const; |
| // Keep state of last decoded frame. |
| // TODO(mikhal/stefan): create designated classes to handle these types. |
| @@ -63,6 +70,10 @@ class VCMDecodingState { |
| int tl0_pic_id_; |
| bool full_sync_; // Sync flag when temporal layers are used. |
| bool in_initial_state_; |
| + |
| + // Used to check references in flexible mode. |
| + bool frame_decoded_[1 << kNumRefBits]; |
|
sprang_webrtc
2015/09/25 09:53:15
bool frame_decoded_[kFrameDecodedLength];
philipel
2015/09/28 16:46:38
Done.
|
| + uint16_t frame_decoded_cleared_to_; |
| }; |
| } // namespace webrtc |