Commit Graph

895 Commits

Author SHA1 Message Date
da903eaabb Unify newapi::RtcpMode and RTCPMethod.
BUG=webrtc:1695
R=solenberg@webrtc.org, stefan@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10143}
2015-10-02 09:37:18 +00:00
86fd9ed6f9 Set RtcpSender transport at construction.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10106}
2015-09-29 11:45:51 +00:00
092508a5c5 Fix bug in ramp-up tests stats where rtx was accounted for in the media ssrc.
BUG=chromium:536941

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

Cr-Commit-Position: refs/heads/master@{#10104}
2015-09-29 09:26:50 +00:00
2d566686a2 Unify Transport and newapi::Transport interfaces.
BUG=webrtc:1695
R=stefan@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10096}
2015-09-28 16:59:36 +00:00
4fbd145dce Fix suspend below min bitrate in new API by making it possible to set min bitrate at the receive-side.
In addition to this the ramp-up tests are refactored to use a receive call instead of only a remote bitrate estimator, and to make use of BaseTest.

BUG=webrtc:4836

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

Cr-Commit-Position: refs/heads/master@{#10087}
2015-09-28 10:57:23 +00:00
5c389d3e09 Split webrtc/video into webrtc/{audio,call,video}.
Moves audio_receive_stream.{h,cc} into webrtc/audio, and common parts
into webrtc/call, splitting out audio/shared components with separate
OWNERS files.

BUG=webrtc:4690
R=solenberg@webrtc.org, tina.legrand@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10073}
2015-09-25 11:58:39 +00:00
6b8d355168 Reland "Wire up send-side bandwidth estimation."
Revert was patchset #8 id:140001 of https://codereview.webrtc.org/1338203003/

The culprit was RTC_DCHECK(poller_thread_->Start()); in rampup_test.cc

BUG=webrtc:4173
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10052}
2015-09-24 13:07:17 +00:00
8bffba7107 Fix BWE bug where audio has timestamps in us.
The BWE expects arrival timestamps in ms, while the audio path delivered
them in us, causing the BWE to break down under the combined audio/video
BWE experiment. This was introduced in r9892 (68786d2040).

BUG=webrtc:4758
R=mflodman@webrtc.org, sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10032}
2015-09-23 13:54:04 +00:00
c9bbeb0354 Revert of Wire up send-side bandwidth estimation. (patchset #8 id:140001 of https://codereview.webrtc.org/1338203003/ )
Reason for revert:
Breaking some Android bots.
https://chromegw.corp.google.com/i/client.webrtc/builders/Android32%20Tests%20%28L%20Nexus5%29

Original issue's description:
> Wire up send-side bandwidth estimation.
>
> BUG=webrtc:4173
>
> Committed: https://crrev.com/ef165eefc79cf28bb67779afe303cc2365885547
> Cr-Commit-Position: refs/heads/master@{#10012}

TBR=stefan@webrtc.org, kjellander@webrtc.org
NOPRESUBMIT=false
NOTREECHECKS=false
NOTRY=false
BUG=webrtc:4173

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

Cr-Commit-Position: refs/heads/master@{#10029}
2015-09-23 11:52:01 +00:00
2d4e6c5d9d Fixing camera capture for video_loopback
In the middle of refactoring, I replaced the VideoCapturer with
FrameGeneratorCapturer, to reuse the code, and with that disabled the camera.
Now adding capturer_ element to VideoQualityTest and ignoring
frame_generator_capturer_ from the parent class test::CallTest.

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

Cr-Commit-Position: refs/heads/master@{#10023}
2015-09-23 08:57:13 +00:00
7083e119e8 Remove callback_cs_ in ViEEncoder.
Instead make callbacks const and set on construction.

BUG=webrtc:1695
R=philipel@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10017}
2015-09-22 14:29:00 +00:00
d4818e7304 Using static frame generator when no scrolling
In screensharing full stack tests, instead of using YuvFileGenerator by default
when no scrolling is used, I always used ScrollingImageFileGenerator.
That possibly slowed down the test a little bit, at least for the slowed
devices, as it unnecessarily copied few MBs per frame.

BUG=chromium:534220

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

Cr-Commit-Position: refs/heads/master@{#10014}
2015-09-22 12:47:34 +00:00
ef165eefc7 Wire up send-side bandwidth estimation.
BUG=webrtc:4173

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

Cr-Commit-Position: refs/heads/master@{#10012}
2015-09-22 12:10:58 +00:00
7317248ea7 Rename CaptureThread to EncodingThread.
Gives a less confusing name, this thread is used to pick up captured
frames and encode them.

BUG=
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10010}
2015-09-22 09:14:27 +00:00
1356ba5e6c Fixing target_bitrate_bps for a FullStackTest
While refactoring, I incorrectly set the target bitrate for one of the tests to
500k instead of 2000k.

This does not fix all the perf regressions.

BUG=534220

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

Cr-Commit-Position: refs/heads/master@{#10008}
2015-09-22 08:09:19 +00:00
ebbf8a805b Make sure rtp_rtcp module doesn't directly reference anything in the pacer module, and remove build dependencies on it.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10005}
2015-09-21 22:11:18 +00:00
e1aa5b530d This relands "Tool to convert RtcEventLog files to RtpDump format.", commit 35624c2c3686a2ad40daffe073aa78507b0ef88e.
Moved the build target into a section in the gyp file that is conditional on 'include_test==1', as well as on 'enable_protobuf==1'.
Original review: https://codereview.webrtc.org/1297653002/
Reverted in be4959535a39262e1508cc4223b78b8db677cb94

BUG=webrtc:4741
TBR=kjellander@webrtc.org,stefan@webrtc.org,henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9990}
2015-09-18 13:41:18 +00:00
be4959535a Revert of Tool to convert RtcEventLog files to RtpDump format. (patchset #11 id:200001 of https://codereview.webrtc.org/1297653002/ )
Reason for revert:
Breaks Chromium WebRTC FYI bots.

Updating projects from gyp files...
gyp: /b/build/slave/linux/build/src/third_party/gflags/gflags.gyp not found (cwd: /b/build/slave/linux/build)
Error: Command '/usr/bin/python src/build/gyp_chromium' returned non-zero exit status 1 in /b/build/slave/linux/build

Original issue's description:
> Tool to convert RtcEventLog files to RtpDump format.
>
> This is a small utility that reads RtcEventLog files, and converts the RTP headers within it to RtpDump format. All other types of events are ignored. Three command-line flags are supported, --audio-only, --video-only and --data-only. When one of these flags is supplied, only RTP packets that match the requested type are converted.
>
> BUG=webrtc:4741
> R=henrik.lundin@webrtc.org, kjellander@webrtc.org, stefan@webrtc.org, terelius@webrtc.org
>
> Committed: https://crrev.com/35624c2c3686a2ad40daffe073aa78507b0ef88e
> Cr-Commit-Position: refs/heads/master@{#9980}

TBR=henrik.lundin@webrtc.org,terelius@webrtc.org,stefan@webrtc.org,kjellander@webrtc.org,kjellander@google.com,ivoc@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4741

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

Cr-Commit-Position: refs/heads/master@{#9987}
2015-09-18 10:50:11 +00:00
586b19bdb6 Enable probing with repeated payload packets by default.
To make this possible padding only packets will have the same timestamp
as the previously sent media packet, as long as RTX is not enabled. This
has the side effect that if we send only padding for a long time without
sending media, a receive-side jitter buffer could potentially overflow.

In practice this shouldn't be an issue, partly because RTX is recommended and
used by default, but also because padding typically is terminated before being
received by a client. It is also not an issue for bandwidth estimation as long
as abs-send-time is used instead of toffset.

BUG=chromium:425925
R=mflodman@webrtc.org, sprang@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9984}
2015-09-18 09:14:42 +00:00
35624c2c36 Tool to convert RtcEventLog files to RtpDump format.
This is a small utility that reads RtcEventLog files, and converts the RTP headers within it to RtpDump format. All other types of events are ignored. Three command-line flags are supported, --audio-only, --video-only and --data-only. When one of these flags is supplied, only RTP packets that match the requested type are converted.

BUG=webrtc:4741
R=henrik.lundin@webrtc.org, kjellander@webrtc.org, stefan@webrtc.org, terelius@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9980}
2015-09-18 07:47:04 +00:00
ac547a6538 Remove channel ids from various interfaces.
Starts by removing channel/engine id from ViEChannel which propagates
down to the RTP/RTCP module as well as the transport class.

IncomingVideoStream::RenderFrame() is untouched for now but receives a
fake id instead of the previous channel id. Added a TODO to remove it
later but the RenderFrame call is implemented in a lot of
platform-dependent files and should probably remove the "manager" aspect
of renderers, so preferring to do it separately

BUG=webrtc:1695
R=henrika@webrtc.org, mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9978}
2015-09-17 21:06:02 +00:00
ae856f2c9f Added support for logging the SSRC corresponding to AudioPlayout events.
To do this, the logging of this event was moved from the ACM to
VoiceEngine Channel. A new LogAudioPlayoutEvent function was added on
the RtcEventLog interface, and the LogDebugEvent function was removed
since it is no longer being used.

BUG=webrtc:4741
R=henrik.lundin@webrtc.org, henrikg@webrtc.org, kwiberg@webrtc.org, stefan@webrtc.org, terelius@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9972}
2015-09-17 14:34:15 +00:00
5d6a06c1d2 Refactoring full stack and loopback tests
Refactoring full stack, video and screenshare tests to use the same code basis
for parametrization and initialization. This patch is done on top of recently
commited full stack graphs CL https://codereview.webrtc.org/1289933003/, but
virtually no changes have been made to full_stack_plot.py nor to the VideoAnalyzer
in full stack, except moving it to video_quality_test.cc.
Also, full_stack_samples.cc (build target) was removed and replaced with
-output_filename and -duration cmdline arguments in video_loopback and
screenshare_loopback.

The important things to review:
- video_quality_test.h
    Is the structure of Params good? (examples of usage can be found in
    full_stack.cc, video_loopback.cc and screenshare_loopback.cc)
- video_quality_test.cc
    Is the initialization correct? The case for using Analyzer and using local
    renderer are different, can they be further merged?
- webrtc_tests.gypi

Reproducing the different bitrate settings the full stack and loopback tests had
was a little bit tricky. To support both simultaneously, I added BitrateConfig
to the Params struct, as well as separate start_bitrate and target_bitrate flags
for loopback tests.

Note: Side-by-side diff for video_quality_test.cc compares that file directly
with the old full_stack.cc, so changes to VideoAnalyzer are clearly visible.

Note: Recent CL I've committed added -num_temporal_layers and -sl_discard_threshold
args to loopback tests. This was removed here. Support for streams and SVC
will be added in a CL following this one.

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

Cr-Commit-Position: refs/heads/master@{#9969}
2015-09-17 12:30:30 +00:00
91d6edef35 Add RTC_ prefix to (D)CHECKs and related macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

Alternative solutions:
* Check if we already have defined e.g. CHECK, and don't define them in that case. This makes us depend on include order in Chromium, which is not acceptable.
* Don't allow using the macros in WebRTC headers. Error prone since if someone adds it there by mistake it may compile fine, but later break if a header in added or order is changed in Chromium. That will be confusing and hard to enforce.
* Ensure that headers that are included by an embedder don't include our macros. This would require some heavy refactoring to be maintainable and enforcable.
* Changes in Chromium for this is obviously not an option.

BUG=chromium:468375
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#9964}
2015-09-17 07:24:51 +00:00
3c089d751e Add RTC_ prefix to contructormagic macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

* DISALLOW_ASSIGN -> RTC_DISALLOW_ASSIGN
* DISALLOW_COPY_AND_ASSIGN -> RTC_DISALLOW_COPY_AND_ASSIGN
* DISALLOW_IMPLICIT_CONSTRUCTORS -> RTC_DISALLOW_IMPLICIT_CONSTRUCTORS

Related CL: https://codereview.webrtc.org/1335923002/

BUG=chromium:468375
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#9953}
2015-09-16 12:37:52 +00:00
6304626268 Add a rate tracker that tracks rate over a given interval split up into buckets that accumulate unit counts for their portion of said interval and use this instead of the standard rate tracker so that the values of retrieved frame rate stats are completely independent of the polling rate.
BUG=
R=asapersson@webrtc.org, noahric@chromium.org, pbos@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9933}
2015-09-14 17:38:20 +00:00
36d619b01e Log timestamps when old frames are delivered.
BUG=webrtc:4994
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9928}
2015-09-14 13:07:39 +00:00
847855b865 Add a name to the ProcessThread constructor.
Helps differentiate between different instances when debugging.

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

Cr-Commit-Position: refs/heads/master@{#9927}
2015-09-11 16:52:22 +00:00
df1a171def Remove unused event in video_capture_input.cc.
Review URL: https://codereview.webrtc.org/1331833003

Cr-Commit-Position: refs/heads/master@{#9921}
2015-09-11 05:50:47 +00:00
b04965ccf8 Hooked up RtcEventLog. It lives in Voice Engine and pointers are propagated to ACM and Call.
An option was added to voe_cmd_test to make a RtcEventLog dump.

BUG=webrtc:4741

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

Cr-Commit-Position: refs/heads/master@{#9901}
2015-09-09 07:09:49 +00:00
68786d2040 Wire up PacketTime to ReceiveStreams.
BUG=webrtc:4758

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

Cr-Commit-Position: refs/heads/master@{#9892}
2015-09-08 12:36:23 +00:00
e526974759 Make LoadObserver settable per video send stream. Gives client flexibility and makes the implementation slightly simpler. See discussion in: https://codereview.webrtc.org/1269863005/
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#9891}
2015-09-08 12:13:25 +00:00
f325d2118c Disable VideoSendStreamTest.VP9FlexMode.
Test is racy and fails on bots.

BUG=webrtc:4969
R=pbos@webrtc.org, sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9888}
2015-09-08 10:47:14 +00:00
7f6a6fc0b2 Enabling spatial layers in VP9Impl. Filter layers in the loopback test.
Handling the case when encoder drops only the higher layer.
Added options to screenshare loopback test to discard high temporal or spatial layers (to view the lower layers).

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

Cr-Commit-Position: refs/heads/master@{#9883}
2015-09-08 09:40:36 +00:00
05cfcd3469 Full stack graphs
Updating full stack test to optionally save metadata for each frame and save it
to a file with given filename (controlled from the new full_stack_samples
executable).
Adding a Python script that reads the output generated by full stack test
and plots the graph(s).

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

Cr-Commit-Position: refs/heads/master@{#9874}
2015-09-07 13:04:23 +00:00
2f9fd5ddb9 Changed LogRtpHeader to read the header length from the packet instead of requiring an extra argument.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#9856}
2015-09-04 10:39:51 +00:00
47d78cc8ad Pass the encoder's internal source property through to video_sender to request a keyframe from the external encoder
BUG=

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

Cr-Commit-Position: refs/heads/master@{#9853}
2015-09-04 01:24:53 +00:00
6ee69aa94c Add scrolling screenshare test to full_stack perf tests.
BUG=
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9850}
2015-09-03 13:58:17 +00:00
7fabd46a89 Don't set V bit in flexible mode
BUG=webrtc:4914

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

Cr-Commit-Position: refs/heads/master@{#9848}
2015-09-03 11:42:37 +00:00
0f9af01456 Added send stream test case for VP9 header.
BUG=webrtc:4914

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

Cr-Commit-Position: refs/heads/master@{#9831}
2015-09-01 14:01:54 +00:00
2c27430545 Print some output in long perf tests, to keep them alive
At least Android try bots seem to have a timeout that will forcibly shut
down the executable if no output has been observed for 60s. Since full
stack test typically run for 60s we need to output give some to avoid
racy shutdown.

BUG=chromium:513170
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9822}
2015-08-31 15:21:22 +00:00
f42376c601 Wire up currently-received video codec to stats.
BUG=webrtc:1844, webrtc:4808
R=mflodman@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9810}
2015-08-28 14:35:40 +00:00
4fbae2b791 Add send transports to individual webrtc::Call streams.
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#9807}
2015-08-28 11:07:15 +00:00
d6b243f5f6 Enabling screensharing perf test.
It should work now as the packet limit in the jitter buffer has been increased.

BUG=webrtc:4889

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

Cr-Commit-Position: refs/heads/master@{#9700}
2015-08-11 17:43:09 +00:00
ef7228cfa0 Selectable number of TL screenshare loopback test. Also contains some tweaks to make a single TL perform better.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#9676}
2015-08-05 09:02:09 +00:00
8d62971611 Fix race condition in EndToEndTest.AssignsTransportSequenceNumbers
Don't verify increasing sequence numbers after test complesion as this
can be racy with regards to test shutting down send transports.

BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9672}
2015-08-04 14:24:15 +00:00
867fb5224e Add support for transport wide sequence numbers
Also refactor packet router to use a map rather than iterate over all
rtp modules for each packet sent.

BUG=webrtc:4311

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

Cr-Commit-Position: refs/heads/master@{#9670}
2015-08-03 11:38:48 +00:00
62cde2c38c Disabling VP9 perf test
BUG=webrtc:4889

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

Cr-Commit-Position: refs/heads/master@{#9668}
2015-07-31 21:04:18 +00:00
364118518f Includes webrtc/build/protoc.gypi instead of build/protoc.gypi
Re-lands "Renamed the ACMDump to RtcEventLog and moved it to webrtc/video, since it is not specific to the audio coding module."

This reverts commit b933667a7f97697d6390d1eee5f378cedd9ca208.

R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9661}
2015-07-30 10:45:24 +00:00
b933667a7f Revert "Renamed the ACMDump to RtcEventLog and moved it to webrtc/video, since it is not specific to the audio coding module. Updated .gyp and .gn files accordingly."
This reverts commit c159b046d7a0086e45ae0f79c00a462f3fafd207.

BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9660}
2015-07-30 10:05:18 +00:00