4233 Commits

Author SHA1 Message Date
Niels Möller
e51d6ac5d2 Fix override declarations and delete related TODOs
Bug: webrtc:10198, chromium:428099
Change-Id: Ic7b0dd3c58c3daa5ade4d2c503b77a51b29c716e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/179380
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31739}
2020-07-16 07:42:02 +00:00
Danil Chapovalov
a13e7a1d46 Add factory to create scalability structures by name
according to webrtc-svc spec draft

Bug: webrtc:11404
Change-Id: I318b8a1a5c5389f6e5d15c3dd7d93041459e37f9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178603
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31731}
2020-07-15 10:26:40 +00:00
Markus Handell
4379a7db1f Reland "Migrate modules/desktop_capture and modules/video_capture to webrtc::Mutex."
This is a reland of 44dd3d743517fe85212ba4f68bda1e78c2e6d7ec

Original change's description:
> Migrate modules/desktop_capture and modules/video_capture to webrtc::Mutex.
> 
> Bug: webrtc:11567
> Change-Id: I7bfca17f91bf44151148f863480ce77804d53a04
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178805
> Commit-Queue: Markus Handell <handellm@webrtc.org>
> Reviewed-by: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31681}

Bug: webrtc:11567
Change-Id: I03a32cb7194cffb9e678355c4af4d370b39384b3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/179093
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31716}
2020-07-13 12:22:08 +00:00
Dan Minor
84a812e659 Check old_vector_size prior to copying in RTPFragmentationHeader::Resize
Bug: webrtc:11739
Change-Id: Ifafa0f8f00cc97e3a332b4f615fb828d89199d5b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178500
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31704}
2020-07-10 17:35:53 +00:00
Markus Handell
1added5666 Revert "Migrate modules/desktop_capture and modules/video_capture to webrtc::Mutex."
This reverts commit 44dd3d743517fe85212ba4f68bda1e78c2e6d7ec.

Reason for revert: crbug.com/1104081

Original change's description:
> Migrate modules/desktop_capture and modules/video_capture to webrtc::Mutex.
> 
> Bug: webrtc:11567
> Change-Id: I7bfca17f91bf44151148f863480ce77804d53a04
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178805
> Commit-Queue: Markus Handell <handellm@webrtc.org>
> Reviewed-by: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31681}

TBR=tommi@webrtc.org,handellm@webrtc.org

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

Bug: webrtc:11567
Change-Id: I4ee39947ba206522bce611341caef84ddb538068
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/179080
Reviewed-by: Markus Handell <handellm@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31702}
2020-07-10 13:43:22 +00:00
Markus Handell
f7303e6486 Migrate leftovers in media/ and modules/ to webrtc::Mutex.
Bug: webrtc:11567
Change-Id: Id40a53fcec6cba1cd5af70422291ba46b0a6da8c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178905
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31694}
2020-07-10 08:27:45 +00:00
Austin Orion
61c2d99d1e Add skeleton of new capturer that uses Windows.Graphics.Capture API
This change lays the foundation for the new DesktopCapturer
implementation which will use the Windows.Graphics.Capture API.

In line with the other platform specific DesktopCapturer
implementations, I've moved the actual implementations into the win/
subdirectory and repurposed window_capturer_win.cc to instantiate
the most appropriate implementation. This will be where the WebRTC
field trial (or similar mechanism) and Windows version checks will go
when we begin to roll out the new implementation.

I've verified that the existing window capture functionality still works
by dropping these changes into the third_party/webrtc folder of a
Chromium enlistment, going to
https://webrtc.github.io/samples/src/content/getusermedia/getdisplaymedia/
and stepping through this new path under a debugger, and running the
existing WindowCapturerTests.

The next change in this series will begin to add functionality to the
new window_capturer_win_wgc files.

Bug: webrtc:9273
Change-Id: Ifc36ec69aed19563b9c20ef022760fb9c45cae25
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178403
Commit-Queue: Austin Orion <auorion@microsoft.com>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31690}
2020-07-09 17:49:11 +00:00
Markus Handell
44dd3d7435 Migrate modules/desktop_capture and modules/video_capture to webrtc::Mutex.
Bug: webrtc:11567
Change-Id: I7bfca17f91bf44151148f863480ce77804d53a04
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178805
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31681}
2020-07-08 20:35:04 +00:00
Markus Handell
5f61282687 Migrate modules/audio_device to webrtc::Mutex.
Bug: webrtc:11567
Change-Id: I6d1a7145aaaae2e4cd0c8658fa31a673f857dbd6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178814
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31664}
2020-07-08 09:32:12 +00:00
Markus Handell
9c96250dd5 Migrate modules/congestion_controller to webrtc::Mutex.
Bug: webrtc:11567
Change-Id: I284eaebf863e0c63d2aa162a5df56380f9cf4838
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178841
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31659}
2020-07-08 08:35:42 +00:00
Markus Handell
edcb90755a Migrate modules/remote_bitrate_estimator to webrtc::Mutex.
Bug: webrtc:11567
Change-Id: Ib3c8f73459088434a70ee86b044dbbbe14db1777
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178810
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31652}
2020-07-07 18:00:39 +00:00
Markus Handell
0df0faefd5 Migrate modules/audio_coding, audio_mixer/ and audio_processing/ to webrtc::Mutex.
Bug: webrtc:11567
Change-Id: I03b78bd2e411e9bcca199f85e4457511826cd17e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176745
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31649}
2020-07-07 14:35:58 +00:00
Ivo Creusen
9030994e91 Update default max nr of packets to 200.
In production code, the maximum number of packets is by default set to
200, so we should adopt the same behavior in tests.

Bug: None
Change-Id: I415790b7cd9fb170ea7ac94685cc6bbe14efac4d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178744
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31646}
2020-07-07 13:07:26 +00:00
Markus Handell
e7c015e112 Migrate modules/rtp_rtcp to webrtc::Mutex.
Bug: webrtc:11567
Change-Id: I4c71f3a28ef875af2c232b1b553840d6e21649d3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178804
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31645}
2020-07-07 12:13:47 +00:00
Markus Handell
6deec38ede Migrate modules/video_coding to webrtc::Mutex.
Bug: webrtc:11567
Change-Id: I8023fbe7595f7ba8ae7c7db3583fc2e560ec3df2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178803
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31644}
2020-07-07 11:41:21 +00:00
Sylvain Defresne
c7f0dff191 Convert GN libs lists to frameworks
GN recently added support for Apple frameworks to link, rather than
overloading the libs lists. This pulls .frameworks out of the libs
lists, so that GN can stop supporting .frameworks in libs in the
future.

Bug: chromium:1052560
Change-Id: I263230ddd3c468061584423bba9e1f887503bcaa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178601
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#31632}
2020-07-06 10:08:09 +00:00
Erik Språng
62032d4592 Updates rtp_sender_unitests to use separate thread for pacer calls.
Some classes such as RtpSenderEgress makes assumptions about which
threads (e.g. paced sender vs worker thread) call specific methods.
Unit tests currently are single threaded so these checks are
essentially noops.

This change uses a separate task queue for calls epected to be called
by the pacer, so that inconsistencies in thread can be detected early.

Bug: None
Change-Id: Ic0904304a67eb034033524e62306da34b9eab8b4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178602
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31628}
2020-07-03 19:51:58 +00:00
Philipp Hancke
41525d0cc0 red: implement RED with distance 2
Extends the RED implementation to support a distance of two, i.e. two
packets redundancy.

BUG=webrtc:11640

Change-Id: I5113a97a4e3d45d836d7952a0c19c5381069c158
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178565
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31625}
2020-07-03 13:53:28 +00:00
Erik Språng
1d50cb61d8 Reland "Reland "Allows FEC generation after pacer step.""
This is a reland of 19df870d924662e3b6efb86078d31a8e086b38b5
Patchset 1 is the original.
Subsequent patchset changes threadchecker that crashed with downstream
code.

Original change's description:
> Reland "Allows FEC generation after pacer step."
>
> This is a reland of 75fd127640bdf1729af6b4a25875e6d01f1570e0
>
> Patchset 2 contains a fix. Old code can in factor call
> RtpRtcpImpl::FetchFec(). It should only be a noop since deferred fec
> is not supported there - we shouldn't crash.
>
> Original change's description:
> > Allows FEC generation after pacer step.
> >
> > Split out from https://webrtc-review.googlesource.com/c/src/+/173708
> > This CL enables FEC packets to be generated as media packets are sent,
> > rather than generated, i.e. media packets are inserted into the fec
> > generator after the pacing stage rather than at packetization time.
> >
> > This may have some small impact of performance. FEC packets are
> > typically only generated when a new packet with a marker bit is added,
> > which means FEC packets protecting a frame will now be sent after all
> > of the media packets, rather than (potentially) interleaved with them.
> > Therefore this feature is currently behind a flag so we can examine the
> > impact. Once we are comfortable with the behavior we'll make it default
> > and remove the old code.
> >
> > Note that this change does not include the "protect all header
> > extensions" part of the original CL - that will be a follow-up.
> >
> > Bug: webrtc:11340
> > Change-Id: I3fe139c5d53968579b75b91e2612075451ff0f5d
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177760
> > Commit-Queue: Erik Språng <sprang@webrtc.org>
> > Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#31558}
>
> Bug: webrtc:11340
> Change-Id: I2ea49ee87ee9ff409044e34a777a7dd0ae0a077f
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177984
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31613}

Bug: webrtc:11340
Change-Id: Ib741c8c284f523c959f8aca454088d9eee7b17f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178600
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31619}
2020-07-03 07:20:06 +00:00
Danil Chapovalov
1e10a61564 In av1 add structure with custom spatial scalability factor
Bug: webrtc:11042
Change-Id: I93f125fba1fa21d060de47c96435798525f6b374
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178566
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31617}
2020-07-02 14:52:08 +00:00
Erik Språng
a1888ae791 Revert "Reland "Allows FEC generation after pacer step.""
This reverts commit 19df870d924662e3b6efb86078d31a8e086b38b5.

Reason for revert: Downstream project failure

Original change's description:
> Reland "Allows FEC generation after pacer step."
> 
> This is a reland of 75fd127640bdf1729af6b4a25875e6d01f1570e0
> 
> Patchset 2 contains a fix. Old code can in factor call
> RtpRtcpImpl::FetchFec(). It should only be a noop since deferred fec
> is not supported there - we shouldn't crash.
> 
> Original change's description:
> > Allows FEC generation after pacer step.
> >
> > Split out from https://webrtc-review.googlesource.com/c/src/+/173708
> > This CL enables FEC packets to be generated as media packets are sent,
> > rather than generated, i.e. media packets are inserted into the fec
> > generator after the pacing stage rather than at packetization time.
> >
> > This may have some small impact of performance. FEC packets are
> > typically only generated when a new packet with a marker bit is added,
> > which means FEC packets protecting a frame will now be sent after all
> > of the media packets, rather than (potentially) interleaved with them.
> > Therefore this feature is currently behind a flag so we can examine the
> > impact. Once we are comfortable with the behavior we'll make it default
> > and remove the old code.
> >
> > Note that this change does not include the "protect all header
> > extensions" part of the original CL - that will be a follow-up.
> >
> > Bug: webrtc:11340
> > Change-Id: I3fe139c5d53968579b75b91e2612075451ff0f5d
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177760
> > Commit-Queue: Erik Språng <sprang@webrtc.org>
> > Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#31558}
> 
> Bug: webrtc:11340
> Change-Id: I2ea49ee87ee9ff409044e34a777a7dd0ae0a077f
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177984
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31613}

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

Change-Id: I3b2b25898ce88b64c2322f68ef83f9f86ac2edb0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11340
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178563
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31614}
2020-07-02 12:03:07 +00:00
Erik Språng
19df870d92 Reland "Allows FEC generation after pacer step."
This is a reland of 75fd127640bdf1729af6b4a25875e6d01f1570e0

Patchset 2 contains a fix. Old code can in factor call
RtpRtcpImpl::FetchFec(). It should only be a noop since deferred fec
is not supported there - we shouldn't crash.

Original change's description:
> Allows FEC generation after pacer step.
>
> Split out from https://webrtc-review.googlesource.com/c/src/+/173708
> This CL enables FEC packets to be generated as media packets are sent,
> rather than generated, i.e. media packets are inserted into the fec
> generator after the pacing stage rather than at packetization time.
>
> This may have some small impact of performance. FEC packets are
> typically only generated when a new packet with a marker bit is added,
> which means FEC packets protecting a frame will now be sent after all
> of the media packets, rather than (potentially) interleaved with them.
> Therefore this feature is currently behind a flag so we can examine the
> impact. Once we are comfortable with the behavior we'll make it default
> and remove the old code.
>
> Note that this change does not include the "protect all header
> extensions" part of the original CL - that will be a follow-up.
>
> Bug: webrtc:11340
> Change-Id: I3fe139c5d53968579b75b91e2612075451ff0f5d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177760
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31558}

Bug: webrtc:11340
Change-Id: I2ea49ee87ee9ff409044e34a777a7dd0ae0a077f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177984
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31613}
2020-07-02 11:40:55 +00:00
Tomas Gunnarsson
ba0ba71e93 Add 1 sec timer to ModuleRtpRtcpImpl2 instead of frequent polling.
This reduces the number of times we grab a few locks down from
somewhere upwards of around a thousand time a second to a few times.

* Update the RTT value on the worker thread and fire callbacks.
* Trigger NotifyTmmbrUpdated() calls from the worker.
* Update the tests to use a GlobalSimulatedTimeController.

Change-Id: Ib81582494066b9460ae0aa84271f32311f30fbce
Bug: webrtc:11581
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177664
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31602}
2020-07-01 11:24:31 +00:00
Erik Språng
ed1fb19be2 Reland "Lets PacingController call PacketRouter directly."
This reverts commit 980cadd02c7384397a41c0e334e9f329f3cc5c65.

Reason for revert: Problematic code now fix.

Original change's description:
> Revert "Lets PacingController call PacketRouter directly."
> 
> This reverts commit 848ea9f0d3678118cb8926a2898454e5a4df58ae.
> 
> Reason for revert: Part of changes that may cause deadlock
> 
> Original change's description:
> > Lets PacingController call PacketRouter directly.
> > 
> > Since locking model has been cleaned up, PacingController can now call
> > PacketRouter directly - without having to go via PacedSender or
> > TaskQueuePacedSender.
> > 
> > Bug: webrtc:10809
> > Change-Id: I181f04167d677c35395286f8b246aefb4c3e7ec7
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175909
> > Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> > Commit-Queue: Erik Språng <sprang@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#31342}
> 
> TBR=sprang@webrtc.org,srte@webrtc.org
> 
> # Not skipping CQ checks because original CL landed > 1 day ago.
> 
> Bug: webrtc:10809
> Change-Id: I1d7d5217a03a51555b130ec5c2dd6a992b6e489e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178021
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31563}

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

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

Bug: webrtc:10809
Change-Id: I8bea1a5b1b1f618b697e4b09d83c9aac08099593
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178389
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31600}
2020-07-01 09:51:00 +00:00
Erik Språng
4b5792cc4a Reland "Reland "Removes lock release in PacedSender callback.""
This is a reland of b46df3da44c42f6e5055c69a8247a344887108ea

Test case for issue that caused revert added:
https://webrtc-review.googlesource.com/c/src/+/178203

Fix for issue that caused revert:
https://webrtc-review.googlesource.com/c/src/+/178207


Original change's description:
> Reland "Removes lock release in PacedSender callback."
>
> This is a reland of 6b9c60b06d04bc519195fca1f621b10accfeb46b
>
> Original change's description:
> > Removes lock release in PacedSender callback.
> >
> > The PacedSender currently has logic to temporarily release its internal
> > lock while sending or asking for padding.
> > This creates some tricky situations in the pacing controller where we
> > need to consider if some thread can enter while we the process thread is
> > actually processing, just temporarily busy sending.
> >
> > Since the pacing call stack is no longer cyclic, we can actually remove
> > this lock-release now.
> >
> > Bug: webrtc:10809
> > Change-Id: Ic59c605252bed1f96a03406c908a30cd1012f995
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173592
> > Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> > Commit-Queue: Erik Språng <sprang@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#31206}
>
> Bug: webrtc:10809
> Change-Id: Id39fc49b0a038e7ae3a0d9818fb0806c33ae0ae0
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175656
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31332}

Bug: webrtc:10809
Change-Id: I1dba507220316008c0f3b278df4b732011f257eb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178384
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31588}
2020-06-30 09:55:00 +00:00
Tomas Gunnarsson
a1163749fd Move BWE_TEST_LOGGING_COMPILE_TIME_ENABLE code to the worker thread.
This is part of moving calls to GetSendRates() to the worker.

Change-Id: Ifb93096a863ddf2669237e7f44af296d0e086b20
Bug: webrtc:11581
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177661
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31582}
2020-06-29 15:51:14 +00:00
Tomas Gunnarsson
096c0b0921 Post stats updates in RtpSenderEgress to the worker.
On the way remove need for lock for
rtp_sequence_number_map_ and timestamp_offset_.

Change-Id: I21a5cbf6208620435a1a16fff68c33c0cb84f51d
Bug: webrtc:11581
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177424
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31581}
2020-06-29 15:35:09 +00:00
Danil Chapovalov
e6ac8ff162 Propagate active decode targets bitmask into DependencyDescriptor
Bug: webrtc:10342
Change-Id: I5e8a204881b94fe5786b14e27cefce2fe056e91b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178140
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31579}
2020-06-29 12:54:43 +00:00
Henrik Lundin
11b6f6857f Replace slave -> helper, master -> reference
A slight simplification of the NetEq code is also included.

The subtrees below common_audio, modules/audio_coding and
modules/audio_processing were scanned while making this CL.

Bug: webrtc:11680
Change-Id: I33bb1c75b2e3d1c6793fd1c5741ca59f4b6e8455
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178361
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31578}
2020-06-29 12:18:05 +00:00
Tomas Gunnarsson
d21f7ab174 Remove media_has_been_sent from RtpState.
The field is unused and the way it's currently laid out in the code,
it maps to a state in the RtpSenderEgress class - which in turn puts
unnecessary threading restrictions on that class.

Bug: webrtc:11581
Change-Id: I41a4740c3277317f33f8e815d8c12c70b355c1db
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177426
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31577}
2020-06-29 09:52:44 +00:00
Tomas Gunnarsson
473bbd8131 Remove a timer from ModuleRtpRtcpImpl2 that runs 100 times a second.
The timer fired a Notify call that goes to an object that already
receives callbacks for every packet from RtpSenderEgress.

Further optimizations will be realized by moving ownership
of the stats to the worker thread and then be able to remove
locking in a few classes that currently are tied to those
variables and the callbacks that previously did not come
from the same thread consistently.

We could furthermore get rid of one of these callback interfaces
and just use one.

Bug: webrtc:11581
Change-Id: I56ca5893c0153a87a4cbbe87d7741c39f9e66e52
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177422
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31575}
2020-06-29 08:09:14 +00:00
Niels Möller
d43c3788d7 Delete old TODO item
Bug: webrtc:10198
Change-Id: I47fd6f78b6d5e888eb51e9004d12161cb13d27b7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178182
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31572}
2020-06-26 12:11:42 +00:00
Danil Chapovalov
54544ec92a In av1 encoder set bitrate per layer when scalability is used.
Bug: webrtc:11404
Change-Id: If779c16ffb55d28d21a0900439cbe2614507e557
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177015
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31570}
2020-06-26 09:26:05 +00:00
Brian Sheedy
8e144aa33f Remove WebRTC usage of //third_party/pymock
Removes usage of Chromium's //third_party/pymock in favor of the version
provided by vpython. This is so that the third_party version can
eventually be removed.

TBR=aleloi@webrtc.org

Bug: chromium:1094489
Change-Id: I68511e11ed1e517c2b6d3bb832090a3c27e480e5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177921
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@google.com>
Cr-Commit-Position: refs/heads/master@{#31568}
2020-06-25 18:01:30 +00:00
Danil Chapovalov
bf1816170b In Av1 encoder propagate zero bitrate as inactive decode target
Bug: webrtc:10342
Change-Id: I019acb6cca433db1551c22dd139a735ef976cff5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178101
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31567}
2020-06-25 16:32:28 +00:00
Danil Chapovalov
e3296b6d4c Ignore inactive chains when writing DependencyDescriptor rtp header extension.
To implement rule
"Chains protecting no active decode targets MUST be ignored."
from https://aomediacodec.github.io/av1-rtp-spec/#a44-switching

Bug: webrtc:10342
Change-Id: Ibe5e0b7b6ab8955419d0d9f996c6397f442e1cda
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177668
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31566}
2020-06-25 14:59:38 +00:00
Erik Språng
118d01ac35 Revert "Reland "Removes lock release in PacedSender callback.""
This reverts commit b46df3da44c42f6e5055c69a8247a344887108ea.

Reason for revert: May cause deadlock.

Original change's description:
> Reland "Removes lock release in PacedSender callback."
> 
> This is a reland of 6b9c60b06d04bc519195fca1f621b10accfeb46b
> 
> Original change's description:
> > Removes lock release in PacedSender callback.
> > 
> > The PacedSender currently has logic to temporarily release its internal
> > lock while sending or asking for padding.
> > This creates some tricky situations in the pacing controller where we
> > need to consider if some thread can enter while we the process thread is
> > actually processing, just temporarily busy sending.
> > 
> > Since the pacing call stack is no longer cyclic, we can actually remove
> > this lock-release now.
> > 
> > Bug: webrtc:10809
> > Change-Id: Ic59c605252bed1f96a03406c908a30cd1012f995
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173592
> > Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> > Commit-Queue: Erik Språng <sprang@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#31206}
> 
> Bug: webrtc:10809
> Change-Id: Id39fc49b0a038e7ae3a0d9818fb0806c33ae0ae0
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175656
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31332}

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

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

Bug: webrtc:10809
Change-Id: I6b06bafad8cd9eeb22107d04b953fd14b8131afa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178100
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31564}
2020-06-25 12:41:48 +00:00
Erik Språng
980cadd02c Revert "Lets PacingController call PacketRouter directly."
This reverts commit 848ea9f0d3678118cb8926a2898454e5a4df58ae.

Reason for revert: Part of changes that may cause deadlock

Original change's description:
> Lets PacingController call PacketRouter directly.
> 
> Since locking model has been cleaned up, PacingController can now call
> PacketRouter directly - without having to go via PacedSender or
> TaskQueuePacedSender.
> 
> Bug: webrtc:10809
> Change-Id: I181f04167d677c35395286f8b246aefb4c3e7ec7
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175909
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31342}

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

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

Bug: webrtc:10809
Change-Id: I1d7d5217a03a51555b130ec5c2dd6a992b6e489e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178021
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31563}
2020-06-25 09:56:40 +00:00
Chema Gonzalez
afdbf8e6f8 H264: Fix stap-a-to-annex-b loop over-read
While converting the aggregated (stap-a) packet transform packet
framing input into an annex-b framing copy, the two loops (both the
required size calculation and the stap-a-to-annex-b copy) may
over-read the input buffer.

In both buffers, `nalu_ptr` follows the input (stap-a) buffer, which
is located in `data`, and whose length is `data_size`. Buffer is read
until `nalu_ptr` reaches the end of the buffer. Issues is that the 5th
line in the loop:

```
    uint16_t segment_length = nalu_ptr[0] << 8 | nalu_ptr[1];
```

This line accesses `nalu_ptr[1]`, which needs to be protected in
the loop condition. Let's assume `data_size = 4`, and that we restart
the loop with `nalu_ptr = data + 3`. The condition of the loop does
hold (`nalu_ptr = data + 3 < data + data_size`), but the 5th line
will access to `data[3+1] = data[4]`, which is an over-read.

Tested:

```
$ ninja -C out/Default
$ out/Default/modules_unittests --gtest_filter=PacketBuffer*:H264*:RtpPacketizerH264Test*:VideoRtpDepacketizerH264Test*:TestH264SpsPpsTracker* --logs
...
[  PASSED  ] 97 tests.
```

Change-Id: I8b8aaf7d12b0bb154430b8922f099cd49e684762
Bug: webrtc:11698
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177140
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Niklas Enbom <niklas.enbom@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31561}
2020-06-24 21:54:45 +00:00
Philipp Hancke
603cc3a31e red: modify the encoder to send RFC 2198
modifies the RED encoder to send the actual RFC 2198 format
described in
  https://tools.ietf.org/html/rfc2198
Decoding is handled in neteq, see red_payload_splitter.h

BUG=webrtc:11640

Change-Id: Ib3005882a3ceee49d2b05c43357f552432a984ac
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176371
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31560}
2020-06-24 21:25:05 +00:00
Erik Språng
1b48532208 Revert "Allows FEC generation after pacer step."
This reverts commit 75fd127640bdf1729af6b4a25875e6d01f1570e0.

Reason for revert: Breaks downstream test

Original change's description:
> Allows FEC generation after pacer step.
> 
> Split out from https://webrtc-review.googlesource.com/c/src/+/173708
> This CL enables FEC packets to be generated as media packets are sent,
> rather than generated, i.e. media packets are inserted into the fec
> generator after the pacing stage rather than at packetization time.
> 
> This may have some small impact of performance. FEC packets are
> typically only generated when a new packet with a marker bit is added,
> which means FEC packets protecting a frame will now be sent after all
> of the media packets, rather than (potentially) interleaved with them.
> Therefore this feature is currently behind a flag so we can examine the
> impact. Once we are comfortable with the behavior we'll make it default
> and remove the old code.
> 
> Note that this change does not include the "protect all header
> extensions" part of the original CL - that will be a follow-up.
> 
> Bug: webrtc:11340
> Change-Id: I3fe139c5d53968579b75b91e2612075451ff0f5d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177760
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31558}

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

Change-Id: Ie714e5f68580cbd57560e086c9dc7292a052de5f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11340
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177983
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31559}
2020-06-24 18:41:10 +00:00
Erik Språng
75fd127640 Allows FEC generation after pacer step.
Split out from https://webrtc-review.googlesource.com/c/src/+/173708
This CL enables FEC packets to be generated as media packets are sent,
rather than generated, i.e. media packets are inserted into the fec
generator after the pacing stage rather than at packetization time.

This may have some small impact of performance. FEC packets are
typically only generated when a new packet with a marker bit is added,
which means FEC packets protecting a frame will now be sent after all
of the media packets, rather than (potentially) interleaved with them.
Therefore this feature is currently behind a flag so we can examine the
impact. Once we are comfortable with the behavior we'll make it default
and remove the old code.

Note that this change does not include the "protect all header
extensions" part of the original CL - that will be a follow-up.

Bug: webrtc:11340
Change-Id: I3fe139c5d53968579b75b91e2612075451ff0f5d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177760
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31558}
2020-06-24 16:59:50 +00:00
Jakob Ivarsson
d95138b684 Make stable target adaptation enabled by default.
This will result in slightly higher encode bitrates and longer frame
lengths compared to using the smoothing filter.

Bug: webrtc:10981
Change-Id: I64704196c56b0ad910895c908baad38c994a971b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177425
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31556}
2020-06-24 11:22:21 +00:00
Danil Chapovalov
ee5b6de5aa Add helper for DependencyDescriptor rtp header extension
to decide when to set active_decode_target_bitmask field

Bug: webrtc:10342
Change-Id: I348d7467a72b45651455f4574fe8fda3c77ebbae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177400
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31555}
2020-06-24 10:59:40 +00:00
Danil Chapovalov
09f635e587 Delete RtpHeaderExtensionMap::Register deprecated long time ago
Bug: None
Change-Id: I2c3d1243bdfc7c9b6c4cdd326454b5b07ed0dde5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177842
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31552}
2020-06-23 22:55:08 +00:00
Mirko Bonadei
24762f207f Fix missing dependencies.
Setting gtest_enable_absl_printers to false in .gn uncovers some missing
dependencies that were pulled in by gtest.

Bug: None
Change-Id: Ibd7772f6e2af9c798c97161c24f70b1658e3723c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177843
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31551}
2020-06-23 15:46:34 +00:00
Karl Wiberg
30a3e78794 iSAC encoder: Make it possible to change target bitrate at any time
Not just at construction time.

Bug: webrtc:11704
Change-Id: I952c7dbe20774cc976065c7d2f992a80074ebf63
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177663
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31550}
2020-06-22 14:59:22 +00:00
Danil Chapovalov
09867d37ed Share constants for dependency descriptor rtp header extension
Bug: webrtc:10342
Change-Id: I9c81215569bd1bd96b953faa359f5a3d32c7d0c4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177521
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31549}
2020-06-22 11:58:29 +00:00
Jakob Ivarsson
af0d5bca34 Remove ANA FEC control in Opus encoder.
This has been proven to not be useful.

Bug: chromium:1086942
Change-Id: Ib71b194f59301851791a1a056f5f10b98c5a1d57
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177520
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31548}
2020-06-22 11:18:26 +00:00
Ilya Nikolaevskiy
7a82467d0d Fix vp9 svc singlecast mode and enable quality scaler for vp9
1) Fix several typos and small mistakes which could lead to crashes
2) Adjust bitrates if leading layers are disabled
3) Wire up webrtc quality scaler

Bug: webrtc:11319
Change-Id: I16e52bdb1c315d64906288e4f2be55fe698d5ceb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177525
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31546}
2020-06-18 21:24:46 +00:00