[Webkit-unassigned] [Bug 185787] [GTK][WPE] Start implementing MediaStream API

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jun 6 15:36:15 PDT 2018


https://bugs.webkit.org/show_bug.cgi?id=185787

Thibault Saunier <tsaunier at gnome.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #342085|                            |review?, commit-queue?
              Flags|                            |

--- Comment #4 from Thibault Saunier <tsaunier at gnome.org> ---
Created attachment 342085

  --> https://bugs.webkit.org/attachment.cgi?id=342085&action=review

[GTK][WPE]: Implement MediaStream API

(In reply to Philippe Normand from comment #3)
> Comment on attachment 341758 [details]
> [GTK][WPE] Start implementing MediaStream API
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=341758&action=review
> 
> > LayoutTests/platform/gtk/TestExpectations:-577
> > -fast/mediastream [ Skip ]
>
> Can similar test expectation changes be applied to WPE?

This will be a follow up patch, we are not ready for that yet but
I am working on it.

> > Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h:85
> > +void connectSimpleBusMessageCallback(GstElement *pipeline);
> 
> * misplaced :)
> Also, a disconnect function would probably be nice to have?

Added, also fixed a place where we forgot to disconnect (which would have lead to a leak iirc).

> > Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:55
> > +#include "gstreamer/GStreamerMediaStreamSource.h"
> 
> Please add platform/mediastream/gstreamer to the include directories,
> somewhere in the CMake stuff so there's no need for gstreamer/ prefix here.

Done.

> > Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1769
> > +        // gst_object_ref(sourceElement);
> 
> left over?

Indeed sorry, FIXED.

> > Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:85
> > +#include "gstreamer/GStreamerMediaStreamSource.h"
> 
> No prefix needed.

FIXED.

> > Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:54
> > +    if (gst_tag_list_get_int(tags, "webkit-media-stream-kind", &kind) && kind == (gint)VideoTrackPrivate::Kind::Main) {
> 
> C-style cast detected :)

Fixed

> > Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:56
> > +        gst_stream_set_stream_flags(stream.get(), (GstStreamFlags)(streamFlags | GST_STREAM_FLAG_SELECT));
> 
> Ditto

Fixed.

> > Source/WebCore/platform/mediastream/gstreamer/GStreamerCaptureDevice.h:42
> > +    GstDevice * device() { return m_device.get(); }
> 
> no space :P

Fixed.

> > Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp:110
> > +    gst_element_link_many(source.get(), converter.get(), m_capsfilter.get(), m_tee.get(), NULL);
> 
> nullptr here too please :)

Fixed, I wonder how the style checker missed it oO

> 
> > Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp:178
> > +    GRefPtr<GstBus> bus = adoptGRef(gst_pipeline_get_bus(GST_PIPELINE(pipeline())));
> > +    gst_bus_set_sync_handler(bus.get(), nullptr, nullptr, nullptr);
> 
> As mentioned before, this could go to a new function in GStreamerCommon.

It is unrelated as this is for the sync message handler.

> > Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:32
> > +#include "gstreamer/GStreamerAudioData.h"
> 
> No WebCore dir prefix in includes, anywhere in this patch please :)

Fixed, looks like you spotted the 3 instances :-)

> > Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:37
> > +#if GST_CHECK_VERSION(1, 10, 0)
> 
> This could be merged with the first #if

Problem was that <gst/gst.h> was not included at that point, changed it this way:

```

```

> > Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:43
> > +#define WEBKIT_MEDIA_STREAM_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_MEDIA_STREAM_SRC, WebKitMediaStreamSrcClass))
> > +#define WEBKIT_IS_MEDIA_STREAM_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_MEDIA_STREAM_SRC))
> > +#define WEBKIT_MEDIA_STREAM_SRC_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), WEBKIT_TYPE_MEDIA_STREAM_SRC, WebKitMediaStreamSrcClass))
> 
> I think our other gst custom elements define those macros in their header
> file.

Removed them, they were not used in the end.

> > Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:70
> > +            (gint)AudioTrackPrivate::Kind::Main, nullptr);
> 
> C-style cast. It seems the whole patch needs to be checked about this.

Rebuilt the modified c++ files with `-Wold-style-cast` and tried to go over mine (but there were **many** issues from random headers).

> > Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:164
> > +    GstFlowCombiner* flow_combiner;
> 
> Variables should use camelCase whenever possible

Fixed a few I noticed.

> > Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:316
> > +    /**
> > +     * WebKitMediaStreamSrcClass::is-live:
> > +     *
> > +     * Instruct the source to behave like a live source. This includes that it
> > +     * will only push out buffers in the PLAYING state.
> > +     */
> 
> No need for this, the element is private.

Removed.

> > Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:319
> > +            "Let playbin3 we are a live source.",
> 
> +know
> 
> > Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:191
> > +            tmpMinFramerate = (int)(tmpMinFPSNumerator / tmpMinFPSDenominator);
> > +            tmpMaxFramerate = (int)(tmpMaxFPSNumerator / tmpMaxFPSDenominator);
> 
> Framerates are integers in libwebrtc? That's a bit surprising :)

Crazy thing happen there :P (or we forgot to wake up that day :D).

Fixed.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20180606/ac316dd9/attachment-0001.html>


More information about the webkit-unassigned mailing list