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

Issue 252923007: Cast: Fix two video freezing problems (Closed)

Created:
6 years, 7 months ago by hubbe
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
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Visibility:
Public.

Description

Cast: Fix two video freezing problems 1) The first one only happens when running UDP over localhost: The connect() call call fails and the sender stops listening to incoming packets. I fixed this by re-starting the packet listening if needed after each successfully sent packet. 2) The second problem is that the packet storage times out packets based on time, with the assumption that no packet should have to be re-sent if it's older than the max history time. However, if packets are not ACKed in a timely fashion, the video_sender may need to re-send arbitrarily old packets. To fix this, I change the packet storage to remember "max outanding frames" regardless of timing. BUG=366911 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=268142 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=268176

Patch Set 1 #

Patch Set 2 : hide max outstanding frames from cast library users #

Total comments: 24

Patch Set 3 : most comments addressed #

Total comments: 10

Patch Set 4 : more comments adressed #

Total comments: 6

Patch Set 5 : comments addressed + fixed some comments #

Patch Set 6 : proper run-time checks for max outstanding frames #

Patch Set 7 : removed an unused constant #

Patch Set 8 : 250 -> 255 #

Patch Set 9 : 255 -> kMaxStoredFrames #

Patch Set 10 : merged #

Patch Set 11 : mac fix #

Unified diffs Side-by-side diffs Delta from patch set Stats (+270 lines, -294 lines) Patch
M chrome/common/cast_messages.h View 1 2 1 chunk +8 lines, -8 lines 0 comments Download
M chrome/renderer/media/cast_rtp_stream.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M chrome/renderer/media/cast_session_delegate.cc View 2 chunks +0 lines, -12 lines 0 comments Download
M media/cast/audio_sender/audio_sender.cc View 1 2 chunks +11 lines, -1 line 0 comments Download
M media/cast/audio_sender/audio_sender_unittest.cc View 2 chunks +0 lines, -4 lines 0 comments Download
M media/cast/cast_config.h View 1 2 3 4 2 chunks +2 lines, -2 lines 0 comments Download
M media/cast/cast_config.cc View 2 chunks +2 lines, -4 lines 0 comments Download
M media/cast/test/end2end_unittest.cc View 8 chunks +16 lines, -25 lines 0 comments Download
M media/cast/test/sender.cc View 1 2 3 4 5 6 7 8 9 6 chunks +6 lines, -14 lines 0 comments Download
M media/cast/transport/cast_transport_config.h View 1 2 2 chunks +11 lines, -12 lines 0 comments Download
M media/cast/transport/cast_transport_config.cc View 1 2 3 4 5 6 1 chunk +6 lines, -5 lines 0 comments Download
M media/cast/transport/cast_transport_sender.h View 1 2 3 4 2 chunks +2 lines, -3 lines 0 comments Download
M media/cast/transport/cast_transport_sender_impl.cc View 1 2 3 4 5 6 7 8 9 2 chunks +2 lines, -2 lines 0 comments Download
M media/cast/transport/rtp_sender/packet_storage/packet_storage.h View 1 2 3 4 5 6 7 8 2 chunks +25 lines, -11 lines 0 comments Download
M media/cast/transport/rtp_sender/packet_storage/packet_storage.cc View 1 2 3 4 5 6 7 8 5 chunks +38 lines, -44 lines 0 comments Download
M media/cast/transport/rtp_sender/packet_storage/packet_storage_unittest.cc View 1 2 3 1 chunk +27 lines, -99 lines 0 comments Download
M media/cast/transport/rtp_sender/rtp_packetizer/rtp_packetizer_unittest.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +1 line, -2 lines 0 comments Download
M media/cast/transport/rtp_sender/rtp_sender.h View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -4 lines 0 comments Download
M media/cast/transport/rtp_sender/rtp_sender.cc View 1 2 3 4 5 6 7 8 9 3 chunks +26 lines, -12 lines 0 comments Download
M media/cast/transport/transport/udp_transport.h View 2 chunks +4 lines, -0 lines 0 comments Download
M media/cast/transport/transport/udp_transport.cc View 1 2 5 chunks +23 lines, -4 lines 0 comments Download
M media/cast/transport/transport_audio_sender.cc View 1 2 3 4 5 6 7 8 9 4 chunks +12 lines, -3 lines 0 comments Download
M media/cast/transport/transport_video_sender.cc View 1 2 3 4 5 6 7 8 9 5 chunks +13 lines, -9 lines 0 comments Download
M media/cast/video_sender/external_video_encoder_unittest.cc View 1 chunk +1 line, -1 line 0 comments Download
M media/cast/video_sender/video_encoder_impl_unittest.cc View 1 chunk +1 line, -1 line 0 comments Download
M media/cast/video_sender/video_sender.h View 1 chunk +1 line, -0 lines 0 comments Download
M media/cast/video_sender/video_sender.cc View 1 7 chunks +25 lines, -7 lines 0 comments Download
M media/cast/video_sender/video_sender_unittest.cc View 3 chunks +1 line, -3 lines 0 comments Download

Messages

Total messages: 21 (0 generated)
hubbe
6 years, 7 months ago (2014-04-28 23:50:21 UTC) #1
Alpha Left Google
https://codereview.chromium.org/252923007/diff/20001/media/cast/transport/cast_transport_config.cc File media/cast/transport/cast_transport_config.cc (right): https://codereview.chromium.org/252923007/diff/20001/media/cast/transport/cast_transport_config.cc#newcode24 media/cast/transport/cast_transport_config.cc:24: : max_outstanding_frames(-1) {} Why not just 0? https://codereview.chromium.org/252923007/diff/20001/media/cast/transport/cast_transport_config.h File ...
6 years, 7 months ago (2014-04-29 00:55:05 UTC) #2
hubbe
https://codereview.chromium.org/252923007/diff/20001/media/cast/transport/cast_transport_config.cc File media/cast/transport/cast_transport_config.cc (right): https://codereview.chromium.org/252923007/diff/20001/media/cast/transport/cast_transport_config.cc#newcode24 media/cast/transport/cast_transport_config.cc:24: : max_outstanding_frames(-1) {} On 2014/04/29 00:55:05, Alpha wrote: > ...
6 years, 7 months ago (2014-04-29 17:19:58 UTC) #3
hubbe
Adding palmer for cast_messages.h
6 years, 7 months ago (2014-04-29 17:21:27 UTC) #4
palmer
https://codereview.chromium.org/252923007/diff/40001/media/cast/cast_config.h File media/cast/cast_config.h (right): https://codereview.chromium.org/252923007/diff/40001/media/cast/cast_config.h#newcode33 media/cast/cast_config.h:33: // uint32 sender_ssrc; use rtp_config.ssrc instead Probably better to ...
6 years, 7 months ago (2014-04-29 17:33:43 UTC) #5
hubbe
https://codereview.chromium.org/252923007/diff/40001/media/cast/cast_config.h File media/cast/cast_config.h (right): https://codereview.chromium.org/252923007/diff/40001/media/cast/cast_config.h#newcode33 media/cast/cast_config.h:33: // uint32 sender_ssrc; use rtp_config.ssrc instead On 2014/04/29 17:33:44, ...
6 years, 7 months ago (2014-04-29 18:32:38 UTC) #6
Alpha Left Google
https://codereview.chromium.org/252923007/diff/50001/media/cast/cast_config.h File media/cast/cast_config.h (right): https://codereview.chromium.org/252923007/diff/50001/media/cast/cast_config.h#newcode33 media/cast/cast_config.h:33: // The sender ssrc is i rtp_config.ssrc. nit: sender ...
6 years, 7 months ago (2014-04-29 19:46:48 UTC) #7
hubbe
https://codereview.chromium.org/252923007/diff/50001/media/cast/cast_config.h File media/cast/cast_config.h (right): https://codereview.chromium.org/252923007/diff/50001/media/cast/cast_config.h#newcode33 media/cast/cast_config.h:33: // The sender ssrc is i rtp_config.ssrc. On 2014/04/29 ...
6 years, 7 months ago (2014-04-29 20:03:18 UTC) #8
Alpha Left Google
Okay. LGTM.
6 years, 7 months ago (2014-04-29 20:11:39 UTC) #9
palmer
IPC security LGTM.
6 years, 7 months ago (2014-04-29 22:53:29 UTC) #10
hubbe
The CQ bit was checked by hubbe@chromium.org
6 years, 7 months ago (2014-04-29 23:11:31 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/hubbe@chromium.org/252923007/150001
6 years, 7 months ago (2014-04-29 23:14:14 UTC) #12
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 7 months ago (2014-04-30 08:42:41 UTC) #13
commit-bot: I haz the power
Failed to apply patch for media/cast/transport/rtp_sender/rtp_packetizer/rtp_packetizer_unittest.cc: While running patch -p1 --forward --force --no-backup-if-mismatch; patching file ...
6 years, 7 months ago (2014-04-30 08:42:41 UTC) #14
hubbe
The CQ bit was checked by hubbe@chromium.org
6 years, 7 months ago (2014-05-05 05:27:36 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/hubbe@chromium.org/252923007/170001
6 years, 7 months ago (2014-05-05 05:27:44 UTC) #16
commit-bot: I haz the power
Change committed as 268142
6 years, 7 months ago (2014-05-05 06:17:56 UTC) #17
hubbe
A revert of this CL has been created in https://codereview.chromium.org/268983002/ by hubbe@chromium.org. The reason for ...
6 years, 7 months ago (2014-05-05 06:24:25 UTC) #18
hubbe
The CQ bit was checked by hubbe@chromium.org
6 years, 7 months ago (2014-05-05 06:36:47 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/hubbe@chromium.org/252923007/190001
6 years, 7 months ago (2014-05-05 06:36:50 UTC) #20
commit-bot: I haz the power
6 years, 7 months ago (2014-05-05 14:16:47 UTC) #21
Message was sent while issue was closed.
Change committed as 268176

Powered by Google App Engine
This is Rietveld 408576698