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

Issue 280993002: [Cast] Repair receiver playout time calculations and frame skip logic. (Closed)

Created:
6 years, 7 months ago by miu
Modified:
6 years, 7 months ago
CC:
chromium-reviews, hclam+watch_chromium.org, imcheng+watch_chromium.org, hguihot+watch_chromium.org, jasonroberts+watch_google.com, avayvod+watch_chromium.org, pwestin+watch_google.com, feature-media-reviews_chromium.org, miu+watch_chromium.org, hubbe+watch_chromium.org, mikhal+watch_chromium.org
Visibility:
Public.

Description

[Cast] Repair receiver playout time calculations and frame skip logic. Fixed playout time calculations by relying on the sender reports in order to compute reliable capture timestamps in terms of the local clock. Added a ClockDriftSmoother to smooth out jitter/skew in the "NTP to local clock TimeTicks" conversions. Used the same to provide a gradual timeline shift in the case where a receiver had to "hack up" playout times before the first sender report was processed. As proof-of-concept, also added playout_time "smoothness" testing to the End2EndTest's. Both first and second order effects are tested. Miscellaneous clean-ups and fixes in timing code throughout media/cast. BUG=356942 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=272893

Patch Set 1 #

Total comments: 23

Patch Set 2 : Addressed hubbe's comments. #

Total comments: 8

Patch Set 3 : rebase + introduced ClockDriftSmoother to improve clock offset logic and lip-sync hack #

Patch Set 4 : Added playout_time smoothness checks in End2EndTest. #

Total comments: 1

Patch Set 5 : Separate End2EndTest for playout smoothness. #

Patch Set 6 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+783 lines, -599 lines) Patch
M media/cast/audio_receiver/audio_receiver.h View 1 2 6 chunks +40 lines, -16 lines 0 comments Download
M media/cast/audio_receiver/audio_receiver.cc View 1 2 3 4 5 8 chunks +55 lines, -81 lines 0 comments Download
M media/cast/audio_receiver/audio_receiver_unittest.cc View 1 2 10 chunks +76 lines, -45 lines 0 comments Download
M media/cast/audio_sender/audio_sender_unittest.cc View 1 2 3 4 5 2 chunks +1 line, -4 lines 0 comments Download
A media/cast/base/clock_drift_smoother.h View 1 2 1 chunk +52 lines, -0 lines 0 comments Download
A media/cast/base/clock_drift_smoother.cc View 1 2 1 chunk +58 lines, -0 lines 0 comments Download
M media/cast/cast.gyp View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
M media/cast/cast_defines.h View 1 2 2 chunks +18 lines, -4 lines 0 comments Download
M media/cast/rtcp/rtcp.h View 1 2 3 4 5 4 chunks +38 lines, -20 lines 0 comments Download
M media/cast/rtcp/rtcp.cc View 1 2 8 chunks +62 lines, -69 lines 0 comments Download
M media/cast/rtcp/rtcp_unittest.cc View 1 2 3 chunks +13 lines, -104 lines 0 comments Download
M media/cast/test/end2end_unittest.cc View 1 2 3 4 31 chunks +166 lines, -82 lines 0 comments Download
M media/cast/test/receiver.cc View 1 2 4 chunks +20 lines, -4 lines 0 comments Download
M media/cast/test/skewed_tick_clock.cc View 1 2 1 chunk +2 lines, -1 line 0 comments Download
M media/cast/transport/cast_transport_config.h View 1 2 1 chunk +1 line, -2 lines 0 comments Download
M media/cast/video_receiver/video_receiver.h View 1 2 6 chunks +40 lines, -15 lines 0 comments Download
M media/cast/video_receiver/video_receiver.cc View 1 2 3 4 5 10 chunks +48 lines, -95 lines 0 comments Download
M media/cast/video_receiver/video_receiver_unittest.cc View 1 2 9 chunks +90 lines, -54 lines 0 comments Download
M media/cast/video_sender/video_sender_unittest.cc View 1 2 3 4 5 2 chunks +1 line, -3 lines 0 comments Download

Messages

Total messages: 36 (0 generated)
miu
hubbe/hclam: PTAL. https://codereview.chromium.org/280993002/diff/1/media/cast/audio_receiver/audio_receiver.cc File media/cast/audio_receiver/audio_receiver.cc (left): https://codereview.chromium.org/280993002/diff/1/media/cast/audio_receiver/audio_receiver.cc#oldcode192 media/cast/audio_receiver/audio_receiver.cc:192: if (!is_waiting_for_consecutive_frame_) { Explanation for "unnecessary factoring" ...
6 years, 7 months ago (2014-05-13 23:19:02 UTC) #1
hubbe
First pass https://codereview.chromium.org/280993002/diff/1/media/cast/audio_receiver/audio_receiver.cc File media/cast/audio_receiver/audio_receiver.cc (right): https://codereview.chromium.org/280993002/diff/1/media/cast/audio_receiver/audio_receiver.cc#newcode167 media/cast/audio_receiver/audio_receiver.cc:167: if (!is_consecutively_next_frame && Hmm, I think the ...
6 years, 7 months ago (2014-05-14 23:12:23 UTC) #2
Alpha Left Google
hubbe is already reviewing this, i'll defer to him.
6 years, 7 months ago (2014-05-15 21:49:54 UTC) #3
miu
hubbe: PTAL. https://codereview.chromium.org/280993002/diff/1/media/cast/audio_receiver/audio_receiver.cc File media/cast/audio_receiver/audio_receiver.cc (right): https://codereview.chromium.org/280993002/diff/1/media/cast/audio_receiver/audio_receiver.cc#newcode167 media/cast/audio_receiver/audio_receiver.cc:167: if (!is_consecutively_next_frame && On 2014/05/14 23:12:23, hubbe ...
6 years, 7 months ago (2014-05-16 22:45:48 UTC) #4
hubbe
https://codereview.chromium.org/280993002/diff/1/media/cast/rtcp/rtcp.h File media/cast/rtcp/rtcp.h (right): https://codereview.chromium.org/280993002/diff/1/media/cast/rtcp/rtcp.h#newcode197 media/cast/rtcp/rtcp.h:197: uint64 last_report_ntp_time_; On 2014/05/16 22:45:47, miu wrote: > On ...
6 years, 7 months ago (2014-05-19 17:52:20 UTC) #5
miu
hubbe: Ready for another look. Notice the new "proof of concept" additions to the End2EndTest's. ...
6 years, 7 months ago (2014-05-23 03:09:00 UTC) #6
hubbe
https://codereview.chromium.org/280993002/diff/60001/media/cast/base/clock_drift_smoother.h File media/cast/base/clock_drift_smoother.h (right): https://codereview.chromium.org/280993002/diff/60001/media/cast/base/clock_drift_smoother.h#newcode13 media/cast/base/clock_drift_smoother.h:13: // Tracks the jitter and drift between clocks, providing ...
6 years, 7 months ago (2014-05-23 19:46:25 UTC) #7
miu
hubbe: I made a separate, explicit End2EndTest for the playout smoothness (and took the smoothness ...
6 years, 7 months ago (2014-05-23 23:06:54 UTC) #8
hubbe
LGE (My father used to say "Looks Good Enough", when building things...) I suspect that ...
6 years, 7 months ago (2014-05-23 23:19:03 UTC) #9
miu
The CQ bit was checked by miu@chromium.org
6 years, 7 months ago (2014-05-23 23:21:53 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/miu@chromium.org/280993002/80001
6 years, 7 months ago (2014-05-23 23:23:33 UTC) #11
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). Please consider checking whether the failures are ...
6 years, 7 months ago (2014-05-24 02:44:19 UTC) #12
miu
The CQ bit was unchecked by miu@chromium.org
6 years, 7 months ago (2014-05-24 09:24:56 UTC) #13
miu
The CQ bit was checked by miu@chromium.org
6 years, 7 months ago (2014-05-24 18:04:41 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/miu@chromium.org/280993002/100001
6 years, 7 months ago (2014-05-24 23:19:50 UTC) #15
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). Please consider checking whether the failures are ...
6 years, 7 months ago (2014-05-25 01:28:24 UTC) #16
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 7 months ago (2014-05-25 01:31:50 UTC) #17
commit-bot: I haz the power
Try jobs failed on following builders: android_aosp on tryserver.chromium (http://build.chromium.org/p/tryserver.chromium/builders/android_aosp/builds/77436)
6 years, 7 months ago (2014-05-25 01:31:51 UTC) #18
miu
The CQ bit was checked by miu@chromium.org
6 years, 7 months ago (2014-05-25 01:39:58 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/miu@chromium.org/280993002/100001
6 years, 7 months ago (2014-05-25 01:40:23 UTC) #20
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). Please consider checking whether the failures are ...
6 years, 7 months ago (2014-05-25 01:48:44 UTC) #21
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 7 months ago (2014-05-25 02:18:56 UTC) #22
commit-bot: I haz the power
Try jobs failed on following builders: android_aosp on tryserver.chromium (http://build.chromium.org/p/tryserver.chromium/builders/android_aosp/builds/77442)
6 years, 7 months ago (2014-05-25 02:18:57 UTC) #23
miu
The CQ bit was checked by miu@chromium.org
6 years, 7 months ago (2014-05-25 02:28:10 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/miu@chromium.org/280993002/100001
6 years, 7 months ago (2014-05-25 02:28:14 UTC) #25
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). Please consider checking whether the failures are ...
6 years, 7 months ago (2014-05-25 02:31:37 UTC) #26
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 7 months ago (2014-05-25 02:56:30 UTC) #27
commit-bot: I haz the power
Try jobs failed on following builders: android_aosp on tryserver.chromium (http://build.chromium.org/p/tryserver.chromium/builders/android_aosp/builds/77445)
6 years, 7 months ago (2014-05-25 02:56:31 UTC) #28
miu
The CQ bit was checked by miu@chromium.org
6 years, 7 months ago (2014-05-26 17:21:46 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/miu@chromium.org/280993002/100001
6 years, 7 months ago (2014-05-26 17:22:11 UTC) #30
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). Please consider checking whether the failures are ...
6 years, 7 months ago (2014-05-26 17:27:58 UTC) #31
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 7 months ago (2014-05-26 17:33:54 UTC) #32
commit-bot: I haz the power
Try jobs failed on following builders: android_aosp on tryserver.chromium (http://build.chromium.org/p/tryserver.chromium/builders/android_aosp/builds/77667)
6 years, 7 months ago (2014-05-26 17:33:55 UTC) #33
miu
The CQ bit was checked by miu@chromium.org
6 years, 7 months ago (2014-05-26 18:05:24 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/miu@chromium.org/280993002/100001
6 years, 7 months ago (2014-05-26 18:06:16 UTC) #35
commit-bot: I haz the power
6 years, 7 months ago (2014-05-27 00:03:33 UTC) #36
Message was sent while issue was closed.
Change committed as 272893

Powered by Google App Engine
This is Rietveld 408576698