Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1401)

Unified Diff: webrtc/test/frame_generator.h

Issue 2348533002: Reland Replace interface VideoCapturerInput with VideoSinkInterface. (Closed)
Patch Set: Fix rtp timestamp in quality test. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/test/call_test.cc ('k') | webrtc/test/frame_generator.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/test/frame_generator.h
diff --git a/webrtc/test/frame_generator.h b/webrtc/test/frame_generator.h
index 7f20c749e8eea9b920ce8b0afde26445eaa10499..fc3f3069986bb5729a93857be8f70c96c9159a9d 100644
--- a/webrtc/test/frame_generator.h
+++ b/webrtc/test/frame_generator.h
@@ -7,12 +7,14 @@
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
-#ifndef WEBRTC_COMMON_VIDEO_TEST_FRAME_GENERATOR_H_
-#define WEBRTC_COMMON_VIDEO_TEST_FRAME_GENERATOR_H_
+#ifndef WEBRTC_TEST_FRAME_GENERATOR_H_
+#define WEBRTC_TEST_FRAME_GENERATOR_H_
#include <string>
#include <vector>
+#include "webrtc/base/criticalsection.h"
+#include "webrtc/media/base/videosourceinterface.h"
#include "webrtc/typedefs.h"
#include "webrtc/video_frame.h"
@@ -20,6 +22,25 @@ namespace webrtc {
class Clock;
namespace test {
+// FrameForwarder can be used as an implementation
+// of rtc::VideoSourceInterface<VideoFrame> where the caller controls when
+// a frame should be forwarded to its sink.
+// Currently this implementation only support one sink.
+class FrameForwarder : public rtc::VideoSourceInterface<VideoFrame> {
+ public:
+ FrameForwarder();
+ // Forwards |video_frame| to the registered |sink_|.
+ void IncomingCapturedFrame(const VideoFrame& video_frame);
+
+ private:
+ void AddOrUpdateSink(rtc::VideoSinkInterface<VideoFrame>* sink,
+ const rtc::VideoSinkWants& wants) override;
+ void RemoveSink(rtc::VideoSinkInterface<VideoFrame>* sink) override;
+
+ rtc::CriticalSection crit_;
+ rtc::VideoSinkInterface<VideoFrame>* sink_ GUARDED_BY(crit_);
+};
+
class FrameGenerator {
public:
FrameGenerator() {}
@@ -61,4 +82,4 @@ class FrameGenerator {
} // namespace test
} // namespace webrtc
-#endif // WEBRTC_COMMON_VIDEO_TEST_FRAME_GENERATOR_H_
+#endif // WEBRTC_TEST_FRAME_GENERATOR_H_
« no previous file with comments | « webrtc/test/call_test.cc ('k') | webrtc/test/frame_generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698