Changeset 276717 in webkit


Ignore:
Timestamp:
Apr 28, 2021 9:29:11 AM (15 months ago)
Author:
youenn@apple.com
Message:

Set audio transceiver nMax to 1
https://bugs.webkit.org/show_bug.cgi?id=225149
<rdar://75956639>

Reviewed by Alex Christensen.

Source/WebCore:

Implement step 8.4 of https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtransceiver and set nMax for audio to 1.

Test: webrtc/audio-addTransceiver.html

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::createTransceiverBackends):
(WebCore::LibWebRTCMediaEndpoint::addTransceiver):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:

(WebCore::fromRtpTransceiverInit):

  • Modules/mediastream/libwebrtc/LibWebRTCUtils.h:

LayoutTests:

  • webrtc/audio-addTransceiver-expected.txt: Added.
  • webrtc/audio-addTransceiver.html: Added.
Location:
trunk
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r276716 r276717  
     12021-04-28  Youenn Fablet  <youenn@apple.com>
     2
     3        Set audio transceiver nMax to 1
     4        https://bugs.webkit.org/show_bug.cgi?id=225149
     5        <rdar://75956639>
     6
     7        Reviewed by Alex Christensen.
     8
     9        * webrtc/audio-addTransceiver-expected.txt: Added.
     10        * webrtc/audio-addTransceiver.html: Added.
     11
    1122021-04-28  Tim Nguyen  <ntim@apple.com>
    213
  • trunk/Source/WebCore/ChangeLog

    r276715 r276717  
     12021-04-28  Youenn Fablet  <youenn@apple.com>
     2
     3        Set audio transceiver nMax to 1
     4        https://bugs.webkit.org/show_bug.cgi?id=225149
     5        <rdar://75956639>
     6
     7        Reviewed by Alex Christensen.
     8
     9        Implement step 8.4 of https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtransceiver and set nMax for audio to 1.
     10
     11        Test: webrtc/audio-addTransceiver.html
     12
     13        * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
     14        (WebCore::LibWebRTCMediaEndpoint::createTransceiverBackends):
     15        (WebCore::LibWebRTCMediaEndpoint::addTransceiver):
     16        * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
     17        * Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:
     18        (WebCore::fromRtpTransceiverInit):
     19        * Modules/mediastream/libwebrtc/LibWebRTCUtils.h:
     20
    1212021-04-28  Chris Dumez  <cdumez@apple.com>
    222
  • trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp

    r274361 r276717  
    431431
    432432template<typename T>
    433 ExceptionOr<LibWebRTCMediaEndpoint::Backends> LibWebRTCMediaEndpoint::createTransceiverBackends(T&& trackOrKind, const RTCRtpTransceiverInit& init, LibWebRTCRtpSenderBackend::Source&& source)
    434 {
    435     auto result = m_backend->AddTransceiver(WTFMove(trackOrKind), fromRtpTransceiverInit(init));
     433ExceptionOr<LibWebRTCMediaEndpoint::Backends> LibWebRTCMediaEndpoint::createTransceiverBackends(T&& trackOrKind, webrtc::RtpTransceiverInit&& init, LibWebRTCRtpSenderBackend::Source&& source)
     434{
     435    auto result = m_backend->AddTransceiver(WTFMove(trackOrKind), WTFMove(init));
    436436    if (!result.ok())
    437437        return toException(result.error());
     
    444444{
    445445    auto type = trackKind == "audio" ? cricket::MediaType::MEDIA_TYPE_AUDIO : cricket::MediaType::MEDIA_TYPE_VIDEO;
    446     return createTransceiverBackends(type, init, nullptr);
     446    return createTransceiverBackends(type, fromRtpTransceiverInit(init, type), nullptr);
    447447}
    448448
     
    473473ExceptionOr<LibWebRTCMediaEndpoint::Backends> LibWebRTCMediaEndpoint::addTransceiver(MediaStreamTrack& track, const RTCRtpTransceiverInit& init)
    474474{
     475    auto type = track.source().type() == RealtimeMediaSource::Type::Audio ? cricket::MediaType::MEDIA_TYPE_AUDIO : cricket::MediaType::MEDIA_TYPE_VIDEO;
    475476    auto sourceAndTrack = createSourceAndRTCTrack(track);
    476     return createTransceiverBackends(WTFMove(sourceAndTrack.second), init, WTFMove(sourceAndTrack.first));
     477    return createTransceiverBackends(WTFMove(sourceAndTrack.second), fromRtpTransceiverInit(init, type), WTFMove(sourceAndTrack.first));
    477478}
    478479
  • trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h

    r274361 r276717  
    148148
    149149    template<typename T>
    150     ExceptionOr<Backends> createTransceiverBackends(T&&, const RTCRtpTransceiverInit&, LibWebRTCRtpSenderBackend::Source&&);
     150    ExceptionOr<Backends> createTransceiverBackends(T&&, webrtc::RtpTransceiverInit&&, LibWebRTCRtpSenderBackend::Source&&);
    151151
    152152    void OnStatsDelivered(const rtc::scoped_refptr<const webrtc::RTCStatsReport>&) final;
  • trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp

    r273741 r276717  
    318318}
    319319
    320 webrtc::RtpTransceiverInit fromRtpTransceiverInit(const RTCRtpTransceiverInit& init)
     320webrtc::RtpTransceiverInit fromRtpTransceiverInit(const RTCRtpTransceiverInit& init, cricket::MediaType type)
    321321{
    322322    webrtc::RtpTransceiverInit rtcInit;
     
    324324    for (auto& stream : init.streams)
    325325        rtcInit.stream_ids.push_back(stream->id().utf8().data());
    326     for (auto& encoding : init.sendEncodings)
    327         rtcInit.send_encodings.push_back(fromRTCEncodingParameters(encoding));
     326
     327    if (type == cricket::MediaType::MEDIA_TYPE_AUDIO) {
     328        if (!init.sendEncodings.isEmpty())
     329            rtcInit.send_encodings.push_back(fromRTCEncodingParameters(init.sendEncodings[0]));
     330    } else {
     331        for (auto& encoding : init.sendEncodings)
     332            rtcInit.send_encodings.push_back(fromRTCEncodingParameters(encoding));
     333    }
    328334    return rtcInit;
    329335}
  • trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCUtils.h

    r273550 r276717  
    2828
    2929#include "ExceptionCode.h"
     30#include <webrtc/api/media_types.h>
    3031#include <wtf/text/WTFString.h>
    3132
     
    5960RTCRtpTransceiverDirection toRTCRtpTransceiverDirection(webrtc::RtpTransceiverDirection);
    6061webrtc::RtpTransceiverDirection fromRTCRtpTransceiverDirection(RTCRtpTransceiverDirection);
    61 webrtc::RtpTransceiverInit fromRtpTransceiverInit(const RTCRtpTransceiverInit&);
     62webrtc::RtpTransceiverInit fromRtpTransceiverInit(const RTCRtpTransceiverInit&, cricket::MediaType);
    6263
    6364ExceptionCode toExceptionCode(webrtc::RTCErrorType);
Note: See TracChangeset for help on using the changeset viewer.