| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_MEDIA_STREAM_RENDERER_FACTORY_H_ |
| #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_MEDIA_STREAM_RENDERER_FACTORY_H_ |
| |
| #include "base/macros.h" |
| #include "base/memory/scoped_refptr.h" |
| #include "third_party/blink/public/platform/modules/mediastream/web_media_stream_audio_renderer.h" |
| #include "third_party/blink/public/platform/modules/mediastream/web_media_stream_video_renderer.h" |
| #include "third_party/blink/public/platform/web_string.h" |
| #include "third_party/blink/renderer/modules/modules_export.h" |
| |
| namespace base { |
| class SingleThreadTaskRunner; |
| } // namespace base |
| |
| namespace blink { |
| |
| class WebMediaStream; |
| class WebLocalFrame; |
| |
| // MediaStreamRendererFactory is used by WebMediaPlayerMS to create audio |
| // and video feeds from a MediaStream provided an URL. The factory methods are |
| // virtual in order for Blink web tests to be able to override them. |
| class MODULES_EXPORT MediaStreamRendererFactory { |
| public: |
| MediaStreamRendererFactory(); |
| virtual ~MediaStreamRendererFactory(); |
| |
| virtual scoped_refptr<WebMediaStreamVideoRenderer> GetVideoRenderer( |
| const WebMediaStream& web_stream, |
| const WebMediaStreamVideoRenderer::RepaintCB& repaint_cb, |
| scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, |
| scoped_refptr<base::SingleThreadTaskRunner> main_render_task_runner); |
| |
| virtual scoped_refptr<WebMediaStreamAudioRenderer> GetAudioRenderer( |
| const WebMediaStream& web_stream, |
| WebLocalFrame* web_frame, |
| const WebString& device_id, |
| base::RepeatingCallback<void()> on_render_error_callback); |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(MediaStreamRendererFactory); |
| }; |
| |
| } // namespace blink |
| |
| #endif // THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_MEDIA_STREAM_RENDERER_FACTORY_H_ |