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 763044 - Enable qmlglsink on Rasperry PI
Enable qmlglsink on Rasperry PI
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal enhancement
: 1.8.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 757367 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2016-03-03 15:00 UTC by Sergey Borovkov
Modified: 2016-08-15 17:10 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Enable qmlgl sink on RPI (2.96 KB, patch)
2016-03-03 15:00 UTC, Sergey Borovkov
none Details | Review
Enable qmlglsink on rpi (3.43 KB, patch)
2016-03-04 16:14 UTC, Sergey Borovkov
none Details | Review
Enable qmlglsink on Eglfs (5.42 KB, patch)
2016-03-07 13:07 UTC, Sergey Borovkov
none Details | Review
Enable qmlglsink on Eglfs (5.61 KB, patch)
2016-04-14 15:35 UTC, Sergey Borovkov
none Details | Review
Enable qmlglsink on Eglfs (5.46 KB, patch)
2016-06-15 15:12 UTC, Sergey Borovkov
committed Details | Review

Description Sergey Borovkov 2016-03-03 15:00:20 UTC
Created attachment 322987 [details] [review]
Enable qmlgl sink on RPI

Currently qmlglsink is not built on RPI. Attached patch adds code that's necessary to get it working there.
I had to also modify gstegl.h locally to get it compiled as well but I am not sure if that's the issue on my side:
#pragma GCC optimize(gnu89-inline")
This is causing build error since this setting is not compatible with C++. Should I add #if !defined(__cplusplus) in gstegl.h to my attachment as well for that?
Comment 1 Matthew Waters (ystreet00) 2016-03-04 03:05:32 UTC
(In reply to Sergey Borovkov from comment #0)
> I had to also modify gstegl.h locally to get it compiled as well but I am
> not sure if that's the issue on my side:
> #pragma GCC optimize(gnu89-inline")
> This is causing build error since this setting is not compatible with C++.
> Should I add #if !defined(__cplusplus) in gstegl.h to my attachment as well
> for that?

Sounds fine by me.
Comment 2 Sergey Borovkov 2016-03-04 16:14:54 UTC
Created attachment 323102 [details] [review]
Enable qmlglsink on rpi

Update attachment with #ifdef for C++
Comment 3 Sebastian Dröge (slomo) 2016-03-05 08:04:01 UTC
Comment on attachment 323102 [details] [review]
Enable qmlglsink on rpi

This doesn't look DispManX/RPi specific, but should work on all platforms with EGL/eglfs, right? Except for the HAVE_QT_RPI

Can it be generalized a bit?
Comment 4 Sergey Borovkov 2016-03-05 08:19:44 UTC
Sure. I guess I could merge it with Android code and rename it something like HAVE_QT_EGLFS may be? Would that be fine?
Comment 5 Sebastian Dröge (slomo) 2016-03-05 08:29:18 UTC
I think so, doesn't look like there's a reason for making this specific to one platform.
Comment 6 Sergey Borovkov 2016-03-07 13:07:05 UTC
Created attachment 323266 [details] [review]
Enable qmlglsink on Eglfs

Merged code with Android. Still left the check for Android in auto-conf since it needs some other libraries for that case.
Tested this on RPI only.
Please review if there is anything else that needs to be fixed.
Comment 7 Sergey Borovkov 2016-03-25 14:56:20 UTC
Hi. Can you review this again now?
Comment 8 Matthew Waters (ystreet00) 2016-03-30 02:00:56 UTC
Review of attachment 323266 [details] [review]:

Just one check missing I think.

::: configure.ac
@@ +2878,3 @@
+          else
+            AC_DEFINE([HAVE_QT_EGLFS], [],
+              [Define if Qt eglfs integration is installed])

I think this needs to check pkg-config for Qt5EglDeviceIntegration.pc whenever we attempt to use EGL to make sure that eglfs is actually available.
Comment 9 Sergey Borovkov 2016-03-30 15:47:59 UTC
Sure. I Don't have Qt5EglDeviceIntergration.pc in my Qt for RPI build though so I will have to find out the reason for that first.
Comment 10 Sergey Borovkov 2016-04-14 15:35:10 UTC
Created attachment 326024 [details] [review]
Enable qmlglsink on Eglfs
Comment 11 Sergey Borovkov 2016-04-14 15:36:24 UTC
Updated. But I still don't have pkg-config files in my Qt build for Qt5EglDeviceIntegration. So I could not verify that it works 100% - had to comment search for pkg-config file. Without it patch's working for me without any issues.
Comment 12 Sergey Borovkov 2016-04-14 16:32:25 UTC
So can someone else please check if they have it and this is not on my side. This check is not strictly needed, considering that Qt5EglDeviceIntegration is plugin. It's not like if it's missing only qmlglsink won't work - Qt applications won't start at runtime. Might be better not to include it, but that's up to you.
Comment 13 Matthew Waters (ystreet00) 2016-06-15 14:51:37 UTC
It seems that Qt5EglDeviceIntegration was a fleeting thing.  https://bugreports.qt.io/browse/QTBUG-50073
Comment 14 Sergey Borovkov 2016-06-15 14:54:10 UTC
Good to know. Do you want me change anything else?
Comment 15 Sergey Borovkov 2016-06-15 15:12:34 UTC
Created attachment 329864 [details] [review]
Enable qmlglsink on Eglfs

Recreated patch after rebasing on the latest master
Comment 16 Matthew Waters (ystreet00) 2016-06-15 15:52:16 UTC
commit 180405714c88c0fe1081f3ec5ca4838c1c127bd0
Author: Sergey Borovkov <sergey.borovkov@wireload.net>
Date:   Thu Apr 14 18:14:32 2016 +0300

    qml: Enable qmlglsink for eglfs
    
    https://bugzilla.gnome.org/show_bug.cgi?id=763044
Comment 17 Matthew Waters (ystreet00) 2016-06-21 13:49:44 UTC
*** Bug 757367 has been marked as a duplicate of this bug. ***