Commit 907d0bd1 authored by Antonio Gomes's avatar Antonio Gomes Committed by Commit Bot

Change MediaStreamVideoRendererSink to operate over MediaStreamComponent

... instead of WebMediaStreamTracker.

This is part of the effort to reduce the needless use of
public Blink APIs (wrappers) within renderer/modules.

Note that an explicit conversion to WebMediaStreamTrack is added
because the call crosses the Blink API boundary.

BUG=704136
R=guidou@chromium.org

Change-Id: I1d9d5473bab5d1e0254b1992c248d1c517c8c2df
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2236034
Commit-Queue: Antonio Gomes <tonikitoo@igalia.com>
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Auto-Submit: Antonio Gomes <tonikitoo@igalia.com>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#776103}
parent 9e6d2f82
......@@ -12,6 +12,7 @@
#include "media/base/video_frame.h"
#include "media/base/video_frame_metadata.h"
#include "media/base/video_util.h"
#include "third_party/blink/renderer/platform/mediastream/media_stream_source.h"
#include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
......@@ -133,12 +134,12 @@ class MediaStreamVideoRendererSink::FrameDeliverer {
};
MediaStreamVideoRendererSink::MediaStreamVideoRendererSink(
const WebMediaStreamTrack& video_track,
MediaStreamComponent* video_component,
const RepaintCB& repaint_cb,
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> main_render_task_runner)
: repaint_cb_(repaint_cb),
video_track_(video_track),
video_component_(video_component),
io_task_runner_(std::move(io_task_runner)),
main_render_task_runner_(std::move(main_render_task_runner)) {}
......@@ -157,7 +158,7 @@ void MediaStreamVideoRendererSink::Start() {
WTF::CrossThreadUnretained(frame_deliverer_.get())));
MediaStreamVideoSink::ConnectToTrack(
video_track_,
WebMediaStreamTrack(video_component_.Get()),
// This callback is run on IO thread. It is safe to use base::Unretained
// here because |frame_receiver_| will be destroyed on IO thread after
// sink is disconnected from track.
......@@ -167,9 +168,9 @@ void MediaStreamVideoRendererSink::Start() {
// Local display video rendering is considered a secure link.
true);
if (video_track_.Source().GetReadyState() ==
WebMediaStreamSource::kReadyStateEnded ||
!video_track_.IsEnabled()) {
if (video_component_->Source()->GetReadyState() ==
MediaStreamSource::kReadyStateEnded ||
!video_component_->Enabled()) {
PostCrossThreadTask(
*io_task_runner_, FROM_HERE,
CrossThreadBindOnce(&FrameDeliverer::RenderEndOfStream,
......
......@@ -11,9 +11,9 @@
#include "base/threading/thread_checker.h"
#include "third_party/blink/public/common/media/video_capture.h"
#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_video_renderer.h"
#include "third_party/blink/public/platform/web_media_stream_track.h"
#include "third_party/blink/public/web/modules/mediastream/media_stream_video_sink.h"
#include "third_party/blink/renderer/modules/modules_export.h"
#include "third_party/blink/renderer/platform/mediastream/media_stream_component.h"
#include "ui/gfx/geometry/size.h"
namespace base {
......@@ -39,7 +39,7 @@ class MODULES_EXPORT MediaStreamVideoRendererSink
public MediaStreamVideoSink {
public:
MediaStreamVideoRendererSink(
const WebMediaStreamTrack& video_track,
MediaStreamComponent* video_component,
const WebMediaStreamVideoRenderer::RepaintCB& repaint_cb,
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> main_render_task_runner);
......@@ -69,7 +69,7 @@ class MODULES_EXPORT MediaStreamVideoRendererSink
State GetStateForTesting();
const RepaintCB repaint_cb_;
const WebMediaStreamTrack video_track_;
Persistent<MediaStreamComponent> video_component_;
// Inner class used for transfering frames on compositor thread and running
// |repaint_cb_|.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment