Bug 261475

Summary: udevvideo.cpp - does not return the appropriate device file for video4linux devices. makes Kopete video chat impossible
Product: [Frameworks and Libraries] solid Reporter: cristi.posoiu
Component: libsolid-udevAssignee: Alex Fiestas <afiestas>
Status: RESOLVED FIXED    
Severity: normal CC: ereslibre
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Mandriva RPMs   
OS: Linux   
Latest Commit: Version Fixed In:

Description cristi.posoiu 2010-12-28 19:33:43 UTC
Version:           unspecified (using KDE 4.5.90) 
OS:                Linux

after an upgrade to 4.6RC1 (mandriva Cooker, 64 bit), Kopete doesn't show anymore any video device in the configuration box. I have an integrated webcam on my laptop, seen on the usb bus (a Syntek).

After checking code, for solid backends udev and hal, I think that udev's solid/backends/udev/udevvideo.cpp' last change is the culprit.
It was changed to not used DEVNAME udev property, but m_device->devicePath() which is something "virtual" - i.e. no actual device path (like in /dev/...)

I think that should be reverted back to using DEVNAME property.

Output from udevadm related to the video device:
P: /devices/virtual/video4linux/video0
N: video0
S: char/81:0
E: UDEV_LOG=3
E: DEVPATH=/devices/virtual/video4linux/video0
E: MAJOR=81
E: MINOR=0
E: DEVNAME=/dev/video0
E: SUBSYSTEM=video4linux
E: ID_V4L_VERSION=2
E: ID_V4L_PRODUCT=Syntek USB Video Camera
E: ID_V4L_CAPABILITIES=:capture:
E: DEVLINKS=/dev/char/81:0
E: TAGS=:udev-acl:

messages from Kopete, in .xessions-errors - see around "V4L device path":

kopete(6596) Kopete::AV::VideoDevicePool::self: Generated new instance.
kopete(6596) Kopete::AV::VideoDevicePool::registerDevice: called, UDI is:
    "/org/kde/solid/udev/sys/devices/virtual/video4linux/video0"
kopete(6596) Kopete::AV::VideoDevicePool::registerDevice: vendor: "KDE" , product: "Devices"
kopete(6596) Kopete::AV::VideoDevicePool::registerDevice: V4L device path is "/org/kde/solid/udev/sys/devices/virtual/video4linux/video0"
kopete(6596) Kopete::AV::VideoDevice::open: called
kopete(6596) Kopete::AV::VideoDevice::open: Unable to open file  "/org/kde/solid/udev/sys/devices/virtual/video4linux/video0" Err:  2
kopete(6596) Kopete::AV::VideoDevicePool::registerDevice: Device could not be opened.
kopete(6596) Kopete::AV::VideoDevice::close: called.
kopete(6596) Kopete::AV::VideoDevicePool::open: called with device -1
kopete(6596) Kopete::AV::VideoDevicePool::open: Device not found.


Reproducible: Always

Steps to Reproduce:
just try to Configure kopete and you won't see any video device.
Comment 1 Alex Fiestas 2010-12-29 08:43:43 UTC
I agree with you that we should return DEVNAME, but let me ask luka before revevrting the commit.

Thanks for the bug!
Comment 2 Lukáš Tinkl 2010-12-29 16:51:35 UTC
SVN commit 1210116 by lukas:

return the physical device as the handle, fixes: 

BUG: 261475


 M  +1 -1      udevvideo.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1210116