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

Issue 1148233002: [Cast] Compute utilization metrics and add performance overlay. (Closed)

Created:
5 years, 7 months ago by miu
Modified:
5 years, 7 months ago
Reviewers:
hubbe
CC:
chromium-reviews, hclam+watch_chromium.org, cbentzel+watch_chromium.org, imcheng+watch_chromium.org, hguihot+watch_chromium.org, jasonroberts+watch_google.com, avayvod+watch_chromium.org, feature-media-reviews_chromium.org, hubbe+watch_chromium.org, miu+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[Cast] Compute utilization metrics and add performance overlay. Adds computation of two frame-level utilization metrics to the software VP8 encoder in Cast: deadline utilization and lossy utilization. The first is a measure of how long the encoding of each frame takes compared to the frame duration. The second is a measure of the complexity of a frame, in terms of the quality versus encoded size trade-off. In a future change, these utilization metrics will be sent as feedback signals to the producer of the video frames, allowing the producer to adjust data volumes based on the consumer's capability throughout a session. See bug for more details. Also, this change adds an overlay display, where frame-level performance metrics are rendered in the lower-right corner of each video frame just before it is sent. This provides an "on screen display" of end-to-end system performance. This is turned on with a command line argument: --vmodule=performance_metrics_overlay=3 BUG=156767 Committed: https://crrev.com/d9e741512cd6ea56cefd0173b371d0dd29f0cce5 Cr-Commit-Position: refs/heads/master@{#330896}

Patch Set 1 : #

Total comments: 7

Patch Set 2 : Addressed hubbe's comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+529 lines, -29 lines) Patch
M media/cast/BUILD.gn View 2 chunks +6 lines, -6 lines 0 comments Download
M media/cast/cast.gyp View 1 chunk +4 lines, -0 lines 0 comments Download
M media/cast/net/cast_transport_config.h View 1 chunk +1 line, -1 line 0 comments Download
M media/cast/receiver/video_decoder_unittest.cc View 2 chunks +2 lines, -1 line 0 comments Download
M media/cast/sender/external_video_encoder.cc View 2 chunks +3 lines, -1 line 0 comments Download
M media/cast/sender/fake_software_video_encoder.h View 1 chunk +1 line, -1 line 0 comments Download
M media/cast/sender/fake_software_video_encoder.cc View 3 chunks +9 lines, -2 lines 0 comments Download
M media/cast/sender/h264_vt_encoder.cc View 2 chunks +4 lines, -1 line 0 comments Download
A media/cast/sender/performance_metrics_overlay.h View 1 chunk +66 lines, -0 lines 0 comments Download
A media/cast/sender/performance_metrics_overlay.cc View 1 1 chunk +295 lines, -0 lines 0 comments Download
A media/cast/sender/sender_encoded_frame.h View 1 chunk +46 lines, -0 lines 0 comments Download
A media/cast/sender/sender_encoded_frame.cc View 1 chunk +18 lines, -0 lines 0 comments Download
M media/cast/sender/size_adaptable_video_encoder_base.h View 1 chunk +1 line, -1 line 0 comments Download
M media/cast/sender/size_adaptable_video_encoder_base.cc View 1 chunk +1 line, -1 line 0 comments Download
M media/cast/sender/software_video_encoder.h View 3 chunks +2 lines, -2 lines 0 comments Download
M media/cast/sender/video_encoder.h View 2 chunks +4 lines, -1 line 0 comments Download
M media/cast/sender/video_encoder_impl.h View 1 chunk +0 lines, -3 lines 0 comments Download
M media/cast/sender/video_encoder_impl.cc View 1 chunk +1 line, -1 line 0 comments Download
M media/cast/sender/video_encoder_unittest.cc View 2 chunks +5 lines, -1 line 0 comments Download
M media/cast/sender/video_sender.h View 3 chunks +8 lines, -1 line 0 comments Download
M media/cast/sender/video_sender.cc View 5 chunks +15 lines, -1 line 0 comments Download
M media/cast/sender/vp8_encoder.h View 1 chunk +1 line, -1 line 0 comments Download
M media/cast/sender/vp8_encoder.cc View 3 chunks +36 lines, -3 lines 0 comments Download

Messages

Total messages: 11 (3 generated)
miu
hubbe: Get ready for some ASCII art! :)
5 years, 7 months ago (2015-05-20 20:57:11 UTC) #3
hubbe
https://codereview.chromium.org/1148233002/diff/20001/media/cast/sender/performance_metrics_overlay.cc File media/cast/sender/performance_metrics_overlay.cc (right): https://codereview.chromium.org/1148233002/diff/20001/media/cast/sender/performance_metrics_overlay.cc#newcode36 media/cast/sender/performance_metrics_overlay.cc:36: const int kDivergeDownThreshold = 32; Why not make sure ...
5 years, 7 months ago (2015-05-20 21:32:19 UTC) #4
miu
https://codereview.chromium.org/1148233002/diff/20001/media/cast/sender/performance_metrics_overlay.cc File media/cast/sender/performance_metrics_overlay.cc (right): https://codereview.chromium.org/1148233002/diff/20001/media/cast/sender/performance_metrics_overlay.cc#newcode36 media/cast/sender/performance_metrics_overlay.cc:36: const int kDivergeDownThreshold = 32; On 2015/05/20 21:32:18, hubbe ...
5 years, 7 months ago (2015-05-20 23:44:01 UTC) #5
hubbe
lgtm
5 years, 7 months ago (2015-05-20 23:52:46 UTC) #6
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1148233002/40001
5 years, 7 months ago (2015-05-21 00:16:48 UTC) #8
commit-bot: I haz the power
Committed patchset #2 (id:40001)
5 years, 7 months ago (2015-05-21 04:44:27 UTC) #9
commit-bot: I haz the power
Patchset 2 (id:??) landed as https://crrev.com/d9e741512cd6ea56cefd0173b371d0dd29f0cce5 Cr-Commit-Position: refs/heads/master@{#330896}
5 years, 7 months ago (2015-05-21 04:46:03 UTC) #10
battre
5 years, 7 months ago (2015-05-21 06:42:44 UTC) #11
Message was sent while issue was closed.
A revert of this CL (patchset #2 id:40001) has been created in
https://codereview.chromium.org/1143363005/ by battre@chromium.org.

The reason for reverting is: Reverting due to compile failure on Google Chrome
Mac builder:
../../media/cast/sender/h264_vt_encoder_unittest.cc:282:38: error: no viable
conversion from 'Callback<typename internal::BindState<typename
internal::FunctorTraits<void (MetadataRecorder::*)(scoped_ptr<EncodedFrame,
DefaultDeleter<EncodedFrame> >)>::RunnableType, typename
internal::FunctorTraits<void (MetadataRecorder::*)(scoped_ptr<EncodedFrame,
DefaultDeleter<EncodedFrame> >)>::RunType, internal::TypeList<typename
internal::CallbackParamTraits<MetadataRecorder *>::StorageType>
>::UnboundRunType>' to 'Callback<void
(scoped_ptr<media::cast::SenderEncodedFrame>)>'
  VideoEncoder::FrameEncodedCallback cb = base::Bind(
                                     ^    ~~~~~~~~~~~
../../base/callback.h:358:7: note: candidate constructor (the implicit move
constructor) not viable: no known conversion from 'base::Callback<typename
internal::BindState<typename internal::FunctorTraits<void
(MetadataRecorder::*)(scoped_ptr<EncodedFrame, DefaultDeleter<EncodedFrame>
>)>::RunnableType, typename internal::FunctorTraits<void
(MetadataRecorder::*)(scoped_ptr<EncodedFrame, DefaultDeleter<EncodedFrame>
>)>::RunType, internal::TypeList<typename
internal::CallbackParamTraits<MetadataRecorder *>::StorageType>
>::UnboundRunType>' to 'base::Callback<void
(scoped_ptr<media::cast::SenderEncodedFrame,
base::DefaultDeleter<media::cast::SenderEncodedFrame> >)> &&' for 1st argument
class Callback;

http://build.chromium.org/p/chromium.chrome/buildstatus?builder=Google%20Chro....

Powered by Google App Engine
This is Rietveld 408576698