Bug 18229 - Video support with Qt5Multimedia framework do not work
Summary: Video support with Qt5Multimedia framework do not work
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: All Linux
Priority: High major
Target Milestone: ---
Assignee: Nicolas Lécureuil
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-04-20 04:20 CEST by Gilles Caulier
Modified: 2016-04-24 16:45 CEST (History)
3 users (show)

See Also:
Source RPM: qtmultimedia5
CVE:
Status comment:


Attachments

Description Gilles Caulier 2016-04-20 04:20:51 CEST
Qt5Multimedia is not able to play video files.

The error returned in the console is :

defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"

Step to reproduce : 

Install lib64qt5help-devel version 5.6 package and try to run video player example :

[gilles@localhost player]$ pwd
/lib64/qt5/examples/multimediawidgets/player
[gilles@localhost player]$ ls -al
total 188
drwxr-xr-x 2 root root   4096 Mar 20 05:29 ./
drwxr-xr-x 7 root root   4096 Mar 20 05:29 ../
-rw-r--r-- 1 root root   5557 Feb 25 17:27 histogramwidget.cpp
-rw-r--r-- 1 root root   2782 Feb 25 17:27 histogramwidget.h
-rw-r--r-- 1 root root   2263 Feb 25 17:27 main.cpp
-rwxr-xr-x 1 root root 109904 Mar 18 02:56 player*
-rw-r--r-- 1 root root   6343 Feb 25 17:27 playercontrols.cpp
-rw-r--r-- 1 root root   3157 Feb 25 17:27 playercontrols.h
-rw-r--r-- 1 root root  14809 Feb 25 17:27 player.cpp
-rw-r--r-- 1 root root   3806 Feb 25 17:27 player.h
-rw-r--r-- 1 root root    500 Feb 25 17:27 player.pro
-rw-r--r-- 1 root root   5241 Feb 25 17:27 playlistmodel.cpp
-rw-r--r-- 1 root root   3145 Feb 25 17:27 playlistmodel.h
-rw-r--r-- 1 root root   2906 Feb 25 17:27 videowidget.cpp
-rw-r--r-- 1 root root   2308 Feb 25 17:27 videowidget.h
[gilles@localhost player]$ 
[gilles@localhost player]$ ./player
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
Comment 1 Gilles Caulier 2016-04-20 04:33:21 CEST
Note :

Qt5Multimedia must depend of GStreamer plugins installed on the system to be able to play video files, as it's specified to the Qt Web site :

http://wiki.qt.io/Qt_5.5.0_Multimedia_Backends

And of course all GStreamer 1.0 plugins are installed :


- gstreamer1.0-plugins-base-1.8.0-2.mga6.x86_64
- gstreamer1.0-plugins-bad-1.8.0-1.mga6.x86_64
- gstreamer1.0-plugins-good-1.8.0-2.mga6.x86_64
- gstreamer1.0-plugins-ugly-1.8.0-1.mga6.x86_64

Gilles Caulier
Gilles Caulier 2016-04-20 04:35:07 CEST

CC: (none) => caulier.gilles

Comment 2 Gilles Caulier 2016-04-20 04:38:54 CEST
It sound like Qt5Multimedia packages do not depend of GStreamer dependencies. It's normal ? 

Without suitable Qt5Multimedia, all Qt5 application which will need to play video or audio will be broken.

Gilles Caulier

Priority: Normal => High
Severity: normal => major

Comment 3 Gilles Caulier 2016-04-20 04:40:12 CEST
If you need video samples to test, look here :

http://www.sample-videos.com/

Gilles Caulier
Comment 4 Gilles Caulier 2016-04-20 10:20:24 CEST
I think i found the problem : it miss a so file in RPM to handle GStreamer plugins with Qt5Multimedia framework.

In older qtmultimedia5 RPM from Mageia5 we have :

https://www.rpmfind.net/linux/RPM/mageia/5/x86_64/media/core/updates/qtmultimedia5-5.4.2-1.mga5.x86_64.html

...which provide libgstmediaplayer.so to handle older GStreamer 0.10

In new qtmultimedia5 RPM from Mageia Cauldron we have :

https://www.rpmfind.net/linux/RPM/mageia/cauldron/x86_64/media/core/release/qtmultimedia5-5.6.0-1.mga6.x86_64.html

...there is no libgstmediaplayer.so to handle new GStreamer 1.0

Note the difference between GStreamer 0.10 and 1.0. Qt 5.5 is now compatible with GStreamer 1.0 and must use it instead older GStreamer 0.10, else Qt5multimedia will not work.

Gilles Caulier
David GEIGER 2016-04-20 10:32:52 CEST

CC: (none) => geiger.david68210
Assignee: bugsquad => mageia

Comment 5 Gilles Caulier 2016-04-22 22:04:39 CEST
Nicolas,

Do you sen my previous comments ?

Gilles Caulier
Comment 6 David GEIGER 2016-04-23 07:21:50 CEST
Should be fixed now with qtmultimedia5-5.6.0-4.mga6.

Also the libqgsttools_p5 package is back.
Comment 7 Gilles Caulier 2016-04-23 08:35:26 CEST
Thanks. updating is in the process...

Gilles Caulier
Comment 8 Gilles Caulier 2016-04-23 09:09:54 CEST
All work fine now. I tested with few different video sample of different type mime supported by gstreamer.

player test program fram qt5 samples work like a charm.

Idem for my video support in digiKam 5 !

Thanks a lots

Gilles Caulier

Status: NEW => RESOLVED
Resolution: (none) => FIXED

Comment 9 Oleg Bosis 2016-04-23 09:14:04 CEST
(In reply to David GEIGER from comment #6)
> Should be fixed now with qtmultimedia5-5.6.0-4.mga6.
> 
> Also the libqgsttools_p5 package is back.

I think you've chosen the wrong way to fix. Initial problem is that qtbase5 package contains the config file that points to gst version 0.10 and qtmultimedia5 is built with gst 1.0.

To fix it properly you should fix BRs in qtbase5 package and then qtmultimedia5 won't require all this fixes.

Status: RESOLVED => REOPENED
CC: (none) => olegbosis
Resolution: FIXED => (none)

Comment 10 Nicolas Lécureuil 2016-04-23 12:45:17 CEST
Qtbase5 is now built against gstreamer 1.0

Status: REOPENED => RESOLVED
Resolution: (none) => FIXED

Comment 11 Gilles Caulier 2016-04-24 16:20:03 CEST
The problem is back...

I can see qt5 depending of GStreamer 0.10 instead 1.0. When i want to uninstall gstreamer0.10-tools package, i can see this message from mcc :

Because of their dependencies, the following package(s) also need to be removed:

- audacity-2.1.2-1.mga6.x86_64
- filezilla-3.16.1-1.mga6.x86_64
- hugin-2016.0.0-1.mga6.x86_64
- kwin-5.6.2-1.mga6.x86_64
- lib64gstreamer-plugins-base0.10_0-0.10.36-11.mga6.x86_64
- lib64gstreamer0.10_0-0.10.36-15.mga6.x86_64
- lib64qgsttools_p5-5.5.1-1.mga6.x86_64
- lib64qt5multimedia-devel-5.6.0-4.mga6.x86_64
- lib64qt5multimediawidgets-devel-5.6.0-4.mga6.x86_64
- lib64wxgtku2.8_0-2.8.12-18.mga6.x86_64
- lib64wxgtku3.0_0-3.0.2-7.mga6.x86_64
- lib64wxgtkugl3.0_0-3.0.2-7.mga6.x86_64
- plasma-workspace-5.6.2-1.mga6.x86_64
- qtmultimedia5-5.6.0-4.mga6.x86_64
- task-plasma5-5.6.0-1.mga6.noarch
- task-plasma5-minimal-5.6.0-1.mga6.noarch

0B of additional disk space will be used.

Typically, with my CLI tool from digiKam test box, i see this message from the console :

[gilles@localhost fileio]$ pwd
/home/gilles/Devel/5.x/build/core/tests/fileio
[gilles@localhost fileio]$ ./videothumbtest /home/gilles/Devel/5.x/build/core/tests/fileio/SampleVideo_1280x720_20mb.mkv 

(videothumbtest:28700): GLib-GObject-WARNING **: cannot register existing type 'GstObject'

(videothumbtest:28700): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed

(videothumbtest:28700): GLib-GObject-CRITICAL **: g_type_register_static: assertion 'parent_type > 0' failed

(videothumbtest:28700): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed

(videothumbtest:28700): GStreamer-CRITICAL **: gst_pad_get_negotiated_caps: assertion 'GST_IS_PAD (pad)' failed

This is exactly the same locking case than under Mageia5. qt5Multimedia is NOT compatible with GStreamer 0.10...

Gilles Caulier

Status: RESOLVED => REOPENED
Resolution: FIXED => (none)

Comment 12 Gilles Caulier 2016-04-24 16:20:54 CEST
Note : that i updated today all packages from Cauldron...

2 days ago, all work fine.

Gilles Caulier
Comment 13 Nicolas Lécureuil 2016-04-24 16:26:14 CEST
strange. I look to it today.
Comment 14 David GEIGER 2016-04-24 16:42:24 CEST
On my cauldron I ca see:

$ urpmq --requires qtmultimedia5 |grep gst
--requires behaviour changed, use --requires-recursive to get the old behaviour
libgstapp-1.0.so.0()(64bit)
libgstbase-1.0.so.0()(64bit)
libgstpbutils-1.0.so.0()(64bit)
libgstphotography-1.0.so.0()(64bit)
libgstreamer-1.0.so.0()(64bit)
libgstvideo-1.0.so.0()(64bit)
libqgsttools_p.so.1()(64bit)

$ urpmq --requires lib64qgsttools_p5 |grep gst
--requires behaviour changed, use --requires-recursive to get the old behaviour
libgstapp-1.0.so.0()(64bit)
libgstaudio-1.0.so.0()(64bit)
libgstreamer-1.0.so.0()(64bit)
libgstvideo-1.0.so.0()(64bit)


I do not see any gstreamer0.10 here!!
Comment 15 Gilles Caulier 2016-04-24 16:45:57 CEST
Confirmed. I updated again Cauldron and problem disapear...Very strange...

Gilles Caulier

Status: REOPENED => RESOLVED
Resolution: (none) => FIXED


Note You need to log in before you can comment on or make changes to this bug.