374 Commits

Author SHA1 Message Date
Ivo Creusen
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
ivica
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
henrikg
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
henrikg
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
Tim Psiaki
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
pbos
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
stefan
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
mflodman
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
ivoc
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
stefan
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
solenberg
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
philipel
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
ivica
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
ivica
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
terelius
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
sophiechang
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
Erik Språng
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
philipel
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
philipel
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
Erik Språng
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
pbos
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
solenberg
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
ivica
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
sprang
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
Erik Språng
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
sprang
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
ivica
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
Bjorn Terelius
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
Bjorn Terelius
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
ivica
028cf48828 Added FullStack performance test for screensharing with VP9
Review URL: https://codereview.webrtc.org/1215113003

Cr-Commit-Position: refs/heads/master@{#9657}
2015-07-30 09:16:03 +00:00
Bjorn Terelius
c159b046d7 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.
Placed the protobuf structures in the namespace webrtc::rtclog. Removed the message field from the DebugEvent structure, since it was not used.

Added an interface to set config information for VideoReceiveStream and VideoSendStream in the event log.

Added function to log full RTCP packets and changed RTP-logging to only log headers.

Significantly extended the unit tests for RtcEventLog.

R=ivoc@webrtc.org, minyue@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9656}
2015-07-30 09:06:09 +00:00
sprang
d63589579a Add a frame generator that allows scrolling over a larger still image, for use with new screen sharing quality tests.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#9654}
2015-07-29 14:58:17 +00:00
Erik Språng
49c0ce359f Revert "Add a frame generator that allows scrolling over a larger still image, for use with new screen sharing quality tests."
This reverts commit 89934133988feaf14fb88f5258f727232a283d0f.

BUG=
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9653}
2015-07-29 12:07:13 +00:00
Erik Språng
8993413398 Add a frame generator that allows scrolling over a larger still image, for use with new screen sharing quality tests.
Also add support for this in the loopback tests.

BUG=
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9652}
2015-07-29 11:54:14 +00:00
pbos
f1828e8ed9 Prevent OOB reads for truncated H264 STAP-A packets.
BUG=webrtc:4771, webrtc:4834
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9650}
2015-07-28 15:21:07 +00:00
pbos
6bb1b6e7fe Control combined_audio_video_bwe with config bool.
Permits setting RTP extensions for AudioReceiveStream without enabling
combined A/V BWE. This prevents spamming the log with "Failed to find
extension id:".

BUG=webrtc:4870
R=mflodman@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9633}
2015-07-24 14:10:25 +00:00
asapersson
6718e97e73 Add encode and decode time to histograms stats:
- "WebRTC.Video.EncodeTimeInMs"
- "WebRTC.Video.DecodeTimeInMs"

BUG=chromium:488243

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

Cr-Commit-Position: refs/heads/master@{#9630}
2015-07-24 07:21:02 +00:00
pbos
d6fc47ea95 Remove base channel for video receivers.
BUG=webrtc:1695
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9624}
2015-07-23 13:58:36 +00:00
Peter Boström
b21fd94ece Temporarily disable ScreenshareSlides on Android.
BUG=chromium:513170
TBR=sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9620}
2015-07-23 11:14:30 +00:00
pbos
235c35f292 Implement store as an explicit atomic operation.
Using explicit atomic operations permits TSan to understand them and
prevents false positives.

Downgrading the atomic Load to acquire semantics. This reduces the
number of memory barriers inserted from two down to one at most.

Also renaming Load/Store to AcquireLoad/ReleaseStore.

BUG=chromium:512382
R=dvyukov@chromium.org, glider@chromium.org
TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9613}
2015-07-22 15:35:04 +00:00
Erik Språng
085856cd35 Extend full stack tests with more stats
BUG=
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9612}
2015-07-22 15:18:10 +00:00
asapersson
d89920b74a Add resolution and fps stats to histograms:
- "WebRTC.Video.InputWidthInPixels"
- "WebRTC.Video.InputHeightInPixels"
- "WebRTC.Video.SentWidthInPixels"
- "WebRTC.Video.SentHeightInPixels"
- "WebRTC.Video.ReceivedWidthInPixels"
- "WebRTC.Video.ReceivedHeightInPixels"
- "WebRTC.Video.RenderFramesPerSecond"

BUG=chromium:512752

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

Cr-Commit-Position: refs/heads/master@{#9611}
2015-07-22 13:52:03 +00:00
pbos
8ff04d6b3b Remove UpdateSsrcs from EncoderStateFeedback.
Removes ability to modify set SSRCs from EncoderStateFeedback after
construction.

BUG=webrtc:1695
R=sprang@webrtc.org
TBR=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9603}
2015-07-20 15:01:25 +00:00
Jelena Marusic
cd6702282a Define Stream base classes
BUG=webrtc:4690

Defined classes Stream, SendStream and ReceiveStream. Inherited existing stream classes from either SendStream or ReceiveStream.
This is a step towards having a Transport associated with streams instead of a Call. It will allow a lot of code in the Call to be media type agnostic.

R=henrika@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9591}
2015-07-16 07:30:20 +00:00
Asa Persson
cddb3676e3 Remove unused metric in overuse detector.
BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9590}
2015-07-16 06:08:20 +00:00
pbos
8fc7fa798f Base A/V synchronization on sync_labels.
Groups of streams that should be synchronized are signalled through
SDP. These should be used rather than synchronizing the first-added
video stream to the first-added audio stream implicitly.

BUG=webrtc:4667
R=hta@webrtc.org, solenberg@webrtc.org, stefan@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9586}
2015-07-15 15:03:04 +00:00
pbos
ba8c15b857 Merge methods for configuring NACK/FEC/hybrid.
BUG=webrtc:1695
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9580}
2015-07-14 16:36:37 +00:00
stefan
caa498abbf Make sure RTCP is sent in tests when receiving packets even if REMB is delayed.
BUG=chromium:509821

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

Cr-Commit-Position: refs/heads/master@{#9579}
2015-07-14 16:14:57 +00:00
Peter Boström
d6f1a38165 Remove ViEChannel simulcast lock.
Since the number of streams is now known on construction we can
initialize all RTP modules on construction. They are internally locked
so we don't nede a simulcast lock anymore.

BUG=1695
R=mflodman@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/52639004 .

Cr-Commit-Position: refs/heads/master@{#9577}
2015-07-14 14:08:14 +00:00
jackychen
6e2ce6e1ae Allow for framerate reduction for HW encoder.
R=pbos@webrtc.org, stefan@webrtc.org
TBR=glaznev@google.com

Review URL: https://webrtc-codereview.appspot.com/51159004 .

Cr-Commit-Position: refs/heads/master@{#9573}
2015-07-13 23:26:40 +00:00