Chromium Code Reviews
Help | Chromium Project | Gerrit Changes | Sign in
(2638)

Issue 2156713002: [Chromoting] Implement DualBufferFrameConsumer (Closed)

Created:
4 years ago by Yuwei
Modified:
4 years ago
Reviewers:
Sergey Ulanov
CC:
chromium-reviews, posciak+watch_chromium.org, chromoting-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[Chromoting] Implement DualBufferFrameConsumer This class uses two buffers to decode mutiple frames. It will be used by the chromoting client OpenGL renderer. BUG=385924 Committed: https://crrev.com/6d9bb4a011a2df6509c5d50ea7efc3e55f671980 Cr-Commit-Position: refs/heads/master@{#407233}

Patch Set 1 #

Total comments: 14

Patch Set 2 : Use dual buffers for frame update #

Patch Set 3 : Make SoftwareVideoRenderer able to own FrameConsumer #

Patch Set 4 : Change last_desktop_size_ only when it is changed. #

Total comments: 17

Patch Set 5 : Reviewer's Feedback #

Patch Set 6 : Remove deprecated SoftwareVideoRenderer ctor #

Total comments: 16

Patch Set 7 : Reviewer's Feedback #

Patch Set 8 : Merge ToT #

Patch Set 9 : Fix null closure bug #

Patch Set 10 : Pass RenderCallback by const ref #

Total comments: 2

Patch Set 11 : Reviewer's Feedback #

Unified diffs Side-by-side diffs Delta from patch set Stats (+446 lines, -47 lines) Patch
M remoting/client/BUILD.gn View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download
A remoting/client/dual_buffer_frame_consumer.h View 1 2 3 4 5 6 7 8 9 1 chunk +82 lines, -0 lines 0 comments Download
A remoting/client/dual_buffer_frame_consumer.cc View 1 2 3 4 5 6 7 8 9 1 chunk +112 lines, -0 lines 0 comments Download
A remoting/client/dual_buffer_frame_consumer_unittest.cc View 1 2 3 4 5 6 1 chunk +205 lines, -0 lines 0 comments Download
M remoting/client/gl_desktop.h View 1 2 3 4 5 6 7 8 9 10 3 chunks +5 lines, -4 lines 0 comments Download
M remoting/client/gl_desktop.cc View 1 2 3 4 5 6 7 1 chunk +17 lines, -19 lines 0 comments Download
M remoting/client/software_video_renderer.h View 1 2 3 4 5 2 chunks +9 lines, -11 lines 0 comments Download
M remoting/client/software_video_renderer.cc View 1 2 3 4 5 1 chunk +4 lines, -7 lines 0 comments Download
M remoting/client/software_video_renderer_unittest.cc View 1 2 3 4 5 2 chunks +6 lines, -5 lines 0 comments Download
M remoting/protocol/frame_consumer.h View 1 2 2 chunks +2 lines, -1 line 0 comments Download
M remoting/remoting_srcs.gypi View 1 2 3 4 5 6 7 1 chunk +2 lines, -0 lines 0 comments Download
M remoting/remoting_test.gypi View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 43 (20 generated)
Yuwei
ptal https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.h File remoting/client/shared_frame_video_renderer.h (right): https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.h#newcode23 remoting/client/shared_frame_video_renderer.h:23: // There is no synchronization to prevent screen ...
4 years ago (2016-07-15 20:57:12 UTC) #4
Sergey Ulanov
https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.cc File remoting/client/shared_frame_video_renderer.cc (right): https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.cc#newcode63 remoting/client/shared_frame_video_renderer.cc:63: return underlying_video_renderer_->GetFrameStatsConsumer(); How will this class get any frames, ...
4 years ago (2016-07-15 22:14:48 UTC) #5
Yuwei
https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.cc File remoting/client/shared_frame_video_renderer.cc (right): https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.cc#newcode63 remoting/client/shared_frame_video_renderer.cc:63: return underlying_video_renderer_->GetFrameStatsConsumer(); On 2016/07/15 22:14:47, Sergey Ulanov wrote: > ...
4 years ago (2016-07-15 22:55:32 UTC) #6
Yuwei
https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.h File remoting/client/shared_frame_video_renderer.h (right): https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.h#newcode23 remoting/client/shared_frame_video_renderer.h:23: // There is no synchronization to prevent screen tearing ...
4 years ago (2016-07-16 02:24:56 UTC) #7
Yuwei
https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.h File remoting/client/shared_frame_video_renderer.h (right): https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.h#newcode23 remoting/client/shared_frame_video_renderer.h:23: // There is no synchronization to prevent screen tearing ...
4 years ago (2016-07-16 02:31:00 UTC) #8
Yuwei
ptal https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.cc File remoting/client/shared_frame_video_renderer.cc (right): https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.cc#newcode63 remoting/client/shared_frame_video_renderer.cc:63: return underlying_video_renderer_->GetFrameStatsConsumer(); On 2016/07/15 22:14:47, Sergey Ulanov wrote: ...
4 years ago (2016-07-18 18:53:47 UTC) #10
Yuwei
https://codereview.chromium.org/2156713002/diff/100001/remoting/client/dual_buffer_frame_consumer.cc File remoting/client/dual_buffer_frame_consumer.cc (right): https://codereview.chromium.org/2156713002/diff/100001/remoting/client/dual_buffer_frame_consumer.cc#newcode77 remoting/client/dual_buffer_frame_consumer.cc:77: if ((reinterpret_cast<webrtc::SharedDesktopFrame*> (frame.get())) This assumes |frame| must come from ...
4 years ago (2016-07-18 22:38:35 UTC) #11
Sergey Ulanov
https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.cc File remoting/client/shared_frame_video_renderer.cc (right): https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.cc#newcode63 remoting/client/shared_frame_video_renderer.cc:63: return underlying_video_renderer_->GetFrameStatsConsumer(); On 2016/07/15 22:55:32, Yuwei wrote: > On ...
4 years ago (2016-07-20 18:39:26 UTC) #12
Yuwei
https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.cc File remoting/client/shared_frame_video_renderer.cc (right): https://codereview.chromium.org/2156713002/diff/40001/remoting/client/shared_frame_video_renderer.cc#newcode63 remoting/client/shared_frame_video_renderer.cc:63: return underlying_video_renderer_->GetFrameStatsConsumer(); On 2016/07/20 18:39:26, Sergey Ulanov wrote: > ...
4 years ago (2016-07-20 19:12:43 UTC) #13
Yuwei
ptal https://codereview.chromium.org/2156713002/diff/100001/remoting/client/dual_buffer_frame_consumer.cc File remoting/client/dual_buffer_frame_consumer.cc (right): https://codereview.chromium.org/2156713002/diff/100001/remoting/client/dual_buffer_frame_consumer.cc#newcode58 remoting/client/dual_buffer_frame_consumer.cc:58: buffer_0_ = webrtc::SharedDesktopFrame::Wrap( On 2016/07/20 18:39:26, Sergey Ulanov ...
4 years ago (2016-07-21 00:07:32 UTC) #15
Yuwei
https://codereview.chromium.org/2156713002/diff/140001/remoting/client/dual_buffer_frame_consumer.h File remoting/client/dual_buffer_frame_consumer.h (right): https://codereview.chromium.org/2156713002/diff/140001/remoting/client/dual_buffer_frame_consumer.h#newcode60 remoting/client/dual_buffer_frame_consumer.h:60: webrtc::DesktopRegion buffer_1_mask_; I'll add some comment here.
4 years ago (2016-07-21 19:00:32 UTC) #19
Sergey Ulanov
Thanks for explaining how RequestFullDesktopFrame() works. I think the code looks good. Can you please ...
4 years ago (2016-07-21 19:14:26 UTC) #20
Yuwei
https://codereview.chromium.org/2156713002/diff/140001/remoting/client/dual_buffer_frame_consumer.cc File remoting/client/dual_buffer_frame_consumer.cc (right): https://codereview.chromium.org/2156713002/diff/140001/remoting/client/dual_buffer_frame_consumer.cc#newcode110 remoting/client/dual_buffer_frame_consumer.cc:110: done.Run(); On 2016/07/21 19:14:26, Sergey Ulanov wrote: > We ...
4 years ago (2016-07-21 20:00:41 UTC) #21
Sergey Ulanov
https://codereview.chromium.org/2156713002/diff/140001/remoting/client/dual_buffer_frame_consumer.cc File remoting/client/dual_buffer_frame_consumer.cc (right): https://codereview.chromium.org/2156713002/diff/140001/remoting/client/dual_buffer_frame_consumer.cc#newcode110 remoting/client/dual_buffer_frame_consumer.cc:110: done.Run(); On 2016/07/21 20:00:41, Yuwei wrote: > On 2016/07/21 ...
4 years ago (2016-07-21 20:22:48 UTC) #22
Yuwei
On 2016/07/21 20:22:48, Sergey Ulanov wrote: > https://codereview.chromium.org/2156713002/diff/140001/remoting/client/dual_buffer_frame_consumer.cc > File remoting/client/dual_buffer_frame_consumer.cc (right): > > https://codereview.chromium.org/2156713002/diff/140001/remoting/client/dual_buffer_frame_consumer.cc#newcode110 ...
4 years ago (2016-07-21 20:49:33 UTC) #23
Sergey Ulanov
On 2016/07/21 20:49:33, Yuwei wrote: > I think this works for average rendering time but ...
4 years ago (2016-07-21 21:51:28 UTC) #24
Sergey Ulanov
4 years ago (2016-07-21 21:51:35 UTC) #25
Yuwei
ptal On 2016/07/21 20:49:33, Yuwei wrote: > I think this works for average rendering time ...
4 years ago (2016-07-22 03:38:22 UTC) #28
Sergey Ulanov
lgtm https://codereview.chromium.org/2156713002/diff/140001/remoting/client/dual_buffer_frame_consumer.cc File remoting/client/dual_buffer_frame_consumer.cc (right): https://codereview.chromium.org/2156713002/diff/140001/remoting/client/dual_buffer_frame_consumer.cc#newcode84 remoting/client/dual_buffer_frame_consumer.cc:84: // This may happen if the resolution is ...
4 years ago (2016-07-22 18:04:19 UTC) #35
Yuwei
https://codereview.chromium.org/2156713002/diff/140001/remoting/client/dual_buffer_frame_consumer.cc File remoting/client/dual_buffer_frame_consumer.cc (right): https://codereview.chromium.org/2156713002/diff/140001/remoting/client/dual_buffer_frame_consumer.cc#newcode84 remoting/client/dual_buffer_frame_consumer.cc:84: // This may happen if the resolution is changed ...
4 years ago (2016-07-22 18:35:15 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2156713002/280001
4 years ago (2016-07-22 18:36:06 UTC) #39
commit-bot: I haz the power
Committed patchset #11 (id:280001)
4 years ago (2016-07-22 19:45:23 UTC) #41
commit-bot: I haz the power
4 years ago (2016-07-22 19:47:13 UTC) #43
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/6d9bb4a011a2df6509c5d50ea7efc3e55f671980
Cr-Commit-Position: refs/heads/master@{#407233}

Powered by Google App Engine
This is Rietveld 408576698