Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(138)

Side by Side Diff: content/renderer/media/rtc_video_renderer.h

Issue 976233002: MediaStreamVideo*/VideoTrackAdapter and RTCVideoRenderer (small) cleanup (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_RENDERER_MEDIA_RTC_VIDEO_RENDERER_H_ 5 #ifndef CONTENT_RENDERER_MEDIA_RTC_VIDEO_RENDERER_H_
6 #define CONTENT_RENDERER_MEDIA_RTC_VIDEO_RENDERER_H_ 6 #define CONTENT_RENDERER_MEDIA_RTC_VIDEO_RENDERER_H_
7 7
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/memory/weak_ptr.h" 9 #include "base/memory/weak_ptr.h"
10 #include "content/common/content_export.h" 10 #include "content/common/content_export.h"
11 #include "content/common/media/video_capture.h" 11 #include "content/common/media/video_capture.h"
12 #include "content/public/renderer/media_stream_video_sink.h" 12 #include "content/public/renderer/media_stream_video_sink.h"
13 #include "content/renderer/media/video_frame_provider.h" 13 #include "content/renderer/media/video_frame_provider.h"
14 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" 14 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
15 #include "ui/gfx/geometry/size.h" 15 #include "ui/gfx/geometry/size.h"
16 16
17 namespace base { 17 namespace base {
18 class MessageLoopProxy; 18 class MessageLoopProxy;
19 } 19 }
20 20
21 namespace content { 21 namespace content {
22 22
23 // RTCVideoRenderer is a VideoFrameProvider designed for rendering 23 // RTCVideoRenderer is a VideoFrameProvider designed for rendering Video
24 // Video MediaStreamTracks, 24 // MediaStreamTracks [1], RTCVideoRenderer implements MediaStreamVideoSink in
25 // http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack 25 // order to render video frames provided from a MediaStreamVideoTrack, to which
wolenetz 2015/03/11 23:37:37 nit: s/ / /
mcasas 2015/03/13 01:09:34 Done.
26 // RTCVideoRenderer implements VideoTrackSink in order to render 26 // it AddToVideoTrack()s itself when the VideoFrameProvider is Start()ed
27 // video frames provided from a VideoTrack. 27 // and RemoveFromVideoTrack()s itself when the latter is Stop()ed.
28 // RTCVideoRenderer register itself as a sink to the VideoTrack when the 28 //
29 // VideoFrameProvider is started and deregisters itself when it is stopped. 29 // [1] http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack
30 //
30 // TODO(wuchengli): Add unit test. See the link below for reference. 31 // TODO(wuchengli): Add unit test. See the link below for reference.
31 // http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/media/rtc_vi 32 // http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/media/rtc_vi
32 // deo_decoder_unittest.cc?revision=180591&view=markup 33 // deo_decoder_unittest.cc?revision=180591&view=markup
33 class CONTENT_EXPORT RTCVideoRenderer 34 class CONTENT_EXPORT RTCVideoRenderer
34 : NON_EXPORTED_BASE(public VideoFrameProvider), 35 : NON_EXPORTED_BASE(public VideoFrameProvider),
35 NON_EXPORTED_BASE(public MediaStreamVideoSink) { 36 NON_EXPORTED_BASE(public MediaStreamVideoSink) {
36 public: 37 public:
37 RTCVideoRenderer(const blink::WebMediaStreamTrack& video_track, 38 RTCVideoRenderer(const blink::WebMediaStreamTrack& video_track,
38 const base::Closure& error_cb, 39 const base::Closure& error_cb,
39 const RepaintCB& repaint_cb); 40 const RepaintCB& repaint_cb);
(...skipping 10 matching lines...) Expand all
50 private: 51 private:
51 enum State { 52 enum State {
52 STARTED, 53 STARTED,
53 PAUSED, 54 PAUSED,
54 STOPPED, 55 STOPPED,
55 }; 56 };
56 57
57 void OnVideoFrame(const scoped_refptr<media::VideoFrame>& frame, 58 void OnVideoFrame(const scoped_refptr<media::VideoFrame>& frame,
58 const base::TimeTicks& estimated_capture_time); 59 const base::TimeTicks& estimated_capture_time);
59 60
60 // VideoTrackSink implementation. Called on the main thread. 61 // MediaStreamVideoSink implementation. Called on the main thread.
61 void OnReadyStateChanged( 62 void OnReadyStateChanged(
62 blink::WebMediaStreamSource::ReadyState state) override; 63 blink::WebMediaStreamSource::ReadyState state) override;
63 64
64 void RenderSignalingFrame(); 65 void RenderSignalingFrame();
65 66
66 base::Closure error_cb_; 67 const base::Closure error_cb_;
67 RepaintCB repaint_cb_; 68 const RepaintCB repaint_cb_;
68 scoped_refptr<base::MessageLoopProxy> message_loop_proxy_; 69 const scoped_refptr<base::MessageLoopProxy> message_loop_proxy_;
69 State state_; 70 State state_;
70 gfx::Size frame_size_; 71 gfx::Size frame_size_;
71 blink::WebMediaStreamTrack video_track_; 72 const blink::WebMediaStreamTrack video_track_;
72 base::WeakPtrFactory<RTCVideoRenderer> weak_factory_; 73 base::WeakPtrFactory<RTCVideoRenderer> weak_factory_;
73 74
74 DISALLOW_COPY_AND_ASSIGN(RTCVideoRenderer); 75 DISALLOW_COPY_AND_ASSIGN(RTCVideoRenderer);
75 }; 76 };
76 77
77 } // namespace content 78 } // namespace content
78 79
79 #endif // CONTENT_RENDERER_MEDIA_RTC_VIDEO_RENDERER_H_ 80 #endif // CONTENT_RENDERER_MEDIA_RTC_VIDEO_RENDERER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698