895 Commits

Author SHA1 Message Date
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
Stefan Holmer
11324b9561 Wait for a longer time (5 seconds) before establishing the first bandwidth estimate.
This reduces the risk of getting a small initial estimate when doing combined a/v BWE, and the audio stream is received earlier than the video stream.

In addition a check is added to make sure a probe can't reduce the BWE.

R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9560}
2015-07-09 15:28:07 +00:00
pbos
bb36fdf95f Remove empty-string comparisons.
Use .empty() and !.empty() in favor of == "" or != "".

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9559}
2015-07-09 14:48:27 +00:00
pbos
d436298332 Remove ResetStatistics from RTP feedback.
BUG=
R=asapersson@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9548}
2015-07-07 15:32:56 +00:00
pbos
a7d70546ad Remove VCM_*_PAYLOAD_TYPE constants.
These payload types aren't directly connected to any payload type, and
the payload type still has to be negotiated externally. As such these
constants are just a source of confusion.

BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9546}
2015-07-07 14:35:54 +00:00
Erik Språng
468e62a974 Remove MimdRateControl and factories for RemoteBitrateEstimor.
BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9541}
2015-07-06 08:51:01 +00:00
pbos
db0cf7624e Add test for dropping repeated NTP timestamps.
Regression test for enforcing that frames with repeated or old NTP
timestamps are dropped.

BUG=chromium:480953, webrtc:4615
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9533}
2015-07-02 11:14:50 +00:00
pbos
bd2522abf7 Fail RTP parsing on excessive padding length.
BUG=webrtc:4771
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9525}
2015-07-01 12:35:56 +00:00
Zeke Chin
71f6f4405c iOS HW H264 support.
First step towards supporting H264 on iOS. More tuning/experimentation
required in future CLs. Tested using AppRTCDemo on iPhone6 + iPad Mini.
Future work to get it working on OS/X, simulator (renders black screen
currently) and with the Android AppRTCDemo. Currently protected with a
compile time guard.

BUG=4081
R=andrew@webrtc.org, haysc@webrtc.org, holmer@google.com, jiayl@webrtc.org, kjellander@webrtc.org, pbos@webrtc.org, phoglund@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9515}
2015-06-29 21:35:08 +00:00
Peter Boström
4b91bd0897 Move frame input (ViECapturer) to webrtc/video/.
Renames ViECapturer to VideoCaptureInput and initializes several
parameters on construction instead of setters.

Also removes an old deadlock suppression.

BUG=1695, 2999
R=asapersson@webrtc.org, mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9508}
2015-06-26 04:58:23 +00:00
Erik Språng
2c4c914819 In screenshare mode, suppress VP8 bitrate overshoot and increase quality
This change includes several improvements:

* VP8 configured with new rate control
* Detection of frame dropping, with qp bump for next frame
* Increased target and TL0 bitrates
* Reworked rate control (TL allocation) in screenshare_layers

A note on performance: PSNR and SSIM is expected to get slightly worse with this cl. Frame drops and delays should however improve.

BUG=4171
R=pbos@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9495}
2015-06-24 09:24:50 +00:00
pbos
9874ee0d7a Add temporal-layers option to video_loopback.
BUG=
R=asapersson@webrtc.org, sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9482}
2015-06-22 11:44:30 +00:00
Peter Boström
2ee2439a1f Merge video_engine_core into webrtc target.
Merges the two video targets since video_engine is no longer usable
standalone.

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

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

Cr-Commit-Position: refs/heads/master@{#9479}
2015-06-22 05:57:26 +00:00
Stefan Holmer
ff4ea9310e Only use paced packets for estimating bitrate probes.
BUG=4778
R=mflodman@webrtc.org, solenberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9463}
2015-06-18 14:01:43 +00:00
Åsa Persson
24b4eda6f4 Add sent framerates to histogram stats:
"WebRTC.Video.InputFramesPerSecond",
"WebRTC.Video.SentFramesPerSecond".

BUG=488243
R=pbos@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9446}
2015-06-16 08:17:09 +00:00
Fredrik Solenberg
04f4931ef0 VoE2 API draft
BUG=4690
R=jmarusic@webrtc.org, kwiberg@webrtc.org, mflodman@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9392}
2015-06-08 11:05:07 +00:00
Åsa Persson
1aff095b6c Moved check for native frame to VideoReceiveStream::FrameCallback.
Stats for decoded framerate will now also be updated if the frame is backed by a texture.

BUG=webrtc:4722
R=mflodman@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9389}
2015-06-08 07:26:40 +00:00
Peter Boström
d7da120b40 Disable reduced-size RTCP in default config.
Verifies that reduced-size isn't configured in WebRtcVideoEngine2
without explicit configuration (which doesn't exist). Also disables REMB
in the default config because it requires reconfiguration.

Adds default-config tests to make sure that they don't contain
parameters that need to be negotiated between clients.

BUG=chromium:497103, webrtc:4745
R=mflodman@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9384}
2015-06-05 12:09:48 +00:00
Peter Boström
eb66e800d1 Re-land "Convert native handles to buffers before encoding."
This reverts commit a67675506c9057bd9ffd4d76aae8b743343d434d.

BUG=webrtc:4081
TBR=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9381}
2015-06-05 09:08:12 +00:00
Peter Boström
308d163c71 Revert "Convert native handles to buffers before encoding."
This reverts commit a831dc3a7d10a1fbaa258ee6b1ca6cfc7e91c5ca to unblock
rolling into Chromium.

BUG=4081
TBR=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9354}
2015-06-02 13:04:31 +00:00
scottmg
84f81d8fa1 Fix implicit size_t to uint16_t warning on VS2015.
Reviewed as https://review.webrtc.org/54609004/, but uploaded against
wrong Base URL.

R=pbos@webrtc.org
TBR=
BUG=chromium:440500

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

Patch from scottmg <scottmg@chromium.org>.

Cr-Commit-Position: refs/heads/master@{#9351}
2015-06-02 09:41:12 +00:00
Peter Boström
a831dc3a7d Convert native handles to buffers before encoding.
Required to permit conversion of NV12 handles on iOS to I420 for VP8
software encoding, which blocks texture-based capture. This change
enforces that all texture-based input provides a method for converting
native handles to I420 if they are ever used with software encoders that
do not understand the native handles.

BUG=4081
R=emircan@chromium.org, glaznev@webrtc.org, hbos@webrtc.org, magjed@webrtc.org, mflodman@webrtc.org, stefan@webrtc.org, tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9347}
2015-06-01 18:06:52 +00:00
Peter Boström
9ba52f89ac Remove intermediate RTCP CNAME buffers.
Sets CNAME using a pointer to only perform a copy inside the RTCP
sender.

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9346}
2015-06-01 12:12:40 +00:00
Miguel Casas-Sanchez
4765070b8d Rename I420VideoFrame to VideoFrame.
This is a mechanical change since it affects so many
files.
I420VideoFrame -> VideoFrame
and reformatted.

Rationale: in the next CL I420VideoFrame will
get an indication of Pixel Format (I420 for
starters) and of storage type: usually
UNOWNED, could be SHMEM, and in the near
future will be possibly TEXTURE. See
https://codereview.chromium.org/1154153003
for the change that happened in Cr.

BUG=4730, chromium:440843
R=jiayl@webrtc.org, niklas.enbom@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9339}
2015-05-30 00:21:56 +00:00
Peter Boström
2251d6e174 Remove ViESender.
Registers transport on construction removing the need for ViESender as a
hop and removing a potential deadlock by removing RegisterSendTransport.

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

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

Cr-Commit-Position: refs/heads/master@{#9309}
2015-05-28 12:10:48 +00:00
Peter Boström
def39883f0 Configure default render delay as 10 ms.
BUG=chromium:488395
R=mflodman@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9296}
2015-05-27 15:59:21 +00:00
Peter Boström
5a3ebd761c Revert "Remove default encoder/decoders."
This reverts commit 78ae00eea29850bd3bd608287d8b057c88e91b42 due to perf
regressions. Reverting during investigation to figure out root causes.

BUG=chromium:491112
R=henrik.lundin@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9283}
2015-05-26 09:44:14 +00:00
Henrik Kjellander
57e5fd2e60 PRESUBMIT: Improve PyLint check and add GN format check.
Add pylintrc file based on
https://code.google.com/p/chromium/codesearch#chromium/src/tools/perf/pylintrc
bit tightened up quite a bit (the one in depot_tools is far
more relaxed).

Remove a few excluded directories from pylint check and fixed/
suppressed all warnings generated.

Add GN format check + formatted all GN files using 'gn format'.
Cleanup redundant rules in tools/PRESUBMIT.py

TESTED=Ran 'git cl presubmit -vv', fixed the PyLint violations.
Ran it again with a modification in webrtc/build/webrtc.gni, formatted
all the GN files and ran it again.

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

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

Cr-Commit-Position: refs/heads/master@{#9274}
2015-05-25 10:55:50 +00:00
Peter Boström
78ae00eea2 Remove default encoder/decoders.
This path is not used, senders/receivers already disable default coders.

BUG=1695
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9245}
2015-05-21 07:56:17 +00:00
Peter Boström
4d71edef45 Add HW fallback option to software encoding.
Permits falling back to software encoding for unsupported resolutions.

BUG=chromium:475116, chromium:487934
R=mflodman@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9227}
2015-05-19 21:09:17 +00:00