[gstreamer-bugs] [Bug 583640] New: [v4l2src] add support for better device detection with libudev

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Sat May 23 05:56:37 PDT 2009


If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=583640

  GStreamer | gst-plugins-good | Ver: git
           Summary: [v4l2src] add support for better device detection with
                    libudev
           Product: GStreamer
           Version: git
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: fargiolas at gnome.org
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: Unspecified
   GNOME milestone: Unspecified


Hi, as some of you may have read in my mail to gst-devel [1] I'm currently
looking for a HAL replacement to do device detection in Cheese.
I'd really like to remove all the hal stuff and the ioctls we use know in favor
of a pure gstreamer approach.

At the moment v4l2src property prober blindly scans /dev/ dir looking for video
devices. This patch adds support for a better device enumeration using libudev.

It also allows to query device-name and flags while the device is still closed
so I can do something like (pseudocode)

src = gst_element_factory_make ("v4lsrc");
list = probe_devices_with_property_probe (src);

for device in list {
  g_object_set (src, "device", device, NULL);
  g_object_get (src, "device-name", &device-name, NULL);
  g_print ("detected device %s (%s)\n", device-name, device);
  g_object_get (src, "device-name", &flags, NULL);
  if (flags & V4L2_CAP_CAPTURE) add_device_to_the_list (device)
}

This cannot be done at the moment since flags property can be queried only if
the device is opened (pipeline READY or PLAYING).

Libudev support is completely optional (--with-libudev argument) and code falls
back to current methods if it's disabled or if it fails.


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=583640.




More information about the Gstreamer-bugs mailing list