GNOME Bugzilla – Bug 620637
After video recording, record/take photo button becomes disabled
Last modified: 2010-08-25 10:55:51 UTC
Forwarded lp bug: https://bugs.launchpad.net/ubuntu/+source/cheese/+bug/587853 After recording a video , the Start Recording/ Take a Photo button becomes insensitive[disabled] Steps to reproduce: 1: Record a video 2: Stop recording Now notice the record/take photo button is not available for recording/ taking photos again. The video recording has no problems though. Toggling the photo/video/multiple photos buttons doesnt not help. The buttons just remain disabled *** Workaround: *** 1 - Click the "Effects" button and return back to the video. [no need to select any effect, Simple toggling of the effect button] : Now the option to record/take photos is available. 2 - Restart cheese Every time a video recording is done , the same workaround has to be repeated. No such problems with taking photos. Output of: GST_DEBUG=*cheese*:3 cheese -v 2>&1 0:00:01.022329753 [336m24545[00m 0x879fd30 [32;01mINFO [00m [00mcheese-device-monitor cheese-camera-device-monitor.c:231:cheese_camera_device_monitor_coldplug:[00m Probing devices with udev... 0:00:01.023609030 [336m24545[00m 0x879fd30 [32;01mINFO [00m [00mcheese-device-monitor cheese-camera-device-monitor.c:121:cheese_camera_device_monitor_added:[00m Checking udev device '/devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8:1.0/video4linux/video0' 0:00:01.023971854 [336m24545[00m 0x879fd30 [32;01mINFO [00m [00mcheese-device-monitor cheese-camera-device-monitor.c:138:cheese_camera_device_monitor_added:[00m Found device 046d:046d, getting capabilities... 0:00:01.108087720 [336m24545[00m 0x879fd30 [32;01mINFO [00m [00mcheese-camera-device cheese-camera-device.c:184:cheese_camera_device_add_format:[00m 640x480 0:00:01.108465629 [336m24545[00m 0x879fd30 [32;01mINFO [00m [00mcheese-camera-device cheese-camera-device.c:184:cheese_camera_device_add_format:[00m 320x240 0:00:03.145476996 [336m24545[00m 0x879fd30 [32;01mINFO [00m [00mcheese-camera-device cheese-camera-device.c:609:cheese_camera_device_get_caps_for_format:[00m Getting caps for 320x240 0:00:03.145577217 [336m24545[00m 0x879fd30 [32;01mINFO [00m [00mcheese-camera-device cheese-camera-device.c:632:cheese_camera_device_get_caps_for_format:[00m Got video/x-raw-yuv, width=(int)320, height=(int)240, format=(fourcc)YVYU, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-rgb, width=(int)320, height=(int)240, bpp=(int)24, depth=(int)24, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-rgb, width=(int)320, height=(int)240, bpp=(int)24, depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, endianness=(int)4321, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-yuv, width=(int)320, height=(int)240, format=(fourcc)YV12, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-yuv, width=(int)320, height=(int)240, format=(fourcc)I420, framerate=(fraction)[ 0/1, 30/1 ] 0:00:42.061270686 [336m24545[00m 0x860f078 [32;01mINFO [00m [00mcheese-camera-device cheese-camera-device.c:609:cheese_camera_device_get_caps_for_format:[00m Getting caps for 320x240 0:00:42.061358965 [336m24545[00m 0x860f078 [32;01mINFO [00m [00mcheese-camera-device cheese-camera-device.c:632:cheese_camera_device_get_caps_for_format:[00m Got video/x-raw-yuv, width=(int)320, height=(int)240, format=(fourcc)YVYU, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-rgb, width=(int)320, height=(int)240, bpp=(int)24, depth=(int)24, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-rgb, width=(int)320, height=(int)240, bpp=(int)24, depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, endianness=(int)4321, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-yuv, width=(int)320, height=(int)240, format=(fourcc)YV12, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-yuv, width=(int)320, height=(int)240, format=(fourcc)I420, framerate=(fraction)[ 0/1, 30/1 ] (cheese:24545): GLib-GObject-CRITICAL **: g_signal_emit_valist: assertion `signal_id > 0' failed 0:01:06.509692665 [336m24545[00m 0x860f078 [32;01mINFO [00m [00mcheese-camera-device cheese-camera-device.c:609:cheese_camera_device_get_caps_for_format:[00m Getting caps for 320x240 0:01:06.510349100 [336m24545[00m 0x860f078 [32;01mINFO [00m [00mcheese-camera-device cheese-camera-device.c:632:cheese_camera_device_get_caps_for_format:[00m Got video/x-raw-yuv, width=(int)320, height=(int)240, format=(fourcc)YVYU, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-rgb, width=(int)320, height=(int)240, bpp=(int)24, depth=(int)24, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-rgb, width=(int)320, height=(int)240, bpp=(int)24, depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, endianness=(int)4321, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-yuv, width=(int)320, height=(int)240, format=(fourcc)YV12, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-yuv, width=(int)320, height=(int)240, format=(fourcc)I420, framerate=(fraction)[ 0/1, 30/1 ] 0:01:22.901618075 [336m24545[00m 0x860f078 [32;01mINFO [00m [00mcheese-camera-device cheese-camera-device.c:609:cheese_camera_device_get_caps_for_format:[00m Getting caps for 320x240 0:01:22.901712849 [336m24545[00m 0x860f078 [32;01mINFO [00m [00mcheese-camera-device cheese-camera-device.c:632:cheese_camera_device_get_caps_for_format:[00m Got video/x-raw-yuv, width=(int)320, height=(int)240, format=(fourcc)YVYU, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-rgb, width=(int)320, height=(int)240, bpp=(int)24, depth=(int)24, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-rgb, width=(int)320, height=(int)240, bpp=(int)24, depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, endianness=(int)4321, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-yuv, width=(int)320, height=(int)240, format=(fourcc)YV12, framerate=(fraction)[ 0/1, 30/1 ]; video/x-raw-yuv, width=(int)320, height=(int)240, format=(fourcc)I420, framerate=(fraction)[ 0/1, 30/1 ] Cheese 2.30.1 lsusb : http://launchpadlibrarian.net/49429952/Lsusb.txt lspci : http://launchpadlibrarian.net/49429951/Lspci.txt
I got this too. I found that I could still use the Spacebar to capture video/pictures though, even when the button was disabled.
Created attachment 167028 [details] [review] fix take button insensitive after recording I have the same issue on my machine, I made a patch to set take picture button sensitive as true after stop recording, if this problem is bother you, you can try this patch, at least in my machine working fine, but the best solution is decided by the maintainer, maybe the next version fixes this problem.
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.
Reopening, it's a bug with cheese-camera VIDEO_SAVED signal emission from a gstreamer thread. Master currently just doesn't care about signals, I hardly would call that a "fix".
The following fix has been pushed: 908bc79 camera: emit video-saved signal by name in gst threads
Created attachment 168718 [details] [review] camera: emit video-saved signal by name in gst threads Static camera_signals array is not initizialized in the gstreamer thread so we get a critical assertion failed (signal_id > 0) if we emit by id. This should workaround the issue.