Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. General talk
  3. Qt 6
  4. Can I use QtMultimedia Private API ?
Forum Updated to NodeBB v4.3 + New Features

Can I use QtMultimedia Private API ?

Scheduled Pinned Locked Moved Solved Qt 6
5 Posts 2 Posters 1.0k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    J Offline
    jpgehrig
    wrote on last edited by
    #1

    Hi all,

    I am experimenting with the new QtMultimedia module on Linux (Kubuntu 21.04). I would like to create a custom GStreamer pipeline by using some helper classes from the QtMultimedia/GStreamer backend. I have added multimedia-private to my QT.

    My problem is that I get undefined references for some private classes.

    For example, when I build this snippet:

    #include "widget.h"
    
    #include <QtMultimedia/private/qgstpipeline_p.h>
    
    Widget::Widget(QWidget *parent)
        : QWidget(parent)
    {
        QGstPipeline pipeline("my-pipeline");
        QGstElement element("videotestsrc");
    }
    

    I get:

    undefined reference to `QGstPipeline::QGstPipeline(char const*)'
    undefined reference to `QGstPipeline::~QGstPipeline()'
    

    So QGstPipeline is undefined, but QGstElement is all good. Could anybody help me understand ?

    I also tried with a CMake project by adding a project dependency to Qt6::MultimediaPrivate, same result 😕

    Thanks!

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi,

      From the looks of it, the class was not exported. I don't think it's intentional though.

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • J Offline
        J Offline
        jpgehrig
        wrote on last edited by
        #3

        Bummer.

        Can you point me to the files / docs I should look at to get the missing symbols exported. I am building Qt from source anyway and would be happy to contribute to QtMultimedia.

        Dropping the plugin architecture in Qt6 is making everything so much simpler and interesting. I have a few apps which I want to migrate to Qt6 just to throw away custom Qt5/Multimedia code 😄

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #4

          From the looks of it, it's in gstpipeline_p.h. The other private classes seem to be exported.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • J Offline
            J Offline
            jpgehrig
            wrote on last edited by
            #5

            Amazing!

            So I simply added Q_MULTIMEDIA_EXPORT to the QGstPipeline class declaration and it did the trick.

            I'll try to get this contributed.

            PS: Tu passes à la foire vendredi ?

            1 Reply Last reply
            1

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved