WebKit Bugzilla
Attachment 373613 Details for
Bug 199566
: Register a MediaStreamTrack as media producer only if it is a capture track
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-199566-20190707191418.patch (text/plain), 2.99 KB, created by
youenn fablet
on 2019-07-07 19:14:18 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
youenn fablet
Created:
2019-07-07 19:14:18 PDT
Size:
2.99 KB
patch
obsolete
>Subversion Revision: 247200 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index f8b8ea6866a24c5ee497110ac0eb50698b0c0261..d5c718c77389fc23a70b63430a9eebeeb194008b 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,23 @@ >+2019-07-07 Youenn Fablet <youenn@apple.com> >+ >+ Register a MediaStreamTrack as media producer only if it is a capture track >+ https://bugs.webkit.org/show_bug.cgi?id=199566 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ 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-07 Youenn Fablet <youenn@apple.com> > > MediaStreamTrackPrivate should always call readyStateChanged on the main thread >diff --git a/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp b/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp >index aa51679be9a199df38486887c23d1423f4ad7d7a..4b33095e0e6df67de36f956bd91f5cc081c4da33 100644 >--- a/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp >+++ b/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp >@@ -66,10 +66,13 @@ MediaStreamTrack::MediaStreamTrack(ScriptExecutionContext& context, Ref<MediaStr > > m_private->addObserver(*this); > >+ if (!isCaptureTrack()) >+ return; >+ > if (auto document = this->document()) { >- document->addAudioProducer(*this); >- if (isCaptureTrack() && document->page() && document->page()->mutedState()) >+ if (document->page() && document->page()->mutedState()) > setMuted(document->page()->mutedState()); >+ document->addAudioProducer(*this); > } > } > >@@ -77,6 +80,9 @@ MediaStreamTrack::~MediaStreamTrack() > { > m_private->removeObserver(*this); > >+ if (!isCaptureTrack()) >+ return; >+ > if (auto document = this->document()) > document->removeAudioProducer(*this); > } >diff --git a/Source/WebCore/Modules/mediastream/MediaStreamTrack.h b/Source/WebCore/Modules/mediastream/MediaStreamTrack.h >index 9bf38b7643c20f228ba25449ab8d871d6ebff4d5..9e74c47cc7c45b1a1f6606828bdf9f1a71b86f38 100644 >--- a/Source/WebCore/Modules/mediastream/MediaStreamTrack.h >+++ b/Source/WebCore/Modules/mediastream/MediaStreamTrack.h >@@ -199,7 +199,7 @@ private: > GenericTaskQueue<Timer> m_eventTaskQueue; > > bool m_ended { false }; >- bool m_isCaptureTrack { false }; >+ const bool m_isCaptureTrack { false }; > }; > > typedef Vector<RefPtr<MediaStreamTrack>> MediaStreamTrackVector;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 199566
:
373613
|
373616
|
373838
|
373846