| Index: webrtc/video/encoder_state_feedback.h
|
| diff --git a/webrtc/video/encoder_state_feedback.h b/webrtc/video/encoder_state_feedback.h
|
| index 57595a0a69a1055f04286f39560ab78d9bce26a8..c9fb9cc7476e1247bdf4d5304b4fcd470386e0d6 100644
|
| --- a/webrtc/video/encoder_state_feedback.h
|
| +++ b/webrtc/video/encoder_state_feedback.h
|
| @@ -7,10 +7,6 @@
|
| * in the file PATENTS. All contributing project authors may
|
| * be found in the AUTHORS file in the root of the source tree.
|
| */
|
| -
|
| -// TODO(mflodman) ViEEncoder has a time check to not send key frames too often,
|
| -// move the logic to this class.
|
| -
|
| #ifndef WEBRTC_VIDEO_ENCODER_STATE_FEEDBACK_H_
|
| #define WEBRTC_VIDEO_ENCODER_STATE_FEEDBACK_H_
|
|
|
| @@ -18,6 +14,7 @@
|
|
|
| #include "webrtc/base/criticalsection.h"
|
| #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
| +#include "webrtc/system_wrappers/include/clock.h"
|
| #include "webrtc/typedefs.h"
|
|
|
| namespace webrtc {
|
| @@ -26,22 +23,24 @@ class ViEEncoder;
|
|
|
| class EncoderStateFeedback : public RtcpIntraFrameObserver {
|
| public:
|
| - EncoderStateFeedback();
|
| -
|
| - // Adds an encoder to receive feedback for a set of SSRCs.
|
| - void Init(const std::vector<uint32_t>& ssrc, ViEEncoder* encoder);
|
| -
|
| + EncoderStateFeedback(Clock* clock,
|
| + const std::vector<uint32_t>& ssrcs,
|
| + ViEEncoder* encoder);
|
| void OnReceivedIntraFrameRequest(uint32_t ssrc) override;
|
| void OnReceivedSLI(uint32_t ssrc, uint8_t picture_id) override;
|
| void OnReceivedRPSI(uint32_t ssrc, uint64_t picture_id) override;
|
| void OnLocalSsrcChanged(uint32_t old_ssrc, uint32_t new_ssrc) override;
|
|
|
| private:
|
| - bool HasSsrc(uint32_t ssrc) EXCLUSIVE_LOCKS_REQUIRED(crit_);
|
| - rtc::CriticalSection crit_;
|
| + bool HasSsrc(uint32_t ssrc);
|
| + size_t GetStreamIndex(uint32_t ssrc);
|
| +
|
| + Clock* const clock_;
|
| + const std::vector<uint32_t> ssrcs_;
|
| + ViEEncoder* const vie_encoder_;
|
|
|
| - std::vector<uint32_t> ssrcs_ GUARDED_BY(crit_);
|
| - ViEEncoder* vie_encoder_ GUARDED_BY(crit_);
|
| + rtc::CriticalSection crit_;
|
| + std::vector<int64_t> time_last_intra_request_ms_ GUARDED_BY(crit_);
|
| };
|
|
|
| } // namespace webrtc
|
|
|