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

Issue 9331003: Improving the decoder pipeline. (Closed)

Created:
8 years, 10 months ago by alexeypa (please no reviews)
Modified:
8 years, 10 months ago
Reviewers:
Wez
CC:
Jamie, chromium-reviews, jamiewalch+watch_chromium.org, dcaiafa+watch_chromium.org, simonmorris+watch_chromium.org, hclam+watch_chromium.org, wez+watch_chromium.org, amit, sanjeevr, garykac+watch_chromium.org, lambroslambrou+watch_chromium.org, alexeypa+watch_chromium.org, sergeyu+watch_chromium.org
Visibility:
Public.

Description

This CL makes several the following improvements to the Chromoting decoder pipeline: 1. Only the clipping area, not the full frame, is drawn. This reduces the risk of out of memory situation on high page zoom levels. Screen updates are also incremental including scrolling scenarios. 2. Decoders now write pixels directly to the Pepper API backing store making it one memcpy less. 3. Scaling and panning is fully controlled by the plugin. The decoder only supplies the pixels it was asked for by the plugin. BUG=109938 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=123573

Patch Set 1 #

Total comments: 38

Patch Set 2 : Redesigned FrameConsumer/FrameProducer. #

Total comments: 10

Patch Set 3 : CR feedback #

Patch Set 4 : rebased #

Total comments: 108

Patch Set 5 : CR feedback and a couple of fixes. #

Total comments: 1

Patch Set 6 : CR feedback. #

Total comments: 6

Patch Set 7 : More CR feedback. #

Total comments: 6

Patch Set 8 : A rebased fixup. #

Patch Set 9 : Integer ScaleRect #

Unified diffs Side-by-side diffs Delta from patch set Stats (+686 lines, -676 lines) Patch
M remoting/base/codec_test.cc View 1 4 chunks +12 lines, -11 lines 0 comments Download
M remoting/base/compressor_verbatim.cc View 1 chunk +1 line, -1 line 0 comments Download
M remoting/base/decoder.h View 1 2 3 4 5 2 chunks +29 lines, -27 lines 0 comments Download
M remoting/base/decoder_row_based.h View 1 3 chunks +15 lines, -6 lines 0 comments Download
M remoting/base/decoder_row_based.cc View 1 2 3 4 5 7 chunks +57 lines, -30 lines 0 comments Download
M remoting/base/decoder_vp8.h View 1 2 chunks +10 lines, -14 lines 0 comments Download
M remoting/base/decoder_vp8.cc View 1 4 chunks +35 lines, -72 lines 0 comments Download
M remoting/base/util.cc View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -2 lines 0 comments Download
M remoting/client/chromoting_client.h View 1 2 3 4 5 6 1 chunk +0 lines, -3 lines 0 comments Download
M remoting/client/chromoting_client.cc View 1 2 3 4 5 6 1 chunk +0 lines, -5 lines 0 comments Download
M remoting/client/chromoting_view.h View 1 2 3 4 5 6 2 chunks +0 lines, -15 lines 0 comments Download
M remoting/client/frame_consumer.h View 1 2 3 4 5 6 7 2 chunks +26 lines, -34 lines 0 comments Download
M remoting/client/frame_consumer_proxy.h View 1 2 3 4 5 6 1 chunk +11 lines, -10 lines 0 comments Download
M remoting/client/frame_consumer_proxy.cc View 1 2 3 4 5 6 1 chunk +22 lines, -21 lines 0 comments Download
A remoting/client/frame_producer.h View 1 2 3 4 5 6 1 chunk +51 lines, -0 lines 0 comments Download
M remoting/client/plugin/chromoting_instance.cc View 1 2 3 4 5 6 7 3 chunks +11 lines, -14 lines 0 comments Download
M remoting/client/plugin/pepper_view.h View 1 2 3 4 5 6 7 3 chunks +48 lines, -42 lines 0 comments Download
M remoting/client/plugin/pepper_view.cc View 1 2 3 4 5 6 7 4 chunks +241 lines, -212 lines 0 comments Download
M remoting/client/rectangle_update_decoder.h View 1 2 3 4 5 6 3 chunks +29 lines, -36 lines 0 comments Download
M remoting/client/rectangle_update_decoder.cc View 1 2 3 4 5 6 5 chunks +85 lines, -121 lines 0 comments Download
M remoting/remoting.gyp View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 22 (0 generated)
alexeypa (please no reviews)
Please take a look as the decoder pipeline changes. This CL is going to be ...
8 years, 10 months ago (2012-02-06 17:42:07 UTC) #1
Wez
Comments ahoy. Could you re-base after you've landed the CLs that are mixed in with ...
8 years, 10 months ago (2012-02-07 01:56:30 UTC) #2
alexeypa (please no reviews)
Could you please take a look? (It is large. Sorry). http://codereview.chromium.org/9331003/diff/1/remoting/base/codec_test.cc File remoting/base/codec_test.cc (right): http://codereview.chromium.org/9331003/diff/1/remoting/base/codec_test.cc#newcode12 ...
8 years, 10 months ago (2012-02-15 23:06:22 UTC) #3
Jamie
Some comments on the JS for starters. http://codereview.chromium.org/9331003/diff/10001/remoting/webapp/client_session.js File remoting/webapp/client_session.js (right): http://codereview.chromium.org/9331003/diff/10001/remoting/webapp/client_session.js#newcode441 remoting/webapp/client_session.js:441: // be ...
8 years, 10 months ago (2012-02-16 00:26:31 UTC) #4
alexeypa (please no reviews)
Updated. http://codereview.chromium.org/9331003/diff/10001/remoting/webapp/client_session.js File remoting/webapp/client_session.js (right): http://codereview.chromium.org/9331003/diff/10001/remoting/webapp/client_session.js#newcode441 remoting/webapp/client_session.js:441: // be roughly estimated as a ratio between ...
8 years, 10 months ago (2012-02-16 01:17:56 UTC) #5
alexeypa (please no reviews)
FYI: rebased on top the current HEAD. Wez, could you please take a look? Jamie ...
8 years, 10 months ago (2012-02-16 18:26:12 UTC) #6
Jamie
https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/webapp/client_session.js File remoting/webapp/client_session.js (right): https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/webapp/client_session.js#newcode461 remoting/webapp/client_session.js:461: var delta = Math.abs(windowOuterWidth - windowWidth * zoom_levels[i]); I'm ...
8 years, 10 months ago (2012-02-16 18:45:22 UTC) #7
alexeypa (please no reviews)
Added the last couple of fixes + CR feedback. https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/webapp/client_session.js File remoting/webapp/client_session.js (right): https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/webapp/client_session.js#newcode461 remoting/webapp/client_session.js:461: ...
8 years, 10 months ago (2012-02-16 23:58:17 UTC) #8
Jamie
Javascript looks good apart from a typo, but I'll let Wez sign off on the ...
8 years, 10 months ago (2012-02-17 00:10:34 UTC) #9
Wez
https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/base/decoder.h File remoting/base/decoder.h (right): https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/base/decoder.h#newcode50 remoting/base/decoder.h:50: // coordinates. nit: Force -> Forces https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/base/decoder.h#newcode50 remoting/base/decoder.h:50: // ...
8 years, 10 months ago (2012-02-17 23:42:17 UTC) #10
alexeypa (please no reviews)
PTAL https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/base/decoder.h File remoting/base/decoder.h (right): https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/base/decoder.h#newcode50 remoting/base/decoder.h:50: // coordinates. On 2012/02/17 23:42:17, Wez wrote: > ...
8 years, 10 months ago (2012-02-21 23:00:43 UTC) #11
Wez
My last set of comments, I expect. ;) https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/base/decoder_vp8.cc File remoting/base/decoder_vp8.cc (right): https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/base/decoder_vp8.cc#newcode149 remoting/base/decoder_vp8.cc:149: updated_region_.op(ScaleRect(clip_area, ...
8 years, 10 months ago (2012-02-23 00:11:09 UTC) #12
alexeypa (please no reviews)
PTAL. I've removed Jamie from the list of reviewers because I reverted all JS changes. ...
8 years, 10 months ago (2012-02-23 17:10:33 UTC) #13
Wez
https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/base/util.cc File remoting/base/util.cc (right): https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/base/util.cc#newcode222 remoting/base/util.cc:222: // Use floating point to up/down scale more accurately. ...
8 years, 10 months ago (2012-02-23 22:59:25 UTC) #14
alexeypa (please no reviews)
PTAL. Note that the diff was rebased so that could run it though the bots. ...
8 years, 10 months ago (2012-02-23 23:59:14 UTC) #15
Wez
LGTM, with the exception of ScaleRect(), which I'd really prefer remaining integer-only; see below. https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/base/util.cc ...
8 years, 10 months ago (2012-02-24 00:12:29 UTC) #16
alexeypa (please no reviews)
FYI https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/base/util.cc File remoting/base/util.cc (right): https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/base/util.cc#newcode222 remoting/base/util.cc:222: // Use floating point to up/down scale more ...
8 years, 10 months ago (2012-02-24 16:46:56 UTC) #17
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/alexeypa@chromium.org/9331003/47001
8 years, 10 months ago (2012-02-24 16:48:58 UTC) #18
Wez
https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/base/util.cc File remoting/base/util.cc (right): https://chromiumcodereview.appspot.com/9331003/diff/18002/remoting/base/util.cc#newcode222 remoting/base/util.cc:222: // Use floating point to up/down scale more accurately. ...
8 years, 10 months ago (2012-02-24 18:02:03 UTC) #19
commit-bot: I haz the power
Try job failure for 9331003-47001 (retry) on win_rel for step "unit_tests". It's a second try, ...
8 years, 10 months ago (2012-02-24 20:47:48 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/alexeypa@chromium.org/9331003/47001
8 years, 10 months ago (2012-02-24 21:00:07 UTC) #21
commit-bot: I haz the power
8 years, 10 months ago (2012-02-24 23:06:04 UTC) #22
Change committed as 123573

Powered by Google App Engine
This is Rietveld 408576698