Changeset 155434 in webkit


Ignore:
Timestamp:
Sep 10, 2013 6:30:10 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

MediaStream API: Enhance MediaStreamDescriptor add/remove component
https://bugs.webkit.org/show_bug.cgi?id=120874

Merge blink https://chromium.googlesource.com/chromium/blink/+/67fcacf13ce922a762d7a1c6fb9e1b8e51e662ea

Patch by Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> on 2013-09-10
Reviewed by Eric Carlson.

No new tests needed.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::addRemoteTrack):
(WebCore::MediaStream::removeRemoteTrack):

  • platform/mediastream/MediaStreamDescriptor.h:

(WebCore::MediaStreamDescriptor::addRemoteTrack):
(WebCore::MediaStreamDescriptor::removeRemoteTrack):
(WebCore::MediaStreamDescriptor::addComponent):
(WebCore::MediaStreamDescriptor::removeComponent):

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r155429 r155434  
     12013-09-10  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
     2
     3        MediaStream API: Enhance MediaStreamDescriptor add/remove component
     4        https://bugs.webkit.org/show_bug.cgi?id=120874
     5
     6        Merge blink https://chromium.googlesource.com/chromium/blink/+/67fcacf13ce922a762d7a1c6fb9e1b8e51e662ea
     7
     8        Reviewed by Eric Carlson.
     9
     10        No new tests needed.
     11
     12        * Modules/mediastream/MediaStream.cpp:
     13        (WebCore::MediaStream::addTrack):
     14        (WebCore::MediaStream::removeTrack):
     15        (WebCore::MediaStream::addRemoteTrack):
     16        (WebCore::MediaStream::removeRemoteTrack):
     17        * platform/mediastream/MediaStreamDescriptor.h:
     18        (WebCore::MediaStreamDescriptor::addRemoteTrack):
     19        (WebCore::MediaStreamDescriptor::removeRemoteTrack):
     20        (WebCore::MediaStreamDescriptor::addComponent):
     21        (WebCore::MediaStreamDescriptor::removeComponent):
     22
    1232013-09-10  Andreas Kling  <akling@apple.com>
    224
  • trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp

    r155362 r155434  
    156156    switch (component->source()->type()) {
    157157    case MediaStreamSource::TypeAudio:
    158         m_descriptor->addAudioComponent(component.release());
    159158        m_audioTracks.append(newTrack);
    160159        break;
    161160    case MediaStreamSource::TypeVideo:
    162         m_descriptor->addVideoComponent(component.release());
    163161        m_videoTracks.append(newTrack);
    164162        break;
    165163    }
    166164
     165    m_descriptor->addComponent(component.release());
    167166    MediaStreamCenter::instance().didAddMediaStreamTrack(m_descriptor.get(), newTrack->component());
    168167}
     
    182181    RefPtr<MediaStreamTrack> track = prpTrack;
    183182
     183    size_t pos = notFound;
    184184    switch (track->component()->source()->type()) {
    185     case MediaStreamSource::TypeAudio: {
    186         size_t pos = m_audioTracks.find(track);
    187         if (pos != notFound) {
     185    case MediaStreamSource::TypeAudio:
     186        pos = m_audioTracks.find(track);
     187        if (pos != notFound)
    188188            m_audioTracks.remove(pos);
    189             m_descriptor->removeAudioComponent(track->component());
    190         }
    191         break;
    192     }
    193     case MediaStreamSource::TypeVideo: {
    194         size_t pos = m_videoTracks.find(track);
    195         if (pos != notFound) {
     189        break;
     190    case MediaStreamSource::TypeVideo:
     191        pos = m_videoTracks.find(track);
     192        if (pos != notFound)
    196193            m_videoTracks.remove(pos);
    197             m_descriptor->removeVideoComponent(track->component());
    198         }
    199         break;
    200     }
    201     }
     194        break;
     195    }
     196
     197    if (pos == notFound)
     198        return;
     199
     200    m_descriptor->removeComponent(track->component());
    202201
    203202    if (!m_audioTracks.size() && !m_videoTracks.size())
     
    281280    switch (component->source()->type()) {
    282281    case MediaStreamSource::TypeAudio:
    283         m_descriptor->addAudioComponent(component);
    284282        m_audioTracks.append(track);
    285283        break;
    286284    case MediaStreamSource::TypeVideo:
    287         m_descriptor->addVideoComponent(component);
    288285        m_videoTracks.append(track);
    289286        break;
    290287    }
     288    m_descriptor->addComponent(component);
    291289
    292290    scheduleDispatchEvent(MediaStreamTrackEvent::create(eventNames().addtrackEvent, false, false, track));
     
    318316        return;
    319317
    320     switch (component->source()->type()) {
    321     case MediaStreamSource::TypeAudio:
    322         m_descriptor->removeAudioComponent(component);
    323         break;
    324     case MediaStreamSource::TypeVideo:
    325         m_descriptor->removeAudioComponent(component);
    326         break;
    327     }
     318    m_descriptor->removeComponent(component);
    328319
    329320    RefPtr<MediaStreamTrack> track = (*tracks)[index];
  • trunk/Source/WebCore/platform/mediastream/MediaStreamDescriptor.h

    r155382 r155434  
    7575    unsigned numberOfAudioComponents() const { return m_audioComponents.size(); }
    7676    MediaStreamComponent* audioComponent(unsigned index) const { return m_audioComponents[index].get(); }
    77     void addAudioComponent(PassRefPtr<MediaStreamComponent> component) { m_audioComponents.append(component); }
    78     void removeAudioComponent(MediaStreamComponent* component)
    79     {
    80         size_t pos = m_audioComponents.find(component);
    81         if (pos != notFound)
    82             m_audioComponents.remove(pos);
    83     }
    8477
    8578    void addRemoteTrack(MediaStreamComponent* component)
     
    8780        if (m_client)
    8881            m_client->addRemoteTrack(component);
     82        else
     83            addComponent(component);
    8984    }
    9085
     
    9388        if (m_client)
    9489            m_client->removeRemoteTrack(component);
     90        else
     91            removeComponent(component);
    9592    }
    9693
    9794    unsigned numberOfVideoComponents() const { return m_videoComponents.size(); }
    9895    MediaStreamComponent* videoComponent(unsigned index) const { return m_videoComponents[index].get(); }
    99     void addVideoComponent(PassRefPtr<MediaStreamComponent> component) { m_videoComponents.append(component); }
    100     void removeVideoComponent(MediaStreamComponent* component)
     96
     97    void addComponent(PassRefPtr<MediaStreamComponent> component)
    10198    {
    102         size_t pos = m_videoComponents.find(component);
    103         if (pos != notFound)
    104             m_videoComponents.remove(pos);
     99        switch (component->source()->type()) {
     100        case MediaStreamSource::TypeAudio:
     101            if (m_audioComponents.find(component) == notFound)
     102                m_audioComponents.append(component);
     103            break;
     104        case MediaStreamSource::TypeVideo:
     105            if (m_videoComponents.find(component) == notFound)
     106                m_videoComponents.append(component);
     107            break;
     108        }
     109    }
     110
     111    void removeComponent(PassRefPtr<MediaStreamComponent> component)
     112    {
     113        size_t pos = notFound;
     114        switch (component->source()->type()) {
     115        case MediaStreamSource::TypeAudio:
     116            pos = m_audioComponents.find(component);
     117            if (pos != notFound)
     118                m_audioComponents.remove(pos);
     119            break;
     120        case MediaStreamSource::TypeVideo:
     121            pos = m_videoComponents.find(component);
     122            if (pos != notFound)
     123                m_videoComponents.remove(pos);
     124            break;
     125        }
    105126    }
    106127
Note: See TracChangeset for help on using the changeset viewer.