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

Issue 1534233002: Incorrect timestamps used by video analyzer with real camera

Created:
5 years ago by sprang_webrtc
Modified:
4 years, 3 months ago
CC:
webrtc-reviews_webrtc.org, video-team_agora.io, yujie_mao (webrtc), zhengzhonghou_agora.io, stefan-webrtc, tterriberry_mozilla.com, andresp, the sun, perkj_webrtc, mflodman
Base URL:
https://chromium.googlesource.com/external/webrtc.git@master
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Incorrect timestamps used by video analyzer with real camera VideoAnalyzer::IncomingCapturedFrame() takes a copy of a incoming frame and stores it so it can be compared to the rendered output. It does however take the copy before the timestamps have been correctly set if a real camera is used (which typically has render time set but not ntp time). This caused a lookup mismatch in RenderFrame() which results in a crash. BUG=webrtc:5348

Patch Set 1 #

Total comments: 2

Patch Set 2 : Use RenderFrame callback instead of IncomingCapturedFrame #

Total comments: 1

Patch Set 3 : Separate callback for send-side frames rather than ts demultiplexing #

Patch Set 4 : Updated to use current interfaces #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+33 lines, -20 lines) Patch
M webrtc/video/video_capture_input.cc View 1 2 3 2 chunks +5 lines, -5 lines 0 comments Download
M webrtc/video/video_quality_test.cc View 1 2 3 10 chunks +28 lines, -15 lines 2 comments Download

Messages

Total messages: 20 (5 generated)
sprang_webrtc
5 years ago (2015-12-18 16:13:15 UTC) #2
pbos-webrtc
https://codereview.webrtc.org/1534233002/diff/1/webrtc/video/video_capture_input.cc File webrtc/video/video_capture_input.cc (right): https://codereview.webrtc.org/1534233002/diff/1/webrtc/video/video_capture_input.cc#newcode98 webrtc/video/video_capture_input.cc:98: local_renderer_->RenderFrame(video_frame, 0); Use this callback instead of wrapping input, ...
5 years ago (2015-12-18 16:23:16 UTC) #3
sprang_webrtc
https://codereview.webrtc.org/1534233002/diff/1/webrtc/video/video_capture_input.cc File webrtc/video/video_capture_input.cc (right): https://codereview.webrtc.org/1534233002/diff/1/webrtc/video/video_capture_input.cc#newcode98 webrtc/video/video_capture_input.cc:98: local_renderer_->RenderFrame(video_frame, 0); On 2015/12/18 16:23:16, pbos-webrtc wrote: > Use ...
5 years ago (2015-12-18 16:52:57 UTC) #4
pbos-webrtc
lgtm https://codereview.webrtc.org/1534233002/diff/20001/webrtc/video/video_quality_test.cc File webrtc/video/video_quality_test.cc (right): https://codereview.webrtc.org/1534233002/diff/20001/webrtc/video/video_quality_test.cc#newcode170 webrtc/video/video_quality_test.cc:170: void RenderFrame(const VideoFrame& video_frame, Put a comment on ...
5 years ago (2015-12-19 11:02:34 UTC) #5
pbos-webrtc
On 2015/12/19 11:02:34, pbos-webrtc wrote: > lgtm > > https://codereview.webrtc.org/1534233002/diff/20001/webrtc/video/video_quality_test.cc > File webrtc/video/video_quality_test.cc (right): > ...
5 years ago (2015-12-19 11:03:29 UTC) #6
Dani Kirov
On 2015/12/19 11:03:29, pbos-webrtc wrote: > On 2015/12/19 11:02:34, pbos-webrtc wrote: > > lgtm > ...
5 years ago (2015-12-21 20:29:29 UTC) #7
sprang_webrtc
Added an internal proxy class implementing VideoRenderer so that we don't need to demultiplex sender ...
4 years, 11 months ago (2016-01-20 16:31:50 UTC) #8
pbos-webrtc
Dani can you check and see that this resolves your issues?
4 years, 11 months ago (2016-01-20 20:11:43 UTC) #9
sprang_webrtc
Ping?
4 years, 11 months ago (2016-01-25 14:50:06 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1534233002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1534233002/40001
4 years, 10 months ago (2016-02-26 16:20:26 UTC) #13
commit-bot: I haz the power
Exceeded global retry quota
4 years, 10 months ago (2016-02-26 16:22:41 UTC) #15
sprang_webrtc
-pbos +stefan Resurrecting this, with updated interfaces. ptal
4 years, 3 months ago (2016-08-31 16:25:14 UTC) #17
nisse-webrtc
On 2016/08/31 16:25:14, språng wrote: > -pbos +stefan > Resurrecting this, with updated interfaces. ptal ...
4 years, 3 months ago (2016-09-02 08:06:44 UTC) #18
stefan-webrtc
https://codereview.webrtc.org/1534233002/diff/60001/webrtc/video/video_quality_test.cc File webrtc/video/video_quality_test.cc (right): https://codereview.webrtc.org/1534233002/diff/60001/webrtc/video/video_quality_test.cc#newcode202 webrtc/video/video_quality_test.cc:202: frames_.push_back(video_frame); Why did we have to use a copy ...
4 years, 3 months ago (2016-09-13 07:19:53 UTC) #19
sprang_webrtc
4 years, 3 months ago (2016-09-13 08:35:26 UTC) #20
https://codereview.webrtc.org/1534233002/diff/60001/webrtc/video/video_qualit...
File webrtc/video/video_quality_test.cc (right):

https://codereview.webrtc.org/1534233002/diff/60001/webrtc/video/video_qualit...
webrtc/video/video_quality_test.cc:202: frames_.push_back(video_frame);
On 2016/09/13 07:19:53, stefan-webrtc (holmer) wrote:
> Why did we have to use a copy before but not now?

Because we now call this method after all the timestamps have all been properly
populated.
The old code relied upon ntp_time_ms being set, and that that was the timestamp
always used - which was the root cause of this bug.
Though I think this CL is now borked again, since things moved significantly
with the encoder task queue thingy :(

I'll ping you when this CL is relevant again.

Powered by Google App Engine
This is Rietveld 408576698