Rename EncoderKeyFrameCallback back to EncoderRtcpFeedback

The name EncoderRtcpFeedback is more appropriate because:
1. "Callback" implies a single function exposed, which is
   not the case.
2. We intend to add OnLossNotification() to the same class.

Bug: webrtc:10501
Change-Id: I75b2e06eb070e85e872eba9fbc354aa4b68c7993
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131289
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27490}
diff --git a/video/encoder_rtcp_feedback.h b/video/encoder_rtcp_feedback.h
new file mode 100644
index 0000000..1a58a67
--- /dev/null
+++ b/video/encoder_rtcp_feedback.h
@@ -0,0 +1,55 @@
+/*
+ *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+#ifndef VIDEO_ENCODER_RTCP_FEEDBACK_H_
+#define VIDEO_ENCODER_RTCP_FEEDBACK_H_
+
+#include <vector>
+
+#include "api/media_transport_interface.h"
+#include "api/video/video_stream_encoder_interface.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
+#include "rtc_base/critical_section.h"
+#include "system_wrappers/include/clock.h"
+
+namespace webrtc {
+
+class VideoStreamEncoderInterface;
+
+// This class passes feedback (such as key frame requests or loss notifications)
+// from either Mediatransport or the RtpRtcp module.
+// TODO(bugs.webrtc.org/9719): Should be eliminated when RtpMediaTransport is
+// implemented.
+class EncoderRtcpFeedback : public RtcpIntraFrameObserver,
+                            public MediaTransportKeyFrameRequestCallback {
+ public:
+  EncoderRtcpFeedback(Clock* clock,
+                      const std::vector<uint32_t>& ssrcs,
+                      VideoStreamEncoderInterface* encoder);
+  void OnReceivedIntraFrameRequest(uint32_t ssrc) override;
+
+  // Implements MediaTransportKeyFrameRequestCallback
+  void OnKeyFrameRequested(uint64_t channel_id) override;
+
+ private:
+  bool HasSsrc(uint32_t ssrc);
+
+  Clock* const clock_;
+  const std::vector<uint32_t> ssrcs_;
+  VideoStreamEncoderInterface* const video_stream_encoder_;
+
+  rtc::CriticalSection crit_;
+  int64_t time_last_intra_request_ms_ RTC_GUARDED_BY(crit_);
+
+  const int min_keyframe_send_interval_ms_;
+};
+
+}  // namespace webrtc
+
+#endif  // VIDEO_ENCODER_RTCP_FEEDBACK_H_