New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 9719 link

Starred by 5 users

Issue metadata

Status: Available
Owner:
Last visit > 30 days ago
Cc:
Components:
NextAction: ----
OS: ----
Pri: ----
Type: Feature



Sign in to add a comment

Implement pluggable media transport

Project Member Reported by sukhanov@webrtc.org, Sep 4

Issue description

The goal of this work item is to refactor WebRTC code so that audio and video frames are sent / received through the pluggable media transport interface. This will enable different media transport implementations and in the future it can enable QUIC-based media transport. Default media transport implementation will be RTP-based.

This work will also improve WebRTC codebase by separating media-specific code and packetization code.

There are no planned changes to SDP at this time.

 
Project Member

Comment 1 by bugdroid1@chromium.org, Sep 6

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/f60bd4bb005fb280a0f3d3f9da639e74747b22bb

commit f60bd4bb005fb280a0f3d3f9da639e74747b22bb
Author: Anton Sukhanov <sukhanov@webrtc.org>
Date: Thu Sep 06 20:15:22 2018

Interface for media transport

This is experimental interface for media transport.

The goal is to refactor WebRTC codebase to send/receive frames via media transport interface. It will allow us to have different media transport implementations in the future, including QUIC-based media transport.

Bug: webrtc:9719
Change-Id: I64e0b69d18c212e1ed0a08c6904578c3dfbe3af7
Reviewed-on: https://webrtc-review.googlesource.com/95960
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24612}
[modify] https://crrev.com/f60bd4bb005fb280a0f3d3f9da639e74747b22bb/api/BUILD.gn
[add] https://crrev.com/f60bd4bb005fb280a0f3d3f9da639e74747b22bb/api/media_transport_interface.h

Project Member

Comment 2 by bugdroid1@chromium.org, Sep 25

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/e804f92740882b4c60c1433a2bbdd83b446aca2f

commit e804f92740882b4c60c1433a2bbdd83b446aca2f
Author: Piotr (Peter) Slatala <psla@google.com>
Date: Tue Sep 25 16:06:54 2018

Add video support to media transport interface.

This is experimental interface for media transport.

The goal is to refactor WebRTC codebase to send/receive frames via media transport interface. It will allow us to have different media transport implementations in the future, including QUIC-based media transport.
This change focuses on core video interfaces: sending frames, receiving
frames, requesting keyframes.

It also defines a 'state sink' which allows us to know when the
connection is fully established (so that we can send key frame right
away).

Bug: webrtc:9719
Change-Id: I0480337c699b337cabd13c27de8987ad06241b3a
Reviewed-on: https://webrtc-review.googlesource.com/99304
Commit-Queue: Peter Slatala <psla@google.com>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24832}
[modify] https://crrev.com/e804f92740882b4c60c1433a2bbdd83b446aca2f/api/media_transport_interface.h

Project Member

Comment 3 by bugdroid1@chromium.org, Oct 8

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/3a7423909164538a047a0bd93ae0dfbb575ba2dd

commit 3a7423909164538a047a0bd93ae0dfbb575ba2dd
Author: Niels Möller <nisse@webrtc.org>
Date: Mon Oct 08 11:50:29 2018

Fix compilation issues on media_transport_interface.h

Include api/video/encoded_image.h, and move constructors and
destructors to .cc file.

Bug: webrtc:9719
Change-Id: Ibecdc1151bf672155d3c09e13749ac39c921c3aa
Reviewed-on: https://webrtc-review.googlesource.com/c/104560
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25044}
[modify] https://crrev.com/3a7423909164538a047a0bd93ae0dfbb575ba2dd/api/BUILD.gn
[add] https://crrev.com/3a7423909164538a047a0bd93ae0dfbb575ba2dd/api/media_transport_interface.cc
[modify] https://crrev.com/3a7423909164538a047a0bd93ae0dfbb575ba2dd/api/media_transport_interface.h

Project Member

Comment 4 by bugdroid1@chromium.org, Oct 8

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/e0c2e97474f5305928e395f679a595c0c709acf9

commit e0c2e97474f5305928e395f679a595c0c709acf9
Author: Piotr (Peter) Slatala <psla@webrtc.org>
Date: Mon Oct 08 18:11:06 2018

Pass MediaTransportFactory to PeerConnectionFactory.

And use RTCConfiguration to enable/disable it on a per connection basis.

With the advent of MediaTransportInterface, we need to be able to enable
it on the per PeerConnection basis.

At this point PeerConnection will not take any action when the
MediaTransportInterface is set; this code will land a bit later, and
will be accompanied by the tests that verify correct setup (hence no tests right now).

At this point this is just a method stub to enable further development.

Bug: webrtc:9719
Change-Id: I1f77d650cb03bf1191aa0b35669cd32f1b68446f
Reviewed-on: https://webrtc-review.googlesource.com/c/103860
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25053}
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/api/media_transport_interface.cc
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/api/media_transport_interface.h
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/api/peerconnectioninterface.h
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/pc/createpeerconnectionfactory.cc
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/pc/peerconnection.cc
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/pc/peerconnection.h
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/pc/peerconnectionfactory.cc
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/pc/peerconnectionfactory.h
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/sdk/BUILD.gn
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/sdk/objc/api/peerconnection/RTCConfiguration.h
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/sdk/objc/api/peerconnection/RTCConfiguration.mm
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/sdk/objc/api/peerconnection/RTCPeerConnection.mm
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/sdk/objc/api/peerconnection/RTCPeerConnectionFactory+Native.h
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/sdk/objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.mm
[modify] https://crrev.com/e0c2e97474f5305928e395f679a595c0c709acf9/sdk/objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 10

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/7940da0f2ef535ef2684606d816c763c2df46981

commit 7940da0f2ef535ef2684606d816c763c2df46981
Author: Anton Sukhanov <sukhanov@google.com>
Date: Wed Oct 10 18:25:25 2018

Integration of media_transport in JSepTransportController

Basic integration of media_transport in JSepTransportController.

- Creates media_transport if media transport factory provided in jsep transport controller configuration.
- Unittest that makes sure media_transport is created with correct caller or callee setting.
- Added fake_media_transport, for now simple implementation which only stores caller/callee, but in the future fake media transport will be expanded to pass frames between two fake media_transports, which will enable audio / video integration tests.

NEXT STEPS: Once integration of media_transport with PeerConnection (https://webrtc-review.googlesource.com/c/src/+/103860) lands, we can start passing media transport factory from peer connection to jsep transport controller.

NOTE: Includes missing include change from https://webrtc-review.googlesource.com/c/src/+/103540 (otherwise this change will not compile)

Bug: webrtc:9719
Change-Id: I1e8a521beab445aa9f7ea93c8d7a537dc137d11c
Reviewed-on: https://webrtc-review.googlesource.com/c/104400
Commit-Queue: Anton Sukhanov <sukhanov@google.com>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25096}
[modify] https://crrev.com/7940da0f2ef535ef2684606d816c763c2df46981/api/BUILD.gn
[add] https://crrev.com/7940da0f2ef535ef2684606d816c763c2df46981/api/test/fake_media_transport.h
[modify] https://crrev.com/7940da0f2ef535ef2684606d816c763c2df46981/pc/BUILD.gn
[modify] https://crrev.com/7940da0f2ef535ef2684606d816c763c2df46981/pc/jseptransport.cc
[modify] https://crrev.com/7940da0f2ef535ef2684606d816c763c2df46981/pc/jseptransport.h
[modify] https://crrev.com/7940da0f2ef535ef2684606d816c763c2df46981/pc/jseptransport_unittest.cc
[modify] https://crrev.com/7940da0f2ef535ef2684606d816c763c2df46981/pc/jseptransportcontroller.cc
[modify] https://crrev.com/7940da0f2ef535ef2684606d816c763c2df46981/pc/jseptransportcontroller.h
[modify] https://crrev.com/7940da0f2ef535ef2684606d816c763c2df46981/pc/jseptransportcontroller_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Oct 12

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/8c16f745ab92cb6d305283e87fa8a661ae500ce4

commit 8c16f745ab92cb6d305283e87fa8a661ae500ce4
Author: Anton Sukhanov <sukhanov@google.com>
Date: Fri Oct 12 22:48:26 2018

Propagate media transport to media channel.

1. Pass media transport factory to JSEP transport controller.
2. Pass media transport to voice media channel.
3. Add basic unit test that make sure if peer connection is created with media transport, it is propagated to voice media channel.

Change-Id: Ie922db78ade0efd893e019cd2b4441a9947a2f71
Bug: webrtc:9719
Reviewed-on: https://webrtc-review.googlesource.com/c/105542
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Commit-Queue: Anton Sukhanov <sukhanov@google.com>
Cr-Commit-Position: refs/heads/master@{#25152}
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/api/test/fake_media_transport.h
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/media/base/mediachannel.cc
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/media/base/mediachannel.h
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/media/base/rtpdataengine_unittest.cc
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/media/engine/webrtcvideoengine.cc
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/media/engine/webrtcvideoengine.h
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/media/engine/webrtcvideoengine_unittest.cc
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/media/engine/webrtcvoiceengine_unittest.cc
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/pc/BUILD.gn
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/pc/channel.cc
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/pc/channel.h
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/pc/channel_unittest.cc
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/pc/channelmanager.cc
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/pc/channelmanager.h
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/pc/channelmanager_unittest.cc
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/pc/peerconnection.cc
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/pc/peerconnection.h
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/pc/peerconnection_media_unittest.cc
[modify] https://crrev.com/8c16f745ab92cb6d305283e87fa8a661ae500ce4/pc/rtpsenderreceiver_unittest.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Oct 14

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/37cf2455a420124b341ad06ac27fa3c4dbd29d3c

commit 37cf2455a420124b341ad06ac27fa3c4dbd29d3c
Author: Oleh Prypin <oprypin@webrtc.org>
Date: Sun Oct 14 20:30:25 2018

Revert "Propagate media transport to media channel."

This reverts commit 8c16f745ab92cb6d305283e87fa8a661ae500ce4.

Reason for revert: Breaks downstream project

Original change's description:
> Propagate media transport to media channel.
> 
> 1. Pass media transport factory to JSEP transport controller.
> 2. Pass media transport to voice media channel.
> 3. Add basic unit test that make sure if peer connection is created with media transport, it is propagated to voice media channel.
> 
> Change-Id: Ie922db78ade0efd893e019cd2b4441a9947a2f71
> Bug: webrtc:9719
> Reviewed-on: https://webrtc-review.googlesource.com/c/105542
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Peter Slatala <psla@webrtc.org>
> Commit-Queue: Anton Sukhanov <sukhanov@google.com>
> Cr-Commit-Position: refs/heads/master@{#25152}

TBR=steveanton@webrtc.org,nisse@webrtc.org,psla@webrtc.org,sukhanov@google.com

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

Bug: webrtc:9719
Change-Id: Ic78cdc142a2145682ad74eac8b72c71c50f0a5c1
Reviewed-on: https://webrtc-review.googlesource.com/c/105840
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25154}
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/api/test/fake_media_transport.h
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/media/base/mediachannel.cc
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/media/base/mediachannel.h
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/media/base/rtpdataengine_unittest.cc
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/media/engine/webrtcvideoengine.cc
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/media/engine/webrtcvideoengine.h
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/media/engine/webrtcvideoengine_unittest.cc
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/media/engine/webrtcvoiceengine_unittest.cc
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/pc/BUILD.gn
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/pc/channel.cc
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/pc/channel.h
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/pc/channel_unittest.cc
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/pc/channelmanager.cc
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/pc/channelmanager.h
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/pc/channelmanager_unittest.cc
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/pc/peerconnection.cc
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/pc/peerconnection.h
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/pc/peerconnection_media_unittest.cc
[modify] https://crrev.com/37cf2455a420124b341ad06ac27fa3c4dbd29d3c/pc/rtpsenderreceiver_unittest.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Oct 16

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/2e47f7c4eeb9c2a9cfe5e4e8b079db5b127cdf8b

commit 2e47f7c4eeb9c2a9cfe5e4e8b079db5b127cdf8b
Author: Niels Möller <nisse@webrtc.org>
Date: Tue Oct 16 09:21:28 2018

Implement test class LoopbackMediaTransport

Bug: webrtc:9719
Change-Id: I82aa962d1cb8f2c8f56f766cb12562690e595045
Reviewed-on: https://webrtc-review.googlesource.com/c/105661
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25196}
[modify] https://crrev.com/2e47f7c4eeb9c2a9cfe5e4e8b079db5b127cdf8b/api/BUILD.gn
[add] https://crrev.com/2e47f7c4eeb9c2a9cfe5e4e8b079db5b127cdf8b/api/test/loopback_media_transport.h
[add] https://crrev.com/2e47f7c4eeb9c2a9cfe5e4e8b079db5b127cdf8b/api/test/loopback_media_transport_unittest.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Oct 16

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/4e5074e0d2d9193aaea5c3dbf16b43225c5ec50a

commit 4e5074e0d2d9193aaea5c3dbf16b43225c5ec50a
Author: Piotr (Peter) Slatala <psla@webrtc.org>
Date: Tue Oct 16 16:55:49 2018

Add MediaTransportInterface factory to the Jni bindings

Java apps currently have no way of setting MediaTransportInterface on
the PeerConnectionFactory. This change adds that ability.

Bug: webrtc:9719
Change-Id: I312893a153b5b3d978912cba4db60cd97001c8f3
Reviewed-on: https://webrtc-review.googlesource.com/c/105740
Commit-Queue: Peter Slatala <psla@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25217}
[modify] https://crrev.com/4e5074e0d2d9193aaea5c3dbf16b43225c5ec50a/sdk/android/BUILD.gn
[add] https://crrev.com/4e5074e0d2d9193aaea5c3dbf16b43225c5ec50a/sdk/android/api/org/webrtc/MediaTransportFactoryFactory.java
[modify] https://crrev.com/4e5074e0d2d9193aaea5c3dbf16b43225c5ec50a/sdk/android/api/org/webrtc/PeerConnectionFactory.java
[modify] https://crrev.com/4e5074e0d2d9193aaea5c3dbf16b43225c5ec50a/sdk/android/src/jni/pc/peerconnectionfactory.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Oct 16

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/da65ed2adcfa57ff3288ce01c1602c973fcab00d

commit da65ed2adcfa57ff3288ce01c1602c973fcab00d
Author: Anton Sukhanov <sukhanov@webrtc.org>
Date: Tue Oct 16 18:22:44 2018

Reland "Propagate media transport to media channel."

This reverts commit 37cf2455a420124b341ad06ac27fa3c4dbd29d3c.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Revert "Propagate media transport to media channel."
> 
> This reverts commit 8c16f745ab92cb6d305283e87fa8a661ae500ce4.
> 
> Reason for revert: Breaks downstream project
> 
> Original change's description:
> > Propagate media transport to media channel.
> > 
> > 1. Pass media transport factory to JSEP transport controller.
> > 2. Pass media transport to voice media channel.
> > 3. Add basic unit test that make sure if peer connection is created with media transport, it is propagated to voice media channel.
> > 
> > Change-Id: Ie922db78ade0efd893e019cd2b4441a9947a2f71
> > Bug: webrtc:9719
> > Reviewed-on: https://webrtc-review.googlesource.com/c/105542
> > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Reviewed-by: Peter Slatala <psla@webrtc.org>
> > Commit-Queue: Anton Sukhanov <sukhanov@google.com>
> > Cr-Commit-Position: refs/heads/master@{#25152}
> 
> TBR=steveanton@webrtc.org,nisse@webrtc.org,psla@webrtc.org,sukhanov@google.com
> 
> # Not skipping CQ checks because original CL landed > 1 day ago.
> 
> Bug: webrtc:9719
> Change-Id: Ic78cdc142a2145682ad74eac8b72c71c50f0a5c1
> Reviewed-on: https://webrtc-review.googlesource.com/c/105840
> Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
> Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25154}

TBR=steveanton@webrtc.org,oprypin@webrtc.org,nisse@webrtc.org,sukhanov@webrtc.org,psla@webrtc.org,sukhanov@google.com

Change-Id: I505ff3451eae81573531faef155ff35d7f894022
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9719
Reviewed-on: https://webrtc-review.googlesource.com/c/106500
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25220}
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/api/test/fake_media_transport.h
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/media/base/mediachannel.cc
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/media/base/mediachannel.h
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/media/base/rtpdataengine_unittest.cc
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/media/engine/webrtcvideoengine.cc
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/media/engine/webrtcvideoengine.h
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/media/engine/webrtcvideoengine_unittest.cc
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/media/engine/webrtcvoiceengine_unittest.cc
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/pc/BUILD.gn
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/pc/channel.cc
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/pc/channel.h
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/pc/channel_unittest.cc
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/pc/channelmanager.cc
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/pc/channelmanager.h
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/pc/channelmanager_unittest.cc
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/pc/peerconnection.cc
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/pc/peerconnection.h
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/pc/peerconnection_media_unittest.cc
[modify] https://crrev.com/da65ed2adcfa57ff3288ce01c1602c973fcab00d/pc/rtpsenderreceiver_unittest.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Oct 16

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/aa1e7c284e469274ef6f1100be405443364be6a1

commit aa1e7c284e469274ef6f1100be405443364be6a1
Author: Piotr (Peter) Slatala <psla@webrtc.org>
Date: Tue Oct 16 18:33:47 2018

Allow 'use_media_transport' to be modified on PeerConnection before local/remote description are set.

Downstream clients will be able to use GetConfiguration() and SetConfiguration() to enable MediaTransport.

Bug: webrtc:9719
Change-Id: Ica77b25222732df211dc492dac848342d3f90ff2
Reviewed-on: https://webrtc-review.googlesource.com/c/106423
Commit-Queue: Peter Slatala <psla@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25221}
[modify] https://crrev.com/aa1e7c284e469274ef6f1100be405443364be6a1/pc/peerconnection.cc
[modify] https://crrev.com/aa1e7c284e469274ef6f1100be405443364be6a1/pc/peerconnectioninterface_unittest.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Oct 16

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/9accc9f12be5df4395a1d3a989410d261b9e6230

commit 9accc9f12be5df4395a1d3a989410d261b9e6230
Author: Oleh Prypin <oprypin@webrtc.org>
Date: Tue Oct 16 18:49:39 2018

Revert "Reland "Propagate media transport to media channel.""

This reverts commit da65ed2adcfa57ff3288ce01c1602c973fcab00d.

Reason for revert: Breaks downstream project

Original change's description:
> Reland "Propagate media transport to media channel."
> 
> This reverts commit 37cf2455a420124b341ad06ac27fa3c4dbd29d3c.
> 
> Reason for revert: <INSERT REASONING HERE>
> 
> Original change's description:
> > Revert "Propagate media transport to media channel."
> > 
> > This reverts commit 8c16f745ab92cb6d305283e87fa8a661ae500ce4.
> > 
> > Reason for revert: Breaks downstream project
> > 
> > Original change's description:
> > > Propagate media transport to media channel.
> > > 
> > > 1. Pass media transport factory to JSEP transport controller.
> > > 2. Pass media transport to voice media channel.
> > > 3. Add basic unit test that make sure if peer connection is created with media transport, it is propagated to voice media channel.
> > > 
> > > Change-Id: Ie922db78ade0efd893e019cd2b4441a9947a2f71
> > > Bug: webrtc:9719
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/105542
> > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > > Reviewed-by: Peter Slatala <psla@webrtc.org>
> > > Commit-Queue: Anton Sukhanov <sukhanov@google.com>
> > > Cr-Commit-Position: refs/heads/master@{#25152}
> > 
> > TBR=steveanton@webrtc.org,nisse@webrtc.org,psla@webrtc.org,sukhanov@google.com
> > 
> > # Not skipping CQ checks because original CL landed > 1 day ago.
> > 
> > Bug: webrtc:9719
> > Change-Id: Ic78cdc142a2145682ad74eac8b72c71c50f0a5c1
> > Reviewed-on: https://webrtc-review.googlesource.com/c/105840
> > Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
> > Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#25154}
> 
> TBR=steveanton@webrtc.org,oprypin@webrtc.org,nisse@webrtc.org,sukhanov@webrtc.org,psla@webrtc.org,sukhanov@google.com
> 
> Change-Id: I505ff3451eae81573531faef155ff35d7f894022
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:9719
> Reviewed-on: https://webrtc-review.googlesource.com/c/106500
> Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
> Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25220}

TBR=steveanton@webrtc.org,oprypin@webrtc.org,nisse@webrtc.org,sukhanov@webrtc.org,psla@webrtc.org,sukhanov@google.com

Change-Id: I284bab7230e931cda9ee65cb780a8e7d46fa9072
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9719
Reviewed-on: https://webrtc-review.googlesource.com/c/106520
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25223}
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/api/test/fake_media_transport.h
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/media/base/mediachannel.cc
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/media/base/mediachannel.h
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/media/base/rtpdataengine_unittest.cc
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/media/engine/webrtcvideoengine.cc
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/media/engine/webrtcvideoengine.h
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/media/engine/webrtcvideoengine_unittest.cc
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/media/engine/webrtcvoiceengine_unittest.cc
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/pc/BUILD.gn
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/pc/channel.cc
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/pc/channel.h
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/pc/channel_unittest.cc
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/pc/channelmanager.cc
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/pc/channelmanager.h
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/pc/channelmanager_unittest.cc
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/pc/peerconnection.cc
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/pc/peerconnection.h
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/pc/peerconnection_media_unittest.cc
[modify] https://crrev.com/9accc9f12be5df4395a1d3a989410d261b9e6230/pc/rtpsenderreceiver_unittest.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Oct 17

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/09beff2cfd84c3481b79a490414355fb1bf682e7

commit 09beff2cfd84c3481b79a490414355fb1bf682e7
Author: Piotr (Peter) Slatala <psla@webrtc.org>
Date: Wed Oct 17 14:53:51 2018

Add UseMediaTransport RTCConfiguration support in Java class

Bug: webrtc:9719
Change-Id: I122657f37377f2c3f4f70bf3d9dd0909e2d97e3d
Reviewed-on: https://webrtc-review.googlesource.com/c/106460
Commit-Queue: Peter Slatala <psla@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25235}
[modify] https://crrev.com/09beff2cfd84c3481b79a490414355fb1bf682e7/sdk/android/api/org/webrtc/PeerConnection.java
[modify] https://crrev.com/09beff2cfd84c3481b79a490414355fb1bf682e7/sdk/android/src/jni/pc/peerconnection.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Oct 17

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/98a462cead9ff696aa2b22dde8b49cd7e721301e

commit 98a462cead9ff696aa2b22dde8b49cd7e721301e
Author: Anton Sukhanov <sukhanov@webrtc.org>
Date: Wed Oct 17 20:54:06 2018

Reland "Reland "Propagate media transport to media channel.""

This is a reland of da65ed2adcfa57ff3288ce01c1602c973fcab00d

Original change's description:
> Reland "Propagate media transport to media channel."
>
> This reverts commit 37cf2455a420124b341ad06ac27fa3c4dbd29d3c.
>
> Reason for revert: <INSERT REASONING HERE>
>
> Original change's description:
> > Revert "Propagate media transport to media channel."
> >
> > This reverts commit 8c16f745ab92cb6d305283e87fa8a661ae500ce4.
> >
> > Reason for revert: Breaks downstream project
> >
> > Original change's description:
> > > Propagate media transport to media channel.
> > >
> > > 1. Pass media transport factory to JSEP transport controller.
> > > 2. Pass media transport to voice media channel.
> > > 3. Add basic unit test that make sure if peer connection is created with media transport, it is propagated to voice media channel.
> > >
> > > Change-Id: Ie922db78ade0efd893e019cd2b4441a9947a2f71
> > > Bug: webrtc:9719
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/105542
> > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > > Reviewed-by: Peter Slatala <psla@webrtc.org>
> > > Commit-Queue: Anton Sukhanov <sukhanov@google.com>
> > > Cr-Commit-Position: refs/heads/master@{#25152}
> >
> > TBR=steveanton@webrtc.org,nisse@webrtc.org,psla@webrtc.org,sukhanov@google.com
> >
> > # Not skipping CQ checks because original CL landed > 1 day ago.
> >
> > Bug: webrtc:9719
> > Change-Id: Ic78cdc142a2145682ad74eac8b72c71c50f0a5c1
> > Reviewed-on: https://webrtc-review.googlesource.com/c/105840
> > Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
> > Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#25154}
>
> TBR=steveanton@webrtc.org,oprypin@webrtc.org,nisse@webrtc.org,sukhanov@webrtc.org,psla@webrtc.org,sukhanov@google.com
>
> Change-Id: I505ff3451eae81573531faef155ff35d7f894022
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:9719
> Reviewed-on: https://webrtc-review.googlesource.com/c/106500
> Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
> Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25220}

Bug: webrtc:9719
Tbr: Steve Anton <steveanton@webrtc.org>
Tbr: Niels Moller <nisse@webrtc.org>
Change-Id: Ib45691ba8be9abb89ff8c6dac1861bdf59be4c8d
Reviewed-on: https://webrtc-review.googlesource.com/c/106561
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25240}
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/api/test/fake_media_transport.h
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/media/base/mediachannel.cc
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/media/base/mediachannel.h
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/media/base/rtpdataengine_unittest.cc
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/media/engine/webrtcvideoengine.cc
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/media/engine/webrtcvideoengine.h
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/media/engine/webrtcvideoengine_unittest.cc
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/media/engine/webrtcvoiceengine_unittest.cc
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/pc/BUILD.gn
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/pc/channel.cc
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/pc/channel.h
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/pc/channel_unittest.cc
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/pc/channelmanager.cc
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/pc/channelmanager.h
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/pc/channelmanager_unittest.cc
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/pc/peerconnection.cc
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/pc/peerconnection.h
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/pc/peerconnection_media_unittest.cc
[modify] https://crrev.com/98a462cead9ff696aa2b22dde8b49cd7e721301e/pc/rtpsenderreceiver_unittest.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Oct 18

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/97fc11fb86f6309f5a4b4d6c131afac08e6bce07

commit 97fc11fb86f6309f5a4b4d6c131afac08e6bce07
Author: Piotr (Peter) Slatala <psla@webrtc.org>
Date: Thu Oct 18 22:29:07 2018

Fix the 'SetConfiguration(RTCConfiguration::use_media_transport)' setting.

In the past, it would incorrectly set up a state for 'use_media_transport' (i.e. it could say "use_media_transport" is true, but jseptransportcontroller wouldn't know about that).

Also, removes unnecessary field (unused).

Bug: webrtc:9719
Change-Id: I7e5c0ce81b3b70f63c49d661d95b95b5bcbb0c68
Reviewed-on: https://webrtc-review.googlesource.com/c/106960
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Commit-Queue: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25263}
[modify] https://crrev.com/97fc11fb86f6309f5a4b4d6c131afac08e6bce07/pc/jseptransportcontroller.cc
[modify] https://crrev.com/97fc11fb86f6309f5a4b4d6c131afac08e6bce07/pc/jseptransportcontroller.h
[modify] https://crrev.com/97fc11fb86f6309f5a4b4d6c131afac08e6bce07/pc/peerconnection.cc
[modify] https://crrev.com/97fc11fb86f6309f5a4b4d6c131afac08e6bce07/pc/peerconnection.h

Project Member

Comment 16 by bugdroid1@chromium.org, Oct 26

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/7d76a31f3dfb0de235da6d4757359deee6d08d41

commit 7d76a31f3dfb0de235da6d4757359deee6d08d41
Author: Niels Möller <nisse@webrtc.org>
Date: Fri Oct 26 11:40:57 2018

Use MediaTransportInterface, for audio streams.

Bug: webrtc:9719
Change-Id: I6d3db66b781173b207de51d84193fbd34a7f3239
Reviewed-on: https://webrtc-review.googlesource.com/c/104642
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25385}
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/api/media_transport_interface.h
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/audio/BUILD.gn
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/audio/audio_receive_stream.cc
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/audio/audio_receive_stream_unittest.cc
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/audio/audio_send_stream.cc
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/audio/audio_send_stream.h
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/audio/audio_send_stream_unittest.cc
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/audio/channel_receive.cc
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/audio/channel_receive.h
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/audio/channel_send.cc
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/audio/channel_send.h
[add] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/audio/test/media_transport_test.cc
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/call/audio_receive_stream.h
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/call/audio_send_stream.cc
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/call/audio_send_stream.h
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/call/call_perf_tests.cc
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/call/call_unittest.cc
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/media/engine/webrtcvoiceengine.cc
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/modules/audio_device/include/test_audio_device.cc
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/test/call_test.cc
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/test/scenario/audio_stream.cc
[modify] https://crrev.com/7d76a31f3dfb0de235da6d4757359deee6d08d41/video/video_quality_test.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Oct 29

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/88d8d7d3f930f1ef376a2e54179446d60ab40a48

commit 88d8d7d3f930f1ef376a2e54179446d60ab40a48
Author: Piotr (Peter) Slatala <psla@webrtc.org>
Date: Mon Oct 29 09:35:35 2018

Add missing assignment in RTCConfiguration.mm

Bug: webrtc:9719
Change-Id: Ie18437070c1305df6c52d1a5c2bd3eabe50ea8c6
Reviewed-on: https://webrtc-review.googlesource.com/c/108182
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25406}
[modify] https://crrev.com/88d8d7d3f930f1ef376a2e54179446d60ab40a48/sdk/objc/api/peerconnection/RTCConfiguration.mm

Project Member

Comment 18 by bugdroid1@chromium.org, Oct 29

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/a0677d14c17fef02ded0a6324e34fbb9a31c4320

commit a0677d14c17fef02ded0a6324e34fbb9a31c4320
Author: Piotr (Peter) Slatala <psla@webrtc.org>
Date: Mon Oct 29 15:20:12 2018

Add MediaTransportSettings struct for configuring media transport.

The struct is more generic and easier to extend than parameters to the
Factory. In addition, the list of parameters to the factory might grow,
making invocations awkward if not difficult to read.

Bug: webrtc:9719
Change-Id: I4b98e26f1f4c0d5ea840f9c28e7ed7abee072b74
Reviewed-on: https://webrtc-review.googlesource.com/c/107984
Commit-Queue: Peter Slatala <psla@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25413}
[modify] https://crrev.com/a0677d14c17fef02ded0a6324e34fbb9a31c4320/api/media_transport_interface.cc
[modify] https://crrev.com/a0677d14c17fef02ded0a6324e34fbb9a31c4320/api/media_transport_interface.h

Project Member

Comment 19 by bugdroid1@chromium.org, Oct 29

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/6b9d823f9b3d68c138215b72ad263b8fa647a588

commit 6b9d823f9b3d68c138215b72ad263b8fa647a588
Author: Piotr (Peter) Slatala <psla@webrtc.org>
Date: Mon Oct 29 16:40:07 2018

Add TargetBitrate callback to MediaTransportInterface.

Clients of media_transport_interface need the ability to monitor BWE
estimates, and this change adds a TargetBitrate observer to the media
transport interface.

Bug: webrtc:9719
Change-Id: I90ebbf684c6f269e0c3cd58428010cfa511cc970
Reviewed-on: https://webrtc-review.googlesource.com/c/108106
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25415}
[modify] https://crrev.com/6b9d823f9b3d68c138215b72ad263b8fa647a588/api/media_transport_interface.h
[modify] https://crrev.com/6b9d823f9b3d68c138215b72ad263b8fa647a588/api/test/fake_media_transport.h
[modify] https://crrev.com/6b9d823f9b3d68c138215b72ad263b8fa647a588/api/test/loopback_media_transport.h

Project Member

Comment 20 by bugdroid1@chromium.org, Oct 30

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/ed7b8b1e55b97c9eb2687388545045d96f6ca4c8

commit ed7b8b1e55b97c9eb2687388545045d96f6ca4c8
Author: Piotr (Peter) Slatala <psla@webrtc.org>
Date: Tue Oct 30 14:10:06 2018

Update media transport settings struct

1) Add an explicit copy constructor with default implementation.
2) Pass it by const reference.

Bug: webrtc:9719
Change-Id: I8e4c8c837ad048ee030f86c01c24102015e12949
Reviewed-on: https://webrtc-review.googlesource.com/c/108380
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25432}
[modify] https://crrev.com/ed7b8b1e55b97c9eb2687388545045d96f6ca4c8/api/media_transport_interface.cc
[modify] https://crrev.com/ed7b8b1e55b97c9eb2687388545045d96f6ca4c8/api/media_transport_interface.h

Project Member

Comment 21 by bugdroid1@chromium.org, Oct 30

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/c78b0ea615849977a791b78613b8c27c53aecb6b

commit c78b0ea615849977a791b78613b8c27c53aecb6b
Author: Bjorn Mellem <mellem@webrtc.org>
Date: Tue Oct 30 16:25:33 2018

Create a MediaTransportState enum and add a state callback to MediaTransport.

Bug: webrtc:9719
Change-Id: Icf7004be5e3a2784fccc1d910c8b77ea3b3d5156
Reviewed-on: https://webrtc-review.googlesource.com/c/108501
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25438}
[modify] https://crrev.com/c78b0ea615849977a791b78613b8c27c53aecb6b/api/media_transport_interface.h

Project Member

Comment 22 by bugdroid1@chromium.org, Oct 31

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/693432d9fadecfefd017eb6f8ecf60938d34bab2

commit 693432d9fadecfefd017eb6f8ecf60938d34bab2
Author: Piotr (Peter) Slatala <psla@webrtc.org>
Date: Wed Oct 31 14:03:58 2018

Add obj-c mapping from native configuration to RTCConfiguration

Bug: webrtc:9719
Change-Id: Id48c3760be516c47e8d4c7267d84111385924776
Reviewed-on: https://webrtc-review.googlesource.com/c/108744
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25450}
[modify] https://crrev.com/693432d9fadecfefd017eb6f8ecf60938d34bab2/sdk/objc/api/peerconnection/RTCConfiguration.mm

Project Member

Comment 23 by bugdroid1@chromium.org, Oct 31

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/9f9562592f05c1f037c236f667e3d60065a67a13

commit 9f9562592f05c1f037c236f667e3d60065a67a13
Author: Piotr (Peter) Slatala <psla@webrtc.org>
Date: Wed Oct 31 16:04:16 2018

When SDES is used, pass pre-shared key to media transport.

This allows to use secure, end to end communication if SDES cryptos are
passed. MediaTransport can use a derived key to secure its own
communication.

Bug: webrtc:9719
Change-Id: If1a20b136b3b4af0cb24f10b52fc5ce1eb31daa2
Reviewed-on: https://webrtc-review.googlesource.com/c/108504
Commit-Queue: Peter Slatala <psla@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25452}
[modify] https://crrev.com/9f9562592f05c1f037c236f667e3d60065a67a13/api/media_transport_interface.h
[modify] https://crrev.com/9f9562592f05c1f037c236f667e3d60065a67a13/api/test/fake_media_transport.h
[modify] https://crrev.com/9f9562592f05c1f037c236f667e3d60065a67a13/pc/jseptransportcontroller.cc
[modify] https://crrev.com/9f9562592f05c1f037c236f667e3d60065a67a13/pc/jseptransportcontroller_unittest.cc
[modify] https://crrev.com/9f9562592f05c1f037c236f667e3d60065a67a13/pc/peerconnection_media_unittest.cc
[modify] https://crrev.com/9f9562592f05c1f037c236f667e3d60065a67a13/pc/srtpfilter.h

Project Member

Comment 24 by bugdroid1@chromium.org, Oct 31

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/1f6aa9fd67975f9c6f27a58cf091ec1fc3ceaff2

commit 1f6aa9fd67975f9c6f27a58cf091ec1fc3ceaff2
Author: Bjorn Mellem <mellem@webrtc.org>
Date: Wed Oct 31 18:44:31 2018

Add interfaces for using MediaTransport as the transport for data channels.

Adds the types and methods required for sending and receiving data
channel messages over the media transport.  These are:
 - A DataMessageType to distinguish between text, binary, and control
 messages
 - A parameters struct for sending data messages, which specifies the
 channel id, type, and ordering/reliability parameters
 - A sink for data-channel related callbacks (receive data, begin
 closing procedure, and end closing procedure)
 - A method to set the sink for data channels
 - Methods to open, close, and send on data channels

These methods, combined with the state sink, allow PeerConnection to
implement the DataChannelProviderInterface using MediaTransport as the
underlying transport.

Change-Id: Iccb2ba374594762a5b4f995564e2a1ff7d8805f5
Bug: webrtc:9719
Reviewed-on: https://webrtc-review.googlesource.com/c/108541
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25454}
[modify] https://crrev.com/1f6aa9fd67975f9c6f27a58cf091ec1fc3ceaff2/api/DEPS
[modify] https://crrev.com/1f6aa9fd67975f9c6f27a58cf091ec1fc3ceaff2/api/media_transport_interface.cc
[modify] https://crrev.com/1f6aa9fd67975f9c6f27a58cf091ec1fc3ceaff2/api/media_transport_interface.h

Project Member

Comment 25 by bugdroid1@chromium.org, Nov 1

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/eb2c6415a9757e08da1a83e9b642bd8f95b544c7

commit eb2c6415a9757e08da1a83e9b642bd8f95b544c7
Author: Bjorn Mellem <mellem@webrtc.org>
Date: Thu Nov 01 00:15:52 2018

Delete the default implementations of MediaTransportInterface methods.

This change deletes the default implementations of state and data
channel methods (SetMediaTransportStateCallback, SendData, CloseChannel,
and SetDataSink).  It adds stub implementations to LoopbackMediaTransport
and FakeMediaTransport.

Bug: webrtc:9719
Change-Id: I49b7780c055b552330546b460c2e79ce8df81833
Reviewed-on: https://webrtc-review.googlesource.com/c/108940
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25457}
[modify] https://crrev.com/eb2c6415a9757e08da1a83e9b642bd8f95b544c7/api/media_transport_interface.cc
[modify] https://crrev.com/eb2c6415a9757e08da1a83e9b642bd8f95b544c7/api/media_transport_interface.h
[modify] https://crrev.com/eb2c6415a9757e08da1a83e9b642bd8f95b544c7/api/test/fake_media_transport.h
[modify] https://crrev.com/eb2c6415a9757e08da1a83e9b642bd8f95b544c7/api/test/loopback_media_transport.h

Project Member

Comment 26 by bugdroid1@chromium.org, Nov 1

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/4eb41125086bd91f6c1b1f0f16deb6c216ffd856

commit 4eb41125086bd91f6c1b1f0f16deb6c216ffd856
Author: Piotr (Peter) Slatala <psla@webrtc.org>
Date: Thu Nov 01 15:52:56 2018

Plug-in media transport state listener

IceConnected state (transport state) now includes the state of the
MediaTransport.

This is a first change of two. Second change will add state change
signals to the PeerConnectionInterface informing separately about
ice+media transport vs ice+dtls.

Bug: webrtc:9719
Change-Id: I5731530073e8f26dfc8b188778d268b815da7052
Reviewed-on: https://webrtc-review.googlesource.com/c/108901
Commit-Queue: Peter Slatala <psla@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25473}
[modify] https://crrev.com/4eb41125086bd91f6c1b1f0f16deb6c216ffd856/api/test/fake_media_transport.h
[modify] https://crrev.com/4eb41125086bd91f6c1b1f0f16deb6c216ffd856/pc/jseptransport.cc
[modify] https://crrev.com/4eb41125086bd91f6c1b1f0f16deb6c216ffd856/pc/jseptransport.h
[modify] https://crrev.com/4eb41125086bd91f6c1b1f0f16deb6c216ffd856/pc/jseptransportcontroller.cc
[modify] https://crrev.com/4eb41125086bd91f6c1b1f0f16deb6c216ffd856/pc/jseptransportcontroller_unittest.cc

Project Member

Comment 27 by bugdroid1@chromium.org, Nov 2

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/273d0296a47f6bf0ff1f0e894bf42543ceff9832

commit 273d0296a47f6bf0ff1f0e894bf42543ceff9832
Author: Bjorn Mellem <mellem@webrtc.org>
Date: Fri Nov 02 16:15:32 2018

Implement data channel methods in LoopbackMediaTransport.

This enables PeerConnection tests to use LoopbackMediaTransport to test
data-channel-over-media-transport code.

Also changes LoopbackMediaTransport to invoke callbacks asynchronously.
This is more accurate, as these callbacks are triggered by network
events.  The caller should not block while the callback executes.

Since LoopbackMediaTransport is used for testing, it provides a
FlushAsyncInvokes() method which may be used to ensure that callbacks
occur deterministically (eg. before checking that data has been
received).

Bug: webrtc:9719
Change-Id: Ib8ea9aebf4a0ad3d5934a6fe4ab33432c68523fd
Tbr: stefan@webrtc.org
Reviewed-on: https://webrtc-review.googlesource.com/c/109060
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25489}
[modify] https://crrev.com/273d0296a47f6bf0ff1f0e894bf42543ceff9832/api/BUILD.gn
[modify] https://crrev.com/273d0296a47f6bf0ff1f0e894bf42543ceff9832/api/test/DEPS
[modify] https://crrev.com/273d0296a47f6bf0ff1f0e894bf42543ceff9832/api/test/loopback_media_transport.h
[modify] https://crrev.com/273d0296a47f6bf0ff1f0e894bf42543ceff9832/api/test/loopback_media_transport_unittest.cc
[modify] https://crrev.com/273d0296a47f6bf0ff1f0e894bf42543ceff9832/audio/test/media_transport_test.cc

Project Member

Comment 28 by bugdroid1@chromium.org, Nov 5

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/a9bbd8684936dedbd4ca8f6402644d7a2e152cbe

commit a9bbd8684936dedbd4ca8f6402644d7a2e152cbe
Author: Bjorn Mellem <mellem@webrtc.org>
Date: Mon Nov 05 21:05:22 2018

Add a configuration parameter for using the media transport for data channels.

Adds a field |use_media_transport_for_data_channels| to RTCConfiguration.
PeerConnection requires a media transport factory to be set if this bit
is set.  As with |use_media_transport|, the value may not be modified
after setting the local or remote description.

If either |use_media_transport| or |use_media_transport_for_data_channel| is
set, PeerConnection uses its media transport factory when creating a JSEP
transport controller.

PeerConnection stops unconditionally using media transport in
CreateVoiceChannel, as it may be present only for use in data channels.  It uses
the media transport if it is present and |use_media_transport| is set.

Bug: webrtc:9719
Change-Id: I59d4ce8f7531fd19d9c17eefe033f063f663ebcc
Reviewed-on: https://webrtc-review.googlesource.com/c/109041
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25507}
[modify] https://crrev.com/a9bbd8684936dedbd4ca8f6402644d7a2e152cbe/api/peerconnectioninterface.h
[modify] https://crrev.com/a9bbd8684936dedbd4ca8f6402644d7a2e152cbe/pc/peerconnection.cc
[modify] https://crrev.com/a9bbd8684936dedbd4ca8f6402644d7a2e152cbe/pc/peerconnection.h
[modify] https://crrev.com/a9bbd8684936dedbd4ca8f6402644d7a2e152cbe/pc/peerconnection_media_unittest.cc
[modify] https://crrev.com/a9bbd8684936dedbd4ca8f6402644d7a2e152cbe/pc/peerconnectioninterface_unittest.cc
[modify] https://crrev.com/a9bbd8684936dedbd4ca8f6402644d7a2e152cbe/sdk/android/api/org/webrtc/PeerConnection.java
[modify] https://crrev.com/a9bbd8684936dedbd4ca8f6402644d7a2e152cbe/sdk/android/src/jni/pc/peerconnection.cc
[modify] https://crrev.com/a9bbd8684936dedbd4ca8f6402644d7a2e152cbe/sdk/objc/api/peerconnection/RTCConfiguration.h
[modify] https://crrev.com/a9bbd8684936dedbd4ca8f6402644d7a2e152cbe/sdk/objc/api/peerconnection/RTCConfiguration.mm

Project Member

Comment 29 by bugdroid1@chromium.org, Nov 8 (4 days ago)

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/ada077f4475be6f2e80ed551bb9e29c9faacd038

commit ada077f4475be6f2e80ed551bb9e29c9faacd038
Author: Piotr (Peter) Slatala <psla@webrtc.org>
Date: Thu Nov 08 17:47:09 2018

Callback changes to media transport interface:

1) allow multiple target rate observers
2) add getter for overhead
3) add getter for target rate
4) add callback for network route changed.


Bug: webrtc:9719
Change-Id: I06518cd9aed0ebabd204a7f6af3b86f51fd694e0
Reviewed-on: https://webrtc-review.googlesource.com/c/109940
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25572}
[modify] https://crrev.com/ada077f4475be6f2e80ed551bb9e29c9faacd038/api/DEPS
[modify] https://crrev.com/ada077f4475be6f2e80ed551bb9e29c9faacd038/api/media_transport_interface.cc
[modify] https://crrev.com/ada077f4475be6f2e80ed551bb9e29c9faacd038/api/media_transport_interface.h

Project Member

Comment 30 by bugdroid1@chromium.org, Nov 9 (4 days ago)

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/175aa2e95c19a1e02786b09602c6f62b3554f1a2

commit 175aa2e95c19a1e02786b09602c6f62b3554f1a2
Author: Bjorn Mellem <mellem@webrtc.org>
Date: Fri Nov 09 00:40:32 2018

Implement data channels over media transport.

This changes PeerConnection to allow sending and receiving data channel
messages over the media transport.  If |use_media_transport_for_data_channels|
is set, PeerConnection will use a DCT_MEDIA_TRANSPORT mode for data
channels.

DCT_MEDIA_TRANSPORT acts exactly like DCT_SCTP within the data channel
and peer connection layers.  On the transport layer, it uses the media
transport instead of SCTP.  It appears as an RTP data channel in SDP
(just as media over media-transport appears as RTP in SDP).

Bug: webrtc:9719
Change-Id: I6a90142bd3f43668479c825ed02689dcd0d58b78
Reviewed-on: https://webrtc-review.googlesource.com/c/109740
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25575}
[modify] https://crrev.com/175aa2e95c19a1e02786b09602c6f62b3554f1a2/api/test/DEPS
[modify] https://crrev.com/175aa2e95c19a1e02786b09602c6f62b3554f1a2/api/test/loopback_media_transport.h
[modify] https://crrev.com/175aa2e95c19a1e02786b09602c6f62b3554f1a2/api/test/loopback_media_transport_unittest.cc
[modify] https://crrev.com/175aa2e95c19a1e02786b09602c6f62b3554f1a2/media/base/mediaengine.h
[modify] https://crrev.com/175aa2e95c19a1e02786b09602c6f62b3554f1a2/pc/BUILD.gn
[modify] https://crrev.com/175aa2e95c19a1e02786b09602c6f62b3554f1a2/pc/datachannel.cc
[modify] https://crrev.com/175aa2e95c19a1e02786b09602c6f62b3554f1a2/pc/datachannel.h
[modify] https://crrev.com/175aa2e95c19a1e02786b09602c6f62b3554f1a2/pc/jseptransportcontroller.cc
[modify] https://crrev.com/175aa2e95c19a1e02786b09602c6f62b3554f1a2/pc/jseptransportcontroller.h
[modify] https://crrev.com/175aa2e95c19a1e02786b09602c6f62b3554f1a2/pc/peerconnection.cc
[modify] https://crrev.com/175aa2e95c19a1e02786b09602c6f62b3554f1a2/pc/peerconnection.h
[modify] https://crrev.com/175aa2e95c19a1e02786b09602c6f62b3554f1a2/pc/peerconnection_datachannel_unittest.cc
[modify] https://crrev.com/175aa2e95c19a1e02786b09602c6f62b3554f1a2/pc/peerconnection_integrationtest.cc

Project Member

Comment 31 by bugdroid1@chromium.org, Nov 9 (3 days ago)

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/a2eb0a7841d0f951fd81fdb87e295813d88772aa

commit a2eb0a7841d0f951fd81fdb87e295813d88772aa
Author: Bjorn Mellem <mellem@webrtc.org>
Date: Fri Nov 09 18:53:05 2018

Fix up an outdated comment in peerconnection_integrationtest.cc.

Bug: webrtc:9719
Change-Id: Ied844fdb941b80ab84d43775cc315c075677dac0
Reviewed-on: https://webrtc-review.googlesource.com/c/110562
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25586}
[modify] https://crrev.com/a2eb0a7841d0f951fd81fdb87e295813d88772aa/pc/peerconnection_integrationtest.cc

Sign in to add a comment