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

Unified Diff: content/renderer/media/webmediaplayer_ms.h

Issue 2472273002: Move passing of WebRTC rendering frames from main thread to compositor thread (Closed)
Patch Set: perkj@ and qiangchen@ comments. Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/webmediaplayer_ms.h
diff --git a/content/renderer/media/webmediaplayer_ms.h b/content/renderer/media/webmediaplayer_ms.h
index ba92086059b4a0febb21298d2fe64109e2172b5f..b54d21bfd6bc37ec1d7bd4dd9de3ea65668593ab 100644
--- a/content/renderer/media/webmediaplayer_ms.h
+++ b/content/renderer/media/webmediaplayer_ms.h
@@ -47,6 +47,7 @@ namespace content {
class MediaStreamAudioRenderer;
class MediaStreamRendererFactory;
class MediaStreamVideoRenderer;
+class RenderFrameObserver;
perkj_chrome 2016/11/14 15:19:55 This class does not seem to be used in this header
emircan 2016/11/14 22:43:32 Leftover from rebase. Removed.
class WebMediaPlayerMSCompositor;
// WebMediaPlayerMS delegates calls from WebCore::MediaPlayerPrivate to
@@ -160,9 +161,14 @@ class CONTENT_EXPORT WebMediaPlayerMS
private:
friend class WebMediaPlayerMSTest;
- // The callback for MediaStreamVideoRenderer to signal a new frame is
- // available.
- void OnFrameAvailable(const scoped_refptr<media::VideoFrame>& frame);
+ // Inner class used for transfering frames on compositor thread to
+ // |compositor_|.
+ class FrameDelivererOnCompositor;
+
+ void OnFirstFrameReceived(media::VideoRotation video_rotation,
+ bool is_opaque);
+ void OnOpacityChanged(bool is_opaque);
+
// Need repaint due to state change.
void RepaintInternal();
@@ -193,6 +199,8 @@ class CONTENT_EXPORT WebMediaPlayerMS
const base::WeakPtr<media::WebMediaPlayerDelegate> delegate_;
int delegate_id_;
+ std::unique_ptr<FrameDelivererOnCompositor> frame_deliverer_;
+
scoped_refptr<MediaStreamVideoRenderer> video_frame_provider_; // Weak
std::unique_ptr<cc_blink::WebLayerImpl> video_weblayer_;
@@ -200,10 +208,7 @@ class CONTENT_EXPORT WebMediaPlayerMS
scoped_refptr<MediaStreamAudioRenderer> audio_renderer_; // Weak
media::SkCanvasVideoRenderer video_renderer_;
- bool last_frame_opaque_;
bool paused_;
- bool render_frame_suspended_;
- bool received_first_frame_;
media::VideoRotation video_rotation_;
scoped_refptr<media::MediaLog> media_log_;

Powered by Google App Engine
This is Rietveld 408576698