Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1163698
Summary: | Webcam not working in kamoso | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Martin Kho <rh-bugzilla> | ||||||||||||
Component: | kamoso | Assignee: | nucleo <alekcejk> | ||||||||||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||||||
Severity: | unspecified | Docs Contact: | |||||||||||||
Priority: | unspecified | ||||||||||||||
Version: | 21 | CC: | alekcejk, awilliam, gansalmon, itamar, jonathan, jreznik, kamikazow, kevin, kparal, ltinkl, madhu.chinakonda, mchehab, mustafa1024m, orion, rdieter, robatino, smparrish, sudhir, tdfischer, than | ||||||||||||
Target Milestone: | --- | ||||||||||||||
Target Release: | --- | ||||||||||||||
Hardware: | Unspecified | ||||||||||||||
OS: | Unspecified | ||||||||||||||
Whiteboard: | AcceptedBlocker | ||||||||||||||
Fixed In Version: | kamoso-2.0.2-21.20140902git.fc21 | Doc Type: | Bug Fix | ||||||||||||
Doc Text: | Story Points: | --- | |||||||||||||
Clone Of: | Environment: | ||||||||||||||
Last Closed: | 2014-11-25 22:37:08 UTC | Type: | Bug | ||||||||||||
Regression: | --- | Mount Type: | --- | ||||||||||||
Documentation: | --- | CRM: | |||||||||||||
Verified Versions: | Category: | --- | |||||||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||||||
Embargoed: | |||||||||||||||
Bug Depends On: | |||||||||||||||
Bug Blocks: | 1043129 | ||||||||||||||
Attachments: |
|
Description
Martin Kho
2014-11-13 10:13:50 UTC
Uh, Kamoso doesn't even use Phonon, it uses QtGStreamer. So I think that either your issues with Kamoso are entirely unrelated to the ones with Phonon, or the issue must be lower in the stack (GStreamer or even kernel). Hi Kevin, I don't know. The only thing I can see is: ldd in Fedora 20 gives: ... libphonon.so.4 => /lib64/libphonon.so.4 ... libQtGStreamer-0.10.so.0 => /lib64/libQtGStreamer-0.10.so.0 libQtGStreamerUi-0.10.so.0 => /lib64/libQtGStreamerUi-0.10.so.0 ... ldd in Fedora 21 gives: ... libphonon.so.4 => /lib64/libphonon.so.4 ... libQtGStreamer-1.0.so.0 => /lib64/libQtGStreamer-1.0.so.0 libQtGStreamerUi-1.0.so.0 => /lib64/libQtGStreamerUi-1.0.so.0 ... dmesg in Fedora 21: ... [ 11.277615] usb 1-1.1: set resolution quirk: cval->res = 384 [ 11.278211] usbcore: registered new interface driver snd-usb-audio [ 11.278293] uvcvideo: Found UVC 1.00 device <unnamed> (046d:0825) [ 11.293251] input: UVC Camera (046d:0825) as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input13 [ 11.293406] usbcore: registered new interface driver uvcvideo [ 11.293407] USB Video Class driver (1.1.1) May be it's the update from gstreamer version 0.10 to 1.0? Most likely, yes. Both QtGStreamer and Kamoso required changes for GStreamer 1, they might not be bug-free yet. The Kamoso port was tested by its developer, but probably not by more people. *** Bug 1164869 has been marked as a duplicate of this bug. *** It's kernel 3.17's fault, not GStreamer's. This problem is not in kernel, it was in kernels before 3.17 after moving to gstreamer1. There may be several root causes. For Markus (as discussed on irc today), things work as expected with 3.16 kernels, but not with 3.17 ones. Hi, Huh? Did Fedora 21 ever had a kernel 3.16.x? My issue is not a kernel issue: dmesg, at least, tells me so. What about udev? Martin Kho Btw. in Fedora 20 (had both kernel 3.16.x and 3.17.x) I don't have an issue with my webcam. (In reply to Martin Kho from comment #8) > Btw. in Fedora 20 (had both kernel 3.16.x and 3.17.x) I don't have an issue > with my webcam. I tried (under F20) launching Kamoso – same experience as reported. Then reboot with 3.16 kernel – /dev/video0 is back again and Kamoso works. Markus - perhaps you should file a separate bug for your kernel issue? I seem to have a similar experience as Martin - a /dev/video0 device, but no recording in kamoso. Does gstreamer have any tools for debugging devices/ gst-inspect-1.0 v4l2src appears to show the webcam: device : Device location flags: readable, writable String. Default: "/dev/video0" device-name : Name of the device flags: readable String. Default: "HD WebCam" $ GST_DEBUG=v4l2src:5 kamoso 0:00:00.225019461 4864 0x1ac9c50 DEBUG v4l2src gstv4l2src.c:306:gst_v4l2src_negotiate:<v4l2src> caps of src: video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)10/1; video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YUY2, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YUY2, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YUY2, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; image/jpeg, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 15/1 }; image/jpeg, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 15/1 }; image/jpeg, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 15/1 }; image/jpeg, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 15/1 }; image/jpeg, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 15/1 }; image/jpeg, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 15/1 }; image/jpeg, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)I420, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)I420, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)I420, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)I420, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)I420, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YV12, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YV12, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YV12, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YV12, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YV12, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YV12, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)BGR, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)BGR, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)BGR, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)BGR, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)BGR, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)BGR, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)RGB, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)RGB, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)RGB, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)RGB, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)RGB, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)RGB, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 } 0:00:00.225558293 4864 0x1ac9c50 DEBUG v4l2src gstv4l2src.c:307:gst_v4l2src_negotiate:<v4l2src> thiscaps: video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)10/1; video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YUY2, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YUY2, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YUY2, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; image/jpeg, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 15/1 }; image/jpeg, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 15/1 }; image/jpeg, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 15/1 }; image/jpeg, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 15/1 }; image/jpeg, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 15/1 }; image/jpeg, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 15/1 }; image/jpeg, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)I420, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)I420, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)I420, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)I420, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)I420, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YV12, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YV12, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YV12, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YV12, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YV12, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)YV12, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)BGR, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)BGR, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)BGR, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)BGR, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)BGR, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)BGR, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)RGB, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)RGB, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)RGB, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)RGB, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)RGB, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 }; video/x-raw, format=(string)RGB, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 30/1, 15/1 } 0:00:00.227155483 4864 0x1ac9c50 DEBUG v4l2src gstv4l2src.c:315:gst_v4l2src_negotiate:<v4l2src> caps of peer: EMPTY 0:00:00.227198867 4864 0x1ac9c50 DEBUG v4l2src gstv4l2src.c:316:gst_v4l2src_negotiate:<v4l2src> peercaps: EMPTY 0:00:00.227223329 4864 0x1ac9c50 DEBUG v4l2src gstv4l2src.c:339:gst_v4l2src_negotiate:<v4l2src> intersect: (NULL) 0:00:00.227246961 4864 0x1ac9c50 DEBUG v4l2src gstv4l2src.c:340:gst_v4l2src_negotiate:<v4l2src> icaps: (NULL) $ GST_DEBUG=3 kamoso 0:00:00.212953234 5624 0x1b33450 WARN basesrc gstbasesrc.c:2933:gst_base_src_loop:<v4l2src> error: Internal data flow error. 0:00:00.213016601 5624 0x1b33450 WARN basesrc gstbasesrc.c:2933:gst_base_src_loop:<v4l2src> error: streaming task paused, reason not-negotiated (-4) 0:00:06.409319482 5637 0x2221c00 WARN basesrc gstbasesrc.c:3470:gst_base_src_start_complete:<source> pad not activated yet 0:00:06.410332523 5637 0x2221c00 WARN basesrc gstbasesrc.c:3470:gst_base_src_start_complete:<source> pad not activated yet 0:00:07.492531740 5637 0x7eff70002800 FIXME bin gstbin.c:4023:gst_bin_query: implement duration caching in GstBin again Hi, I did some further digging into kamoso and gstreamer and found the following: pre: enable kamoso debug info (kdebugdialog) a) Run: $ GST_DEBUG=4 kamoso Output: kamoso(2781) WebcamWidget::playFile: ================ PIPELINE ================ kamoso(2781) WebcamWidget::playFile: "v4l2src name=v4l2src device=/dev/video0 ! videoconvert ! video/x-raw, format=RGB, width=640, height=480, framerate=15/1; video/x-raw, format=RGB, width=640, height=480, framerate=24/1; video/x-raw, format=RGB, width=640, height=480, framerate=30/1; video/x-raw, format=RGB, width=352, height=288, framerate=15/1 ! gamma name=gamma ! videobalance name=videoBalance ! tee name=duplicate ! queue ! videoscale ! autovideosink name=videosink duplicate. ! queue name=linkQueue ! videoconvert ! fakesink name=fakesink" ... 0:00:00.973176733 2781 0x2771f20 WARN basesrc gstbasesrc.c:2933:gst_base_src_loop:<v4l2src> error: Internal data flow error. 0:00:00.973187187 2781 0x2771f20 WARN basesrc gstbasesrc.c:2933:gst_base_src_loop:<v4l2src> error: streaming task paused, reason not-negotiated (-4) 0:00:00.973211900 2781 0x2771f20 INFO GST_ERROR_SYSTEM gstelement.c:1835:gst_element_message_full:<v4l2src> posting message: Internal data flow error. 0:00:00.973276715 2781 0x2771f20 INFO GST_ERROR_SYSTEM gstelement.c:1858:gst_element_message_full:<v4l2src> posted error message: Internal data flow error. ... kamoso(2781) WebcamWidget::onBusMessage: "Internal data flow error." b) Then I Launched the gst-string at the command prompt: $ gst-launch-1.0 v4l2src name=v4l2src device=/dev/video0 ! videoconvert ! video/x-raw, format=RGB, width=640, height=480, framerate=15/1\; video/x-raw, format=RGB, width=640, height=480, framerate=24/1\; video/x-raw, format=RGB, width=640, height=480, framerate=30/1\; video/x-raw, format=RGB, width=352, height=288, framerate=15/1 ! gamma name=gamma ! videobalance name=videoBalance ! tee name=duplicate ! queue ! videoscale ! autovideosink name=videosink duplicate. ! queue name=linkQueue ! videoconvert ! fakesink name=fakesink Output: ... ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src: Internal data flow error. Additional debug info: gstbasesrc.c(2933): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src: streaming task paused, reason not-negotiated (-4) c) In the kamoso source the video format parameter is not RGB but I420. So I changed all format=RGB to format-I420: $ gst-launch-1.0 v4l2src name=v4l2src device=/dev/video0 ! videoconvert ! video/x-raw, format=I420, width=640, height=480, framerate=15/1\; video/x-raw, format=I420, width=640, height=480, framerate=24/1\; video/x-raw, format=I420, width=640, height=480, framerate=30/1\; video/x-raw, format=I420, width=352, height=288, framerate=15/1 ! gamma name=gamma ! videobalance name=videoBalance ! tee name=duplicate ! queue ! videoscale ! autovideosink name=videosink duplicate. ! queue name=linkQueue ! videoconvert ! fakesink name=fakesink Output: Hurray, my webcam works! WIP: Trying to find where I420 gets changed into RGB. HTH a little, Martin Kho Hi, The format parameter RGB comes from kamoso. I was looking at the very latest kamoso sources[1] were this was changed to I420. Aleix Pol made some changes to the Port to gstreamer1 by Andreas Cord-Landwehr. With these changes my webcam is working again. Martin Kho [1] http://quickgit.kde.org/?p=kamoso.git Hi, The patches that Aleix Pol submitted are just a first start to get kamoso working with gstreamer1. There are some freezes and video recording isn't working. At least, there is progress to get kamoso working again and thats nice! Martin Kho kamoso-2.0.2-21.20140902git.fc21 has been submitted as an update for Fedora 21. https://admin.fedoraproject.org/updates/kamoso-2.0.2-21.20140902git.fc21 (In reply to Fedora Update System from comment #17) > kamoso-2.0.2-21.20140902git.fc21 has been submitted as an update for Fedora > 21. > https://admin.fedoraproject.org/updates/kamoso-2.0.2-21.20140902git.fc21 This fixed the problem for me. Proposed as a Freeze Exception for 21-final by Fedora user rdieter using the blocker tracking app because: kamoso application (included in kde spin) initial port to use gstreamer1 wasn't great and didn't work well for a large number of users/webcam's. This latest build works much better, and would like this included on the final spin image. This should even be blocker, at it's basic app functionality and it is installed by default in KDE, as "All applications that can be launched using the standard graphical mechanism of a release-blocking desktop after a default installation of that desktop must start successfully and withstand a basic functionality test." Hi, In my latest comment (#16) I talked about freezes that I still experienced and not working videorecording. I digged a little deeper into the kamoso source code and found a problem with the code behind the "Take a video" button at the left side. Kamoso freezes - at least for me - when I press this button, and press this butten again or one of the other two buttens (both called "Take pictures"). After the second button press kamoso called gstreamer to put the webcam in state playing, although it is already in this state. It makes gstreamer very unhappy. The "fix/workaround" for me is: diff -uNr kamoso-2.0.2.orig/src/kamoso.cpp kamoso-2.0.2/src/kamoso.cpp --- kamoso-2.0.2.orig/src/kamoso.cpp 2014-11-22 22:18:36.831198607 +0100 +++ kamoso-2.0.2/src/kamoso.cpp 2014-11-22 22:21:24.169097285 +0100 @@ -232,7 +232,9 @@ } m_webcam->stopRecording(finalPath); - m_webcam->playFile(deviceManager->playingDevice()); + // MK: commented out the following line, because it + // freezes kamoso. + // m_webcam->playFile(deviceManager->playingDevice()); } void Kamoso::refreshDeviceList() This "fix/workaround" makes kamoso working as one would expect. I didn't have any freezes and everything works. Caution!: I have no idea what the possible side effects are if there are of this patch. HTH, Martin Kho Btw: patch uploaded as separate comment. Created attachment 960294 [details]
Patch to fix freezes
Hi, I did some more testing and my "fix/workaround" is not good. Please forget about it. Sorry for the noise. Martin Kho I have tried kamoso with T500 and my webcamera indeed doesn't work. It works with GNOME. F21 TC3. After I applied the kamoso update from comment 17, it started to work. Discussed at 2014-11-24 blocker review meeting: http://meetbot.fedoraproject.org/fedora-blocker-review/2014-11-24/f21-blocker-review.2014-11-24-17.01.log.txt . Accepted as a blocker per c#20, "All applications that can be launched using the standard graphical mechanism of a release-blocking desktop after a default installation of that desktop must start successfully and withstand a basic functionality test." - https://fedoraproject.org/wiki/Fedora_21_Final_Release_Criteria#Default_application_functionality . kamoso-2.0.2-21.20140902git.fc21 has been pushed to the Fedora 21 stable repository. If problems still persist, please make note of it in this bug report. Camera is being recognized after the kamoso-2.0.2-21.20140902git.fc21 update but it gets stuck with a still picture time to time. The application doesn't get frozen but picture does. After clicking around the camera picture may or may not resume. Hi, Altouhg this report is officially closed, I hope that someone is interested to get the last issues solved. It took a while before I found out where the freezes came from. The long story short is that the framerate has to fixed. I created a new patch and did exclusive tests. Everything is - for me - now working, even more. What new is that, videos can now be recorded with and without sound. The patch is created against kamoso-2.0.2-21.20140902git.fc21. HTH Martin Kho Created attachment 962454 [details]
Patch2: Real fix for freezes
Martin, First of all, thanks for your work on this! That said, ideally you'd open separate reports for your issue(s) (bonus for using bugs.kde.org and/or reviewboard.kde.org to get the code upstream asap) Looking at the patch, upstream will likely not accept it as-is, it contains added comments (though *mostly* good), unrelated cleanups, and translation changes. If you these into separate patches: * critical gst-only fixes * cleanup/polish fixes * (possibly) translatable string fixes, ie, anything changes to stuff inside i18n(...) then we'll have something that's more likely to be upstreamable. Hi Rex, As you asked me, I now have split up the patch in: 1. kamoso-2.0.2-gst-freeze.patch 2. kamoso-2.0.2-add-without-sound.patch 3. kamoso-2.0.2-cosmetics.patch Again, these can be applied to kamoso-2.0.2-21.20140902git.fc21. Thanks, Martin Kho Created attachment 962750 [details]
gst-freeze patch
Witout comment :-)
Created attachment 962751 [details]
Add nosound patch
Again without comment
Created attachment 962753 [details]
Cosmetisc patch
|