Home | History | Annotate | Download | only in media
      1 // Copyright 2013 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_MEDIA_STREAM_CLIENT_H_
      6 #define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_CLIENT_H_
      7 
      8 #include "base/callback.h"
      9 #include "base/memory/ref_counted.h"
     10 #include "content/renderer/media/video_frame_provider.h"
     11 
     12 class GURL;
     13 
     14 namespace content {
     15 
     16 class MediaStreamAudioRenderer;
     17 
     18 // Define an interface for media stream client to get some information about
     19 // the media stream.
     20 class MediaStreamClient {
     21  public:
     22   // Check if the |url| is derived from a media stream object.
     23   virtual bool IsMediaStream(const GURL& url) = 0;
     24 
     25   virtual scoped_refptr<VideoFrameProvider> GetVideoFrameProvider(
     26       const GURL& url,
     27       const base::Closure& error_cb,
     28       const VideoFrameProvider::RepaintCB& repaint_cb) = 0;
     29 
     30   virtual scoped_refptr<MediaStreamAudioRenderer> GetAudioRenderer(
     31       const GURL& url) = 0;
     32 
     33  protected:
     34   virtual ~MediaStreamClient() {}
     35 };
     36 
     37 }  // namespace content
     38 
     39 #endif  // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_CLIENT_H_
     40