Re: Cheese Architecture Redesign



Hello Hernan.

Thanks for the explanation. It definitely contains some ideas which we
can use to improve cheese. I agree with daniel that completely
changing cheese to this concept is a bit far fetched at the moment,
but if you have something let us know. I'm definitely interested in
playing around with it a bit

Jaap

On Thu, Jul 3, 2008 at 6:45 AM, Hernán Gatta <gattahernan gmail com> wrote:
> Hello Jaap:
>
> Have a look at the OpenOffice.Org Drawing attached to this E-Mail for an
> idea of where I'm going with the pipeline's design. Now, the idea is this:
>
> The core of the application only prepares the bare-bones GUI and loads
> Add-Ins, the core in itself does nothing else. The core defines Extension
> Points where Add-Ins can register their Extensions, be it a menu entry, a
> totally new feature (use your imagination) or an effect. I have not touched
> the GUI yet, so that is undefined, however I do intend to have a fully
> dynamic pipeline as is shown by the drawing attached to this E-Mail. Things
> like stream sources, audio effects, video effects and stream sinks are
> Add-Ins. If anybody in the Gstreamer community comes up with a new video
> effect, they simple create a new Cheese Add-In, drop the library in a
> designated directory and the new effect is readily available to Cheese.
> Add-Ins can define different specifialities of the Gstreamer plugin they
> wrap, so for instance, the "videobalance" plugin has a property called
> "Hue", so the Add-In would include that property and the core would pick it
> up along with minimum, maximum and default values as well as data type and
> present that to the user for modification should he choose to do so. This is
> all done through Mono.Addins and type reflection, there is nothing that
> needs to be invented. The power this provides is enormous, having several
> sources that are mixed and several simultaneous outputs that would allow to
> create a conferencing system in the future, for instance. We could plug into
> Telepathy to offer video capturing services to allow Instant Messaging and
> Multimedia Conferencing applications to pick up the audio and video that
> comes from Cheese they being modified by effects and then broadcast it to
> their clients as well.
>
> I have school things to finish and other things to figure out so my schedule
> is pretty packed up. I'm working on the inner system's design and I will let
> you know more technical details with time.
>
> Cheers,
>
> Hernan.
>
> On Sun, Jun 29, 2008 at 12:54 PM, Jaap A. Haitsma <jaap haitsma org> wrote:
>>
>> Hi Hernan,
>>
>> I completely agree that having a good object oriented design is very
>> important to keep code readable and maintanable. Having a general way
>> to write addins/plugins certainly helps here.
>>
>> I would like to know how your classes would look like in cheese if you
>> use addins. Which parts would you make an addin? At the moment I can
>> only think of having addins for exporting images and videos. However
>> that code is more or less trivial at the moment.
>>
>> I agree with Daniel and Patryk that the programming language does not
>> really matter to have a good object oriented design. You can write
>> exactly the same object oriented program is: GObject, C++, vala, java,
>> C#. Differences are syntax, the amount of code you need to write to do
>> something, virtual machine, etc. but not object oriented design.
>>
>> Jaap
>>
>>
>> On Sun, Jun 22, 2008 at 8:52 PM, Hernan Gatta <gattahernan gmail com>
>> wrote:
>> > Hello,
>> >
>> > Cheese has been evolving quite some recently and I've been looking at
>> > the
>> > ideas that you would like to see implemented in the upcoming releases in
>> > order to make Cheese even better. However, I have indeed looked at the
>> > code
>> > and I am afraid to say that as with almost any program coded in C,
>> > Cheese
>> > will exponentially grow in complexity as features are added. I've tried
>> > to
>> > add some of the features and the code-base is pretty complex to work
>> > with in
>> > terms of dynamically managing the Gstreamer pipeline, for instance. I
>> > would
>> > like to propose a new design based on Mono (.NET) that would allow a
>> > very
>> > simplistic (and even cross-platform) core filled with easy-to-write
>> > extensions based on the Mono.Addins framework (look at
>> > http://www.mono-project.com/Mono.Addins). Applications like this one
>> > exist
>> > already and are seeing a growth in usage like Tomboy Notes and Banshee
>> > as
>> > well as the MonoDevelop IDE. I'd like to point out that the user
>> > interface
>> > need not change, just the underlying code; although I would like to see
>> > some
>> > sort of OpenGL-based GUI should the user's system support it in order to
>> > bring more "bling" to the program (using things like Clutter as a
>> > back-end -
>> > http://clutter-project.org/). I've started some work on this myself
>> > already
>> > and I will continue to work on it. I would like to hear your input on
>> > this
>> > idea and see what can be done about it.
>> >
>> > Thanks,
>> >
>> > Hernan.
>> > _______________________________________________
>> > Cheese-list mailing list
>> > Cheese-list gnome org
>> > http://mail.gnome.org/mailman/listinfo/cheese-list
>> >
>
>
>
> --
> Hernán A. Gatta


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