Title: [232796] trunk
Revision
232796
Author
commit-qu...@webkit.org
Date
2018-06-13 11:22:40 -0700 (Wed, 13 Jun 2018)

Log Message

[WPE] Build getUserMedia support
https://bugs.webkit.org/show_bug.cgi?id=186547

Patch by Thibault Saunier <tsaun...@igalia.com> on 2018-06-13
Reviewed by Alejandro G. Castro.

.:

* Source/cmake/OptionsWPE.cmake: Build MediaStream support

Source/WebCore:

Enable mediastream tests.

* PlatformWPE.cmake: Build MediaStream support.
* SourcesGTK.txt: Moved GStreamer related files to GStreamer.cmake.
* SourcesWPE.txt: Removed `platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp`
which is now in GStreamer.cmake.
* platform/GStreamer.cmake: Build more MediaStream/webrtc related files.
* platform/graphics/ImageBuffer.cpp: Handle the fact that toBGRAData is
now built directly into the Cairo backend and not GTK anymore.
* platform/graphics/cairo/ImageBufferCairo.cpp: Implement `toBGRAData`
* platform/graphics/gtk/ImageBufferGtk.cpp: Removed `toBGRAData` as it is
now implemented in the Cairo backend itself.
* platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp: Switch an
ASSERT to RELEASE_ASSERT when adding the GhostPad to itself. This was making
test fail when built in RELEASE mode.
(WebCore::webkitMediaStreamSrcChain): Minor variable name change to make it
more accurate.
(WebCore::webkitMediaStreamSrcAddPad): Now add the ghost pad to the element
before setting its chain function, making things clearer.
(WebCore::webkitMediaStreamSrcSetupSrc): Remove extra new line.

Source/WebKit:

* SourcesWPE.txt: Compile files necessary for MediaStream/webrtc.

LayoutTests:

* platform/gtk/TestExpectations: Mark some tests as potentially passing (they fail only
when built in debug mode).
* platform/wpe/TestExpectations: Enable MediaStream tests.

Modified Paths

Diff

Modified: trunk/ChangeLog (232795 => 232796)


--- trunk/ChangeLog	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/ChangeLog	2018-06-13 18:22:40 UTC (rev 232796)
@@ -1,3 +1,12 @@
+2018-06-13  Thibault Saunier  <tsaun...@igalia.com>
+
+        [WPE] Build getUserMedia support
+        https://bugs.webkit.org/show_bug.cgi?id=186547
+
+        Reviewed by Alejandro G. Castro.
+
+        * Source/cmake/OptionsWPE.cmake: Build MediaStream support
+
 2018-06-12  Philippe Normand  <pnorm...@igalia.com>
 
         [GStreamer] Bump required version to 1.8.3

Modified: trunk/LayoutTests/ChangeLog (232795 => 232796)


--- trunk/LayoutTests/ChangeLog	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/LayoutTests/ChangeLog	2018-06-13 18:22:40 UTC (rev 232796)
@@ -1,3 +1,14 @@
+2018-06-13  Thibault Saunier  <tsaun...@igalia.com>
+
+        [WPE] Build getUserMedia support
+        https://bugs.webkit.org/show_bug.cgi?id=186547
+
+        Reviewed by Alejandro G. Castro.
+
+        * platform/gtk/TestExpectations: Mark some tests as potentially passing (they fail only
+        when built in debug mode).
+        * platform/wpe/TestExpectations: Enable MediaStream tests.
+
 2018-06-13  Ms2ger  <ms2...@igalia.com>
 
         Update expectations for WebCryptoAPI generateKey tests

Modified: trunk/LayoutTests/platform/gtk/TestExpectations (232795 => 232796)


--- trunk/LayoutTests/platform/gtk/TestExpectations	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2018-06-13 18:22:40 UTC (rev 232796)
@@ -581,7 +581,7 @@
 webkit.org/b/79203 fast/mediastream/MediaStream-video-element-track-stop.html [ Timeout ]
 webkit.org/b/79203 fast/mediastream/RTCPeerConnection-dtmf.html [ Timeout ]
 webkit.org/b/79203 fast/mediastream/RTCPeerConnection-icecandidate-event.html [ Failure Crash ]
-webkit.org/b/79203 fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html [ Failure Crash ]
+webkit.org/b/79203 fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html [ Pass Failure Crash ]
 webkit.org/b/79203 fast/mediastream/RTCRtpSender-replaceTrack.html [ Failure ]
 # Crash is webkit.org/b/184292
 webkit.org/b/79203 fast/mediastream/RTCPeerConnection-addIceCandidate.html [ Failure Pass Crash ]
@@ -591,7 +591,7 @@
 webkit.org/b/79203 fast/mediastream/RTCPeerConnection-inspect-offer-bundlePolicy-bundle-only.html [ Failure ]
 webkit.org/b/79203 fast/mediastream/RTCPeerConnection-inspect-offer.html [ Failure ]
 webkit.org/b/79203 fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html [ Failure ]
-webkit.org/b/79203 fast/mediastream/RTCPeerConnection-media-setup-callbacks-single-dialog.html [ Crash Failure ]
+webkit.org/b/79203 fast/mediastream/RTCPeerConnection-media-setup-callbacks-single-dialog.html [ Pass Crash Failure ]
 webkit.org/b/79203 webaudio/mediastreamaudiosourcenode.html [ Failure ]
 webkit.org/b/79203 fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html [ Timeout Failure ]
 webkit.org/b/79203 fast/mediastream/MediaStream-video-element-displays-buffer.html [ Failure ]
@@ -604,6 +604,7 @@
 webkit.org/b/160996 fast/mediastream/MediaStream-video-element-video-tracks-disabled.html [ ImageOnlyFailure Crash ]
 webkit.org/b/172269 fast/mediastream/media-devices-enumerate-devices.html [ Failure ]
 webkit.org/b/173257 fast/mediastream/getUserMedia-grant-persistency3.html [ Pass Failure ]
+webkit.org/b/176801 fast/mediastream/argument-types.html [ Crash Pass ]
 
 # Canvas captureStream support is not implemented
 webkit.org/b/169811 fast/mediacapturefromelement [ Skip ]
@@ -1241,8 +1242,6 @@
 
 webkit.org/b/175575 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html [ Crash Pass ]
 
-webkit.org/b/176801 fast/mediastream/argument-types.html [ Crash Pass ]
-
 webkit.org/b/176803 http/tests/local/blob/send-hybrid-blob-using-open-panel.html [ Crash ]
 
 # See also webkit.org/b/141699

Modified: trunk/LayoutTests/platform/wpe/TestExpectations (232795 => 232796)


--- trunk/LayoutTests/platform/wpe/TestExpectations	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/LayoutTests/platform/wpe/TestExpectations	2018-06-13 18:22:40 UTC (rev 232796)
@@ -15,6 +15,43 @@
 Bug(WPE) webaudio/ [ Skip ]
 Bug(WPE) webrtc [ Skip ]
 
+# The MediaStream implementation is still not completed
+webkit.org/b/79203 fast/mediastream/mock-media-source-webaudio.html [ Timeout ]
+webkit.org/b/79203 fast/mediastream/getUserMedia-webaudio.html [ Failure ]
+webkit.org/b/79203 fast/mediastream/MediaStream-video-element-track-stop.html [ Timeout ]
+webkit.org/b/79203 fast/mediastream/RTCPeerConnection-dtmf.html [ Timeout ]
+webkit.org/b/79203 fast/mediastream/RTCPeerConnection-icecandidate-event.html [ Pass Failure Crash ]
+webkit.org/b/79203 fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html [ Pass Failure Crash ]
+webkit.org/b/79203 fast/mediastream/RTCRtpSender-replaceTrack.html [ Failure ]
+# Crash is webkit.org/b/184292
+webkit.org/b/79203 fast/mediastream/RTCPeerConnection-addIceCandidate.html [ Failure Pass Crash ]
+webkit.org/b/79203 fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event.html [ Failure Timeout ]
+webkit.org/b/79203 fast/mediastream/RTCPeerConnection-ice.html [ Failure Timeout ]
+webkit.org/b/79203 fast/mediastream/RTCPeerConnection-inspect-answer.html [ Pass Failure ]
+webkit.org/b/79203 fast/mediastream/RTCPeerConnection-inspect-offer-bundlePolicy-bundle-only.html [ Failure ]
+webkit.org/b/79203 fast/mediastream/RTCPeerConnection-inspect-offer.html [ Pass Failure ]
+webkit.org/b/79203 fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html [ Pass Failure ]
+webkit.org/b/79203 fast/mediastream/RTCPeerConnection-media-setup-callbacks-single-dialog.html [ Pass Crash Failure ]
+webkit.org/b/79203 webaudio/mediastreamaudiosourcenode.html [ Failure ]
+webkit.org/b/79203 fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html [ Timeout Failure ]
+webkit.org/b/79203 fast/mediastream/MediaStream-video-element-displays-buffer.html [ Failure ]
+webkit.org/b/79203 http/tests/media/media-stream/getusermedia-with-canvas.html [ Crash ]
+webkit.org/b/79203 fast/mediastream/RTCPeerConnection-stats.html [ Timeout ]
+webkit.org/b/79203 imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-preload-none.https.html [ Failure ]
+webkit.org/b/79203 imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-end-manual.https.html [ Failure ]
+webkit.org/b/151344 fast/mediastream/MediaStream-add-ended-tracks.html [ Timeout ]
+# Crash is bug #176801
+webkit.org/b/160996 fast/mediastream/MediaStream-video-element-video-tracks-disabled.html [ ImageOnlyFailure Crash ]
+webkit.org/b/172269 fast/mediastream/media-devices-enumerate-devices.html [ Failure ]
+webkit.org/b/173257 fast/mediastream/getUserMedia-grant-persistency3.html [ Pass Failure ]
+
+# Canvas captureStream support is not implemented
+webkit.org/b/169811 fast/mediacapturefromelement [ Skip ]
+webkit.org/b/169811 fast/mediastream/captureStream/ [ Failure ]
+webkit.org/b/169811 fast/mediastream/captureStream/canvas2d.html [ Crash Timeout ]
+webkit.org/b/169811 fast/mediastream/captureStream/canvas3d.html [ Crash Timeout ]
+
+
 # Doesn't apply to platforms that don't enforce the CFNetwork-style 3rd party cookie policy.
 http/tests/cookies/third-party-cookie-relaxing.html [ WontFix Failure ]
 
@@ -422,7 +459,6 @@
 Bug(WPE) fast/masking [ Skip ]
 Bug(WPE) fast/media [ Skip ]
 Bug(WPE) fast/mediacapturefromelement [ Skip ]
-Bug(WPE) fast/mediastream [ Skip ]
 Bug(WPE) fast/multicol [ Skip ]
 Bug(WPE) fast/overflow [ Skip ]
 Bug(WPE) fast/picture [ Skip ]

Modified: trunk/Source/WebCore/ChangeLog (232795 => 232796)


--- trunk/Source/WebCore/ChangeLog	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/Source/WebCore/ChangeLog	2018-06-13 18:22:40 UTC (rev 232796)
@@ -1,3 +1,31 @@
+2018-06-13  Thibault Saunier  <tsaun...@igalia.com>
+
+        [WPE] Build getUserMedia support
+        https://bugs.webkit.org/show_bug.cgi?id=186547
+
+        Reviewed by Alejandro G. Castro.
+
+        Enable mediastream tests.
+
+        * PlatformWPE.cmake: Build MediaStream support.
+        * SourcesGTK.txt: Moved GStreamer related files to GStreamer.cmake.
+        * SourcesWPE.txt: Removed `platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp`
+        which is now in GStreamer.cmake.
+        * platform/GStreamer.cmake: Build more MediaStream/webrtc related files.
+        * platform/graphics/ImageBuffer.cpp: Handle the fact that toBGRAData is
+        now built directly into the Cairo backend and not GTK anymore.
+        * platform/graphics/cairo/ImageBufferCairo.cpp: Implement `toBGRAData`
+        * platform/graphics/gtk/ImageBufferGtk.cpp: Removed `toBGRAData` as it is
+        now implemented in the Cairo backend itself.
+        * platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp: Switch an
+        ASSERT to RELEASE_ASSERT when adding the GhostPad to itself. This was making
+        test fail when built in RELEASE mode.
+        (WebCore::webkitMediaStreamSrcChain): Minor variable name change to make it
+        more accurate.
+        (WebCore::webkitMediaStreamSrcAddPad): Now add the ghost pad to the element
+        before setting its chain function, making things clearer.
+        (WebCore::webkitMediaStreamSrcSetupSrc): Remove extra new line.
+
 2018-06-13  Philippe Normand  <pnorm...@igalia.com>
 
         [GStreamer] fast/canvas/webgl crashes

Modified: trunk/Source/WebCore/PlatformWPE.cmake (232795 => 232796)


--- trunk/Source/WebCore/PlatformWPE.cmake	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/Source/WebCore/PlatformWPE.cmake	2018-06-13 18:22:40 UTC (rev 232796)
@@ -27,6 +27,7 @@
     "${WEBCORE_DIR}/platform/graphics/wpe"
     "${WEBCORE_DIR}/platform/graphics/wayland"
     "${WEBCORE_DIR}/platform/mock/mediasource"
+    "${WEBCORE_DIR}/platform/mediastream/gstreamer"
     "${WEBCORE_DIR}/platform/network/soup"
     "${WEBCORE_DIR}/platform/text/icu"
 )

Modified: trunk/Source/WebCore/SourcesGTK.txt (232795 => 232796)


--- trunk/Source/WebCore/SourcesGTK.txt	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/Source/WebCore/SourcesGTK.txt	2018-06-13 18:22:40 UTC (rev 232796)
@@ -92,14 +92,6 @@
 platform/gtk/ScrollAnimatorGtk.cpp
 platform/gtk/SelectionData.cpp
 
-platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp
-platform/mediastream/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp
-platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp
-platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp
-
-platform/mediastream/libwebrtc/LibWebRTCAudioModule.cpp
-platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp
-
 platform/text/Hyphenation.cpp
 platform/text/LocaleICU.cpp
 

Modified: trunk/Source/WebCore/SourcesWPE.txt (232795 => 232796)


--- trunk/Source/WebCore/SourcesWPE.txt	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/Source/WebCore/SourcesWPE.txt	2018-06-13 18:22:40 UTC (rev 232796)
@@ -64,8 +64,6 @@
 platform/graphics/wpe/ImageWPE.cpp
 platform/graphics/wpe/PlatformDisplayWPE.cpp
 
-platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp
-
 platform/text/Hyphenation.cpp
 platform/text/LocaleICU.cpp
 

Modified: trunk/Source/WebCore/platform/GStreamer.cmake (232795 => 232796)


--- trunk/Source/WebCore/platform/GStreamer.cmake	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/Source/WebCore/platform/GStreamer.cmake	2018-06-13 18:22:40 UTC (rev 232796)
@@ -33,6 +33,9 @@
         platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp
         platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp
 
+        platform/mediastream/libwebrtc/LibWebRTCAudioModule.cpp
+        platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp
+
         platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp
         platform/mediastream/gstreamer/GStreamerAudioCapturer.cpp
         platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.cpp
@@ -42,7 +45,11 @@
         platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp
         platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp
         platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp
+        platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp
+        platform/mediastream/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp
         platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.cpp
+        platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp
+        platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp
     )
 
     list(APPEND WebCore_SYSTEM_INCLUDE_DIRECTORIES

Modified: trunk/Source/WebCore/platform/graphics/ImageBuffer.cpp (232795 => 232796)


--- trunk/Source/WebCore/platform/graphics/ImageBuffer.cpp	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/Source/WebCore/platform/graphics/ImageBuffer.cpp	2018-06-13 18:22:40 UTC (rev 232796)
@@ -102,7 +102,7 @@
     return FloatRect(rect.location(), clampedSize(rect.size()));
 }
 
-#if !USE(CG) && !PLATFORM(GTK)
+#if !USE(CG) && !USE(CAIRO)
 Vector<uint8_t> ImageBuffer::toBGRAData() const
 {
     // FIXME: Implement this for other backends.

Modified: trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp (232795 => 232796)


--- trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp	2018-06-13 18:22:40 UTC (rev 232796)
@@ -204,6 +204,41 @@
 }
 #endif
 
+static RefPtr<cairo_surface_t>
+cairoSurfaceCoerceToImage(cairo_surface_t* surface)
+{
+    if (cairo_surface_get_type(surface) == CAIRO_SURFACE_TYPE_IMAGE
+        && cairo_surface_get_content(surface) == CAIRO_CONTENT_COLOR_ALPHA)
+        return surface;
+
+    auto copy = adoptRef(cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
+        cairo_image_surface_get_width(surface),
+        cairo_image_surface_get_height(surface)));
+
+    auto cr = adoptRef(cairo_create(copy.get()));
+    cairo_set_operator(cr.get(), CAIRO_OPERATOR_SOURCE);
+    cairo_set_source_surface(cr.get(), surface, 0, 0);
+    cairo_paint(cr.get());
+
+    return copy;
+}
+
+Vector<uint8_t> ImageBuffer::toBGRAData() const
+{
+    auto surface = cairoSurfaceCoerceToImage(m_data.m_surface.get());
+    cairo_surface_flush(surface.get());
+
+    Vector<uint8_t> imageData;
+    if (cairo_surface_status(surface.get()))
+        return imageData;
+
+    auto pixels = cairo_image_surface_get_data(surface.get());
+    imageData.append(pixels, cairo_image_surface_get_stride(surface.get()) *
+        cairo_image_surface_get_height(surface.get()));
+
+    return imageData;
+}
+
 ImageBuffer::ImageBuffer(const FloatSize& size, float resolutionScale, ColorSpace, RenderingMode renderingMode, const HostWindow*, bool& success)
     : m_data(IntSize(size), renderingMode)
     , m_logicalSize(size)

Modified: trunk/Source/WebCore/platform/graphics/gtk/ImageBufferGtk.cpp (232795 => 232796)


--- trunk/Source/WebCore/platform/graphics/gtk/ImageBufferGtk.cpp	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/Source/WebCore/platform/graphics/gtk/ImageBufferGtk.cpp	2018-06-13 18:22:40 UTC (rev 232796)
@@ -87,16 +87,6 @@
     return "data:" + mimeType + ";base64," + base64Data;
 }
 
-Vector<uint8_t> ImageBuffer::toBGRAData() const
-{
-    auto pixbuf = adoptGRef(cairoSurfaceToGdkPixbuf(m_data.m_surface.get()));
-    auto pixels = gdk_pixbuf_get_pixels(pixbuf.get());
-
-    Vector<uint8_t> imageData;
-    imageData.append(pixels, gdk_pixbuf_get_byte_length(pixbuf.get()));
-    return imageData;
-}
-
 Vector<uint8_t> ImageBuffer::toData(const String& mimeType, std::optional<double> quality) const
 {
     ASSERT(MIMETypeRegistry::isSupportedImageMIMETypeForEncoding(mimeType));

Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp (232795 => 232796)


--- trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp	2018-06-13 18:22:40 UTC (rev 232796)
@@ -328,10 +328,10 @@
     GstStaticPadTemplate* pad_template;
 } ProbeData;
 
-static GstFlowReturn webkitMediaStreamSrcChain(GstPad* pad, GstObject* object, GstBuffer* buffer)
+static GstFlowReturn webkitMediaStreamSrcChain(GstPad* pad, GstObject* parent, GstBuffer* buffer)
 {
     GstFlowReturn result;
-    GRefPtr<WebKitMediaStreamSrc> self = adoptGRef(WEBKIT_MEDIA_STREAM_SRC(gst_object_get_parent(object)));
+    GRefPtr<WebKitMediaStreamSrc> self = adoptGRef(WEBKIT_MEDIA_STREAM_SRC(gst_object_get_parent(parent)));
 
     result = gst_flow_combiner_update_pad_flow(self.get()->flowCombiner, pad,
         gst_proxy_pad_chain_default(pad, GST_OBJECT(self.get()), buffer));
@@ -350,10 +350,16 @@
         target);
 
     auto proxypad = adoptGRef(GST_PAD(gst_proxy_pad_get_internal(GST_PROXY_PAD(ghostpad))));
+    gst_pad_set_active(ghostpad, TRUE);
+    if (!gst_element_add_pad(GST_ELEMENT(self), GST_PAD(ghostpad))) {
+        GST_ERROR_OBJECT(self, "Could not add pad %s:%s", GST_DEBUG_PAD_NAME(ghostpad));
+        ASSERT_NOT_REACHED();
+
+        return;
+    }
+
     gst_pad_set_chain_function(proxypad.get(),
         static_cast<GstPadChainFunction>(webkitMediaStreamSrcChain));
-    gst_pad_set_active(ghostpad, TRUE);
-    ASSERT(gst_element_add_pad(GST_ELEMENT(self), GST_PAD(ghostpad)));
 }
 
 static GstPadProbeReturn webkitMediaStreamSrcPadProbeCb(GstPad* pad, GstPadProbeInfo* info, ProbeData* data)
@@ -399,7 +405,6 @@
 
     gst_bin_add(GST_BIN(self), element);
 
-
     ProbeData* data = "" ProbeData;
     data->self = WEBKIT_MEDIA_STREAM_SRC(self);
     data->pad_template = pad_template;

Modified: trunk/Source/WebKit/ChangeLog (232795 => 232796)


--- trunk/Source/WebKit/ChangeLog	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/Source/WebKit/ChangeLog	2018-06-13 18:22:40 UTC (rev 232796)
@@ -1,3 +1,12 @@
+2018-06-13  Thibault Saunier  <tsaun...@igalia.com>
+
+        [WPE] Build getUserMedia support
+        https://bugs.webkit.org/show_bug.cgi?id=186547
+
+        Reviewed by Alejandro G. Castro.
+
+        * SourcesWPE.txt: Compile files necessary for MediaStream/webrtc.
+
 2018-06-13  Andy Estes  <aes...@apple.com>
 
         [iOS] Synchronize PDF resizing with device rotation

Modified: trunk/Source/WebKit/SourcesWPE.txt (232795 => 232796)


--- trunk/Source/WebKit/SourcesWPE.txt	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/Source/WebKit/SourcesWPE.txt	2018-06-13 18:22:40 UTC (rev 232796)
@@ -37,6 +37,11 @@
 NetworkProcess/soup/NetworkSessionSoup.cpp
 NetworkProcess/soup/RemoteNetworkingContextSoup.cpp
 
+NetworkProcess/webrtc/LibWebRTCSocketClient.cpp
+NetworkProcess/webrtc/NetworkRTCMonitor.cpp
+NetworkProcess/webrtc/NetworkRTCProvider.cpp
+NetworkProcess/webrtc/NetworkRTCSocket.cpp
+
 Platform/IPC/glib/GSocketMonitor.cpp
 
 Platform/IPC/unix/AttachmentUnix.cpp

Modified: trunk/Source/cmake/OptionsWPE.cmake (232795 => 232796)


--- trunk/Source/cmake/OptionsWPE.cmake	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/Source/cmake/OptionsWPE.cmake	2018-06-13 18:22:40 UTC (rev 232796)
@@ -40,6 +40,8 @@
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SMOOTH_SCROLLING PRIVATE OFF)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL2 PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STREAM PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_RTC PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
 
 # Public options specific to the WPE port. Do not add any options here unless
 # there is a strong reason we should support changing the value of the option,
@@ -48,7 +50,10 @@
 
 # Private options specific to the WPE port.
 WEBKIT_OPTION_DEFINE(USE_OPENVR "Whether to use OpenVR as WebVR backend." PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
+WEBKIT_OPTION_DEFINE(USE_LIBWEBRTC "Whether to use libwebrtc for WebRTC support" PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
 
+WEBKIT_OPTION_DEPEND(USE_LIBWEBRTC ENABLE_WEB_RTC)
+
 if (CMAKE_SYSTEM_NAME MATCHES "Linux")
     WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEMORY_SAMPLER PRIVATE ON)
     WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_USAGE PRIVATE ON)
@@ -110,6 +115,12 @@
     find_package(LibXslt 1.1.7 REQUIRED)
 endif ()
 
+if (ENABLE_MEDIA_STREAM OR ENABLE_WEB_RTC)
+    set(USE_LIBWEBRTC TRUE)
+    SET_AND_EXPOSE_TO_BUILD(USE_LIBWEBRTC TRUE)
+    SET_AND_EXPOSE_TO_BUILD(WEBRTC_WEBKIT_BUILD TRUE)
+endif ()
+
 add_definitions(-DBUILDING_WPE__=1)
 add_definitions(-DGETTEXT_PACKAGE="WPE")
 add_definitions(-DJSC_GLIB_API_ENABLED)

Modified: trunk/Tools/wpe/install-dependencies (232795 => 232796)


--- trunk/Tools/wpe/install-dependencies	2018-06-13 17:58:05 UTC (rev 232795)
+++ trunk/Tools/wpe/install-dependencies	2018-06-13 18:22:40 UTC (rev 232796)
@@ -139,6 +139,7 @@
 function installDependenciesWithPacman {
     # These are dependencies necessary for building WPE.
     packages=" \
+        alsa-lib \
         autoconf \
         automake \
         bison \
@@ -237,6 +238,7 @@
     packages=" \
         autoconf \
         automake \
+        alsa-lib-devel \
         bison \
         cmake \
         flex \
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to