Changeset 247208 in webkit


Ignore:
Timestamp:
Jul 8, 2019 9:25:55 AM (5 years ago)
Author:
youenn@apple.com
Message:

Register a MediaStreamTrack as media producer only if it is a capture track
https://bugs.webkit.org/show_bug.cgi?id=199566

Reviewed by Eric Carlson.

MediaStreamTrack registration as a media producer is only useful for capture tracks.
Otherwise, the audio/video playing state is computed through HTMLMediaElement.
Do not register MediaStreamTrack as a media producer if it is not a capture track.

Set the muted state of the track before registering it as an audio
producer. Otherwise, it might create unnecessary small change of playing state.
Covered by existing tests.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::~MediaStreamTrack):

  • Modules/mediastream/MediaStreamTrack.h:
Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r247205 r247208  
     12019-07-08  Youenn Fablet  <youenn@apple.com>
     2
     3        Register a MediaStreamTrack as media producer only if it is a capture track
     4        https://bugs.webkit.org/show_bug.cgi?id=199566
     5
     6        Reviewed by Eric Carlson.
     7
     8        MediaStreamTrack registration as a media producer is only useful for capture tracks.
     9        Otherwise, the audio/video playing state is computed through HTMLMediaElement.
     10        Do not register MediaStreamTrack as a media producer if it is not a capture track.
     11
     12        Set the muted state of the track before registering it as an audio
     13        producer. Otherwise, it might create unnecessary small change of playing state.
     14        Covered by existing tests.
     15
     16        * Modules/mediastream/MediaStreamTrack.cpp:
     17        (WebCore::MediaStreamTrack::MediaStreamTrack):
     18        (WebCore::MediaStreamTrack::~MediaStreamTrack):
     19        * Modules/mediastream/MediaStreamTrack.h:
     20
    1212019-07-08  Antoine Quint  <graouts@apple.com>
    222
  • trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp

    r246490 r247208  
    6767    m_private->addObserver(*this);
    6868
     69    if (!isCaptureTrack())
     70        return;
     71
    6972    if (auto document = this->document()) {
     73        if (document->page() && document->page()->mutedState())
     74            setMuted(document->page()->mutedState());
    7075        document->addAudioProducer(*this);
    71         if (isCaptureTrack() && document->page() && document->page()->mutedState())
    72             setMuted(document->page()->mutedState());
    7376    }
    7477}
     
    7780{
    7881    m_private->removeObserver(*this);
     82
     83    if (!isCaptureTrack())
     84        return;
    7985
    8086    if (auto document = this->document())
  • trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h

    r246490 r247208  
    200200
    201201    bool m_ended { false };
    202     bool m_isCaptureTrack { false };
     202    const bool m_isCaptureTrack { false };
    203203};
    204204
Note: See TracChangeset for help on using the changeset viewer.