Title: [231304] trunk
Revision
231304
Author
[email protected]
Date
2018-05-03 08:08:48 -0700 (Thu, 03 May 2018)

Log Message

A MediaStream being played should allow removing some of its tracks
https://bugs.webkit.org/show_bug.cgi?id=185233

Reviewed by Eric Carlson.

Source/WebCore:

Update the tracks out of the for loop.
Test: fast/mediastream/change-tracks-media-stream-being-played.html

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::updateTracksOfType):

LayoutTests:

* fast/mediastream/change-tracks-media-stream-being-played-expected.txt: Added.
* fast/mediastream/change-tracks-media-stream-being-played.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (231303 => 231304)


--- trunk/LayoutTests/ChangeLog	2018-05-03 14:22:47 UTC (rev 231303)
+++ trunk/LayoutTests/ChangeLog	2018-05-03 15:08:48 UTC (rev 231304)
@@ -1,3 +1,13 @@
+2018-05-03  Youenn Fablet  <[email protected]>
+
+        A MediaStream being played should allow removing some of its tracks
+        https://bugs.webkit.org/show_bug.cgi?id=185233
+
+        Reviewed by Eric Carlson.
+
+        * fast/mediastream/change-tracks-media-stream-being-played-expected.txt: Added.
+        * fast/mediastream/change-tracks-media-stream-being-played.html: Added.
+
 2018-05-02  Said Abou-Hallawa  <[email protected]>
 
         Hiding then showing an <object> of type image makes the underlaying image disappear

Added: trunk/LayoutTests/fast/mediastream/change-tracks-media-stream-being-played-expected.txt (0 => 231304)


--- trunk/LayoutTests/fast/mediastream/change-tracks-media-stream-being-played-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/mediastream/change-tracks-media-stream-being-played-expected.txt	2018-05-03 15:08:48 UTC (rev 231304)
@@ -0,0 +1,3 @@
+
+PASS Remove tracks in a being played MediaStream 
+

Added: trunk/LayoutTests/fast/mediastream/change-tracks-media-stream-being-played.html (0 => 231304)


--- trunk/LayoutTests/fast/mediastream/change-tracks-media-stream-being-played.html	                        (rev 0)
+++ trunk/LayoutTests/fast/mediastream/change-tracks-media-stream-being-played.html	2018-05-03 15:08:48 UTC (rev 231304)
@@ -0,0 +1,36 @@
+<html>
+<head>
+    <script src=""
+    <script src=""
+</head>
+<body>
+<script type="application/_javascript_">
+function waitFor(duration)
+{
+    return new Promise((resolve) => setTimeout(resolve, duration));
+}
+
+promise_test(async () => {
+    const stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: true });
+    const localTracks = stream.getTracks();
+    video = document.createElement('video');
+    video.autoplay = true;
+    video.playsInline = true;
+    const videoStream = new MediaStream();
+    localTracks.forEach(track => videoStream.addTrack(track));
+    video.srcObject = videoStream;
+    document.body.appendChild(video);
+    video.play();
+
+    await waitFor(100);
+
+    videoStream.getTracks().forEach(track => {
+        videoStream.removeTrack(track);
+        video.srcObject = videoStream;
+    });
+    video.srcObject = null;
+    video.remove();
+}, "Remove tracks in a being played MediaStream");
+</script>
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (231303 => 231304)


--- trunk/Source/WebCore/ChangeLog	2018-05-03 14:22:47 UTC (rev 231303)
+++ trunk/Source/WebCore/ChangeLog	2018-05-03 15:08:48 UTC (rev 231304)
@@ -1,3 +1,16 @@
+2018-05-03  Youenn Fablet  <[email protected]>
+
+        A MediaStream being played should allow removing some of its tracks
+        https://bugs.webkit.org/show_bug.cgi?id=185233
+
+        Reviewed by Eric Carlson.
+
+        Update the tracks out of the for loop.
+        Test: fast/mediastream/change-tracks-media-stream-being-played.html
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
+        (WebCore::updateTracksOfType):
+
 2018-05-03  Miguel Gomez  <[email protected]>
 
         WebCore::TextureMapperLayer object used after freed

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm (231303 => 231304)


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm	2018-05-03 14:22:47 UTC (rev 231303)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm	2018-05-03 15:08:48 UTC (rev 231304)
@@ -935,8 +935,9 @@
             continue;
 
         removedTracks.append(track);
-        trackMap.remove(streamTrack.id());
     }
+    for (auto& track : removedTracks)
+        trackMap.remove(track->streamTrack().id());
 
     for (auto& track : addedPrivateTracks) {
         RefT newTrack = itemFactory(*track.get());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to