After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 522701 - add a decoder (decodebin) in the video pipe
add a decoder (decodebin) in the video pipe
Status: RESOLVED INCOMPLETE
Product: cheese
Classification: Applications
Component: general
git master
Other All
: Normal enhancement
: ---
Assigned To: Cheese Maintainer(s)
Cheese Maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2008-03-16 02:59 UTC by i.nousias
Modified: 2008-08-07 10:18 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Adds a decodebin in the video pipeline (2.95 KB, patch)
2008-03-16 03:03 UTC, i.nousias
none Details | Review

Description i.nousias 2008-03-16 02:59:39 UTC
In order to support webcams that output encoded stream, such as MJPEG, the video pipeline should include a decoder
Comment 1 i.nousias 2008-03-16 03:03:58 UTC
Created attachment 107369 [details] [review]
Adds a decodebin in the video pipeline

Adds a 'decodebin' into the video pipeline and the appropriate call-back for linking the dynamically instantiated pads.

WARNING: May introduce a regression in video-recording. Exiting video recording results in the video live-feed to be lost. The application needs to be restarted.
Comment 2 daniel g. siegel 2008-03-16 20:55:23 UTC
i just tried it very quickly, without having a look at the source and it seems to break even the camera output on photo mode.

if i can find some minutes i will have a look into it
Comment 3 i.nousias 2008-03-19 01:35:21 UTC
hmm. I've tested it with a YUY2 producing camera and it works. But I'm not really surprised that it breaks. I don't yet fully understand how all this works.

One thing I've noticed is that the YUY2 webcam makes cheese consume too much CPU (which is odd, since the MJPEG one doesn't). A pipe like this: "v4l2src ! video/x-raw-yuv,width=640,height=480,framerate=30/1 ! decodebin ! gconfvideosink", using gst-launch, does not consume CPU, but in cheese it does about 50%. Both are using Xv. I'm not sure what happens there. And it's not related to my changes. The vanilla cheese exhibits the same problem.

On a different note, I've found a way to avoid loosing the live feed after stopping recording, but it's not a good one. What seems to happen is that the EOS signal is lost somewhere in the pipe and does not appear in the pipeline's bus. What does appear is a CLOCK_LOST. So I've used that to switch the sink and change the state to 'play' again. I need to see why the EOS is lost.

Unfortunately I've limited time to investigate all this, but I'll try.


Comment 4 daniel g. siegel 2008-03-31 16:51:29 UTC
any news?
Comment 5 i.nousias 2008-04-01 14:58:31 UTC
sorry Daniel. I didn't have any spare time to look into this (writing your thesis, whilst having a full-time job does that do you;))

did you check the code? Do you see anything that may suggest why the photo output is broken in your case? What format does your camera produce? Need to find the common denominator.

thanks for showing interest in this.
Comment 6 daniel g. siegel 2008-06-18 21:11:24 UTC
is this patch still relevant? ;) i think its a bit outdated, but i would love to get this into svn. do you mind enhancing your patch and reposting it here? 
Comment 7 i.nousias 2008-06-22 15:15:51 UTC
Hello Daniel

I don't have access to a YUV producing webcam anymore. I only have my MJPEG webcam, thus can't test if it breaks YUV ones (which the above patch seems to do so).

Comment 8 daniel g. siegel 2008-08-07 10:18:35 UTC
Closing this bug report as no further information has been provided. Please
feel free to reopen this bug if you can provide the information asked for.
Thanks!