Re: cheese three zero



Am 25.10.2009 09:05, schrieb Filippo Argiolas:
> On Tue, Oct 20, 2009 at 10:55 PM, daniel g. siegel <dgsiegel gnome org> wrote:
>> hello cheese developers, contributors, users and ice cream eaters!
>>
>> gnome 3.0 is coming nearer and as cheese in its current state isnt that
>> customizable or enhancable, we had the thought of doing a cheese three
>> zero, which should get our lives easier.
>>
>> the basic idea is to split cheese into 2 parts:
>>
>> a) libcheese, which does all the webcam handling, the gstreamer
> 
> Not too much to say, obviously I agree (I coauthored the idea, how I
> couldn't :P).
> 
> Here are some random things that I'd like to address in this designing phase:
> - what's our position about GstCameraBin? I expressed some concerns in
> the past about it being too high level for our purposes leaving you
> little chance to customize the prebuilt pipeline, I don't know if
> they've been addressed now but I don't believe so. Anyway, most of my
> positions were based on my experiments with a new clutter based
> interface, please look at the linked thread[1], maybe you (other
> developers) have different concerns/expectations and like camerabin
> instead.
> 
> - how does the backend interact with the UI?
> I'd say everything has to be done async, say the UI requests a photo,
> the backend does everything to take it and the signals it (or we pass
> a callback in the set_photo method). Same for video recording.

As camerabin is just another gstreamer plugin, all the extra api are action
signals (which you would wrap into method calls). Everything is async. So you
kick taking an image and you'll get a signal, when the image has been written to
disk.

> 
> - how does the frontend take the video preview? will we expose a
> "give-me-a-window" signal when gstxoverlay wants it?

camerabin sends preview images (if requested) to the gst-bus, for both
still-images and video. preview image can be specified by caps (size and
colorspace).

> 
> - do we have any information about possible future users of this
> library? What do empathy developers think? Will they use it? Do they
> have any particular request? Designing a webcam library for us is one
> thing, designing it to be as general purpose as to be used in a video
> chat program is quite different IMHO. E.g. a "collaboran"[2] already
> said that camerabin isn't probably suited for empathy, maybe our
> libcheese won't fit it as well. Knowing it from the start would be
> good.
> 
> - can we converge about the kind of api we would want *before* writing
> the code? it'll probably change during the actual coding work but
> would be great to have something to aim to instead of blindly copying
> the current code and refactor it later. We have a chance to get this
> right right from the start, we can get rid of everything we didn't
> like in CheeseWebcam and make it nice and more usable.
> I'll try to write down some idea in the wiki as soon as possible.
> 
> There are then a couple of things I always wanted to have in
> CheeseWebcam but never had the time to implement, there is no strict
> need to address these now, but would be probably more difficult to
> implement them later:

> - PLAYING pipeline relinking via pad blocking. I.e. you can
> temporarily block an element pad while the pipeline is PLAYING and
> unlink/relink downstream elements while data flow is blocked[3]. This
> would allow switching effects without stopping the pipeline.

> - Live effects preview. See my clutter experiments [4]. The idea is
> that we can have several windows each displaying a tee branch of the
> pipeline with a different effect applied. Then those windows can be
> turned into several clutter actors or into several GtkDrawingAreas to
> display live previews of all the effects. The cpu load can be highly
> reduced downscaling and downrating the previews. I'm able to display
> up to 9 ximagesink windows (640x480 downscaled to 160x120) each with a
> different effectv effect applied with almost no speed loss on a n270
> atom netbook.

this is indeed a neat idea. Unfortunately also kind of special. On camerabin I
would recompose the previews with videomixer.

Stefan

> 
> 
> Ciao,
> Filippo
> 
> 
> 1. http://mail.gnome.org/archives/cheese-list/2009-May/msg00019.html
> 2. http://www.nabble.com/Camera-pipelines-td26032525.html
> 3. http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-block.txt
> 4. http://cgit.freedesktop.org/~fargiolas/cheese-stage/
> _______________________________________________
> Cheese-list mailing list
> Cheese-list gnome org
> http://mail.gnome.org/mailman/listinfo/cheese-list



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]