1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CONTENT_RENDERER_MEDIA_MOCK_MEDIA_STREAM_VIDEO_SINK_H_ 6#define CONTENT_RENDERER_MEDIA_MOCK_MEDIA_STREAM_VIDEO_SINK_H_ 7 8#include "content/public/renderer/media_stream_video_sink.h" 9 10#include "base/memory/weak_ptr.h" 11#include "content/common/media/video_capture.h" 12#include "media/base/video_frame.h" 13#include "testing/gmock/include/gmock/gmock.h" 14 15namespace content { 16 17class MockMediaStreamVideoSink : public MediaStreamVideoSink { 18 public: 19 MockMediaStreamVideoSink(); 20 virtual ~MockMediaStreamVideoSink(); 21 22 virtual void OnReadyStateChanged( 23 blink::WebMediaStreamSource::ReadyState state) OVERRIDE; 24 virtual void OnEnabledChanged(bool enabled) OVERRIDE; 25 26 // Triggered when OnVideoFrame(const scoped_refptr<media::VideoFrame>& frame) 27 // is called. 28 MOCK_METHOD0(OnVideoFrame, void()); 29 30 VideoCaptureDeliverFrameCB GetDeliverFrameCB(); 31 32 int number_of_frames() const { return number_of_frames_; } 33 media::VideoFrame::Format format() const { return format_; } 34 gfx::Size frame_size() const { return frame_size_; } 35 scoped_refptr<media::VideoFrame> last_frame() const { return last_frame_; }; 36 37 bool enabled() const { return enabled_; } 38 blink::WebMediaStreamSource::ReadyState state() const { return state_; } 39 40 private: 41 void DeliverVideoFrame( 42 const scoped_refptr<media::VideoFrame>& frame, 43 const media::VideoCaptureFormat& format, 44 const base::TimeTicks& estimated_capture_time); 45 46 int number_of_frames_; 47 bool enabled_; 48 media::VideoFrame::Format format_; 49 blink::WebMediaStreamSource::ReadyState state_; 50 gfx::Size frame_size_; 51 scoped_refptr<media::VideoFrame> last_frame_; 52 base::WeakPtrFactory<MockMediaStreamVideoSink> weak_factory_; 53}; 54 55} // namespace content 56 57#endif 58