GNOME Bugzilla – Bug 685566
PropertyProbe for "device" property on the dshowvideosrc not implemented, while device-name is unusable
Last modified: 2013-02-24 20:52:00 UTC
According to the source I found here (http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/sys/dshowsrcwrapper/gstdshowvideosrc.c?h=BRANCH-RELEASE-0_10_19), the device property is not probable. I have also confirmed this in usage. I discovered this because I was writing an application to allow the user to select the correct web cam and the device-name for all Microsoft products (i.e. a Microsoft web cam) are in Unicode, using characters 302 and 256 which are obviously not in the utf-8 character set. Glib handles this gracefully, by converting the unusable characters to their decimal representation and adding them to the return string. However, afterwards you cannot use that string to set the device-name property if it contains unicode to utf-8 characters. So, I thought, ok, this is fine, I will just use the device-name property for displaying the reader friendly name and then use the device property to actually set the correct device. However, I can't even probe the device property to do that. Looking at the source, it appears that the function gst_dshowvideosrc_get_device_name_values (GstDshowVideoSrc * src) has all of the functionality neccesary to do this with relatively no effort. It simply also needs to grab the clsid of the device while enumerating the device to get the friendly-name. I do not mind editing this myself, but I don't know which branch to patch. Also, gst_dshowvideosrc_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) needs to handle the incoming characters that have been converted from Unicode to Utf-8 so that the device-name property can be set for Microsoft cameras.
You might want to look at the 0.10 branch in git, and not some random two and a half year old release. If at all, please make patches for that branch. Any patches should be rather unintrusive though, since 0.10 is technically feature-frozen. git master and GStreamer 1.0 are the new/current version (but the property probe functionality has been removed entirely there, with a replacement still pending, see bug #678402). So from my perspective this bug would basically be OBSOLETE, but if you have a small patch we might still put it in. Setting to NEEDINFO for patch.
Jonathan, ping
Resolving as OBSOLETE, since 0.10 is not maintained any longer, and the GstPropertyProbe interface was removed in 1.0. It will be replaced differently some day (see bug #678402).