Also adds tests. Bug: webrtc:11628 Change-Id: If29cdcdf055a95c488b3db4387d29f6f958bf9a3 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176326 Reviewed-by: Taylor <deadbeef@webrtc.org> Commit-Queue: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31412}