Title: [247208] trunk/Source/WebCore
Revision
247208
Author
[email protected]
Date
2019-07-08 09:25:55 -0700 (Mon, 08 Jul 2019)

Log 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:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (247207 => 247208)


--- trunk/Source/WebCore/ChangeLog	2019-07-08 11:47:13 UTC (rev 247207)
+++ trunk/Source/WebCore/ChangeLog	2019-07-08 16:25:55 UTC (rev 247208)
@@ -1,3 +1,23 @@
+2019-07-08  Youenn Fablet  <[email protected]>
+
+        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:
+
 2019-07-08  Antoine Quint  <[email protected]>
 
         [Pointer Events] Enable only on the most recent version of the supported iOS family

Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp (247207 => 247208)


--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp	2019-07-08 11:47:13 UTC (rev 247207)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp	2019-07-08 16:25:55 UTC (rev 247208)
@@ -66,10 +66,13 @@
 
     m_private->addObserver(*this);
 
+    if (!isCaptureTrack())
+        return;
+
     if (auto document = this->document()) {
+        if (document->page() && document->page()->mutedState())
+            setMuted(document->page()->mutedState());
         document->addAudioProducer(*this);
-        if (isCaptureTrack() && document->page() && document->page()->mutedState())
-            setMuted(document->page()->mutedState());
     }
 }
 
@@ -77,6 +80,9 @@
 {
     m_private->removeObserver(*this);
 
+    if (!isCaptureTrack())
+        return;
+
     if (auto document = this->document())
         document->removeAudioProducer(*this);
 }

Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h (247207 => 247208)


--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h	2019-07-08 11:47:13 UTC (rev 247207)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h	2019-07-08 16:25:55 UTC (rev 247208)
@@ -199,7 +199,7 @@
     GenericTaskQueue<Timer> m_eventTaskQueue;
 
     bool m_ended { false };
-    bool m_isCaptureTrack { false };
+    const bool m_isCaptureTrack { false };
 };
 
 typedef Vector<RefPtr<MediaStreamTrack>> MediaStreamTrackVector;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to