Chromium Code Reviews| Index: webrtc/video/encoder_state_feedback.h |
| diff --git a/webrtc/video/encoder_state_feedback.h b/webrtc/video/encoder_state_feedback.h |
| index d0161daf7b0c1337ea50539e65e082dd61415347..c7dc624b57b1d0ae71be38c535281c2aec0d41c0 100644 |
| --- a/webrtc/video/encoder_state_feedback.h |
| +++ b/webrtc/video/encoder_state_feedback.h |
| @@ -20,50 +20,35 @@ |
| #include "webrtc/base/constructormagic.h" |
| #include "webrtc/base/criticalsection.h" |
| #include "webrtc/base/scoped_ptr.h" |
|
danilchap
2016/02/17 16:14:00
not needed too
pbos-webrtc
2016/02/18 16:00:29
Done.
|
| +#include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" |
| #include "webrtc/typedefs.h" |
| namespace webrtc { |
| -class EncoderStateFeedbackObserver; |
| -class RtcpIntraFrameObserver; |
| class ViEEncoder; |
| -class EncoderStateFeedback { |
| +class EncoderStateFeedback : public RtcpIntraFrameObserver { |
| public: |
| - friend class EncoderStateFeedbackObserver; |
| - |
| EncoderStateFeedback(); |
| - ~EncoderStateFeedback(); |
| // Adds an encoder to receive feedback for a set of SSRCs. |
| - void AddEncoder(const std::vector<uint32_t>& ssrc, ViEEncoder* encoder); |
| - |
| - // Removes a registered ViEEncoder. |
| - void RemoveEncoder(const ViEEncoder* encoder); |
| + void Init(const std::vector<uint32_t>& ssrc, ViEEncoder* encoder); |
| - // Returns an observer to register at the requesting class. The observer has |
| - // the same lifetime as the EncoderStateFeedback instance. |
| - RtcpIntraFrameObserver* GetRtcpIntraFrameObserver(); |
| + // Removes the registered encoder. Necessary while ViEChannel outlives |
|
danilchap
2016/02/17 16:14:00
may be write is as todo if there are plans to tear
pbos-webrtc
2016/02/18 16:00:29
Rewritten with a TODO.
|
| + // ViEEncoder. |
| + void TearDown(); |
| - protected: |
| - // Called by EncoderStateFeedbackObserver when a new key frame is requested. |
| - void OnReceivedIntraFrameRequest(uint32_t ssrc); |
| - void OnReceivedSLI(uint32_t ssrc, uint8_t picture_id); |
| - void OnReceivedRPSI(uint32_t ssrc, uint64_t picture_id); |
| - void OnLocalSsrcChanged(uint32_t old_ssrc, uint32_t new_ssrc); |
| + 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: |
| - typedef std::map<uint32_t, ViEEncoder*> SsrcEncoderMap; |
| - |
| + bool HasSsrc(uint32_t ssrc) EXCLUSIVE_LOCKS_REQUIRED(crit_); |
| rtc::CriticalSection crit_; |
| - // Instance registered at the class requesting new key frames. |
| - rtc::scoped_ptr<EncoderStateFeedbackObserver> observer_; |
| - |
| - // Maps a unique ssrc to the given encoder. |
| - SsrcEncoderMap encoders_; |
| - |
| - RTC_DISALLOW_COPY_AND_ASSIGN(EncoderStateFeedback); |
|
danilchap
2016/02/17 16:14:00
Doesn't look like EncoderStateFeedback need to be
pbos-webrtc
2016/02/18 16:00:29
Removed the include, I don't think it semantically
danilchap
2016/02/18 17:18:56
Acknowledged.
|
| + std::vector<uint32_t> ssrcs_ GUARDED_BY(crit_); |
| + ViEEncoder* vie_encoder_ GUARDED_BY(crit_); |
| }; |
| } // namespace webrtc |