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

Issue 2205623002: Use webrtc::VideoFrame timestamp in RTCVideoEncoder (Closed)

Created:
4 years, 4 months ago by emircan
Modified:
4 years, 3 months ago
CC:
chromium-reviews, mlamouri+watch-content_chromium.org, posciak+watch_chromium.org, jam, feature-media-reviews_chromium.org, darin-cc_chromium.org, piman+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Use webrtc::VideoFrame timestamp in RTCVideoEncoder This CL fixes input timestamp mismatch in RTCVideoEncoder, which broke googAvgEncodeMs and googEncodeUsagePercent stats in webrtc-internals for hardware encoders. With this change, we start using WebRTC given timestamp() so that OveruseFrameDetector can match the timestamps and calculate the stats. BUG=597087 TEST=googAvgEncodeMs and googEncodeUsagePercent works on Mac(H264) and veyron_jerry(VP8). Committed: https://crrev.com/e3195490a63d9545fb1bfe560aa21680ba0b5843 Cr-Commit-Position: refs/heads/master@{#414589}

Patch Set 1 : #

Total comments: 4

Patch Set 2 : pbos@ comments. #

Total comments: 5

Patch Set 3 : wuchengli@ comments. #

Total comments: 2

Patch Set 4 : Change to using 90 kHZ. #

Total comments: 11

Patch Set 5 : wuchengli@ comments. #

Total comments: 2

Patch Set 6 : wuchengli@ comments. #

Patch Set 7 : Rebase. #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+35 lines, -17 lines) Patch
M content/renderer/media/gpu/rtc_video_encoder.cc View 1 2 3 4 4 chunks +17 lines, -15 lines 0 comments Download
M media/gpu/video_encode_accelerator_unittest.cc View 1 2 3 4 5 6 3 chunks +18 lines, -2 lines 1 comment Download

Messages

Total messages: 87 (59 generated)
emircan
PTAL.
4 years, 4 months ago (2016-08-01 23:25:43 UTC) #9
pbos
https://codereview.chromium.org/2205623002/diff/40001/content/renderer/media/gpu/rtc_video_encoder.cc File content/renderer/media/gpu/rtc_video_encoder.cc (right): https://codereview.chromium.org/2205623002/diff/40001/content/renderer/media/gpu/rtc_video_encoder.cc#newcode614 content/renderer/media/gpu/rtc_video_encoder.cc:614: next_frame->timestamp() * base::Time::kMicrosecondsPerMillisecond / I think you can use ...
4 years, 4 months ago (2016-08-02 00:15:52 UTC) #10
pbos
https://codereview.chromium.org/2205623002/diff/40001/media/gpu/video_encode_accelerator_unittest.cc File media/gpu/video_encode_accelerator_unittest.cc (right): https://codereview.chromium.org/2205623002/diff/40001/media/gpu/video_encode_accelerator_unittest.cc#newcode1578 media/gpu/video_encode_accelerator_unittest.cc:1578: #if defined(OS_CHROMEOS) Can you comment on why this would/should ...
4 years, 4 months ago (2016-08-02 00:16:52 UTC) #11
emircan
Re VerifyTimestamp test, I found out that we counted H264 encoded frames twice which caused ...
4 years, 4 months ago (2016-08-02 22:05:40 UTC) #17
wuchengli
https://codereview.chromium.org/2205623002/diff/80001/content/renderer/media/gpu/rtc_video_encoder.cc File content/renderer/media/gpu/rtc_video_encoder.cc (right): https://codereview.chromium.org/2205623002/diff/80001/content/renderer/media/gpu/rtc_video_encoder.cc#newcode571 content/renderer/media/gpu/rtc_video_encoder.cc:571: next_frame->video_frame_buffer()->native_handle()); What's the difference between these three timestamps? (1) ...
4 years, 4 months ago (2016-08-03 14:03:57 UTC) #20
pbos
https://codereview.chromium.org/2205623002/diff/80001/content/renderer/media/gpu/rtc_video_encoder.cc File content/renderer/media/gpu/rtc_video_encoder.cc (right): https://codereview.chromium.org/2205623002/diff/80001/content/renderer/media/gpu/rtc_video_encoder.cc#newcode571 content/renderer/media/gpu/rtc_video_encoder.cc:571: next_frame->video_frame_buffer()->native_handle()); On 2016/08/03 14:03:57, wuchengli wrote: > What's the ...
4 years, 4 months ago (2016-08-03 16:11:30 UTC) #21
emircan
https://codereview.chromium.org/2205623002/diff/80001/content/renderer/media/gpu/rtc_video_encoder.cc File content/renderer/media/gpu/rtc_video_encoder.cc (right): https://codereview.chromium.org/2205623002/diff/80001/content/renderer/media/gpu/rtc_video_encoder.cc#newcode571 content/renderer/media/gpu/rtc_video_encoder.cc:571: next_frame->video_frame_buffer()->native_handle()); On 2016/08/03 16:11:30, pbos wrote: > On 2016/08/03 ...
4 years, 4 months ago (2016-08-03 22:22:49 UTC) #22
wuchengli
https://codereview.chromium.org/2205623002/diff/80001/media/gpu/video_encode_accelerator_unittest.cc File media/gpu/video_encode_accelerator_unittest.cc (right): https://codereview.chromium.org/2205623002/diff/80001/media/gpu/video_encode_accelerator_unittest.cc#newcode1543 media/gpu/video_encode_accelerator_unittest.cc:1543: num_encoded_frames_ = num_encoded_nalus_ / 2; On 2016/08/03 14:03:57, wuchengli ...
4 years, 4 months ago (2016-08-05 02:10:29 UTC) #23
emircan
On 2016/08/05 02:10:29, wuchengli wrote: > https://codereview.chromium.org/2205623002/diff/80001/media/gpu/video_encode_accelerator_unittest.cc > File media/gpu/video_encode_accelerator_unittest.cc (right): > > https://codereview.chromium.org/2205623002/diff/80001/media/gpu/video_encode_accelerator_unittest.cc#newcode1543 > ...
4 years, 4 months ago (2016-08-09 22:05:01 UTC) #27
emircan
Friendly PING.
4 years, 4 months ago (2016-08-10 17:24:52 UTC) #31
pbos
https://codereview.chromium.org/2205623002/diff/120001/content/renderer/media/gpu/rtc_video_encoder.cc File content/renderer/media/gpu/rtc_video_encoder.cc (right): https://codereview.chromium.org/2205623002/diff/120001/content/renderer/media/gpu/rtc_video_encoder.cc#newcode614 content/renderer/media/gpu/rtc_video_encoder.cc:614: next_frame->timestamp() * base::Time::kMicrosecondsPerMillisecond / Does this have wrapping issues? ...
4 years, 4 months ago (2016-08-10 17:56:52 UTC) #32
emircan
https://codereview.chromium.org/2205623002/diff/120001/content/renderer/media/gpu/rtc_video_encoder.cc File content/renderer/media/gpu/rtc_video_encoder.cc (right): https://codereview.chromium.org/2205623002/diff/120001/content/renderer/media/gpu/rtc_video_encoder.cc#newcode614 content/renderer/media/gpu/rtc_video_encoder.cc:614: next_frame->timestamp() * base::Time::kMicrosecondsPerMillisecond / On 2016/08/10 17:56:52, pbos wrote: ...
4 years, 4 months ago (2016-08-10 22:11:52 UTC) #34
wuchengli
Pawel is OOO today. I'll check with him about the comment in H264Validator::ProcessStreamBuffer tomorrow. https://codereview.chromium.org/2205623002/diff/160001/content/renderer/media/gpu/rtc_video_encoder.cc ...
4 years, 4 months ago (2016-08-11 06:06:04 UTC) #42
emircan
https://codereview.chromium.org/2205623002/diff/160001/content/renderer/media/gpu/rtc_video_encoder.cc File content/renderer/media/gpu/rtc_video_encoder.cc (right): https://codereview.chromium.org/2205623002/diff/160001/content/renderer/media/gpu/rtc_video_encoder.cc#newcode489 content/renderer/media/gpu/rtc_video_encoder.cc:489: rtp_timestamp = capture_time_ms * kMsToRtpTimestamp; On 2016/08/11 06:06:03, wuchengli ...
4 years, 4 months ago (2016-08-11 16:49:15 UTC) #45
wuchengli
https://codereview.chromium.org/2205623002/diff/160001/media/gpu/video_encode_accelerator_unittest.cc File media/gpu/video_encode_accelerator_unittest.cc (right): https://codereview.chromium.org/2205623002/diff/160001/media/gpu/video_encode_accelerator_unittest.cc#newcode590 media/gpu/video_encode_accelerator_unittest.cc:590: ASSERT_TRUE(seen_idr_); Please add some comments to explain the assumption ...
4 years, 4 months ago (2016-08-12 15:12:25 UTC) #53
emircan
PTAL. Sorry for the delay. I was OOO last week. https://codereview.chromium.org/2205623002/diff/160001/media/gpu/video_encode_accelerator_unittest.cc File media/gpu/video_encode_accelerator_unittest.cc (right): https://codereview.chromium.org/2205623002/diff/160001/media/gpu/video_encode_accelerator_unittest.cc#newcode590 ...
4 years, 4 months ago (2016-08-24 21:29:17 UTC) #57
wuchengli
lgtm
4 years, 4 months ago (2016-08-25 06:15:30 UTC) #60
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/2205623002/220001
4 years, 4 months ago (2016-08-25 06:29:17 UTC) #62
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/245807)
4 years, 4 months ago (2016-08-25 06:35:27 UTC) #64
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/2205623002/220001
4 years, 3 months ago (2016-08-25 15:28:56 UTC) #66
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/246099)
4 years, 3 months ago (2016-08-25 15:35:40 UTC) #68
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/2205623002/260001
4 years, 3 months ago (2016-08-25 19:52:20 UTC) #77
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/281365)
4 years, 3 months ago (2016-08-25 22:22:55 UTC) #79
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/2205623002/260001
4 years, 3 months ago (2016-08-25 22:42:00 UTC) #81
commit-bot: I haz the power
Committed patchset #7 (id:260001)
4 years, 3 months ago (2016-08-26 00:11:49 UTC) #83
commit-bot: I haz the power
Patchset 7 (id:??) landed as https://crrev.com/e3195490a63d9545fb1bfe560aa21680ba0b5843 Cr-Commit-Position: refs/heads/master@{#414589}
4 years, 3 months ago (2016-08-26 00:13:11 UTC) #85
Pawel Osciak
https://codereview.chromium.org/2205623002/diff/260001/media/gpu/video_encode_accelerator_unittest.cc File media/gpu/video_encode_accelerator_unittest.cc (right): https://codereview.chromium.org/2205623002/diff/260001/media/gpu/video_encode_accelerator_unittest.cc#newcode596 media/gpu/video_encode_accelerator_unittest.cc:596: // Stream may contain at most one frame. If ...
4 years, 3 months ago (2016-08-26 02:00:45 UTC) #86
emircan
4 years, 3 months ago (2016-08-31 17:53:24 UTC) #87
Message was sent while issue was closed.
A revert of this CL (patchset #7 id:260001) has been created in
https://codereview.chromium.org/2296273002/ by emircan@chromium.org.

The reason for reverting is: This CL caused some regressions regarding BWE stats
and HW encoder
performance. Reasons include:
1) Modifying scoped_refptr<media::VideoFrame>'s timestamp causes problems
for other clients using the same media::VideoFrame.
2) WebRTC's RTP timestamp isn't suitable for using as presentation timestamp
in Mac and Win HW encoders.

BUG=641230.

Powered by Google App Engine
This is Rietveld 408576698