Changeset 207665 in webkit


Ignore:
Timestamp:
Oct 21, 2016, 3:20:23 AM (9 years ago)
Author:
adam.bergkvist@ericsson.com
Message:

WebRTC: [GTK] Add MediaEndpointOwr - an OpenWebRTC WebRTC backend
https://bugs.webkit.org/show_bug.cgi?id=163327

Reviewed by Philippe Normand.

.:

Add manual WebRTC test. Test features:

  • Two RTCPeerConnection instances communicate in a single browser tab.
  • Supports setting up bidirectional media with a single SDP dialog, as well as one direction at a time.
  • Strips vendor prefixes (runs in Chrome and Firefox as well)
  • Supports modern as well as legacy APIs (mainly to make the test run in Chrome)
  • ManualTests/webrtc-one-tab-p2p.html: Added.

Source/WebCore:

Add MediaEndpointOwr which is a MediaEndpoint implementation (WebRTC backend) based on
OpenWebRTC [1]. The WebRTC backend can be tested with a manual test. Automatic testing
is still done with MockMediaEndpoint.

[1] http://www.openwebrtc.org/

Testing: Added manual test (webrtc-one-tab-p2p.html)

  • CMakeLists.txt:
  • platform/GStreamer.cmake:
  • platform/mediastream/openwebrtc/MediaEndpointOwr.cpp: Added.

(WebCore::createMediaEndpointOwr):
(WebCore::MediaEndpointOwr::MediaEndpointOwr):
(WebCore::MediaEndpointOwr::~MediaEndpointOwr):
(WebCore::MediaEndpointOwr::setConfiguration):
(WebCore::cryptoDataCallback):
(WebCore::MediaEndpointOwr::generateDtlsInfo):
(WebCore::MediaEndpointOwr::getDefaultAudioPayloads):
(WebCore::MediaEndpointOwr::getDefaultVideoPayloads):
(WebCore::payloadsContainType):
(WebCore::MediaEndpointOwr::filterPayloads):
(WebCore::MediaEndpointOwr::updateReceiveConfiguration):
(WebCore::findRtxPayload):
(WebCore::MediaEndpointOwr::updateSendConfiguration):
(WebCore::MediaEndpointOwr::addRemoteCandidate):
(WebCore::MediaEndpointOwr::replaceMutedRemoteSourceMid):
(WebCore::MediaEndpointOwr::createMutedRemoteSource):
(WebCore::MediaEndpointOwr::replaceSendSource):
(WebCore::MediaEndpointOwr::stop):
(WebCore::MediaEndpointOwr::transceiverIndexForSession):
(WebCore::MediaEndpointOwr::sessionMid):
(WebCore::MediaEndpointOwr::matchTransceiverByMid):
(WebCore::MediaEndpointOwr::dispatchNewIceCandidate):
(WebCore::MediaEndpointOwr::dispatchGatheringDone):
(WebCore::MediaEndpointOwr::processIceTransportStateChange):
(WebCore::MediaEndpointOwr::dispatchDtlsFingerprint):
(WebCore::MediaEndpointOwr::unmuteRemoteSource):
(WebCore::MediaEndpointOwr::prepareSession):
(WebCore::MediaEndpointOwr::prepareMediaSession):
(WebCore::parseHelperServerUrl):
(WebCore::MediaEndpointOwr::ensureTransportAgentAndTransceivers):
(WebCore::MediaEndpointOwr::internalAddRemoteCandidate):
(WebCore::gotCandidate):
(WebCore::candidateGatheringDone):
(WebCore::iceConnectionStateChange):
(WebCore::gotIncomingSource):

  • platform/mediastream/openwebrtc/MediaEndpointOwr.h: Added.

(WebCore::OwrTransceiver::create):
(WebCore::OwrTransceiver::~OwrTransceiver):
(WebCore::OwrTransceiver::mid):
(WebCore::OwrTransceiver::session):
(WebCore::OwrTransceiver::owrIceState):
(WebCore::OwrTransceiver::setOwrIceState):
(WebCore::OwrTransceiver::gotEndOfRemoteCandidates):
(WebCore::OwrTransceiver::markGotEndOfRemoteCandidates):
(WebCore::OwrTransceiver::OwrTransceiver):

  • platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h:

(WebCore::RealtimeMediaSourceOwr::RealtimeMediaSourceOwr):
(WebCore::RealtimeMediaSourceOwr::swapOutShallowSource):
Add support for an initially muted source. This is used for early
creation of remote sources.

Location:
trunk
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/ChangeLog

    r207658 r207665  
     12016-10-21  Adam Bergkvist  <adam.bergkvist@ericsson.com>
     2
     3        WebRTC: [GTK] Add MediaEndpointOwr - an OpenWebRTC WebRTC backend
     4        https://bugs.webkit.org/show_bug.cgi?id=163327
     5
     6        Reviewed by Philippe Normand.
     7
     8        Add manual WebRTC test. Test features:
     9        - Two RTCPeerConnection instances communicate in a single browser tab.
     10        - Supports setting up bidirectional media with a single SDP dialog, as
     11          well as one direction at a time.
     12        - Strips vendor prefixes (runs in Chrome and Firefox as well)
     13        - Supports modern as well as legacy APIs (mainly to make the test run
     14          in Chrome)
     15
     16        * ManualTests/webrtc-one-tab-p2p.html: Added.
     17
    1182016-10-20  Carlos Garcia Campos  <cgarcia@igalia.com>
    219
  • trunk/Source/WebCore/CMakeLists.txt

    r207617 r207665  
    23112311
    23122312    platform/mediastream/MediaConstraints.cpp
    2313     platform/mediastream/MediaEndpoint.cpp
    23142313    platform/mediastream/MediaEndpointConfiguration.cpp
    23152314    platform/mediastream/MediaStreamPrivate.cpp
  • trunk/Source/WebCore/ChangeLog

    r207663 r207665  
     12016-10-21  Adam Bergkvist  <adam.bergkvist@ericsson.com>
     2
     3        WebRTC: [GTK] Add MediaEndpointOwr - an OpenWebRTC WebRTC backend
     4        https://bugs.webkit.org/show_bug.cgi?id=163327
     5
     6        Reviewed by Philippe Normand.
     7
     8        Add MediaEndpointOwr which is a MediaEndpoint implementation (WebRTC backend) based on
     9        OpenWebRTC [1]. The WebRTC backend can be tested with a manual test. Automatic testing
     10        is still done with MockMediaEndpoint.
     11
     12        [1] http://www.openwebrtc.org/
     13
     14        Testing: Added manual test (webrtc-one-tab-p2p.html)
     15
     16        * CMakeLists.txt:
     17        * platform/GStreamer.cmake:
     18        * platform/mediastream/openwebrtc/MediaEndpointOwr.cpp: Added.
     19        (WebCore::createMediaEndpointOwr):
     20        (WebCore::MediaEndpointOwr::MediaEndpointOwr):
     21        (WebCore::MediaEndpointOwr::~MediaEndpointOwr):
     22        (WebCore::MediaEndpointOwr::setConfiguration):
     23        (WebCore::cryptoDataCallback):
     24        (WebCore::MediaEndpointOwr::generateDtlsInfo):
     25        (WebCore::MediaEndpointOwr::getDefaultAudioPayloads):
     26        (WebCore::MediaEndpointOwr::getDefaultVideoPayloads):
     27        (WebCore::payloadsContainType):
     28        (WebCore::MediaEndpointOwr::filterPayloads):
     29        (WebCore::MediaEndpointOwr::updateReceiveConfiguration):
     30        (WebCore::findRtxPayload):
     31        (WebCore::MediaEndpointOwr::updateSendConfiguration):
     32        (WebCore::MediaEndpointOwr::addRemoteCandidate):
     33        (WebCore::MediaEndpointOwr::replaceMutedRemoteSourceMid):
     34        (WebCore::MediaEndpointOwr::createMutedRemoteSource):
     35        (WebCore::MediaEndpointOwr::replaceSendSource):
     36        (WebCore::MediaEndpointOwr::stop):
     37        (WebCore::MediaEndpointOwr::transceiverIndexForSession):
     38        (WebCore::MediaEndpointOwr::sessionMid):
     39        (WebCore::MediaEndpointOwr::matchTransceiverByMid):
     40        (WebCore::MediaEndpointOwr::dispatchNewIceCandidate):
     41        (WebCore::MediaEndpointOwr::dispatchGatheringDone):
     42        (WebCore::MediaEndpointOwr::processIceTransportStateChange):
     43        (WebCore::MediaEndpointOwr::dispatchDtlsFingerprint):
     44        (WebCore::MediaEndpointOwr::unmuteRemoteSource):
     45        (WebCore::MediaEndpointOwr::prepareSession):
     46        (WebCore::MediaEndpointOwr::prepareMediaSession):
     47        (WebCore::parseHelperServerUrl):
     48        (WebCore::MediaEndpointOwr::ensureTransportAgentAndTransceivers):
     49        (WebCore::MediaEndpointOwr::internalAddRemoteCandidate):
     50        (WebCore::gotCandidate):
     51        (WebCore::candidateGatheringDone):
     52        (WebCore::iceConnectionStateChange):
     53        (WebCore::gotIncomingSource):
     54        * platform/mediastream/openwebrtc/MediaEndpointOwr.h: Added.
     55        (WebCore::OwrTransceiver::create):
     56        (WebCore::OwrTransceiver::~OwrTransceiver):
     57        (WebCore::OwrTransceiver::mid):
     58        (WebCore::OwrTransceiver::session):
     59        (WebCore::OwrTransceiver::owrIceState):
     60        (WebCore::OwrTransceiver::setOwrIceState):
     61        (WebCore::OwrTransceiver::gotEndOfRemoteCandidates):
     62        (WebCore::OwrTransceiver::markGotEndOfRemoteCandidates):
     63        (WebCore::OwrTransceiver::OwrTransceiver):
     64        * platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h:
     65        (WebCore::RealtimeMediaSourceOwr::RealtimeMediaSourceOwr):
     66        (WebCore::RealtimeMediaSourceOwr::swapOutShallowSource):
     67        Add support for an initially muted source. This is used for early
     68        creation of remote sources.
     69
    1702016-10-21  Javier Fernandez  <jfernandez@igalia.com>
    271
  • trunk/Source/WebCore/platform/GStreamer.cmake

    r206862 r207665  
    1515        platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp
    1616
     17        platform/mediastream/openwebrtc/MediaEndpointOwr.cpp
    1718        platform/mediastream/openwebrtc/OpenWebRTCUtilities.cpp
    1819        platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp
  • trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h

    r205961 r207665  
    5555    , m_mediaSource(mediaSource)
    5656    {
     57        if (!mediaSource)
     58            m_muted = true;
    5759    }
    5860
     
    6466
    6567    virtual ~RealtimeMediaSourceOwr() { }
     68
     69    void swapOutShallowSource(OwrMediaSource& realSource)
     70    {
     71        m_mediaSource = &realSource;
     72        setMuted(false);
     73    }
    6674
    6775    virtual RefPtr<RealtimeMediaSourceCapabilities> capabilities() { return m_capabilities; }
Note: See TracChangeset for help on using the changeset viewer.