Title: [220461] trunk/Source/WebCore
Revision
220461
Author
commit-qu...@webkit.org
Date
2017-08-09 10:23:16 -0700 (Wed, 09 Aug 2017)

Log Message

[GStreamer][MSE] Add missing lock around getStreamByTrackId
https://bugs.webkit.org/show_bug.cgi?id=175323

Patch by Charlie Turner <ctur...@igalia.com> on 2017-08-09
Reviewed by Xabier Rodriguez-Calvar.

Covered by existing tests.

* platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:
(WebCore::PlaybackPipeline::enqueueSample): Ensure the media source
lock is taken before modifiying the track queues indirectly via the
iterator use in getTrackId.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (220460 => 220461)


--- trunk/Source/WebCore/ChangeLog	2017-08-09 16:41:56 UTC (rev 220460)
+++ trunk/Source/WebCore/ChangeLog	2017-08-09 17:23:16 UTC (rev 220461)
@@ -1,3 +1,17 @@
+2017-08-09  Charlie Turner  <ctur...@igalia.com>
+
+        [GStreamer][MSE] Add missing lock around getStreamByTrackId
+        https://bugs.webkit.org/show_bug.cgi?id=175323
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        Covered by existing tests.
+
+        * platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:
+        (WebCore::PlaybackPipeline::enqueueSample): Ensure the media source
+        lock is taken before modifiying the track queues indirectly via the
+        iterator use in getTrackId.
+
 2017-08-09  Daniel Bates  <daba...@apple.com>
 
         REGRESSION (r219013): OAuth flows are broken when redirecting back to application after authentication

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.cpp (220460 => 220461)


--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.cpp	2017-08-09 16:41:56 UTC (rev 220460)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.cpp	2017-08-09 17:23:16 UTC (rev 220461)
@@ -488,6 +488,7 @@
         GST_TIME_ARGS(WebCore::toGstClockTime(mediaSample->presentationTime().toDouble())),
         GST_TIME_ARGS(WebCore::toGstClockTime(mediaSample->duration().toDouble())));
 
+    WTF::GMutexLocker<GMutex> locker(*GST_OBJECT_GET_LOCK(m_webKitMediaSrc.get()));
     Stream* stream = getStreamByTrackId(m_webKitMediaSrc.get(), trackId);
 
     if (!stream) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to