| 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..fe40b24030b3cfcc2f3e613565e6df906c191eee 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 = 7;
|
| + static const uint16_t kFrameDecodedLength = 1 << kNumRefBits;
|
| +
|
| VCMDecodingState();
|
| ~VCMDecodingState();
|
| // Check for old frame
|
| @@ -52,7 +57,10 @@ 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;
|
| + bool AheadOfFramesDecodedClearedTo(uint16_t index) const;
|
|
|
| // Keep state of last decoded frame.
|
| // TODO(mikhal/stefan): create designated classes to handle these types.
|
| @@ -63,6 +71,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_[kFrameDecodedLength];
|
| + uint16_t frame_decoded_cleared_to_;
|
| };
|
|
|
| } // namespace webrtc
|
|
|