Title: [228868] trunk/Source/WebCore
Revision
228868
Author
[email protected]
Date
2018-02-21 03:42:05 -0800 (Wed, 21 Feb 2018)

Log Message

[GTK] Layout test media/track/track-in-band-duplicate-tracks-when-source-changes.html failing since r228617
https://bugs.webkit.org/show_bug.cgi?id=160131
<rdar://problem/35873985>

Reviewed by Michael Catanzaro.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText): We
can't assume the pad has a sticky event here like implemented in
InbandTextTrackPrivateGStreamer because it might be emitted after
the track was created. So fallback to a dummy stream ID like in
the Audio and Video tracks.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (228867 => 228868)


--- trunk/Source/WebCore/ChangeLog	2018-02-21 10:47:14 UTC (rev 228867)
+++ trunk/Source/WebCore/ChangeLog	2018-02-21 11:42:05 UTC (rev 228868)
@@ -1,3 +1,18 @@
+2018-02-20  Philippe Normand  <[email protected]>
+
+        [GTK] Layout test media/track/track-in-band-duplicate-tracks-when-source-changes.html failing since r228617
+        https://bugs.webkit.org/show_bug.cgi?id=160131
+        <rdar://problem/35873985>
+
+        Reviewed by Michael Catanzaro.
+
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+        (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText): We
+        can't assume the pad has a sticky event here like implemented in
+        InbandTextTrackPrivateGStreamer because it might be emitted after
+        the track was created. So fallback to a dummy stream ID like in
+        the Audio and Video tracks.
+
 2018-02-20  Sergio Villar Senin  <[email protected]>
 
         [WebVR][OpenVR] Retrieve stage parameters

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (228867 => 228868)


--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2018-02-21 10:47:14 UTC (rev 228867)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2018-02-21 11:42:05 UTC (rev 228868)
@@ -924,6 +924,8 @@
     GstElement* element = useMediaSource ? m_source.get() : m_pipeline.get();
     g_object_get(element, "n-text", &numTracks, nullptr);
 
+    GST_INFO("Media has %d text tracks", numTracks);
+
     if (useMediaSource) {
         GST_DEBUG("Tracks managed by source element. Bailing out now.");
         return;
@@ -935,13 +937,12 @@
         g_signal_emit_by_name(m_pipeline.get(), "get-text-pad", i, &pad.outPtr(), nullptr);
         ASSERT(pad);
 
-        GRefPtr<GstEvent> event = adoptGRef(gst_pad_get_sticky_event(pad.get(), GST_EVENT_STREAM_START, 0));
-        if (!event)
-            continue;
+        // We can't assume the pad has a sticky event here like implemented in
+        // InbandTextTrackPrivateGStreamer because it might be emitted after the
+        // track was created. So fallback to a dummy stream ID like in the Audio
+        // and Video tracks.
+        String streamId = "T" + String::number(i);
 
-        const char* streamId;
-        gst_event_parse_stream_start(event.get(), &streamId);
-
         validTextStreams.append(streamId);
         if (i < static_cast<gint>(m_textTracks.size())) {
             RefPtr<InbandTextTrackPrivateGStreamer> existingTrack = m_textTracks.get(streamId);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to