After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 770146 - kmssink won't compile
kmssink won't compile
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: 1.9.90
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-08-19 13:36 UTC by zingmars
Modified: 2016-09-30 07:04 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
make log (58.13 KB, text/x-log)
2016-08-19 13:36 UTC, zingmars
  Details
kmssink: check for DRM_CAP_ASYNC_PAGE_FLIP macro (1.10 KB, patch)
2016-09-05 17:39 UTC, Víctor Manuel Jáquez Leal
none Details | Review
kmssink: update libdrm dependency to 2.4.55 (1.01 KB, patch)
2016-09-13 18:12 UTC, Víctor Manuel Jáquez Leal
committed Details | Review

Description zingmars 2016-08-19 13:36:19 UTC
Created attachment 333626 [details]
make log

When compiling gst-plugins-bad from master the make will fail because of undeclared values errors. Relevant part of the log (full make log is attached) -

make[3]: Entering directory `/home/zingmars/git_projects/Gstreamer/git/gst-plugins-bad/sys/uvch264'
  CC       libgstdvb_la-gstdvb.lo
  CC       libgstuvch264_la-gstuvch264.lo
gstkmssink.c: In function 'get_drm_caps':
gstkmssink.c:292:30: error: 'DRM_CAP_ASYNC_PAGE_FLIP' undeclared (first use in this function)
   ret = drmGetCap (self->fd, DRM_CAP_ASYNC_PAGE_FLIP, &has_async_page_flip);
                              ^
gstkmssink.c:292:30: note: each undeclared identifier is reported only once for each function it appears in
gstkmssink.c: In function 'gst_kms_sink_start':
gstkmssink.c:396:7: error: implicit declaration of function 'drmSetClientCap' [-Werror=implicit-function-declaration]
       drmSetClientCap (self->fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1))
       ^
gstkmssink.c:396:7: error: nested extern declaration of 'drmSetClientCap' [-Werror=nested-externs]
gstkmssink.c:396:34: error: 'DRM_CLIENT_CAP_UNIVERSAL_PLANES' undeclared (first use in this function)
       drmSetClientCap (self->fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1))
                                  ^
cc1: all warnings being treated as errors
make[3]: *** [libgstkmssink_la-gstkmssink.lo] Error 1
make[3]: Leaving directory `/home/zingmars/git_projects/Gstreamer/git/gst-plugins-bad/sys/kms'
make[2]: *** [kms] Error 2


Additional info:
$ pkg-config --modversion libdrm libkms
2.4.39
1.0.0
Comment 1 Tim-Philipp Müller 2016-08-21 17:31:07 UTC
> $ pkg-config --modversion libdrm libkms
> 2.4.39
> 1.0.0

That's from August 2012 - maybe we need to bump the requirements to something a bti more recent?
Comment 2 zingmars 2016-08-22 10:00:27 UTC
(In reply to Tim-Philipp Müller from comment #1)
> > $ pkg-config --modversion libdrm libkms
> > 2.4.39
> > 1.0.0
> 
> That's from August 2012 - maybe we need to bump the requirements to
> something a bti more recent?

Well, those are the versions on Canonical's apt repos (Ubuntu 14.04), so dropping the support for these might mean dropping the support for Ubuntu 14.04.
Comment 3 Víctor Manuel Jáquez Leal 2016-09-05 17:39:44 UTC
Created attachment 334832 [details] [review]
kmssink: check for DRM_CAP_ASYNC_PAGE_FLIP macro

DRM_CAP_ASYNC_PAGE_FLIP appear in libdrm 2.4.48 but Ubutnu 14.04 still uses
libdrm 2.4.39. This patch checks for DRM_CAP_ASYNC_PAGE_FLIP definition before
testing that capability.
Comment 4 Víctor Manuel Jáquez Leal 2016-09-05 17:40:22 UTC
@zingmars, can you check if this patch is enough for you?
Comment 5 zingmars 2016-09-07 15:36:43 UTC
Sorry for the late response, the last few weeks have been hectic.

The patch only seems to fix the first error with DRM_CAP_ASYNC_PAGE_FLIP, but there's another one with DRM_CLIENT_CAP_UNIVERSAL_PLANES that's also present in the original bug report, so the fix does not fully fix the issue.
Comment 6 Víctor Manuel Jáquez Leal 2016-09-07 16:02:04 UTC
(In reply to zingmars from comment #5)
> Sorry for the late response, the last few weeks have been hectic.
> 
> The patch only seems to fix the first error with DRM_CAP_ASYNC_PAGE_FLIP,
> but there's another one with DRM_CLIENT_CAP_UNIVERSAL_PLANES that's also
> present in the original bug report, so the fix does not fully fix the issue.

Thanks.

mmmhh... This is getting messy. I'm feeling towards to check for libdrm-2.4.55
Comment 7 Víctor Manuel Jáquez Leal 2016-09-13 18:12:30 UTC
Created attachment 335466 [details] [review]
kmssink: update libdrm dependency to 2.4.55

The latest libdrm feature supported by kmssink is the universal plane, which
was added in 2.4.55. Let's update the dependency to that version.
Comment 8 Nicolas Dufresne (ndufresne) 2016-09-13 18:17:11 UTC
Review of attachment 335466 [details] [review]:

Looks good. There is no reason to support too old library. This is a recent addition to GStreamer and it make sense to focus on the newer interface.
Comment 9 Víctor Manuel Jáquez Leal 2016-09-14 08:45:09 UTC
Attachment 335466 [details] pushed as fa4786a - kmssink: update libdrm dependency to 2.4.55