Commit Graph

45 Commits

Author SHA1 Message Date
f515ab8c3f Moved call.h and most of api/call/* into call/
BUG=webrtc:6716

Review-Url: https://codereview.webrtc.org/2550273003
Cr-Commit-Position: refs/heads/master@{#15460}
2016-12-07 12:53:04 +00:00
78b4d56535 Relanding "Pass time constant to bwe smoothing filter."
An earlier attempt to land this was in https://codereview.webrtc.org/2518923003/

It was failed because it removed an API. This CL fixes this.

BUG=webrtc:6443, webrtc:6303

Review-Url: https://codereview.webrtc.org/2536753002
Cr-Commit-Position: refs/heads/master@{#15325}
2016-11-30 12:47:47 +00:00
0245da0fa0 Move ownership of PacketRouter from CongestionController to Call.
And delete the method CongestionController::packet_router.

BUG=None

Review-Url: https://codereview.webrtc.org/2516983004
Cr-Commit-Position: refs/heads/master@{#15323}
2016-11-30 11:35:28 +00:00
6287e82b9b Revert of Pass time constant to bwe smoothing filter. (patchset #8 id:140001 of https://codereview.webrtc.org/2518923003/ )
Reason for revert:
Unfortunately, this change breaks internal projects. Specifically the change to the CongestionController interface means anything implementing it will be forced to change in lock-step.

Original issue's description:
> Pass time constanct to bwe smoothing filter.
>
> BUG=webrtc:6443, webrtc:6303
>
> Committed: https://crrev.com/9abbf5ae4ec7d688a9b4aa03a405f3faadb74b90
> Cr-Commit-Position: refs/heads/master@{#15266}

TBR=minyue@webrtc.org,stefan@webrtc.org,solenberg@webrtc.org,michaelt@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6443, webrtc:6303

Review-Url: https://codereview.webrtc.org/2532993002
Cr-Commit-Position: refs/heads/master@{#15272}
2016-11-28 16:05:23 +00:00
9abbf5ae4e Pass time constanct to bwe smoothing filter.
BUG=webrtc:6443, webrtc:6303

Review-Url: https://codereview.webrtc.org/2518923003
Cr-Commit-Position: refs/heads/master@{#15266}
2016-11-28 15:00:24 +00:00
bf67663eb1 Rename "Audio playout level" to "Audio level" on the Y-axis of the event log graph.
BUG=webrtc:4741

Review-Url: https://codereview.webrtc.org/2527993002
Cr-Commit-Position: refs/heads/master@{#15229}
2016-11-24 16:30:42 +00:00
4aecc5885a Simplify creating RtpHeaderExtensionMap in EventLogAnalyzer
RtpHeaderExtensionMap constructor accept array view instead of initializer_list
Remove now unused RtpHeaderExtensionMap::Erase

BUG=webrtc:1994

Review-Url: https://codereview.webrtc.org/2501893004
Cr-Commit-Position: refs/heads/master@{#15090}
2016-11-15 17:21:03 +00:00
985d280b46 Add support for field trials to event log visualizer.
BUG=None

Review-Url: https://codereview.webrtc.org/2499283002
Cr-Commit-Position: refs/heads/master@{#15086}
2016-11-15 14:54:16 +00:00
492ee28b73 Use bayesian estimate of acked bitrate.
This helps a lot to avoid reducing the bitrate too quickly when there's a short period of very few packets delivered, followed by the rate resuming at the regular rate. It specifically avoids the BWE going down to super low values as a response delay spikes.

BUG=webrtc:6566
R=terelius@webrtc.org

Review URL: https://codereview.webrtc.org/2422063002 .

Cr-Commit-Position: refs/heads/master@{#14802}
2016-10-27 15:19:34 +00:00
41aab327ad Fix delay plot crash in event_log_visualizer.
NOTRY=true
BUG=webrtc:6510

Review-Url: https://codereview.webrtc.org/2410433002
Cr-Commit-Position: refs/heads/master@{#14588}
2016-10-10 15:16:33 +00:00
e0928d8002 Added logging for audio send/receive stream configs.
BUG=webrtc:4741,webrtc:6399

Review-Url: https://codereview.webrtc.org/2353543003
Cr-Commit-Position: refs/heads/master@{#14585}
2016-10-10 12:12:57 +00:00
bf369fe3dd Replace rtcp parser in rtc event log handlers.
RTCPUtility is going away.

BUG=webrtc:5260

Review-Url: https://codereview.webrtc.org/2395383002
Cr-Commit-Position: refs/heads/master@{#14574}
2016-10-07 14:40:00 +00:00
cc91d284e4 Moved RtcEventLog files from call/ to logging/
The RtcEventLog headers need to be accessible from any place which needs
logging, and the implementation needs access to data structures that are
logged.

After a discussion in the code review, we all agreed to move the RtcEventLog implementation into its own top level directory - which I called "logging/" in expectation that other types of logging may have similar requirements. The directory contains two main build targets - "rtc_event_log_api", which is just rtc_event_log.h, that has no external dependencies and can be used from anywhere, and "rtc_event_log_impl" which contains the rest of the implementation and has many dependencies (more in the future).

The "api" target can be referenced from anywhere, while the "impl" target is only needed at the place of instantiation (currently Call, soon to be moved to PeerConnection by https://codereview.webrtc.org/2353033005/).

This change allows using RtcEventLog in the p2p/ directory, so that we
can log STUN pings and ICE state transitions.

BUG=webrtc:6393
R=kjellander@webrtc.org, kwiberg@webrtc.org, solenberg@webrtc.org, stefan@webrtc.org, terelius@webrtc.org

Review URL: https://codereview.webrtc.org/2380683005 .

Cr-Commit-Position: refs/heads/master@{#14485}
2016-10-04 01:31:32 +00:00
280de9e1c3 Reland: Fix race / crash in OnNetworkRouteChanged().
To achieve this some refactoring was done to make it possible to synchronize
access to the DelayBasedBwe in TransportFeedbackAdapter:
- The callback was removed from DelayBasedBwe, it now instead returns its
  result.
- TransportFeedbackAdapter was moved to modules/congestion_controller to avoid
  unnecessary dependencies.

Reenables previously disabled flaky test. Can no longer reproduce flakiness with gtest-parallel and asan/tsan builds.

BUG=webrtc:6427, webrtc:6422
R=terelius@webrtc.org

Review URL: https://codereview.webrtc.org/2378103005 .

Cr-Commit-Position: refs/heads/master@{#14452}
2016-09-30 08:07:00 +00:00
5ec85fbcb7 Revert of Fix race / crash in OnNetworkRouteChanged(). (patchset #5 id:80001 of https://codereview.webrtc.org/2366333003/ )
Reason for revert:
Caused issues with webrtc_perf_tests on build bots.

Original issue's description:
> Fix race / crash in OnNetworkRouteChanged().
>
> To achieve this some refactoring was done to make it possible to synchronize
> access to the DelayBasedBwe in TransportFeedbackAdapter:
> - The callback was removed from DelayBasedBwe, it now instead returns its
>   result.
> - TransportFeedbackAdapter was moved to modules/congestion_controller to avoid
>   unnecessary dependencies.
>
> Reenables previously disabled flaky test. Can no longer reproduce flakiness with gtest-parallel and asan/tsan builds.
>
> BUG=webrtc:6427, webrtc:6422
>
> Committed: https://crrev.com/fd0d42669204e6dd92a60736bca7ae0196663024
> Cr-Commit-Position: refs/heads/master@{#14430}

TBR=terelius@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6427, webrtc:6422

Review-Url: https://codereview.webrtc.org/2377303002
Cr-Commit-Position: refs/heads/master@{#14433}
2016-09-29 11:19:42 +00:00
fd0d426692 Fix race / crash in OnNetworkRouteChanged().
To achieve this some refactoring was done to make it possible to synchronize
access to the DelayBasedBwe in TransportFeedbackAdapter:
- The callback was removed from DelayBasedBwe, it now instead returns its
  result.
- TransportFeedbackAdapter was moved to modules/congestion_controller to avoid
  unnecessary dependencies.

Reenables previously disabled flaky test. Can no longer reproduce flakiness with gtest-parallel and asan/tsan builds.

BUG=webrtc:6427, webrtc:6422

Review-Url: https://codereview.webrtc.org/2366333003
Cr-Commit-Position: refs/heads/master@{#14430}
2016-09-29 09:44:38 +00:00
77eab70470 Enable the -Wundef warning for clang
NOPRESUBMIT=true
BUG=webrtc:6398

Review-Url: https://codereview.webrtc.org/2358993004
Cr-Commit-Position: refs/heads/master@{#14425}
2016-09-29 00:42:08 +00:00
aac9d6fb25 Added graph for plotting the audio level from an Rtc event log.
This uses the audio level values that are stored in the RTP header extension.

BUG=webrtc:4741

Review-Url: https://codereview.webrtc.org/2346363003
Cr-Commit-Position: refs/heads/master@{#14352}
2016-09-22 14:01:55 +00:00
b2540bb99f Probing: Add support for exponential startup probing
Adds support for exponentially probing the bandwidth at start-up to allow
ramp-up to real capacity of the network.

BUG=webrtc:6332
R=philipel@webrtc.org, stefan@webrtc.org

Review URL: https://codereview.webrtc.org/2235373004 .

Cr-Commit-Position: refs/heads/master@{#14189}
2016-09-12 19:29:05 +00:00
99f8e0841a Add a chart for packet loss on incoming streams.
Also add stream names to labels.

R=philipel@webrtc.org

Review URL: https://codereview.webrtc.org/2317113003 .

Cr-Commit-Position: refs/heads/master@{#14159}
2016-09-09 11:38:00 +00:00
f581eb76f4 Renamed and restructured the protobuf definitions for the rtc_event_log graphs.
BUG=

Review-Url: https://codereview.webrtc.org/2310403002
Cr-Commit-Position: refs/heads/master@{#14112}
2016-09-07 18:15:45 +00:00
60e4346955 Add time line for acked bitrate.
R=philipel@webrtc.org

Review URL: https://codereview.webrtc.org/2310943002 .

Cr-Commit-Position: refs/heads/master@{#14098}
2016-09-07 07:58:31 +00:00
ccd7489661 Plot accumelated packets over time.
BUG=

Review-Url: https://codereview.webrtc.org/2295063006
Cr-Commit-Position: refs/heads/master@{#14066}
2016-09-05 09:46:33 +00:00
a69d973267 Move webrtc/audio_*.h to webrtc/api/call
BUG=webrtc:5878
NOTRY=True

Review-Url: https://codereview.webrtc.org/2059703002
Cr-Commit-Position: refs/heads/master@{#13996}
2016-08-31 14:33:14 +00:00
b246a292cd Define a protobuf format for representing plots. Add code to convert the C-representation generated by the RtcEventLog analysis tool, to the new protobuf format.
BUG=webrtc:6249

NOTRY=True

Review-Url: https://codereview.webrtc.org/2268063002
Cr-Commit-Position: refs/heads/master@{#13873}
2016-08-24 01:15:31 +00:00
6addf49913 Adds function for computing moving average to visualization tool.
Uses generic functions to plot packet sizes, sequence number delta and bitrate per SSRC. Also detects and prints warnings if delay differences seem unrealistic.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2234883002
Cr-Commit-Position: refs/heads/master@{#13872}
2016-08-24 00:34:16 +00:00
a93d5ac019 Don't simulate probing based on rtc event logs since we don't have that info logged.
BUG=webrtc:6217

Review-Url: https://codereview.webrtc.org/2250963002
Cr-Commit-Position: refs/heads/master@{#13792}
2016-08-17 09:14:38 +00:00
e34c19c9d7 Clarify some function names in visualization tool.
Review-Url: https://codereview.webrtc.org/2230153003
Cr-Commit-Position: refs/heads/master@{#13754}
2016-08-15 15:47:21 +00:00
ccbbf8da38 Visualize delay changes based on both abs-send-time and capture time.
Adds reusable template function objects to extract interesting
statistics from data sets. A few more of these will be added later
to reduce the code size.

Review-Url: https://codereview.webrtc.org/2220383004
Cr-Commit-Position: refs/heads/master@{#13713}
2016-08-10 14:34:37 +00:00
d49a37b1d9 Rename main file for visualization tool.
Review-Url: https://codereview.webrtc.org/2226273002
Cr-Commit-Position: refs/heads/master@{#13712}
2016-08-10 14:12:55 +00:00
0740a2040a Track SSRCs configured for each media type in event log visualization tool.
Review-Url: https://codereview.webrtc.org/2207453003
Cr-Commit-Position: refs/heads/master@{#13675}
2016-08-08 17:21:09 +00:00
f736d2365d Add fraction loss in visualization tool.
Review-Url: https://codereview.webrtc.org/2204713005
Cr-Commit-Position: refs/heads/master@{#13644}
2016-08-04 17:00:19 +00:00
c3de0333c0 Add plot of network delay change computed based on transport feedback.
NOTRY=true

Review-Url: https://codereview.webrtc.org/2205803002
Cr-Commit-Position: refs/heads/master@{#13610}
2016-08-02 14:22:23 +00:00
dc35dcd4dc Convenience functions to set axis properties in visualization tool.
Also makes the properties protected, as previously requested by Stefan.

Review-Url: https://codereview.webrtc.org/2179223003
Cr-Commit-Position: refs/heads/master@{#13593}
2016-08-01 19:03:33 +00:00
88c1d2bc0f Don't use LOG_END timestamp to compute RtcEventLog duration.
The LOG_END time is incorrect if the event log is stopped
by the file size limit instead of a duration limit or a
manual stop. This makes the call appear to be very long
(10^13 seconds) in the analysis tool. This CL is a workaround
for that problem.

BUG=webrtc:6138

Review-Url: https://codereview.webrtc.org/2176663002
Cr-Commit-Position: refs/heads/master@{#13585}
2016-08-01 12:20:39 +00:00
1a518fc4e3 Request ownership for visualization tool
Review-Url: https://codereview.webrtc.org/2195303002
Cr-Commit-Position: refs/heads/master@{#13584}
2016-08-01 11:38:18 +00:00
6a850c3b93 Register header extensions for rtx streams in the event log analyzer.
TBR=phoglund@webrtc.org

NOTRY=true

Review-Url: https://codereview.webrtc.org/2192173002
Cr-Commit-Position: refs/heads/master@{#13578}
2016-07-29 17:28:18 +00:00
13181035bc Reland: Add BWE plot to event log analyzer.
The plot is constructed by actually running the congestion controller with
the logged rtp headers and rtcp feedback messages to reproduce the same behavior
as in the real call.

R=phoglund@webrtc.org, terelius@webrtc.org

Review URL: https://codereview.webrtc.org/2193763002 .

Cr-Commit-Position: refs/heads/master@{#13574}
2016-07-29 12:49:04 +00:00
59c1ad58e6 Revert of Add BWE plot to event log analyzer. (patchset #6 id:100001 of https://codereview.webrtc.org/2188033004/ )
Reason for revert:
Breaks downstream targets.

Original issue's description:
> Add BWE plot to event log analyzer.
>
> The plot is constructed by actually running the congestion controller with
> the logged rtp headers and rtcp feedback messages to reproduce the same behavior
> as in the real call.
>
> R=phoglund@webrtc.org, terelius@webrtc.org
>
> Committed: https://crrev.com/2beea2a8c920000ef19eea20cce397507fc3d5e7
> Cr-Commit-Position: refs/heads/master@{#13558}

TBR=phoglund@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2190013002
Cr-Commit-Position: refs/heads/master@{#13559}
2016-07-28 16:21:32 +00:00
2beea2a8c9 Add BWE plot to event log analyzer.
The plot is constructed by actually running the congestion controller with
the logged rtp headers and rtcp feedback messages to reproduce the same behavior
as in the real call.

R=phoglund@webrtc.org, terelius@webrtc.org

Review URL: https://codereview.webrtc.org/2188033004 .

Cr-Commit-Position: refs/heads/master@{#13558}
2016-07-28 15:42:31 +00:00
8058e58d8f Add loss-based BWE estimate to the outgoing bitrate plot.
Review-Url: https://codereview.webrtc.org/2165523002
Cr-Commit-Position: refs/heads/master@{#13517}
2016-07-25 08:37:56 +00:00
88e64e5c67 Keep a map from SSRC to parsed headers in that stream
and use the preparsed headers to plot the network delay changes.

This is the first of several CLs that clean up the visualization
tool to make it easier to add new metrics.

Review-Url: https://codereview.webrtc.org/2145153002
Cr-Commit-Position: refs/heads/master@{#13499}
2016-07-19 08:51:15 +00:00
54ce680170 Initial version of the local visualization tool for WebrtcEventLogs.
Plot graphs to python code. Generate packet, playout, sequence number and total bitrate graphs.

Add bitrate and latency plots. Generate multiple figures, and control which ones are used through command line flags.

Committed: https://crrev.com/a478786ef1513790194792010f766324a469db4d
Review-Url: https://codereview.webrtc.org/1995523002
Cr-Original-Commit-Position: refs/heads/master@{#13443}
Cr-Commit-Position: refs/heads/master@{#13463}
2016-07-13 13:44:48 +00:00
a44f28da45 Revert of Visualization tool for WebrtcEventLogs (patchset #9 id:160001 of https://codereview.webrtc.org/1995523002/ )
Reason for revert:
Reverting while investigating a downstream build failure.

Original issue's description:
> Initial version of the local visualization tool for WebrtcEventLogs.
>
> Plot graphs to python code. Generate packet, playout, sequence number and total bitrate graphs.
>
> Add bitrate and latency plots. Generate multiple figures, and control which ones are used through command line flags.
>
> Committed: https://crrev.com/a478786ef1513790194792010f766324a469db4d
> Cr-Commit-Position: refs/heads/master@{#13443}

TBR=stefan@webrtc.org,aleloi@webrtc.org,phoglund@webrtc.org,henrika@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2147453002
Cr-Commit-Position: refs/heads/master@{#13445}
2016-07-12 12:11:29 +00:00
a478786ef1 Initial version of the local visualization tool for WebrtcEventLogs.
Plot graphs to python code. Generate packet, playout, sequence number and total bitrate graphs.

Add bitrate and latency plots. Generate multiple figures, and control which ones are used through command line flags.

Review-Url: https://codereview.webrtc.org/1995523002
Cr-Commit-Position: refs/heads/master@{#13443}
2016-07-12 11:30:31 +00:00