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 #include "content/renderer/media/mock_media_stream_video_sink.h" 6 7 #include "media/base/bind_to_current_loop.h" 8 9 namespace content { 10 11 MockMediaStreamVideoSink::MockMediaStreamVideoSink() 12 : number_of_frames_(0), 13 enabled_(true), 14 format_(media::VideoFrame::UNKNOWN), 15 state_(blink::WebMediaStreamSource::ReadyStateLive), 16 weak_factory_(this) { 17 } 18 19 MockMediaStreamVideoSink::~MockMediaStreamVideoSink() { 20 } 21 22 VideoCaptureDeliverFrameCB 23 MockMediaStreamVideoSink::GetDeliverFrameCB() { 24 return media::BindToCurrentLoop( 25 base::Bind( 26 &MockMediaStreamVideoSink::DeliverVideoFrame, 27 weak_factory_.GetWeakPtr())); 28 } 29 30 void MockMediaStreamVideoSink::DeliverVideoFrame( 31 const scoped_refptr<media::VideoFrame>& frame, 32 const media::VideoCaptureFormat& format, 33 const base::TimeTicks& estimated_capture_time) { 34 last_frame_ = frame; 35 ++number_of_frames_; 36 format_ = frame->format(); 37 frame_size_ = frame->natural_size(); 38 OnVideoFrame(); 39 } 40 41 void MockMediaStreamVideoSink::OnReadyStateChanged( 42 blink::WebMediaStreamSource::ReadyState state) { 43 state_ = state; 44 } 45 46 void MockMediaStreamVideoSink::OnEnabledChanged(bool enabled) { 47 enabled_ = enabled; 48 } 49 50 } // namespace content 51