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

Issue 83023005: Add VideoTrackSink interface to content/public (Closed)

Created:
7 years, 1 month ago by perkj_chrome
Modified:
6 years, 11 months ago
CC:
chromium-reviews, joi+watch-content_chromium.org, feature-media-reviews_chromium.org, darin-cc_chromium.org
Visibility:
Public.

Description

Add a new VideoTrackSink interface. It expose an interface to content/public that can be used for receiving video frames from a VideoTrack. As a proof of concept this cl change the existing RtcVideoRenderer to implement this VideoTrackSink interface. This use of VideoTrackSink shows that an implementation can get video frames from both local and remote video tracks. The actual VideoTrack implementation still use the existing webrtc interface based tracks. This is a Piranha Plant cl where the end goal is to minimize the use of libjingle interfaces in the MediaStream implementation. Design doc: https://goto.google.com/qrbzy BUG=323223 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=238694

Patch Set 1 #

Patch Set 2 : #

Total comments: 43

Patch Set 3 : Renamed files and addressed comments. #

Total comments: 4

Patch Set 4 : Added AddToVideoTrack #

Total comments: 31

Patch Set 5 : Addressed Tommis comments. #

Total comments: 17

Patch Set 6 : Added OWNERS file and addressed comments. #

Total comments: 12

Patch Set 7 : Addressed jams comments. Discussion about hclams comments. #

Total comments: 2

Patch Set 8 : fix line lenght #

Patch Set 9 : Rebased #

Patch Set 10 : Fix merge error #

Unified diffs Side-by-side diffs Delta from patch set Stats (+454 lines, -138 lines) Patch
M content/content_renderer.gypi View 1 2 3 4 5 6 7 8 9 3 chunks +7 lines, -0 lines 0 comments Download
A content/public/renderer/media_stream_sink.h View 1 2 3 4 5 6 1 chunk +29 lines, -0 lines 0 comments Download
A content/public/renderer/media_stream_video_sink.h View 1 2 3 4 5 6 7 1 chunk +47 lines, -0 lines 0 comments Download
A content/public/renderer/media_stream_video_sink.cc View 1 2 3 4 5 6 1 chunk +31 lines, -0 lines 0 comments Download
M content/renderer/media/media_stream_dependency_factory.cc View 1 2 3 4 5 6 7 8 2 chunks +10 lines, -2 lines 0 comments Download
M content/renderer/media/media_stream_impl.h View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -5 lines 0 comments Download
M content/renderer/media/media_stream_impl.cc View 1 2 3 4 5 6 7 8 2 chunks +6 lines, -22 lines 0 comments Download
A content/renderer/media/media_stream_video_track.h View 1 2 3 4 5 6 7 8 1 chunk +49 lines, -0 lines 0 comments Download
A content/renderer/media/media_stream_video_track.cc View 1 2 3 4 5 6 7 8 1 chunk +47 lines, -0 lines 0 comments Download
M content/renderer/media/rtc_video_renderer.h View 1 2 4 chunks +21 lines, -27 lines 0 comments Download
M content/renderer/media/rtc_video_renderer.cc View 1 2 3 3 chunks +25 lines, -82 lines 0 comments Download
A content/renderer/media/webrtc/OWNERS View 1 2 3 4 5 1 chunk +10 lines, -0 lines 0 comments Download
A content/renderer/media/webrtc/webrtc_video_sink_adapter.h View 1 2 3 4 1 chunk +59 lines, -0 lines 0 comments Download
A content/renderer/media/webrtc/webrtc_video_sink_adapter.cc View 1 2 3 4 5 1 chunk +113 lines, -0 lines 0 comments Download

Messages

Total messages: 47 (0 generated)
perkj_chrome
Hej Just wanted to upload this to show that I have at least started thinking. ...
7 years, 1 month ago (2013-11-22 14:13:51 UTC) #1
perkj_chrome
On 2013/11/22 14:13:51, perkj wrote: > Hej > Just wanted to upload this to show ...
7 years ago (2013-11-24 19:40:51 UTC) #2
no longer working on chromium
Great work, Per, thanks for the pioneer work. Some initial comments from me. SX https://codereview.chromium.org/83023005/diff/90001/content/public/renderer/media/media_track_sink.h ...
7 years ago (2013-11-25 13:55:06 UTC) #3
Jói
Very cool! First few comments, I need to take a closer look at VideoTrack and ...
7 years ago (2013-11-25 14:06:55 UTC) #4
no longer working on chromium
Joi, should we create a content/public/renderer/media folder? or we should just put the code in ...
7 years ago (2013-11-25 15:49:02 UTC) #5
Jói
https://codereview.chromium.org/83023005/diff/90001/content/renderer/media/webrtc_videosink_adapter.h File content/renderer/media/webrtc_videosink_adapter.h (right): https://codereview.chromium.org/83023005/diff/90001/content/renderer/media/webrtc_videosink_adapter.h#newcode19 content/renderer/media/webrtc_videosink_adapter.h:19: class CONTENT_EXPORT WebRtcVideoSinkAdapter Needs documentation of role/responsibilities.
7 years ago (2013-11-25 15:50:56 UTC) #6
Jói
It should go straight in content/public/renderer. The Content API uses no subfolders below content/public/xyz where ...
7 years ago (2013-11-25 15:52:15 UTC) #7
Alpha Left Google
https://codereview.chromium.org/83023005/diff/90001/content/public/renderer/media/video_track_sink.cc File content/public/renderer/media/video_track_sink.cc (right): https://codereview.chromium.org/83023005/diff/90001/content/public/renderer/media/video_track_sink.cc#newcode8 content/public/renderer/media/video_track_sink.cc:8: #include "content/renderer/media/video_track.h" content/public cannot include content/renderer so this is ...
7 years ago (2013-11-26 04:59:31 UTC) #8
perkj_chrome
PTAL https://codereview.chromium.org/83023005/diff/90001/content/public/renderer/media/media_track_sink.h File content/public/renderer/media/media_track_sink.h (right): https://codereview.chromium.org/83023005/diff/90001/content/public/renderer/media/media_track_sink.h#newcode17 content/public/renderer/media/media_track_sink.h:17: class CONTENT_EXPORT MediaTrackSink { On 2013/11/25 14:06:55, Jói ...
7 years ago (2013-11-26 09:16:37 UTC) #9
Alpha Left Google
https://codereview.chromium.org/83023005/diff/90001/content/public/renderer/media/video_track_sink.cc File content/public/renderer/media/video_track_sink.cc (right): https://codereview.chromium.org/83023005/diff/90001/content/public/renderer/media/video_track_sink.cc#newcode8 content/public/renderer/media/video_track_sink.cc:8: #include "content/renderer/media/video_track.h" On 2013/11/26 09:16:38, perkj wrote: > On ...
7 years ago (2013-11-26 10:00:47 UTC) #10
Jói
Re multiplexing performance cost, it seems tiny to me since there is no copying, you're ...
7 years ago (2013-11-26 10:18:15 UTC) #11
Alpha Left Google
On 2013/11/26 10:18:15, Jói wrote: > Re multiplexing performance cost, it seems tiny to me ...
7 years ago (2013-11-26 10:20:35 UTC) #12
no longer working on chromium
Hi guys, the comment is for all of you, please speak out if you think ...
7 years ago (2013-11-27 10:12:41 UTC) #13
perkj_chrome
Hej What do you think is the next step? Review this and get it landed? ...
7 years ago (2013-11-27 15:29:13 UTC) #14
Jói
Review and get landed I think. I will take a look at the latest patch ...
7 years ago (2013-11-27 15:51:32 UTC) #15
perkj_chrome
Adding Tommi as suggested.
7 years ago (2013-11-27 16:00:54 UTC) #16
tommi (sloooow) - chröme
https://codereview.chromium.org/83023005/diff/150001/content/public/renderer/media_stream_sink.h File content/public/renderer/media_stream_sink.h (right): https://codereview.chromium.org/83023005/diff/150001/content/public/renderer/media_stream_sink.h#newcode14 content/public/renderer/media_stream_sink.h:14: class CONTENT_EXPORT MediaStreamSink { t'would be nice to have ...
7 years ago (2013-11-27 16:53:06 UTC) #17
Jói
https://codereview.chromium.org/83023005/diff/150001/content/public/renderer/media_stream_sink.h File content/public/renderer/media_stream_sink.h (right): https://codereview.chromium.org/83023005/diff/150001/content/public/renderer/media_stream_sink.h#newcode17 content/public/renderer/media_stream_sink.h:17: blink::WebMediaStreamSource::ReadyState state) {} On 2013/11/27 16:53:07, tommi wrote: > ...
7 years ago (2013-11-27 18:35:51 UTC) #18
Alpha Left Google
I agree with joi@ that we should try to land this as we can start ...
7 years ago (2013-11-27 22:13:15 UTC) #19
perkj_chrome
PTAL https://codereview.chromium.org/83023005/diff/150001/content/public/renderer/media_stream_sink.h File content/public/renderer/media_stream_sink.h (right): https://codereview.chromium.org/83023005/diff/150001/content/public/renderer/media_stream_sink.h#newcode14 content/public/renderer/media_stream_sink.h:14: class CONTENT_EXPORT MediaStreamSink { On 2013/11/27 16:53:07, tommi ...
7 years ago (2013-11-28 13:32:45 UTC) #20
tommi (sloooow) - chröme
lgtm https://codereview.chromium.org/83023005/diff/150001/content/public/renderer/media_stream_sink.h File content/public/renderer/media_stream_sink.h (right): https://codereview.chromium.org/83023005/diff/150001/content/public/renderer/media_stream_sink.h#newcode17 content/public/renderer/media_stream_sink.h:17: blink::WebMediaStreamSource::ReadyState state) {} On 2013/11/28 13:32:45, perkj wrote: ...
7 years ago (2013-11-28 14:32:20 UTC) #21
Jói
https://codereview.chromium.org/83023005/diff/170001/content/content_renderer.gypi File content/content_renderer.gypi (right): https://codereview.chromium.org/83023005/diff/170001/content/content_renderer.gypi#newcode652 content/content_renderer.gypi:652: 'renderer/media/webrtc/webrtc_video_sink_adapter.cc', Can you add a DEPS file for the ...
7 years ago (2013-11-28 14:37:16 UTC) #22
no longer working on chromium
One nit and one concern on the thread safe, lgtm if you address them. https://codereview.chromium.org/83023005/diff/150001/content/public/renderer/media_stream_video_sink.h ...
7 years ago (2013-11-28 15:12:34 UTC) #23
no longer working on chromium
https://codereview.chromium.org/83023005/diff/170001/content/renderer/media/media_stream_video_track.cc File content/renderer/media/media_stream_video_track.cc (right): https://codereview.chromium.org/83023005/diff/170001/content/renderer/media/media_stream_video_track.cc#newcode43 content/renderer/media/media_stream_video_track.cc:43: sinks_.erase(it); To be more specific on the racing concern, ...
7 years ago (2013-11-28 15:20:46 UTC) #24
perkj_chrome
PTAL https://codereview.chromium.org/83023005/diff/170001/content/content_renderer.gypi File content/content_renderer.gypi (right): https://codereview.chromium.org/83023005/diff/170001/content/content_renderer.gypi#newcode652 content/content_renderer.gypi:652: 'renderer/media/webrtc/webrtc_video_sink_adapter.cc', On 2013/11/28 14:37:17, Jói wrote: > Can ...
7 years ago (2013-11-29 13:29:47 UTC) #25
Jói
LGTM
7 years ago (2013-11-29 15:55:39 UTC) #26
no longer working on chromium
Per, could you please change the description of this CL? It is no longer a ...
7 years ago (2013-12-02 10:39:29 UTC) #27
perkj_chrome
jam, would you like to review the content/public and as much of the rest as ...
7 years ago (2013-12-02 13:39:07 UTC) #28
wuchengli
On 2013/12/02 13:39:07, perkj wrote: > jam, would you like to review the content/public and ...
7 years ago (2013-12-02 14:24:51 UTC) #29
jam
few high level comments 1) per http://www.chromium.org/developers/content-module/content-api, stuff should only go in content/public if the ...
7 years ago (2013-12-02 17:34:57 UTC) #30
Alpha Left Google
https://codereview.chromium.org/83023005/diff/210001/content/public/renderer/media_stream_video_sink.cc File content/public/renderer/media_stream_video_sink.cc (right): https://codereview.chromium.org/83023005/diff/210001/content/public/renderer/media_stream_video_sink.cc#newcode18 content/public/renderer/media_stream_video_sink.cc:18: video_track->AddSink(sink); track.isNull() can be true and track.extraData() can also ...
7 years ago (2013-12-02 17:44:36 UTC) #31
Jói
Thanks John. 1) Cast needs this, so it will be used in the //chrome layer. ...
7 years ago (2013-12-02 19:19:26 UTC) #32
jam
On 2013/12/02 19:19:26, Jói wrote: > Thanks John. > > 1) Cast needs this, so ...
7 years ago (2013-12-02 19:56:21 UTC) #33
Alpha Left Google
> > 1) Cast needs this, so it will be used in the //chrome layer. ...
7 years ago (2013-12-02 20:18:50 UTC) #34
Jói
>> 2) We plan to restrict usage of libjingle to just >> //content/renderer/media/webrtc, therefore the ...
7 years ago (2013-12-02 22:33:56 UTC) #35
Alpha Left Google
7 years ago (2013-12-02 22:37:17 UTC) #36
Alpha Left Google
Sorry I replied too soon. We need one more interface: expose video encoder accelerator. The ...
7 years ago (2013-12-02 22:41:12 UTC) #37
jam
lgtm with nits https://codereview.chromium.org/83023005/diff/210001/content/public/renderer/media_stream_sink.h File content/public/renderer/media_stream_sink.h (right): https://codereview.chromium.org/83023005/diff/210001/content/public/renderer/media_stream_sink.h#newcode18 content/public/renderer/media_stream_sink.h:18: class CONTENT_EXPORT MediaStreamSink { nit: I ...
7 years ago (2013-12-03 00:48:20 UTC) #38
perkj_chrome
https://codereview.chromium.org/83023005/diff/210001/content/public/renderer/media_stream_sink.h File content/public/renderer/media_stream_sink.h (right): https://codereview.chromium.org/83023005/diff/210001/content/public/renderer/media_stream_sink.h#newcode18 content/public/renderer/media_stream_sink.h:18: class CONTENT_EXPORT MediaStreamSink { On 2013/12/03 00:48:20, jam wrote: ...
7 years ago (2013-12-03 16:14:16 UTC) #39
Alpha Left Google
LGTM after our discussion. Thanks!
7 years ago (2013-12-03 17:44:40 UTC) #40
jam
https://codereview.chromium.org/83023005/diff/230001/content/public/renderer/media_stream_video_sink.h File content/public/renderer/media_stream_video_sink.h (right): https://codereview.chromium.org/83023005/diff/230001/content/public/renderer/media_stream_video_sink.h#newcode29 content/public/renderer/media_stream_video_sink.h:29: // An implementation of MediaStreamVideoSink should call AddToVideoTrack when ...
7 years ago (2013-12-03 22:00:39 UTC) #41
perkj_chrome
https://codereview.chromium.org/83023005/diff/230001/content/public/renderer/media_stream_video_sink.h File content/public/renderer/media_stream_video_sink.h (right): https://codereview.chromium.org/83023005/diff/230001/content/public/renderer/media_stream_video_sink.h#newcode29 content/public/renderer/media_stream_video_sink.h:29: // An implementation of MediaStreamVideoSink should call AddToVideoTrack when ...
7 years ago (2013-12-04 10:25:30 UTC) #42
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/perkj@chromium.org/83023005/250001
7 years ago (2013-12-04 10:26:53 UTC) #43
commit-bot: I haz the power
Failed to apply patch for content/content_renderer.gypi: While running patch -p1 --forward --force --no-backup-if-mismatch; patching file ...
7 years ago (2013-12-04 10:26:59 UTC) #44
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/perkj@chromium.org/83023005/270001
7 years ago (2013-12-04 11:15:43 UTC) #45
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/perkj@chromium.org/83023005/290001
7 years ago (2013-12-04 11:25:41 UTC) #46
commit-bot: I haz the power
7 years ago (2013-12-04 13:46:03 UTC) #47
Message was sent while issue was closed.
Change committed as 238694

Powered by Google App Engine
This is Rietveld 408576698