Commit graph

864 commits

Author SHA1 Message Date
Sergey Silkin
086b9073d4 Update codecs/h264 owners.
- Removed hbos@webrtc.org
- Added ssilkin@webrtc.org

Bug: none
Change-Id: I520be843cbb28652393cb0e0e05d7e0c1786e562
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131125
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27447}
2019-04-04 10:21:32 +00:00
philipel
5982d008a8 Stop always predicting from last keyframe in the 3TL VP8 case.
Bug: webrtc:10314
Change-Id: I510c84cce0ec05ad8ef977d57cba9585aabc0538
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131141
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27441}
2019-04-03 15:16:30 +00:00
Rasmus Brandt
fd720b2406 Switch to SendTask instead of manually waiting for event.
Bug: webrtc:10349
Change-Id: I128856d2baf221d67e957ce0614b075ecef3c5fc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131140
Reviewed-by: Mirta Dvornicic <mirtad@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27439}
2019-04-03 12:03:14 +00:00
Henrik Boström
c680c4a807 Revert "Running FrameBuffer on task queue."
This reverts commit 13943b7b7f.

Reason for revert: Breaks chromium import bots:
https://ci.chromium.org/p/chromium/builders/webrtc.fyi/WebRTC%20Chromium%20FYI%20Android%20Tests%20%28dbg%29%20%28K%20Nexus5%29

First failure:
https://ci.chromium.org/p/chromium/builders/webrtc.fyi/WebRTC%20Chromium%20FYI%20Android%20Tests%20%28dbg%29%20%28K%20Nexus5%29/2794

Original change's description:
> Running FrameBuffer on task queue.
> 
> This prepares for running WebRTC in simulated time where event::Wait
> based timing doesn't work.
> 
> Bug: webrtc:10365
> Change-Id: Ia0f9b1cc8e3c8c27a38e45b40487050a4699d8cf
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129962
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27422}

TBR=sprang@webrtc.org,philipel@webrtc.org,srte@webrtc.org

Change-Id: I198a91ec1707cc8752a7fe55caf0f172e1b8e60a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10365
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131120
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27436}
2019-04-03 10:27:51 +00:00
Åsa Persson
288cbe8200 Remove unused method in VCMInterFrameDelay.
Bug: none
Change-Id: I88f0f4011643736267f0dfa254cd65a936330253
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130475
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27430}
2019-04-03 07:35:28 +00:00
Sebastian Jansson
13943b7b7f Running FrameBuffer on task queue.
This prepares for running WebRTC in simulated time where event::Wait
based timing doesn't work.

Bug: webrtc:10365
Change-Id: Ia0f9b1cc8e3c8c27a38e45b40487050a4699d8cf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129962
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27422}
2019-04-02 18:34:59 +00:00
Mirko Bonadei
66e7679fb8 Export symbols needed by the Chromium component build (part 8).
This CL uses RTC_EXPORT (defined in rtc_base/system/rtc_export.h)
to mark WebRTC symbols as visible from a shared library, this doesn't
mean these symbols are part of the public API (please continue to refer
to [1] for info about what is considered public WebRTC API).

[1] - https://webrtc.googlesource.com/src/+/HEAD/native-api.md

Bug: webrtc:9419
Change-Id: Ib2c29054b2ae008f5291bd3b762a504b18534326
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130513
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27410}
2019-04-02 10:13:36 +00:00
Erik Språng
db6335efce Make sure screenshare_layers produce non-sync TL1 frames after keyframes
This fixes a regression introduces way back in August 2018:
https://webrtc-review.googlesource.com/c/src/+/91863/
For bonus points, also fixing an auxiliary test issue.

Bug: webrtc:10479, webrtc:10260
Change-Id: I4e99fe6e070446d10357d9d1a9d1ffc9dedcf419
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129926
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27409}
2019-04-02 09:16:30 +00:00
Niels Möller
10aac06886 Delete VCMJitterBuffer::IncomingRateStatistics
Bug: webrtc:7408
Change-Id: I2da20bca053bb757957aec56e1fc7f7f915a0b55
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130102
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27378}
2019-04-01 07:43:28 +00:00
Niels Möller
db64d99130 Delete unused constructor arguments from VCMJitterBuffer
The NackSender* and KeyFrameRequestSender* arguments were unused.

Bug: webrtc:7408
Change-Id: Iab3b443373953e88c48867d031cb114b4891ab78
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130503
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27377}
2019-04-01 07:42:23 +00:00
Niels Möller
9d8eaac4ee Delete unneeded direct includes of common_types.h
And delete corresponding dependencies on :webrtc_common. After this
change, common_types.h is included directly only from code in the
following directories:

api/
api/video/
api/video_codecs/
common_video/libyuv/include/
media/base/
modules/remote_bitrate_estimator/
modules/rtp_rtcp/source/
modules/video_coding/codecs/vp9/

There remains plenty of indirect dependencies on the types declared in
common_types.h, but the fewer direct dependencies should make it
easier to find the proper place for each type.

Bug: webrtc:5876
Change-Id: I93e8f214025ecb613c19fdec2015bd3f96c59aae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130501
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27376}
2019-04-01 07:18:13 +00:00
philipel
b19f27a5f9 Decode Target Information for VP8 libvpx encoder.
In this CL:
 - Created static helper function GenericFrameInfo::DecodeTargetInfo to
   convert DTI symbols to a list of GenericFrameInfo::OperatingPointIndication.
 - Added per frame DTI information for the different stream structures.

Bug: webrtc:10342
Change-Id: I62ff2e9fc9b380fe1d0447ff071e86b6b35ab249
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129923
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27350}
2019-03-28 18:18:43 +00:00
Niels Möller
e8fd57c335 Move EventWrapper to its own build target
With visibility restricted to modules/video_coding/.
Also drop some unneeded dependencies on system_wrappers.

Bug: webrtc:3380
Change-Id: If3b64396953a026bede09c9fb5eb06cfc4c29f3a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130104
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27344}
2019-03-28 15:04:42 +00:00
philipel
361855bac8 Rename OperatingPoint to DecodeTarget.
Bug: webrtc:10342
Change-Id: Ie82e23b2ccb921f3b6d86c3f8f2152264a9c26d5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130160
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27342}
2019-03-28 13:49:24 +00:00
Niels Möller
20393ee9b7 Delete all stats-related logic from VCMJitterBuffer.
Bug: webrtc:7408
Change-Id: I0347746f8c6cd2d8fb4b2daa61d4e3ef8f550b77
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129930
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27338}
2019-03-28 12:55:33 +00:00
Niels Möller
dd41da697a Delete unused methods from VCMReceiveStatisticsCallback
Bug: webrtc:7408
Change-Id: I942b8ce6d91578a6cc3ea8fe3ddd53068af96185
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129931
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27333}
2019-03-28 10:56:53 +00:00
Niels Möller
b8fffa1ad8 Delete method VCMJitterBuffer::RegisterStatsCallback
Unused in the legacy VideoCodingModule api since
https://webrtc-review.googlesource.com/c/src/+/62101/
and unused by the VideoReceiveStream code path since
https://webrtc-review.googlesource.com/c/src/+/128870

Bug: webrtc:7408
Change-Id: I800dba08a6e0e8f5de6169241d217bd5e8e5d0de
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129961
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27319}
2019-03-27 16:12:38 +00:00
Rasmus Brandt
7d72d0fb39 Change VideoCodecTestStats API.
- Add GetFrameStatistics API:
  This is useful for downstream test users that want to read frame-level stats.
- Remove other APIs that are not used by downstream tests:
    * AddFrame
    * GetFrame
    * GetFrameWithTimestamp
    * SliceAndCalcAggregatedVideoStatistic
    * PrintFrameStatistics
    * Size
    * Clear
  The implementations, which are used by the fixture implementation, are kept.

Bug: webrtc:10349
Change-Id: Id2f6fa5a36b8341a5ccb365725f71ebe0c0f1570
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128779
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27306}
2019-03-27 09:50:54 +00:00
Niels Möller
712fb89ca8 Allocate separate component buffers in MultiplexEncodedImagePacker::Unpack
This eliminates use of EncodedImage::set_buffer.

Bug: webrtc:9378
Change-Id: Iea19f063b7cc4d7a6184efe6cd22ce829db524b3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128762
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Emircan Uysaler <emircan@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27303}
2019-03-27 08:22:15 +00:00
Mirko Bonadei
01b25587eb Revert "Disable TestVp9ImplProfile2.EncodeDecode on iOS."
This reverts commit 1419539656.

Reason for revert: The issue has been fixed by https://chromium-review.googlesource.com/c/chromium/src/+/1539000.

Original change's description:
> Disable TestVp9ImplProfile2.EncodeDecode on iOS.
> 
> The test crashes in libvpx VP9 encoder on iOS simulator.
> 
> Bug: webrtc:10473
> Change-Id: I99ad0ac45e55f445cf1b3964ff0e66020fccb1f6
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129441
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27266}

TBR=ilnik@webrtc.org,ssilkin@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:10473
Change-Id: Id602795fcd6fa4c2bb4cb424f8a559ce92d52ba7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129763
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27298}
2019-03-26 19:37:16 +00:00
Ilya Nikolaevskiy
48193b065a In FrameBuffer call stats callback's OnCompleteFrame once per superframe
Bug: webrtc:10461
Change-Id: Ib3b6aeb38cd68e73281f526f8d1a7d8a0b5b1cc6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128866
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27295}
2019-03-26 15:36:36 +00:00
Elad Alon
f2ca8c5341 Allow injecting a Vp8FrameBufferControllerFactory
Injection is made possible through VP8Encoder::Create.
According to native-api.md, it is a defacto public API despite
not being in the api/ folder.

Bug: webrtc:10259, webrtc:10382
Change-Id: Ifc5d55aa99613cfee0fcb4f0c6690121c85b2e3e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128883
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27281}
2019-03-26 10:07:14 +00:00
Niels Möller
4168437782 Remove unused callbacks from VideoStreamDecoder
VCMReceiveStatisticsCallback originates in the old jitter buffer, and
is no longer used.

VCMFrameTypeCallback originates in VideoReceiver::RequestKeyFrame,
which is called from OncomingPacket, Process, Decode(uint16_t
maxWaitTimeMs), all of which are unused by VideoReceiveStream.

So delete the code to wire them up via VideoStreamDecoder.

Bug: webrtc:7408
Change-Id: I173bc94eb32f2641f943c125083db038c3bcaeb1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128870
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27277}
2019-03-26 09:25:43 +00:00
Sergey Silkin
1419539656 Disable TestVp9ImplProfile2.EncodeDecode on iOS.
The test crashes in libvpx VP9 encoder on iOS simulator.

Bug: webrtc:10473
Change-Id: I99ad0ac45e55f445cf1b3964ff0e66020fccb1f6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129441
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27266}
2019-03-25 12:36:34 +00:00
Niels Möller
9b0b1e0063 Delete unused method VCMReceiveStatisticsCallback::OnReceiveRatesUpdated
Only interesting call deleted in cl
https://codereview.webrtc.org/2704183002.

Move call to QualitySample (used for bad call detection) to
OnRenderedFrame

Bug: webrtc:7408
Change-Id: I0e9ae2ed62fe19a282377cb840e38bd2aae8f3e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128768
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27243}
2019-03-22 14:56:18 +00:00
Rasmus Brandt
001c782ff2 Save encoded ivf files separately for different TLs.
This allows offline visualization of the different TL.

For now, there is no need to do the same for the decoded frames.

Bug: webrtc:10349
Tested: 1) ninja -C out/Debug; and out/Debug/modules_tests --gtest_filter="*MultiresVP8*:*SvcVP9*". 2) Downstream tests.
Change-Id: Iaf5ab19ee681488706d8777a5adba78efd5cc1ee
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128861
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Mirta Dvornicic <mirtad@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27240}
2019-03-22 13:15:54 +00:00
Niels Möller
8f7ce222e7 Make VideoFrameType an enum class, and move to separate file and target
Bug: webrtc:5876, webrtc:6883
Change-Id: I1435cfa9e8e54c4ba2978261048ff3fbb993ce0e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126225
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27239}
2019-03-22 12:44:51 +00:00
Danil Chapovalov
b42165eeab Replace rtc::TaskQueue with TaskQueueForTest in quality scalar unittests
Bug: webrtc:10284
Change-Id: I4de0fdfc98197ad2189fc781a8ee551de597c2f4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127890
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27234}
2019-03-22 10:58:20 +00:00
Sergey Silkin
38fabff311 Update INTER_LAYER_PRED_OFF code paths.
This removes speculative refresh of reference buffers on key frame
in WebRTC VP9 encoder wrapper and updates relevant unit tests.

Bug: webrtc:10437
Change-Id: Icd178f9dbbd19af87e3ec782f9a6cecc98d47139
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128611
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27229}
2019-03-21 17:36:32 +00:00
Artem Titov
94b57c044e Cleanup BUILD.gn files from imports like foo:foo
Repalce all occurrences of foo:foo in deps with just foo in BUILD.gn
files.

Done with Sublime regex replace.
Find: \b([-a-zA-Z0-9_]+):+\1\b
In: *.gn
Replace with: \1

Bug: None
Change-Id: I40aba1b14face687a595b852ffe443cb20197611
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127899
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27225}
2019-03-21 13:05:28 +00:00
Rasmus Brandt
c528410d2c Improve VideoCodecTest perf stats output.
- Output verbose send stats before verbose recv stats.
- Add |rate_profile_idx| to output names.
- Only report encode framerate and keyframe size for the entire stream.
- Add encoded bitrate/framerate stats per layer. Remove # dropped frames.
- Add U/V quality stats (mainly to compare to HW codecs)

Bug: webrtc:10349
Change-Id: I8f0d05e0fdf96ea998a06732462a080245b61221
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128614
Reviewed-by: Mirta Dvornicic <mirtad@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27223}
2019-03-21 12:17:09 +00:00
Artem Titov
533a9fec55 Clean BUILD.gn files: remove extra :memory
Use //third_party/abseil-cpp/absl/memory instead of
//third_party/abseil-cpp/absl/memory:memory in BUILD.gn files.

Bug: None
Change-Id: I47c915f0847b102b37c5b38009c91b315cd3a1b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128615
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27222}
2019-03-21 12:09:50 +00:00
Niels Möller
ef1052a134 Reland "Move api/rtp_headers.h to its own build target."
This is a reland of a67050debc

Original change's description:
> Move api/rtp_headers.h to its own build target.
>
> Reduces dependencies on the libjingle_peerconnection_api target from
> lower-level code.
>
> Bug: None
> Change-Id: I98576fc718c396cc0f720c3770acd2b696b9df89
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128565
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27213}

Bug: None
Tbr: kwiberg@webrtc.org
Change-Id: If15b05957e50bb8f18a33c2ed1321e672311b626
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127895
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27216}
2019-03-21 09:17:07 +00:00
Steve Anton
2baef3509f Revert "Move api/rtp_headers.h to its own build target."
This reverts commit a67050debc.

Reason for revert: breaks downstream projects

Original change's description:
> Move api/rtp_headers.h to its own build target.
> 
> Reduces dependencies on the libjingle_peerconnection_api target from
> lower-level code.
> 
> Bug: None
> Change-Id: I98576fc718c396cc0f720c3770acd2b696b9df89
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128565
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27213}

TBR=danilchap@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org

Change-Id: I8cccaa8be1700ca8db141db7252eb6ce588ba2e0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128645
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27215}
2019-03-20 16:47:30 +00:00
Niels Möller
a67050debc Move api/rtp_headers.h to its own build target.
Reduces dependencies on the libjingle_peerconnection_api target from
lower-level code.

Bug: None
Change-Id: I98576fc718c396cc0f720c3770acd2b696b9df89
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128565
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27213}
2019-03-20 16:00:49 +00:00
Elad Alon
cde8ab265e Use single FrameBufferController in VP8, created by a factory.
This CL paves the way to making FrameBufferController injectable.

LibvpxVp8Encoder can manage multiple streams. Prior to this CL,
each stream had its own frame buffer controller, all of them held
in a vector by LibvpxVp8Encoder. This complicated the code and
produced some code duplication (cf. SetupTemporalLayers).

This CL:
1. Replaces CreateVp8TemporalLayers() by a factory. (Later CLs
   will make this factory injectable.)
2. Makes LibvpxVp8Encoder use a single controller. This single
   controller will, in the case of multiple streams, delegate
   its work to multiple controllers, but that fact is not visible
   to LibvpxVp8Encoder.

This CL also squashes CL #126046 (Send notifications of RTT and
PLR changes to Vp8FrameBufferController) into it.

Bug: webrtc:10382
Change-Id: Id9b55734bebb457acc276f34a7a9e52cc19c8eb9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126483
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27206}
2019-03-20 11:54:02 +00:00
Danil Chapovalov
d26a916a80 Avoid using GlobalTaskQueueFactory for TaskQueueForTest
To remove global task factory, rtc::TaskQueue need to loose it's convenient constructor
TaskQueueForTest can be used instead in tests and keep the convenient constructor.

Also cleanup the TaskQueueForTest a bit:
move the class to webrtc namespace
add default constructor
disallow copy using language construct instead of macro
cleanup build dependencies
rename build target (to match move out of the rtc namespace)

Bug: webrtc:10284
Change-Id: I17fddf3f8d4f363df7d495c28a5b0a28abda1ba7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127571
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27193}
2019-03-19 18:11:52 +00:00
Philip Eliasson
1f850a6dc7 Reland "SeqNumUnwrapper::Unwrap now returns int64_t instead of uint64_t."
This reverts commit b5207b488b.

Reason for revert: DecodedFramesHistory has now been updated.

Original change's description:
> Revert "SeqNumUnwrapper::Unwrap now returns int64_t instead of uint64_t."
> 
> This reverts commit b0f968a761.
> 
> Reason for revert: Need to update DecodedFramesHistory to manage negative picture IDs.
> 
> Original change's description:
> > SeqNumUnwrapper::Unwrap now returns int64_t instead of uint64_t.
> > 
> > Bug: webrtc:10263
> > Change-Id: Idaeae6be01bd4eba0691226c958d70e114161ffd
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127295
> > Commit-Queue: Philip Eliasson <philipel@webrtc.org>
> > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#27129}
> 
> TBR=kwiberg@webrtc.org,eladalon@webrtc.org,terelius@webrtc.org,philipel@webrtc.org,kron@webrtc.org
> 
> Change-Id: I529bb0475bd21a80fa244278aff1fd912a85c169
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:10263
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127885
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Commit-Queue: Philip Eliasson <philipel@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27135}

TBR=kwiberg@webrtc.org,eladalon@webrtc.org,terelius@webrtc.org,philipel@webrtc.org,kron@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:10263
Change-Id: Id59e377010b5070dd37a7ece8df79b23af43835a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128568
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27191}
2019-03-19 17:02:27 +00:00
Niels Möller
6e6e86a5fc Delete unused method VideoReceiver::SetMinimumPlayoutDelay
Call from VideoCodingModule was deleted in cl
https://webrtc-review.googlesource.com/62101

Bug: None
Change-Id: I10aa1f5cbaedec30de82ece39ca2470733319110
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128566
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27188}
2019-03-19 16:55:57 +00:00
Niels Möller
3ee1fae608 Delete unused enum VideoCodingModule::SenderNackMode.
It appesrs unused for a long time; an alias was deleted in
https://webrtc-review.googlesource.com/c/124488, but it was already
unused.

Bug: None
Change-Id: Idae6a72949968e22c784d512f9617240ef1169b4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128569
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27187}
2019-03-19 16:54:52 +00:00
philipel
5165543157 DecodeFrameHistory can now deal with negative picture IDs.
Bug: webrtc:10263
Change-Id: I5c4f9511074b86dc73c9677a14dd10ee18c6ea4f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128422
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27176}
2019-03-19 10:57:06 +00:00
philipel
2f5f061dfa Remove unused variable DefaultTemporalLayers::kKeyframeBuffer.
Bug: None
Change-Id: I20a52ea51ea47da8f7fb177a692913572977a6b6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127840
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27148}
2019-03-15 15:32:43 +00:00
Rasmus Brandt
69008a8718 Avoid div-by-zero in VideoCodecTest stats calculation.
Bug: webrtc:10400
Change-Id: I82b1e86cc8f7d1547fc4863c08c0f8ab82801ac4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128086
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27145}
2019-03-15 13:15:02 +00:00
Philip Eliasson
b5207b488b Revert "SeqNumUnwrapper::Unwrap now returns int64_t instead of uint64_t."
This reverts commit b0f968a761.

Reason for revert: Need to update DecodedFramesHistory to manage negative picture IDs.

Original change's description:
> SeqNumUnwrapper::Unwrap now returns int64_t instead of uint64_t.
> 
> Bug: webrtc:10263
> Change-Id: Idaeae6be01bd4eba0691226c958d70e114161ffd
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127295
> Commit-Queue: Philip Eliasson <philipel@webrtc.org>
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27129}

TBR=kwiberg@webrtc.org,eladalon@webrtc.org,terelius@webrtc.org,philipel@webrtc.org,kron@webrtc.org

Change-Id: I529bb0475bd21a80fa244278aff1fd912a85c169
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10263
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127885
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27135}
2019-03-14 18:14:33 +00:00
philipel
b0f968a761 SeqNumUnwrapper::Unwrap now returns int64_t instead of uint64_t.
Bug: webrtc:10263
Change-Id: Idaeae6be01bd4eba0691226c958d70e114161ffd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127295
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27129}
2019-03-14 13:01:20 +00:00
Niels Möller
009ab3c438 Delete EncodedImage::GetBufferPaddingBytes
For the ffmpeg H.264 decoder, rely on ffmpeg being configured with
CONFIG_SAFE_BITSTREAM_READER.

Bug: webrtc:9378
Change-Id: Ia7a46580d520808e36581252a95feeb5f9c57bf9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/119665
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27124}
2019-03-14 09:08:19 +00:00
Ilya Nikolaevskiy
7ae8d64dd0 Restore VideoCodecInitializer to use only the 1st stream maxFramerate
This is a partial fix for regression introduced in
https://webrtc-review.googlesource.com/c/src/+/125461

Currently, the OveruseFrameDetector::OnTargetFramerateUpdated is called
only then the encoder is reconfigured, with the default maxFramerate.

Changing it from default 5 to 60, or even 30 made the detector too
sensitive and it caused adaptation down due to CPU overuse even on
powerful machines.

Bug: webrtc:10310, chromium:940466
Change-Id: I7b0eabfc8f9b502e293af1a5b02fc5d4ab468c14
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127280
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27094}
2019-03-13 09:07:47 +00:00
Sebastian Jansson
cda86dd483 Removes usages of repeating task without task queue argument.
This prepares from removing the overload in a followup CL.

Bug: webrtc:10365
Change-Id: I80db16e7d37944e3dc7d2799bbf45ef8f439a22c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126860
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27091}
2019-03-13 08:07:56 +00:00
Niels Möller
075e7fdd00 Delete VCMPacket constructor with WebRtcRTPHeader
Bug: webrtc:10397
Change-Id: I8f51616d6953af6b2d3bdfdf46b748b2a78702ea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127240
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27079}
2019-03-12 15:18:41 +00:00
Danil Chapovalov
471783fc87 Remove rtc::QueuedTask alias, use webrtc::QueuedTask directly
Use absl::WrapUnique/absl::make_unique to create the queued tasks.

Bug: webrtc:10191
Change-Id: I8f47a60cb326b0fc361c7f0e338b25373d39937c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126525
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27063}
2019-03-11 16:49:21 +00:00
Elad Alon
a5c0ba1861 Reland "Fix LibvpxVp8Encoder::FrameDropThreshold"
This is a reland of 159e53a66e
Reason for reland: Got Aliby for Android FEC test flakes.

Original change's description:
> Fix LibvpxVp8Encoder::FrameDropThreshold
>
> Bug: webrtc:10387
> Change-Id: I17b575546d6718f905429ac45705cb923ee52c10
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126232
> Commit-Queue: Elad Alon <eladalon@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27032}

Bug: webrtc:10387
Change-Id: Iaed760464d71ccfc6ad0e442b99f20c40c03e1e2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126762
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27058}
2019-03-11 13:37:38 +00:00
Danil Chapovalov
ad89528051 Reland "Delete rtc::TaskQueue::Current in favor of webrtc::TaskQueueBase::Current"
This reverts commit 42d8c93ec3.

Reason for revert: Got Aliby for FEC test flakes

Original change's description:
> Revert "Delete rtc::TaskQueue::Current in favor of webrtc::TaskQueueBase::Current"
> 
> This reverts commit 304e9d2df3.
> 
> Reason for revert: Breaks downstream projects.
> Seems to make VideoSendStreamTest.SupportsFlexfecSimulcastVp8 flaky.
> 
> Original change's description:
> > Delete rtc::TaskQueue::Current in favor of webrtc::TaskQueueBase::Current
> > 
> > Bug: webrtc:10191
> > Change-Id: I506cc50a90c73a6a4f6a3de36de0999cca72f5ba
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126230
> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> > Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#27035}
> 
> TBR=danilchap@webrtc.org,kwiberg@webrtc.org
> 
> Change-Id: If98324f88e4b3d18bf2fe33597dfb9711867c243
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:10191
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126484
> Reviewed-by: Yves Gerey <yvesg@webrtc.org>
> Commit-Queue: Yves Gerey <yvesg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27041}

TBR=danilchap@webrtc.org,kwiberg@webrtc.org,yvesg@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:10191
Change-Id: Id87a17ae415142b8e0b11ba03ae7bad84a473fb0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126720
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Yves Gerey <yvesg@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27056}
2019-03-11 12:32:49 +00:00
Yves Gerey
55500d26b7 Revert "Fix LibvpxVp8Encoder::FrameDropThreshold"
This reverts commit 159e53a66e.

Reason for revert: Might break downstream Android projects.

Original change's description:
> Fix LibvpxVp8Encoder::FrameDropThreshold
> 
> Bug: webrtc:10387
> Change-Id: I17b575546d6718f905429ac45705cb923ee52c10
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126232
> Commit-Queue: Elad Alon <eladalon@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27032}

TBR=ilnik@webrtc.org,eladalon@webrtc.org,sprang@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:10387
Change-Id: I08055d1b0234dccd4166a4eaf8eff56f909f99a8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126721
Reviewed-by: Yves Gerey <yvesg@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27055}
2019-03-11 12:16:09 +00:00
Yves Gerey
42d8c93ec3 Revert "Delete rtc::TaskQueue::Current in favor of webrtc::TaskQueueBase::Current"
This reverts commit 304e9d2df3.

Reason for revert: Breaks downstream projects.
Seems to make VideoSendStreamTest.SupportsFlexfecSimulcastVp8 flaky.

Original change's description:
> Delete rtc::TaskQueue::Current in favor of webrtc::TaskQueueBase::Current
> 
> Bug: webrtc:10191
> Change-Id: I506cc50a90c73a6a4f6a3de36de0999cca72f5ba
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126230
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27035}

TBR=danilchap@webrtc.org,kwiberg@webrtc.org

Change-Id: If98324f88e4b3d18bf2fe33597dfb9711867c243
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10191
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126484
Reviewed-by: Yves Gerey <yvesg@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27041}
2019-03-08 16:14:54 +00:00
Ilya Nikolaevskiy
cad95b831e Reland "Tune vp9 screenshare bitrate and framerate of spatial layers"
This is a reland after changes to the downstream project

VP9 screenshare is not used currently, and with these values according
to local testing with screenshare_loopback, we get performance not worse than current vp8 settings for similar uplink and downlink values.

Original Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126226

Bug: webrtc:10257
Change-Id: Ib21d7678bd839a3c47457515b0d768c0b979ea40
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126524
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27040}
2019-03-08 16:00:22 +00:00
Ilya Nikolaevskiy
e01857cca4 Revert "Reland "Tune vp9 screenshare bitrate and framerate of spatial layers""
This reverts commit 12abf671fd.

Reason for revert: Breaks downstream project.

Original change's description:
> Reland "Tune vp9 screenshare bitrate and framerate of spatial layers"
> 
> This is a reland without any changes as it seems problems with webrtc-in-chrome importer were flakes or
> caused by some issues within chrome codebase.
> 
> Tune vp9 screenshare bitrate and framerate of spatial layers
> 
> VP9 screenshare is not used currently, and with these values according
> to local testing with screenshare_loopback, we get performance not worse than current vp8 settings for similar uplink and downlink values.
> 
> Original Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126226
> 
> Bug: webrtc:10257
> Change-Id: Ie819d8bbab4f14877daac733d162e5ae7ebf2a8e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126460
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27036}

TBR=ilnik@webrtc.org,jeroendb@webrtc.org,kron@webrtc.org

Change-Id: I9ad9017b054213f931b3b39c641060d35565f17d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10257
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126523
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27037}
2019-03-08 14:25:47 +00:00
Ilya Nikolaevskiy
12abf671fd Reland "Tune vp9 screenshare bitrate and framerate of spatial layers"
This is a reland without any changes as it seems problems with webrtc-in-chrome importer were flakes or
caused by some issues within chrome codebase.

Tune vp9 screenshare bitrate and framerate of spatial layers

VP9 screenshare is not used currently, and with these values according
to local testing with screenshare_loopback, we get performance not worse than current vp8 settings for similar uplink and downlink values.

Original Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126226

Bug: webrtc:10257
Change-Id: Ie819d8bbab4f14877daac733d162e5ae7ebf2a8e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126460
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27036}
2019-03-08 14:12:29 +00:00
Danil Chapovalov
304e9d2df3 Delete rtc::TaskQueue::Current in favor of webrtc::TaskQueueBase::Current
Bug: webrtc:10191
Change-Id: I506cc50a90c73a6a4f6a3de36de0999cca72f5ba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126230
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27035}
2019-03-08 13:17:46 +00:00
Elad Alon
159e53a66e Fix LibvpxVp8Encoder::FrameDropThreshold
Bug: webrtc:10387
Change-Id: I17b575546d6718f905429ac45705cb923ee52c10
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126232
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27032}
2019-03-08 11:14:43 +00:00
Yves Gerey
3caf50dbb8 Make ChangeBitrateVP9 unittest a bit more lenient.
This CL slightly increases rc_threshold.max_avg_bitrate_mismatch_percent
to account for libvpx change [1].
This will allow to unblock chromium roll [2].

[1] df7039cf9a
[2] https://webrtc-review.googlesource.com/c/src/+/126301/

Bug: webrtc:10349
Change-Id: Id9d8947a4f67e384f716dc73abb8c1cbbf2c6040
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126462
Commit-Queue: Yves Gerey <yvesg@google.com>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27029}
2019-03-08 09:31:44 +00:00
Jeroen de Borst
1109b59d0c Revert "Tune vp9 screenshare bitrate and framerate of spatial layers"
This reverts commit aaf3cb3adb.

Reason for revert: Chrome importer consitently failing after this change

Original change's description:
> Tune vp9 screenshare bitrate and framerate of spatial layers
> 
> VP9 screenshare is not used currently, and with these values according
> to local testing with screenshare_loopback, we get performance not worse
> than current vp8 settings for similar uplink and downlink values.
> 
> Bug: webrtc:10257
> Change-Id: Icabac04fbd3d616412bbae59291a1fc026d0a504
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126226
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27023}

TBR=ilnik@webrtc.org,kron@webrtc.org

Change-Id: I1ef1eeec8fe87a7662a354ef6362b7d463b2bb4c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10257
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126340
Reviewed-by: Jeroen de Borst <jeroendb@webrtc.org>
Commit-Queue: Jeroen de Borst <jeroendb@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27027}
2019-03-07 20:45:08 +00:00
Jeroen de Borst
2c7b9825bc Revert "Delete CodecSpecificInfo argument from VideoDecoder::Decode"
This reverts commit 39d3a7de02.

Reason for revert: This change broke an internal project

Original change's description:
> Delete CodecSpecificInfo argument from VideoDecoder::Decode
> 
> Bug: webrtc:10379
> Change-Id: I079b419604bf4e9c1994fe203d7db131a0ccddb6
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125920
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27022}

TBR=brandtr@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org,sprang@webrtc.org

Change-Id: I2c730cc1834a3b23203fae3d7881f0890802c37b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10379
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126320
Reviewed-by: Jeroen de Borst <jeroendb@webrtc.org>
Commit-Queue: Jeroen de Borst <jeroendb@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27026}
2019-03-07 19:40:17 +00:00
Ilya Nikolaevskiy
aaf3cb3adb Tune vp9 screenshare bitrate and framerate of spatial layers
VP9 screenshare is not used currently, and with these values according
to local testing with screenshare_loopback, we get performance not worse
than current vp8 settings for similar uplink and downlink values.

Bug: webrtc:10257
Change-Id: Icabac04fbd3d616412bbae59291a1fc026d0a504
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126226
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27023}
2019-03-07 16:28:20 +00:00
Niels Möller
39d3a7de02 Delete CodecSpecificInfo argument from VideoDecoder::Decode
Bug: webrtc:10379
Change-Id: I079b419604bf4e9c1994fe203d7db131a0ccddb6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125920
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27022}
2019-03-07 16:18:49 +00:00
Rasmus Brandt
6f0aafa531 Add PrintResults to VideoCodecTest.
These are used by the test runner to pick up perf values
to be shown in the perf dashboard.

Bug: webrtc:10349
Change-Id: Ib3b2479f7a20b66192751bee8237d757f5870bd2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126220
Reviewed-by: Mirta Dvornicic <mirtad@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27020}
2019-03-07 15:12:40 +00:00
Niels Möller
b859b326ba Update more VideoEncoder implementations to drop CodecSpecificInfo input
Followup to https://webrtc-review.googlesource.com/c/src/+/125900.

Bug: webrtc:10379
Change-Id: If81c50c862bbcfd65a3cf7000c8327ebafe519c3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126002
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27016}
2019-03-07 12:26:57 +00:00
Niels Möller
87e2d785a0 Prepare for splitting FrameType into AudioFrameType and VideoFrameType
This cl deprecates the FrameType enum, and adds aliases AudioFrameType
and VideoFrameType.

After downstream usage is updated, the enums will be separated
and be moved out of common_types.h.

Bug: webrtc:6883
Change-Id: I2aaf660169da45f22574b4cbb16aea8522cc07a6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/123184
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27011}
2019-03-07 10:12:57 +00:00
Elad Alon
de3360ec1d Create Vp8FrameBufferController
Vp8FrameBufferController is currently just a renamed Vp8TemporalLayers,
but subsequent CLs will modify Vp8FrameBufferController in ways that are
not relevant for Vp8TemporalLayers. Namely:
 1. Loss notifications will be added.
 2. Packet-loss rate will be tracked.
 3. RTT will be tracked.
 4. Vp8FrameBufferController will be made injectable.

Vp8TemporalLayers is retained in order to:
 1. Avoid needlessly changing api/.
 2. Place for code shared between DefaultTemporalLayers and ScreenshareLayers.
We can remove it in the future (with a proper public announcement).

Bug: webrtc:10382
Change-Id: I49ad1b9bc1954d51bb0b5e60361985f1eb12ae9f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126045
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27009}
2019-03-07 09:28:25 +00:00
Ilya Nikolaevskiy
7b41225156 Throttle frame-rate In VP8 encoder in steady state for screenshare
If minQP is reached and encoder undershoot consistently, we consider the
quality good enough and throttle encode frame rate.

Bug: webrtc:10310
Change-Id: Ifd07280040dd67ef6e544efdd4619d47bff951e8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125461
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27003}
2019-03-06 18:08:15 +00:00
Ilya Nikolaevskiy
6117068af4 Throttle frame-rate In VP9 encoder in steady state for screenshare
If minQP is reached and encoder undershoot consistently, we consider the
quality good enough and throttle encode frame rate.

This CL also adds perf tests for high fps vp9 screenshare.

Bug: webrtc:10310
Change-Id: I49fc7d31f9f596a9ecb5f85fe9e0c7861d4915f9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125761
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26997}
2019-03-06 16:23:26 +00:00
Niels Möller
0cb858c7f2 New VCMPacket constructor without WebRtcRTPHeader argument
Bug: None
Change-Id: I84898d3c1ce71d907bb91e560223a31384534a39
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/123231
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26996}
2019-03-06 16:13:16 +00:00
Niels Möller
c8d2e73ed0 Delete CodecSpecificInfo argument from VideoEncoder::Encode
Bug: webrtc:10379
Change-Id: If9f92eb1e5891df284881082c53f0b1db1c26a38
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125900
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26992}
2019-03-06 14:01:31 +00:00
philipel
9df335374a Generic Frame Descriptor (GFD) VP8 templates.
In this CL:
 - Updated Vp8TemporalLayers::OnEncodeDone to take a CodecSpecificInfo
   instead of a CodecSpecificInfoVP8, so that both the VP8 specific and
   generic information can be populated.
 - Added structs to represent the GFD template structure.
 - Added code to generate templates for video/screensharing.

Bug: webrtc:10342
Change-Id: I978f9d708597a6f86bbdc494e62acf7a7b400db3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/123422
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26987}
2019-03-06 11:03:09 +00:00
Ilya Nikolaevskiy
9ef5e056f9 Fix target bitrate handling for a single layer VP9 screenshare
For a single layer vp9, the target bitrate was not set correctly. This
may cause a problem for screenshare case, since target bitrate is
respected in that case. If it were less than a min bitrate, the only
spatial layer was permanently disabled.

Bug: webrtc:10257
Change-Id: I0980349adfc2970f810acc51a3e2a31ecbb2bbd2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125681
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26970}
2019-03-05 11:53:09 +00:00
Elad Alon
4cde9ad750 Fix some typos found in ivf_file_writer.cc
Bug: None
Change-Id: I4cc486ee93d8c3d6864c556507e31cebd82b21ed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125462
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26956}
2019-03-04 18:45:52 +00:00
Sebastian Jansson
b678940d3a Using send time instead of system clock in quality scaler.
Bug: webrtc:10365
Change-Id: Ia0c0df462ecec5bd94c3eda8039831b70d088790
Reviewed-on: https://webrtc-review.googlesource.com/c/125185
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26947}
2019-03-04 12:34:50 +00:00
Sebastian Jansson
e64a688167 Replacing Clock in ScreenshareLayers.
there's no easy way to inject the Clock in ScreenshareLayers under
normal use. To allow faking the clock, rtc::TimeMillis is used instead.

Bug: webrtc:10365
Change-Id: I46c7f76514672190a0f0f5816a2c858bc6c76fa4
Reviewed-on: https://webrtc-review.googlesource.com/c/125189
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26946}
2019-03-04 10:49:01 +00:00
philipel
d1d0359895 Remove memsets of CodecSpecificInfo.
CodecSpecificInfo has a default constructor, so initializing by memset is not necessary and is in the way of adding non-trivial members.

Related chromium CL: https://chromium-review.googlesource.com/c/chromium/src/+/1495533

Bug: webrtc:10342
Change-Id: I36046f919f5fc34ea51de7288ff5c9cc0f2950b8
Reviewed-on: https://webrtc-review.googlesource.com/c/125093
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26924}
2019-03-01 13:30:56 +00:00
Mirko Bonadei
fc52b912a3 Implicitly suppress //build/config/clang:find_bad_constructs.
Since there is no way to enable/disable these diagnostics at runtime,
this CL moves the suppression into the rtc_* templates in order to
remove the need to explicitly add the snippet of code needed to
suppress it (currently copy/pasted in 144 locations).

The diagnostic that causes the most problems is the one about "complex
class/struct explicit ctor/dtor" [1] because WebRTC doesn't find
it useful enough.

Other diagnostics are good (for example the one that warns about
using "virtual" instead of "override", but that will be covered by
this clang-tidy check [2]) while others are Chromium related so
they have never triggered.

[1] - https://cs.chromium.org/chromium/src/tools/clang/plugins/FindBadConstructsConsumer.cpp?l=147-167&rcl=b4bebe1aa15dba7ca5fcc6456a81a55665327c3a
[2] - https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-override.html

Bug: webrtc:163
Change-Id: Icbf27efa5b369100a31e6a32df1a0913729b3b34
Reviewed-on: https://webrtc-review.googlesource.com/c/125088
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26918}
2019-03-01 10:18:17 +00:00
Ruslan Burakov
493a650b1e Propagate base minimum delay from video jitter buffer to webrtc/api.
On api level two methods were added to api/media_stream_interface.cc on VideoSourceInterface,
GetLatency and SetLatency. Latency is measured in seconds, delay in milliseconds but both describes
the same concept.


Bug: webrtc:10287
Change-Id: Ib8dc62a4d73f63fab7e10b82c716096ee6199957
Reviewed-on: https://webrtc-review.googlesource.com/c/123482
Commit-Queue: Ruslan Burakov <kuddai@google.com>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26877}
2019-02-27 15:08:34 +00:00
Ilya Nikolaevskiy
dda5fdcb82 Fix vp8 simulcast screenshare and perf tests for it
Simulcast screenshare appears broken due to unrelated changes. It
implicitly relied on SimulcastEncoderAdapter fallback, which happened before
if streams had same resolution. It's not the case anymore. Thus, this CL
adds checks for different frame-rate in simulcast streams.

FullStackTests are also updated to use actual parameters.

Bug: none
Change-Id: I2c1ddb1b39edb96464a0915dfcb9cb4e18844187
Reviewed-on: https://webrtc-review.googlesource.com/c/124494
Reviewed-by: Mirta Dvornicic <mirtad@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26869}
2019-02-27 09:59:12 +00:00
Rasmus Brandt
7b3f4a2035 Remove unused |keyframe_interval| from codec tests.
Bug: webrtc:10349
Change-Id: Iada8c8a1824f6e5424f503bb67b00382069b1dbd
Reviewed-on: https://webrtc-review.googlesource.com/c/124486
Reviewed-by: Mirta Dvornicic <mirtad@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26866}
2019-02-27 07:26:30 +00:00
Erik Språng
6a7baa7d0f Remove VCMEncodedFrameCallback and VCMGenericEncoder
This CL takes a few parts of VCMEncodedFrameCallback and
VCMGenericEncoder and folds some aspect directly into
VideoStreamEncoder. Parts related to timing frames are extracted
into a new class FrameEncodeTimer that explicitly handles that.

Bug: webrtc:10164
Change-Id: I9b26f734473b659e4093c84c09fb0ed441290e40
Reviewed-on: https://webrtc-review.googlesource.com/c/124122
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26862}
2019-02-26 21:34:47 +00:00
Erik Språng
b7cb7b5e94 Remove VCMEncoderDataBase and put remaining code into VideoStreamEncoder
This is a reland of
https://webrtc-review.googlesource.com/c/src/+/123920
Patch set 1 is identical to the previous CL, additional patch sets fix
the bug that was introduced and adds test coverage.

Since this "data base" only holds a single encoder instance it just
serves to confuse object ownership. Removing it and giving ownership
of generic encoder instance to VideoStreamEncoder.

This CL also removes VideoSender interface from video_coding_impl.h,
which is mostly a leftover from
https://webrtc-review.googlesource.com/c/src/+/123540

Bug: webrtc:10164
Change-Id: Ieaf23457d69af0d6356b70461112892b14760b19
Reviewed-on: https://webrtc-review.googlesource.com/c/124488
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26857}
2019-02-26 16:19:54 +00:00
Sami Kalliomäki
5cbc528c03 Revert "Remove VCMEncoderDataBase and put remaining code into VideoStreamEncoder"
This reverts commit 715c4765b1.

Reason for revert: Breaks WebRTC roll to Chromium.
https://chromium-review.googlesource.com/c/chromium/src/+/1484629

# Fatal error in: ../../third_party/webrtc/modules/rtp_rtcp/source/rtp_sender.cc, line 796
# last system error: 0
# Check failed: diff_ms >= static_cast<int64_t>(0) (-307 vs. 0)
#

Original change's description:
> Remove VCMEncoderDataBase and put remaining code into VideoStreamEncoder
>
> Since this "data base" only holds a single encoder instance it just
> serves to confuse object ownership. Removing it and giving ownership
> of generic encoder instance to VideoStreamEncoder.
>
> This CL also removes VideoSender interface from video_coding_impl.h,
> which is mostly a leftover from
> https://webrtc-review.googlesource.com/c/src/+/123540
>
> Bug: webrtc:10164
> Change-Id: I9b7fec940dbcbccf3aa1278c2555da3bd5169ae1
> Reviewed-on: https://webrtc-review.googlesource.com/c/123920
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26835}

TBR=brandtr@webrtc.org,nisse@webrtc.org,sprang@webrtc.org

Change-Id: I5432878c4c2e497cd848c4ce1b190e0307df03ca
Bug: webrtc:10164
Reviewed-on: https://webrtc-review.googlesource.com/c/124402
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26841}
2019-02-25 16:31:15 +00:00
Erik Språng
715c4765b1 Remove VCMEncoderDataBase and put remaining code into VideoStreamEncoder
Since this "data base" only holds a single encoder instance it just
serves to confuse object ownership. Removing it and giving ownership
of generic encoder instance to VideoStreamEncoder.

This CL also removes VideoSender interface from video_coding_impl.h,
which is mostly a leftover from
https://webrtc-review.googlesource.com/c/src/+/123540

Bug: webrtc:10164
Change-Id: I9b7fec940dbcbccf3aa1278c2555da3bd5169ae1
Reviewed-on: https://webrtc-review.googlesource.com/c/123920
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26835}
2019-02-25 11:03:51 +00:00
Mirko Bonadei
c4dd730765 Fix -Wextra-semi warnings.
Starting from https://chromium-review.googlesource.com/c/1485012,
-Wextra-semi is enabled and WebRTC has some violations to fix.

This is a follow-up of https://webrtc-review.googlesource.com/c/123560.

Bug: webrtc:10355
Change-Id: I012b7497fc8991037fd77aa98f1579c22e08206f
Reviewed-on: https://webrtc-review.googlesource.com/c/124126
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26831}
2019-02-25 09:22:51 +00:00
Rasmus Brandt
3812fa949a Delete VideoCodecTestParameterized.
The approach used in VideoCodecTestLibvpx_DISABLED_MultiresVP8RdPerf
is better.

Bug: webrtc:10349
Change-Id: I76f7f6d9e5ddcae0b3f7f39b871dd1d96dffe56a
Reviewed-on: https://webrtc-review.googlesource.com/c/123980
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26830}
2019-02-25 09:00:26 +00:00
Elad Alon
b4643ad7ba Rename "OnReceivedFrame" to "OnAssembledFrame"
The new name fits better.

Bug: None
Change-Id: I1f201ff07915ed6c18efeefb7380e2b286742bb9
Reviewed-on: https://webrtc-review.googlesource.com/c/123800
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26814}
2019-02-22 10:49:07 +00:00
Erik Språng
d7329ca570 Remove VideoSender and fold code into VideoStreamEncoder
This CL moves the functionality in VideoSender into VideoStreamEncoder
and simplifies the code where possible, given what we know of the
encoder state and that we now run on the encoder queue.

The intent here is to make it easier to remove the next parts, the
encoder database and generic encoder wrapper.

Bug: webrtc:10164
Change-Id: I8c108ccbe5db97cd9fd1e84228134709af845ea3
Reviewed-on: https://webrtc-review.googlesource.com/c/123540
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26813}
2019-02-22 10:29:46 +00:00
Elad Alon
10874b2174 Create LossNotificationController
Create LossNotificationController, which produces LossNotification
RTCP feedback messages when video packets/frames are lost.

(LossNotification messages are sent when an RTP gap is detected,
as well as when frames are later received which are undecodable
because of the missing frames due to the previously dropped packets.)

Bug: webrtc:10336
Change-Id: I7b3a156ed14e5a727349acdd82dae6997462421b
Reviewed-on: https://webrtc-review.googlesource.com/c/123762
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26812}
2019-02-22 10:20:14 +00:00
Sergey Silkin
d209cd1754 Lower SSIM thresholds.
VP9 SSIM slightly decreased with the latest libvpx.

Bug: webrtc:10348
Change-Id: I255e3b36751979c3226222caae7fca7bd837901e
Reviewed-on: https://webrtc-review.googlesource.com/c/123902
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26810}
2019-02-22 10:11:33 +00:00
Nico Weber
22f9925b3e webrtc: Remove semicolons.
Bug: chromium:926235
Change-Id: I66c10ab3df38adf87152d1f18cc8162afedca7e4
Reviewed-on: https://webrtc-review.googlesource.com/c/123560
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26780}
2019-02-20 16:02:59 +00:00
Niels Möller
af623ae7f8 Delete unused file mock_video_codec_interface.h
And corresponding build target.

Bug: None
Change-Id: Ic2915a316d2762367e089b6f8e16b502ea51a61a
Reviewed-on: https://webrtc-review.googlesource.com/c/123198
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26779}
2019-02-20 15:35:25 +00:00
Niels Möller
d5e02f0b92 Delete redundant members from VCMPacket.
The values are available as part of the RTPVideoHeader member.

Bug: None
Change-Id: I832fffc449929badec3796d7096c9cdc0d43d344
Reviewed-on: https://webrtc-review.googlesource.com/c/123234
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26773}
2019-02-20 14:39:10 +00:00
Niels Möller
dd1cc982e4 Reland "Update VP9EncoderImpl to use EncodedImage::Allocate"
This is a reland of e12778cb3a
Performance regressions should be addressed by
cl https://webrtc-review.googlesource.com/c/123442

Original change's description:
> Update VP9EncoderImpl to use EncodedImage::Allocate
>
> Bug: webrtc:9378
> Change-Id: I009138b4dc50c4ceb8f94fee6a958bbfa4d7e326
> Reviewed-on: https://webrtc-review.googlesource.com/c/121771
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26593}

Bug: webrtc:9378
Change-Id: I37a28574741fd50d03a80a01a8f9fe7596e31d6f
Reviewed-on: https://webrtc-review.googlesource.com/c/123484
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26768}
2019-02-20 13:19:17 +00:00
Elad Alon
7abfd5678c Improve CPU utilization when encoding VP8 with two temporal layers
This CL is analogous to CL #120904.

Bug: webrtc:10314
Change-Id: Ia885a2614236f634bea934e94cfc5cc719e36792
Reviewed-on: https://webrtc-review.googlesource.com/c/122841
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Mirta Dvornicic <mirtad@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26753}
2019-02-19 15:05:31 +00:00
Ilya Nikolaevskiy
71aee3a116 Reland "Propagate VideoFrame::UpdateRect to encoder"
Reland with fixes for failing chromium tests.

Propagate VideoFrame::UpdateRect to encoder

Accumulate it in all places where frames can be dropped before they reach the encoder.

Reset UpdateRect in VideoBroadcaster if frame the previous frame is dropped.
No accumulation is done here since it's supposed to be a brief occasion then configuration have changed.

Original Reviewed-on: https://webrtc-review.googlesource.com/c/123102

Bug: webrtc:10310
Change-Id: I18be73f47f227d6392bf9cb220b549ced225714f
Reviewed-on: https://webrtc-review.googlesource.com/c/123230
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26738}
2019-02-18 13:44:14 +00:00
Sergey Silkin
a0b1fb9ac7 Pass H264 profile/level settings to codec.
Bug: none
Change-Id: I0587a3d7c12a779a968b8c392c3dfa91b4ad040a
Reviewed-on: https://webrtc-review.googlesource.com/c/123180
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26735}
2019-02-18 13:06:35 +00:00
Sergey Silkin
6e1402b25f Skip SSIM calculation in real time mode.
SSIM calculation is not optimized. It takes ~100ms to process 720p frame
on Galaxy S8.

Bug: none
Change-Id: I51cc26d81124f06b2dfb27814edf2e4ae58141ce
Reviewed-on: https://webrtc-review.googlesource.com/c/121762
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26730}
2019-02-18 08:49:47 +00:00