Title: [208942] trunk/Source/WebCore
- Revision
- 208942
- Author
- [email protected]
- Date
- 2016-11-21 01:29:22 -0800 (Mon, 21 Nov 2016)
Log Message
[WebRTC][OpenWebRTC] RTP bundling support
https://bugs.webkit.org/show_bug.cgi?id=162333
Reviewed by Alejandro G. Castro.
Configure the OpenWebRTC transport agent bundle policy according
to the RTCConfiguration and pass the receive SSRCs over to
OpenWebRTC as well. Those are needed so the agent is aware of the
bundle layout.
* platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
(WebCore::MediaEndpointOwr::updateReceiveConfiguration):
(WebCore::MediaEndpointOwr::updateSendConfiguration):
(WebCore::MediaEndpointOwr::ensureTransportAgentAndTransceivers):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (208941 => 208942)
--- trunk/Source/WebCore/ChangeLog 2016-11-21 09:24:45 UTC (rev 208941)
+++ trunk/Source/WebCore/ChangeLog 2016-11-21 09:29:22 UTC (rev 208942)
@@ -1,3 +1,20 @@
+2016-11-21 Alejandro G. Castro <[email protected]> and Philippe Normand <[email protected]>
+
+ [WebRTC][OpenWebRTC] RTP bundling support
+ https://bugs.webkit.org/show_bug.cgi?id=162333
+
+ Reviewed by Alejandro G. Castro.
+
+ Configure the OpenWebRTC transport agent bundle policy according
+ to the RTCConfiguration and pass the receive SSRCs over to
+ OpenWebRTC as well. Those are needed so the agent is aware of the
+ bundle layout.
+
+ * platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
+ (WebCore::MediaEndpointOwr::updateReceiveConfiguration):
+ (WebCore::MediaEndpointOwr::updateSendConfiguration):
+ (WebCore::MediaEndpointOwr::ensureTransportAgentAndTransceivers):
+
2016-11-20 Zan Dobersek <[email protected]>
[EncryptedMedia] Make EME API runtime-enabled
Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.cpp (208941 => 208942)
--- trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.cpp 2016-11-21 09:24:45 UTC (rev 208941)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.cpp 2016-11-21 09:29:22 UTC (rev 208942)
@@ -37,6 +37,7 @@
#include "MediaPayload.h"
#include "NotImplemented.h"
#include "OpenWebRTCUtilities.h"
+#include "PeerConnectionStates.h"
#include "RTCDataChannelHandler.h"
#include "RealtimeMediaSourceOwr.h"
#include <owr/owr.h>
@@ -239,6 +240,7 @@
owr_transport_agent_add_session(m_transportAgent, session);
}
+ owr_transport_agent_start(m_transportAgent);
m_numberOfReceivePreparedSessions = m_transceivers.size();
return UpdateResult::Success;
@@ -314,6 +316,14 @@
owr_media_session_set_send_payload(OWR_MEDIA_SESSION(session), sendPayload);
owr_media_session_set_send_source(OWR_MEDIA_SESSION(session), source->mediaSource());
+ // FIXME: Support for group-ssrc SDP line is missing.
+ const Vector<unsigned> receiveSsrcs = mdesc.ssrcs;
+ if (receiveSsrcs.size()) {
+ g_object_set(session, "receive-ssrc", receiveSsrcs[0], nullptr);
+ if (receiveSsrcs.size() == 2)
+ g_object_set(session, "receive-rtx-ssrc", receiveSsrcs[1], nullptr);
+ }
+
m_numberOfSendPreparedSessions = i + 1;
}
@@ -559,8 +569,25 @@
ASSERT(m_dtlsCertificate);
if (!m_transportAgent) {
- m_transportAgent = owr_transport_agent_new(false);
+ // FIXME: Handle SDP BUNDLE line from the remote source instead of falling back to balanced.
+ OwrBundlePolicyType bundlePolicy = OWR_BUNDLE_POLICY_TYPE_BALANCED;
+ switch (m_configuration->bundlePolicy) {
+ case PeerConnectionStates::BundlePolicy::Balanced:
+ bundlePolicy = OWR_BUNDLE_POLICY_TYPE_BALANCED;
+ break;
+ case PeerConnectionStates::BundlePolicy::MaxCompat:
+ bundlePolicy = OWR_BUNDLE_POLICY_TYPE_MAX_COMPAT;
+ break;
+ case PeerConnectionStates::BundlePolicy::MaxBundle:
+ bundlePolicy = OWR_BUNDLE_POLICY_TYPE_MAX_BUNDLE;
+ break;
+ default:
+ ASSERT_NOT_REACHED();
+ };
+
+ m_transportAgent = owr_transport_agent_new(false, bundlePolicy);
+
ASSERT(m_configuration);
for (auto& server : m_configuration->iceServers) {
for (auto& webkitUrl : server.urls) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes