Ubuntu 16.04

Post Reply
janosvitok
Posts: 1325
Joined: Mon Apr 13, 2015 7:05 am
Location: Bratislava, Slovakia
Real Name: Jano Svitok
Contact:

Massimo,

since ubuntu 16.04 is out, it might be useful to enable git builds for it on OBS.

J.
User avatar
mcallegari
Posts: 4722
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

janosvitok wrote:since ubuntu 16.04 is out, it might be useful to enable git builds for it on OBS.
Done
User avatar
sbenejam
Posts: 608
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

After I upgraded to Xubuntu 16.04 I discovered some issues that could affect QLC+.
Gstreamer0.10 is not complete and don't play some video formats. Some plugins are missing (bad, ugly)
QLC+ compiled with default Qt5.5.1 in Xubuntu video don't play.
QLC+ compiled with Qt5.6 some video formats plays (ogv, dv, ). Others formats (mp4, mkv) mpeg format dont work even if it is played with gst-launch0.10 needs gstreamer0.10-plugin-ffmpeg from alternative PPA's.
Gstreamer1.0 plays all video and audio formats with gst-launch1.0 on Xubuntu 16.04. I tried to activate gstreamer1.0 suport on Qt5.6 qtmultimedia and did not work. Qt5.6 qtmultimedia is linked to gst0.10 not to gst1.0.

I have to do more tests with Qt5, qtmultimedia and QLC+.
User avatar
mcallegari
Posts: 4722
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

sbenejam wrote:After I upgraded to Xubuntu 16.04 I discovered some issues that could affect QLC+.
Gstreamer0.10 is not complete and don't play some video formats. Some plugins are missing (bad, ugly)
QLC+ compiled with default Qt5.5.1 in Xubuntu video don't play.
QLC+ compiled with Qt5.6 some video formats plays (ogv, dv, ). Others formats (mp4, mkv) mpeg format dont work even if it is played with gst-launch0.10 needs gstreamer0.10-plugin-ffmpeg from alternative PPA's.
Gstreamer1.0 plays all video and audio formats with gst-launch1.0 on Xubuntu 16.04. I tried to activate gstreamer1.0 suport on Qt5.6 qtmultimedia and did not work. Qt5.6 qtmultimedia is linked to gst0.10 not to gst1.0.

I have to do more tests with Qt5, qtmultimedia and QLC+.
I switched to Ubuntu 16.04 as well and the default now is gstreamer 1.0.

QtMultimedia supports gst 1.0 since 5.6 but I just checked and you're right, the official 5.6.0 linux build is still built against 0.10.
As always, it's a mess and QtMultimedia keeps on being the weakest Qt module ever.
On the other hand, it's not easy for them to make everyone happy, so I guess they preferred to be conservative...even though 16.04 is a LTS and gst 0.10 is damn obsolete now.

Honestly, I don't want to take the responsibility for this...maybe a good soul prepared a PPA for QtMultimedia built on gst 1.0. I could do it myself, but really, I don't have time for it.
Building just QtMultimedia from sources (if you really need it) is not that difficult.

I'd say: give Qt 5.7.0 RC a try. There are snapshots available now. Maybe if you're lucky, they started to build with gst 1.0
User avatar
sbenejam
Posts: 608
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

I've been testing qtmultimedia 5.6 build with qmake -r GST_VERSION=1.0 from Qt5.6 official bundle. Any video format don't play, only the audio plays, I tested in qt-creator some video examples, a Media Player example program works perfectly and plays many video formats.
I doon't know the difference between qlcplus video implementation versus Media Player example from Qt5.6.
I searched qtmultimedia PPA with no luck. I tested too Qt5.7 RC and is compiled only with gst-0.10 by default.
User avatar
mcallegari
Posts: 4722
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

I've just done some tests.
QtMultimedia 5.6.0 is definitely broken on Ubuntu 16.04.
I cannot even play a video with the 'player' example, which is the most similar code to what I've done in QLC+.

It wants a JACK server running, and even if I start JACK, I cannot play any video ! WTF
I'm really pissed off about how much unprofessional the QtMultimedia team is. I won't even point you to the emails I've sent to the Qt dev mailing list, cause you would get scared.

Right now I don't have time to dedicate to this topic cause I need to release 4.10.4, but I'll try to see if there is something that can be done to solve this crap.
At this point (and after all the issues we've had with the audio playback as well) I think it is time to abandon QtMultimedia for good. At least for the video part. I'm really sick of it.
User avatar
mcallegari
Posts: 4722
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Hey Santiago,
I've sent a message to the Qt mailing list. Let's see what they think: http://lists.qt-project.org/pipermail/d ... 26090.html
User avatar
sbenejam
Posts: 608
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

Hi Massimo,
As they explain gst version is automatically detected, maybe uninstalling gst 0.1 libs before build Qt?. You built only qtmultimedia or all Qt5.7?. Is there a good howto on how to build Qt with gst 1.0?
I posted last weekend on Qt forums and I don't get a good reply. ;-(
User avatar
mcallegari
Posts: 4722
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

They have a QTBUG open for the issue: https://bugreports.qt.io/browse/QTBUG-53668
...but they're targeting Qt 5.8...meaning other 6 months of broken videos :(

Attached my script to build Qt5 on a desktop.
Please note that this script is generic and if you'll use it in the future, you could find build errors depending on the status of the GIT sources. Normally Linux builds fine though.
If you need to add Qt modules, add a "git clone" line before "configure"
After the script is done, cd into qt5-GIT and do a "sudo make install"
Qt will be installed in /opt, so to build QLC+ you will have to do

Code: Select all

/opt/qt5-dev/bin/qmake
[EDIT] I just realized a couple of modules are missing in the script to build QLC+. Add this at the end of the clone list:

Code: Select all

git clone -b $BRANCH --depth=1 https://code.qt.io/qt/qtserialport.git
git clone -b $BRANCH --depth=1 https://code.qt.io/qt/qtscript.git
Attachments
build_qt5_dev.sh.tar.gz
(526 Bytes) Downloaded 360 times
User avatar
sbenejam
Posts: 608
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

Hi Massimo,
I try to compile QT, this weekend. Many thanks.

I've got a question off topic. I tried Capture Argo last weekend. I could not connect QLC + and Capture Argo, last month I managed to make it work. In Capture Argo input universes, do not detect Artnet inputs. QLC + is sending Artnet packets correctly, tested and with an Artnet Monitor on Android.
I think that I have configured both programs correctly. Any ideas. ;-)

[EDIT]
I reinstalled Capture Argo again and it's working now.
User avatar
sbenejam
Posts: 608
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

Results of my first attempt.
Qt5.7 compile fine without errors.
QLC+ compiled fine without errors.
QLC+ plays audio fine.
QLC+ video play shows a black screen audio plays and seems to hang, it stops playing some format.

I don't understand nothing. Maybe I'm missing some libraries. I'll try same steps in other computer soon.
;-(
User avatar
mcallegari
Posts: 4722
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

You are right. I get a black screen as well :(

There must be something in the QLC+ code too then, which has to be changed for Qt 5.7.
What a mess.
User avatar
mcallegari
Posts: 4722
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Found it. Indeed a bug in Qt 5.7.0 that was not there in 5.6.0.

In ui/src/videoprovider.cpp, move the 5 lines block at line 181 to line 80.
This is the block:

Code: Select all

    if (m_videoWidget == NULL)
    {
        m_videoWidget = new QVideoWidget;
        m_videoWidget->setStyleSheet("background-color:black;");
        m_videoPlayer->setVideoOutput(m_videoWidget);
    }
I already created a Qt issue report: https://bugreports.qt.io/browse/QTBUG-53835
User avatar
sbenejam
Posts: 608
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

Hey Massimo,
With this modification now works as expected.
;-)
User avatar
mcallegari
Posts: 4722
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Qt 5.7.0 has been released and it still links gstreamer 0.10.

They just don't care.... :(
User avatar
sbenejam
Posts: 608
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

mcallegari wrote: Sun Jun 19, 2016 8:02 am Qt 5.7.0 has been released and it still links gstreamer 0.10.

They just don't care.... :(
I tested on a Xubuntu 17.04 recently installed, qt5 (5.7.1) has gst-1.0 support enabled, gst-0.1 has no packages at all.
The modification of videoprovider.cpp is still needed to play video. I not tested audio playing yet.
User avatar
mcallegari
Posts: 4722
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Thanks for reporting Santiago.

[EDIT] I've just pushed a change to detect at runtime where the video surface must be initialized. Should work with all Qt5 versions. :fingers_crossed:
User avatar
sbenejam
Posts: 608
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

mcallegari wrote: Tue Apr 25, 2017 12:05 pm Thanks for reporting Santiago.

[EDIT] I've just pushed a change to detect at runtime where the video surface must be initialized. Should work with all Qt5 versions. :fingers_crossed:
I would test it tonight on a Xubuntu 16.04 lts on my laptop with qt5 5.8.0, maybe tomorrow I'll try it on a Xubuntu 17.04 installation with distribution default qt5 package. A couple of weeks ago I helped my niece in a small theater show. It was the first that used video playback with QLC + in production and I had no problem.

Good job Massimo. ;-)

{EDIT}: Tested on Xubuntu 16.04 with qt5 5.8.0 release from Qt. Audio an video plays as expected. Tomorrow I'll test on Xubuntu 17.04 with default qt5 version.
{EDIT}: Tested on Xubuntu 17.04 with default qt5 version on distro. Compiled fine, video playing worked as expected.
Post Reply