Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How to get camera supported resolutions using Qt5?

How to get camera supported resolutions using Qt5?

Scheduled Pinned Locked Moved General and Desktop
23 Posts 5 Posters 19.2k Views 1 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.
  • yeckelY Offline
    yeckelY Offline
    yeckel
    wrote on last edited by
    #14

    It looks like that gstreamer on Linux is not returing any value in: camerabinsession.cpp

    @ GstCaps *supportedCaps = 0;
    g_object_get(G_OBJECT(m_camerabin),
    (mode == QCamera::CaptureStillImage) ?
    SUPPORTED_IMAGE_CAPTURE_CAPS_PROPERTY : SUPPORTED_VIDEO_CAPTURE_CAPS_PROPERTY,
    &supportedCaps, NULL);
    if (!supportedCaps)
    return res;@

    I was trying calling gstreamer out of QT and was getting NULL as well. Is it a bug in GStreamer?

    1 Reply Last reply
    0
    • yeckelY Offline
      yeckelY Offline
      yeckel
      wrote on last edited by
      #15

      It looks like that gstreamer on Linux is not returing any value in: camerabinsession.cpp

      @ GstCaps *supportedCaps = 0;
      g_object_get(G_OBJECT(m_camerabin),
      (mode == QCamera::CaptureStillImage) ?
      SUPPORTED_IMAGE_CAPTURE_CAPS_PROPERTY : SUPPORTED_VIDEO_CAPTURE_CAPS_PROPERTY,
      &supportedCaps, NULL);
      if (!supportedCaps)
      return res;@

      I was trying calling gstreamer out of QT and was getting NULL as well. Is it a bug in GStreamer?

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

        Hi,

        Either that or the device doesn't return the information. Do you have any other way to retrieve that information on your system ?

        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
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #17

          Hi,

          Either that or the device doesn't return the information. Do you have any other way to retrieve that information on your system ?

          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
          • yeckelY Offline
            yeckelY Offline
            yeckel
            wrote on last edited by
            #18

            Well, v4l2 is returning:

            @$ v4l2-ctl --list-formats-ext
            ioctl: VIDIOC_ENUM_FMT
            Index : 0
            Type : Video Capture
            Pixel Format: 'YUYV'
            Name : YUV 4:2:2 (YUYV)
            Size: Discrete 640x480
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Size: Discrete 640x360
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            ...@

            The structure GstCaps *supportedCaps from previous code, has 0 length, but it's valid but @gst_caps_is_any(supportedCaps) == true@

            1 Reply Last reply
            0
            • yeckelY Offline
              yeckelY Offline
              yeckel
              wrote on last edited by
              #19

              Well, v4l2 is returning:

              @$ v4l2-ctl --list-formats-ext
              ioctl: VIDIOC_ENUM_FMT
              Index : 0
              Type : Video Capture
              Pixel Format: 'YUYV'
              Name : YUV 4:2:2 (YUYV)
              Size: Discrete 640x480
              Interval: Discrete 0.033s (30.000 fps)
              Interval: Discrete 0.067s (15.000 fps)
              Size: Discrete 640x360
              Interval: Discrete 0.033s (30.000 fps)
              Interval: Discrete 0.067s (15.000 fps)
              ...@

              The structure GstCaps *supportedCaps from previous code, has 0 length, but it's valid but @gst_caps_is_any(supportedCaps) == true@

              1 Reply Last reply
              0
              • yeckelY Offline
                yeckelY Offline
                yeckel
                wrote on last edited by
                #20

                I've digged deeper into GStreamer plugin gstcamerabin2.c, here it's querying for pad capabilities @pad = gst_element_get_static_pad (element, padname);

                caps = gst_pad_query_caps (pad, NULL);@ and then the query failing "GstPAd.html":http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html

                ...gst_pad_query_caps returns all possible caps a pad can operate with, using the pad's CAPS query function, If the query fails, this function will return filter , if not NULL, otherwise ANY.

                And this ANY is what's returned into QT and then returned as empty QList. I thing we should use another gstreamer input element aka v4l2src which is stable. Camerabin2 is marked as unstable and under development.

                1 Reply Last reply
                0
                • yeckelY Offline
                  yeckelY Offline
                  yeckel
                  wrote on last edited by
                  #21

                  I've digged deeper into GStreamer plugin gstcamerabin2.c, here it's querying for pad capabilities @pad = gst_element_get_static_pad (element, padname);

                  caps = gst_pad_query_caps (pad, NULL);@ and then the query failing "GstPAd.html":http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html

                  ...gst_pad_query_caps returns all possible caps a pad can operate with, using the pad's CAPS query function, If the query fails, this function will return filter , if not NULL, otherwise ANY.

                  And this ANY is what's returned into QT and then returned as empty QList. I thing we should use another gstreamer input element aka v4l2src which is stable. Camerabin2 is marked as unstable and under development.

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

                    Thanks for sharing your findings !

                    Do you have that with gstreamer0.1 ? Did you check gstreamer 1 ?

                    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
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #23

                      Thanks for sharing your findings !

                      Do you have that with gstreamer0.1 ? Did you check gstreamer 1 ?

                      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

                      • Login

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