Chromium Code Reviews
[email protected] (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(428)

Issue 4136010: Cleanups in the video encoding decoding code. Reenable VP8. (Closed)

Created:
10 years, 1 month ago by Sergey Ulanov
Modified:
9 years, 7 months ago
CC:
chromium-reviews, dmac, awong, garykac, Paweł Hajdan Jr., Alpha Left Google, Sergey Ulanov, pam+watch_chromium.org
Visibility:
Public.

Description

Cleanups in the video encoding decoding code. Reenable VP8. 1. Moved video-related protobuf messages from event.proto to video.proto. Removed those that we don't need anymore 2. Fixed naming for enums and some types. 3. Reenabled VP8. 4. Proper RGB-YUV converter for VP8 encoder. 5. Changed the capturer_fake to show more meaningful picture. BUG=57374 TEST=unittests Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=64700

Patch Set 1 : - #

Total comments: 10

Patch Set 2 : - #

Patch Set 3 : - #

Patch Set 4 : - #

Total comments: 38

Patch Set 5 : - #

Total comments: 1

Patch Set 6 : - #

Patch Set 7 : Fixed arm build #

Unified diffs Side-by-side diffs Delta from patch set Stats (+424 lines, -510 lines) Patch
M remoting/base/capture_data.h View 1 chunk +1 line, -1 line 0 comments Download
M remoting/base/codec_test.cc View 3 chunks +3 lines, -3 lines 0 comments Download
M remoting/base/decoder.h View 2 chunks +2 lines, -2 lines 0 comments Download
M remoting/base/decoder_row_based.h View 3 chunks +4 lines, -3 lines 0 comments Download
M remoting/base/decoder_row_based.cc View 1 2 3 4 2 chunks +6 lines, -4 lines 0 comments Download
M remoting/base/decoder_vp8.h View 1 chunk +18 lines, -21 lines 0 comments Download
M remoting/base/decoder_vp8.cc View 1 2 3 4 4 chunks +28 lines, -86 lines 0 comments Download
M remoting/base/encoder.h View 1 chunk +1 line, -12 lines 0 comments Download
M remoting/base/encoder_verbatim.h View 1 chunk +3 lines, -4 lines 0 comments Download
M remoting/base/encoder_verbatim.cc View 1 2 3 4 2 chunks +15 lines, -29 lines 0 comments Download
M remoting/base/encoder_vp8.cc View 1 2 3 4 7 chunks +47 lines, -30 lines 0 comments Download
M remoting/base/encoder_zlib.h View 1 chunk +3 lines, -4 lines 0 comments Download
M remoting/base/encoder_zlib.cc View 1 2 3 4 4 chunks +20 lines, -36 lines 0 comments Download
M remoting/base/multiple_array_input_stream_unittest.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M remoting/base/util.h View 1 chunk +1 line, -1 line 0 comments Download
M remoting/base/util.cc View 1 chunk +5 lines, -5 lines 0 comments Download
M remoting/client/chromoting_client.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M remoting/client/chromoting_view_unittest.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M remoting/client/rectangle_update_decoder.h View 2 chunks +6 lines, -6 lines 0 comments Download
M remoting/client/rectangle_update_decoder.cc View 1 2 3 4 7 chunks +19 lines, -17 lines 0 comments Download
M remoting/host/capturer.cc View 1 chunk +1 line, -1 line 0 comments Download
M remoting/host/capturer_fake.h View 1 2 3 4 2 chunks +5 lines, -4 lines 0 comments Download
M remoting/host/capturer_fake.cc View 1 2 3 4 5 3 chunks +46 lines, -12 lines 0 comments Download
M remoting/host/capturer_fake_ascii.cc View 1 chunk +1 line, -1 line 0 comments Download
M remoting/host/capturer_gdi.cc View 1 chunk +1 line, -1 line 0 comments Download
M remoting/host/capturer_linux.cc View 1 chunk +1 line, -1 line 0 comments Download
M remoting/host/capturer_mac.cc View 1 chunk +1 line, -1 line 0 comments Download
M remoting/host/client_connection.h View 1 chunk +1 line, -2 lines 0 comments Download
M remoting/host/client_connection.cc View 1 chunk +8 lines, -3 lines 0 comments Download
M remoting/host/client_connection_unittest.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M remoting/host/mock_objects.h View 1 chunk +1 line, -4 lines 0 comments Download
M remoting/host/session_manager.h View 3 chunks +3 lines, -6 lines 0 comments Download
M remoting/host/session_manager.cc View 1 2 3 2 chunks +8 lines, -9 lines 0 comments Download
M remoting/host/session_manager_unittest.cc View 1 2 3 4 3 chunks +7 lines, -11 lines 0 comments Download
M remoting/host/simple_host_process.cc View 1 2 3 4 5 6 5 chunks +24 lines, -5 lines 0 comments Download
M remoting/proto/chromotocol.gyp View 2 chunks +3 lines, -0 lines 0 comments Download
M remoting/proto/event.proto View 1 2 3 4 2 chunks +1 line, -136 lines 0 comments Download
M remoting/proto/internal.proto View 1 2 3 4 2 chunks +3 lines, -5 lines 0 comments Download
A remoting/proto/video.proto View 1 2 3 4 1 chunk +93 lines, -0 lines 0 comments Download
M remoting/protocol/host_message_dispatcher.cc View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M remoting/protocol/message_decoder_unittest.cc View 1 2 3 4 5 2 chunks +7 lines, -28 lines 0 comments Download
M remoting/remoting.gyp View 1 2 3 4 5 6 4 chunks +16 lines, -6 lines 0 comments Download

Messages

Total messages: 9 (0 generated)
Sergey Ulanov
10 years, 1 month ago (2010-10-29 00:35:19 UTC) #1
Sergey Ulanov
http://codereview.chromium.org/4136010/diff/4001/5031 File remoting/proto/video.proto (right): http://codereview.chromium.org/4136010/diff/4001/5031#newcode64 remoting/proto/video.proto:64: message VideoPacket { I intent to use this for ...
10 years, 1 month ago (2010-10-29 00:37:39 UTC) #2
Alpha Left Google
looks pretty good. This change is a bit too big, we should also separate the ...
10 years, 1 month ago (2010-10-29 08:12:05 UTC) #3
Sergey Ulanov
http://codereview.chromium.org/4136010/diff/4001/5010 File remoting/base/encoder_vp8.cc (right): http://codereview.chromium.org/4136010/diff/4001/5010#newcode128 remoting/base/encoder_vp8.cc:128: y_out[j] = clip_byte(((pixel[0] * 66 + pixel[1] * 129 ...
10 years, 1 month ago (2010-10-29 19:46:56 UTC) #4
Alpha Left Google
VP8 is not build on ARM as far as I know. Even if it does, ...
10 years, 1 month ago (2010-10-29 20:45:53 UTC) #5
awong
Yayy!!!! Thanks for cleaning up the mess I left. I owe both you and Gary ...
10 years, 1 month ago (2010-10-29 21:27:21 UTC) #6
Sergey Ulanov
On 2010/10/29 20:45:53, Alpha wrote: > VP8 is not build on ARM as far as ...
10 years, 1 month ago (2010-10-30 01:43:09 UTC) #7
Sergey Ulanov
http://codereview.chromium.org/4136010/diff/19001/20005 File remoting/base/decoder_vp8.cc (right): http://codereview.chromium.org/4136010/diff/19001/20005#newcode34 remoting/base/decoder_vp8.cc:34: const gfx::Rect& clip, int bytes_per_src_pixel) { On 2010/10/29 21:27:21, ...
10 years, 1 month ago (2010-10-30 01:43:35 UTC) #8
awong
10 years, 1 month ago (2010-11-01 20:11:58 UTC) #9
LGTM w/ nits

We should talk about the decoder/decompressor structure.

http://codereview.chromium.org/4136010/diff/19001/20005
File remoting/base/decoder_vp8.cc (right):

http://codereview.chromium.org/4136010/diff/19001/20005#newcode34
remoting/base/decoder_vp8.cc:34: const gfx::Rect& clip, int bytes_per_src_pixel)
{
On 2010/10/30 01:43:35, sergeyu wrote:
> On 2010/10/29 21:27:21, awong wrote:
> > This API was originally written to expect that we've got a subsection of the
> > frame that we're writing in to.  Do we want to DCHECK ehre that clip is the
> same
> > size as frame_ for VP8?  Even more generally, do we even want to use this
API
> > for the VP8 decoding?
> 
> Yes, I still want to use the same API for VP8 and Zlib encode, but we will
need
> to change this API a bit. I'll do this in a separate CL. I think DecodeBytes()
> should be replaced with Decode(VideoPacket* packet) where |packet| contains
one
> packet with all additional info (e.g. rect).

I'm not entirely sure I agree with that.  The thing that would be nice to avoid
is leaking the state flags, etc.s from the packet upwards.  In the previous
code, the decompressor and decoder were tightly coupled on the network packet
state.  If we could make a strong separation there, I think things will be
cleaner.

http://codereview.chromium.org/4136010/diff/30001/31022
File remoting/host/capturer_fake.cc (right):

http://codereview.chromium.org/4136010/diff/30001/31022#newcode11
remoting/host/capturer_fake.cc:11: // CapturerFake generates a white picture of
size kWidth*kHeight with a
try kWidth x kHeight, and kBoxWidth x kBoxHeight.  Using a * makes it look like
you're muliplying.

Powered by Google App Engine
This is Rietveld 408576698