Bug 605549 - Video call fails with "resource unavailable"
Video call fails with "resource unavailable"
Status: RESOLVED FIXED
Product: empathy
Classification: Core
Component: VoIP
2.29.x
Other Linux
: Normal normal
: ---
Assigned To: empathy-maint
:
: 584829 (view as bug list)
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2009-12-27 15:16 UTC by Thomas Meire
Modified: 2011-08-29 10:12 UTC (History)
3 users (show)

See Also:
GNOME target: 2.30.x
GNOME version: ---


Attachments
log with GST_DEBUG=5 (1.77 KB, application/x-bzip)
2009-12-27 15:24 UTC, Thomas Meire
  Details
screenshot (190.68 KB, image/png)
2010-01-05 18:28 UTC, Jean-François Fortin Tam
  Details
http://git.collabora.co.uk/?p=user/cassidy/empathy;a=shortlog;h=refs/heads/no-video-preview-605549 (2.72 KB, patch)
2010-01-11 15:24 UTC, Guillaume Desmottes
reviewed Details | Diff | Review

Description Thomas Meire 2009-12-27 15:16:11 UTC
When trying to establisch a video call, empathy 2.29.4 fails with a message saying "resource busy". However, no other program is using the webcam. The webcam works fine with the command:

gst-launch-0.10 v4l2src ! video/x-raw-yuv,width=320,height=240 ! queue ! xvimagesink

When looking at the debug messages, it says: 

libv4l2: error setting pixformat: Device or resource busy

and:

Element error: Device '/dev/video0' cannot capture at 320x240 -- gstv4l2object.c(1854): gst_v4l2_object_set_format (): /GstPipeline:-Pipeline0/EmpathyGstVideoSrc:empathygstvideosrc0/GstGConfVideoSrc:gconfvideosrc0/GstBin:bin3/GstV4l2Src:v4l2src0:
Call to S_FMT failed for RGB3 @ 320x240: Device or resource busy

Attached are the log and errorlog, with GST_DEBUG=5 as requested on irc. The above messages can be found around line 135217 in the errorlog.
Comment 1 Thomas Meire 2009-12-27 15:24:20 UTC
Created attachment 150457 [details]
log with GST_DEBUG=5

The stderr log is too big to attach. It can be found at http://zeus.ugent.be/~blackskad/empathy.27122009.stderr.bz2
Comment 2 Thomas Meire 2009-12-29 14:38:44 UTC
The source of this bug seems to be related to the refactoring of the video preview in empathy_call_window.c I don't know the codebase well enough, but i think some thread wants to set the webcam capabilities, while another thread is reading from it.

Commenting out the calls to display_video_preview on lines 1240 and 2377 of empathy_call_window, allows me to see my contacts stream and enable the local video preview, but no video is send.

(lines are against tag EMPATHY_2_29_4)
Comment 3 Thomas Meire 2010-01-01 13:13:25 UTC
The v4l2 error first occurred after commit 4db67c186241cca03b2f4002ac592b4d86601eb8 ("Enable 'send video' buttons and display the preview if call has 'initial video'")
Comment 4 Jean-François Fortin Tam 2010-01-05 18:28:46 UTC
Created attachment 150853 [details]
screenshot

This bug affects me too. Cheese (and earlier versions of empathy) don't have problems with my webcam, but now I get a nice error message... twice!
Comment 5 Guillaume Desmottes 2010-01-06 11:11:13 UTC
*** Bug 584829 has been marked as a duplicate of this bug. ***
Comment 6 Guillaume Desmottes 2010-01-06 11:11:43 UTC
Seems to be a regression. Should be fixed in 2.30.
Comment 7 Guillaume Desmottes 2010-01-11 15:24:39 UTC
Created attachment 151168 [details] [review]
http://git.collabora.co.uk/?p=user/cassidy/empathy;a=shortlog;h=refs/heads/no-video-preview-605549

 src/empathy-call-window.c |   36 +++++++++++++++++++++---------------
 1 files changed, 21 insertions(+), 15 deletions(-)
Comment 8 Guillaume Desmottes 2010-01-11 16:04:26 UTC
This problem has been fixed in the development version. The fix will be available in the next major software release. Thank you for your bug report.

Note You need to log in before you can comment on or make changes to this bug.