[Bug 796516] kms: add support for kms atomic api

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Thu Jun 7 01:20:10 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=796516

--- Comment #2 from Randy Li (ayaka) <ayaka at soulik.info> ---
(In reply to Nicolas Dufresne (ndufresne) from comment #1)
> Review of attachment 372577 [details] [review]:
> 
> Nice start, it proves it won't be too complicated. We will also be able to
> probe with TryCommit to set can-scale properly and earlier.
> 
yes, I will some addition work on kms_sink_start() as well to store all the
caps info of all the plane, then it would be possible to choose a proper drm
plane for future processing.
> ::: sys/kms/gstkmssink.c
> @@ +77,3 @@
> +    drmModeObjectProperties *props;
> +    drmModePropertyRes **props_info;
> +  } conn;
> 
> Unnamed Structure is C11 feature, I like it, but I'd like to know if that's
> a way we want to go globally in GStreamer project.
> 
It is supported from gcc 4.x, since the kms can't be used beyond the Linux, I
think it is a good way to do that.
> @@ +94,3 @@
>  #define parent_class gst_kms_sink_parent_class
>  G_DEFINE_TYPE_WITH_CODE (GstKMSSink, gst_kms_sink, GST_TYPE_VIDEO_SINK,
> +    G_ADD_PRIVATE (GstKMSSink);
> 
> The entire GstKMSSink class is private (only the plugin is exposed), no need
> for private structure.
I know, but the problem is I don't want to include those drm headers in
gstkmssink.h and some others header for it. Maybe I can declear an structure in
the header files, but I think use the private structure is a better choice.
> 
> @@ +715,3 @@
>    }
>  
> +  drmSetClientCap (self->fd, DRM_CLIENT_CAP_ATOMIC, 1);
Yes, I am thinking to move it to get_drm_caps()
> 
> This will need a return check to detect non-atomic drivers.
> 
> @@ +1586,3 @@
> +  req = drmModeAtomicAlloc ();
> +
> +  add_plane_property (self->priv, req, self->plane_id, "FB_ID", fb_id);
> 
> You could maybe just pass self in order to reduce the length of these lines ?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list