Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. MediaPlayer VideoOutput SIGSEGV gst_v4l2_object_fill_format_list
Forum Updated to NodeBB v4.3 + New Features

MediaPlayer VideoOutput SIGSEGV gst_v4l2_object_fill_format_list

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
9 Posts 3 Posters 125 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.
  • P Offline
    P Offline
    petero3
    wrote last edited by
    #1

    With QML MediaPlayer and VideoOutput
    and
    player.source = "gstreamer-pipeline: v4l2src device=/dev/video2 ! capsfilter caps=video/x-raw,width=720,height=480,framerate=25/1"

    We are getting an intermittent SIGSEGV in
    gst_v4l2_object_fill_format_list
    in /usr/src/debug/gstreamer1.0-plugins-good/1.24.0.imx/sys/v4l2/gstv4l2object.c

    It either fails early, or works and keeps working.

    By comparison, the following always works:
    player.source = "gstreamer-pipeline: videotestsrc ! capsfilter caps=video/x-raw,width=720,height=480,framerate=25/1"

    This is on a custom board/custom Yocto
    NXP i.MX 8X
    ADV7280A-M

    1 Reply Last reply
    0
    • JoeCFDJ Offline
      JoeCFDJ Offline
      JoeCFD
      wrote last edited by JoeCFD
      #2

      try from command line:
      gst-launch-1.0 v4l2src device=/dev/video2 ! capsfilter caps=video/x-raw,width=720,height=480,framerate=25/1 | autovideosink
      or
      gst-launch-1.0 v4l2src device=/dev/video2 ! capsfilter caps=video/x-raw,width=720,height=480,framerate=25/1 | waylandsink
      to see if your pipeline works or not at first.

      If not, show the output here.
      gst-launch-1.0 -v v4l2src device=/dev/video2 ! capsfilter caps=video/x-raw,width=720,height=480,framerate=25/1 | autovideosink

      P 1 Reply Last reply
      0
      • JoeCFDJ JoeCFD

        try from command line:
        gst-launch-1.0 v4l2src device=/dev/video2 ! capsfilter caps=video/x-raw,width=720,height=480,framerate=25/1 | autovideosink
        or
        gst-launch-1.0 v4l2src device=/dev/video2 ! capsfilter caps=video/x-raw,width=720,height=480,framerate=25/1 | waylandsink
        to see if your pipeline works or not at first.

        If not, show the output here.
        gst-launch-1.0 -v v4l2src device=/dev/video2 ! capsfilter caps=video/x-raw,width=720,height=480,framerate=25/1 | autovideosink

        P Offline
        P Offline
        petero3
        wrote last edited by
        #3

        Hi @JoeCFD thank you for replying. Yes pipeline works from the command line each time:

        gst-launch-1.0 v4l2src device=/dev/video2 ! capsfilter caps=video/x-raw,width=720,height=480,framerate=25/1 ! autovideosink

        JoeCFDJ 1 Reply Last reply
        0
        • P petero3

          Hi @JoeCFD thank you for replying. Yes pipeline works from the command line each time:

          gst-launch-1.0 v4l2src device=/dev/video2 ! capsfilter caps=video/x-raw,width=720,height=480,framerate=25/1 ! autovideosink

          JoeCFDJ Offline
          JoeCFDJ Offline
          JoeCFD
          wrote last edited by
          #4

          @petero3 What is your Qt version?

          P 1 Reply Last reply
          0
          • JoeCFDJ JoeCFD

            @petero3 What is your Qt version?

            P Offline
            P Offline
            petero3
            wrote last edited by
            #5

            @JoeCFD Qt 6.8.3

            JoeCFDJ 1 Reply Last reply
            0
            • P petero3

              @JoeCFD Qt 6.8.3

              JoeCFDJ Offline
              JoeCFDJ Offline
              JoeCFD
              wrote last edited by
              #6

              @petero3 I guess Qt6 might have removed this feature of running a gstreamer pipeline. This feature is only available in Qt5.

              SGaistS P 2 Replies Last reply
              0
              • JoeCFDJ JoeCFD

                @petero3 I guess Qt6 might have removed this feature of running a gstreamer pipeline. This feature is only available in Qt5.

                SGaistS Offline
                SGaistS Offline
                SGaist
                Lifetime Qt Champion
                wrote last edited by
                #7

                @JoeCFD that feature was removed.
                Also, unless explicitly selected, the default backend uses ffmpeg.

                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
                • JoeCFDJ JoeCFD

                  @petero3 I guess Qt6 might have removed this feature of running a gstreamer pipeline. This feature is only available in Qt5.

                  P Offline
                  P Offline
                  petero3
                  wrote last edited by
                  #8

                  @JoeCFD @SGaist

                  IIRC gstreamer pipelines were removed in the first Qt 6 versions, but are present in later ones.

                  The following works fine with Qt 6.8.3:

                  player.source = "gstreamer-pipeline: videotestsrc ! capsfilter caps=video/x-raw,width=720,height=480,framerate=25/1"

                  As long as source is set dynamically onCompleted as per:
                  https://bugreports.qt.io/browse/QTBUG-134554

                  and:

                  player.source = "gstreamer-pipeline: v4l2src device=/dev/video2 ! capsfilter caps=video/x-raw,width=720,height=480,framerate=25/1"

                  does not always fail. If gst_v4l2_object_fill_format_list is going to segfault, it does so early. If it doesn't segfault, then it works.

                  So present, but flaky for some reason.

                  We are also trying qml6glsink, but so far that just gives a white screen on our device.

                  JoeCFDJ 1 Reply Last reply
                  0
                  • P petero3

                    @JoeCFD @SGaist

                    IIRC gstreamer pipelines were removed in the first Qt 6 versions, but are present in later ones.

                    The following works fine with Qt 6.8.3:

                    player.source = "gstreamer-pipeline: videotestsrc ! capsfilter caps=video/x-raw,width=720,height=480,framerate=25/1"

                    As long as source is set dynamically onCompleted as per:
                    https://bugreports.qt.io/browse/QTBUG-134554

                    and:

                    player.source = "gstreamer-pipeline: v4l2src device=/dev/video2 ! capsfilter caps=video/x-raw,width=720,height=480,framerate=25/1"

                    does not always fail. If gst_v4l2_object_fill_format_list is going to segfault, it does so early. If it doesn't segfault, then it works.

                    So present, but flaky for some reason.

                    We are also trying qml6glsink, but so far that just gives a white screen on our device.

                    JoeCFDJ Offline
                    JoeCFDJ Offline
                    JoeCFD
                    wrote last edited by JoeCFD
                    #9

                    @petero3 What env settings in main() you have?
                    Show me the code how qml sink is applied.

                    1 Reply Last reply
                    0

                    • Login

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