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 9namespace content { 10 11MockMediaStreamVideoSink::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 19MockMediaStreamVideoSink::~MockMediaStreamVideoSink() { 20} 21 22VideoCaptureDeliverFrameCB 23MockMediaStreamVideoSink::GetDeliverFrameCB() { 24 return media::BindToCurrentLoop( 25 base::Bind( 26 &MockMediaStreamVideoSink::DeliverVideoFrame, 27 weak_factory_.GetWeakPtr())); 28} 29 30void 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 41void MockMediaStreamVideoSink::OnReadyStateChanged( 42 blink::WebMediaStreamSource::ReadyState state) { 43 state_ = state; 44} 45 46void MockMediaStreamVideoSink::OnEnabledChanged(bool enabled) { 47 enabled_ = enabled; 48} 49 50} // namespace content 51