From 510456d25002b95932c613ad3aec3fae912d2714 Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Wed, 15 Oct 2008 18:27:34 +0200 Subject: [PATCH] some cleanup on the main TiddlyWiki, added latest protocol --- wiki/draw/Lumi.Architecture-1.png | Bin 0 -> 83409 bytes wiki/draw/LumiLogo.png | Bin 2345 -> 2111 bytes wiki/index.html | 410 +++++++++++++++++++++++------- 3 files changed, 315 insertions(+), 95 deletions(-) create mode 100644 wiki/draw/Lumi.Architecture-1.png diff --git a/wiki/draw/Lumi.Architecture-1.png b/wiki/draw/Lumi.Architecture-1.png new file mode 100644 index 0000000000000000000000000000000000000000..684d8c45ab0ab17b050179c8d96d0f6ebd31268c GIT binary patch literal 83409 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 literal 0 HcmV?d00001 diff --git a/wiki/draw/LumiLogo.png b/wiki/draw/LumiLogo.png index 1fd263aed1c9fc761b34bd79b337eaffcee5b004..a072e96cb61514c91bf5082d27e9673c9386c55e 100644 GIT binary patch literal 2111 zcmbVN`8(8$7yejo4HCwdp=OAYy>h89N*H4XSBxb}hGZFIof(Z~$jy>nnHfY>$a2ff zweMS|WQoc$b`qv!8*4Y)b^nF$dCvR3&pGGE^PcADkf+N}!@X~@W!hSaeG%WxD?B*W5|@;cbv@KQ z3f(+Nb6*~2n~5)w3Lw$#-52A$Jvl?_7H%FApOfEJ=Q6x$7j)0@mER@G6%&eNcJzQODE2aORmV(s-3X_x;k@}IbJrxXR zr(w`zN-(~~D5GmJG%a^ULj;U-9$fUOj&9ME&FA74q@xJ*gt<>7!yYL~aud$0JhQfB zKy%$5n=LB2Dmsd*2+J0(8`B(308w)<%*(|rgaIxKwW>m?B9*PKx&;{KoNlVZ z}_8^IRXR9P$vPo^+&`0po`G_6gduv)-;C|2J(+(GQIeX<@TjN3o zn;&kLb2^`OAyJ{5zszq#d<5H3R+lo=ix=*<5a?CVCTa=SGKGB)H=f?*uecv;Z6`xBQ^2_)* zOpgs?+NS=g){&$}{9d9GgMKYl$GxkNH<%0N)LpO!-@Fwpn|Z2^^^Dwo0p)?}=yj&l zAAJ2;uHTuwYgocUl7r<&94DtHM=NXaKOSp`LPAR%&QJ@7aJ|~@hT+#umas`$wHHKD zfz8vWtrvs)D%OU#fFbeBkcbzhfFct30%jBQEj*FqAWIRLa&JDGMql z%+zEl4N}D9g}qdug?Af|y38O8n94r{d4T5_T#<9V2(W^`i{L3?hzeI)2urcgpAu+r z&JDj>l=X1n3C(_pZpET@5@}l;ZxR!j3o&!%sTXuQhiMRaafpO5zvj1ONWC?44RvUgVkC&Ak;_=M!hzF!_$4UE|9CykQ{nH?B%@Q_fm!;5>nf(VLTE7t&I{W%bp) z4b|j-e!z4wrDVh0hLW5>stW;o{!61fle2LZ#Z!Z#;XN9CBJ%!oAW;8;4nK<)K3MFk zc*ubeBj(kglHjId>3ITTQT`hjw~@~BQP=uHb)=|sD+mLb;H2F!c1ypF(F!4{QQjD6 ztK1Q#{vgkJZ{lj}oIIaa#nimf=-Wt}lr_qWZEY^tpShn+|J+4_2M?J!D&(;$)%Os2 zI#(v%JJ!aC!qIab=1U0ElAL=rP)Zk!jut>w*ENiSKZqPHgD>Uk&IH&P02E;c9SV&+ zuCM;3luU?*E;8qO*0H%au_aW5wriW~Z}xleB`o zC_$%P@=mds{H0|$#Beyv6wEDj&^pF5QI$l#B8?I27F4B&FTRB-Zn(5EZiF24`@<7% z&icp!2a6KXMuU?1ZVq;0;o>}VmuG^dZj3iMzjG47p6OM^+{W&ho@R(X;K$nwc{$+g zx1_bsOb33M<)-THf2~%l9*sW6XyTZa-J>|2Y*%7v@z42|ZD(ODJ>bt)O8qUoFeiXt zp+7m<~sQn2WDt1E~5I-jmh3O1!`c zkL&wqW4=%SHEzdpmY#_VoL~J#Pf3gXlJiJ`z1mxeO0#WE9DVjG?TI2I$)}!$FM;(m zm-Gu@ix1)KmaP47DQo${ zZSOi)uGtHfcKmiABNaM6CV#DV2fCvDTD1Lwr zEbOmlW;PF(&wqQ*)(dY0fO}O?z4ILk(;JNr0KjJUtO+I;dfOywv1qd`1MdB|tA8H0 zr}B-PJO3yJZS~lt&+B;xoGLUJ%$I=nSH4dp{!Yk3&o;Cjh9!XUg2BF5*DY$b?6~P5 zl~%t;>j62a($&ooBGi6IX%?Mp(Ubw>W^`@&!P%|)J#Qw3m*^WY4%KV;s#neA+i363 z66+fCs0M8PS0#DNCy7p}QG1}XTus1|ukAG0+7eauSDQ&~P(tQi0iG<~g#Z8m literal 2345 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 +
+
This page intends to capture the lage picture regarding Lumiera's Architecture. This may be a moving target...
+
+[img[Overview of Lumiera Architecture|draw/Lumi.Architecture-1.png][http://www.lumiera.org/gitweb?p=LUMIERA;f=doc/devel/draw/Lumi.Architecture-1.svg;hb=HEAD]]
+
+//this drawing is maintained as SVG in GIT//
+~~(click on the above image...)~~
+
+!Description
+* the Application has three Layers: [[Backend|backend.html]], [[Proc-Layer|renderengine.html]] and GUI
+* the Application shall be completely functional without GUI ("headless", script-driven)
+* all IO, media data fetching, processing and bookkeeping falls within the realm of the Backend
+* all media object manipulation, deciding and configuration is the Proc Layer's job
+* extensible by plugins on all levels, highly configurable, but not totally componentized (micro kernel) architecture
+* strong separation between high-level and low-level areas of the Application
+* the user/GUI manipulates a [[high-level model|renderengine.html#HighLevelModel]] whereas rendering is based on a corresponding [[low-level model|renderengine.html#OverviewRenderEngine]]
+* stored Session (state) is comprised of high-level model, a collection of [[Assets|renderengine.html#Asset]] and accompaning configuration
+* (possibly) several storage backends, abstracted out by a common interface
+
+
+
* autotools 1.10 (as of 5/2008) &dash; Question: other versions usable too?
 * the usual procedure, in short
@@ -802,14 +823,12 @@ for __Running__
LumieraWiki
 ShortCuts
-
+
* There is a [[Manifest]] explaining the vision of the Lumiera project
 * The foundation how we work together is defined in LumieraDesignProcess
 * There is a description how the git repository is set up in RepositorySetup
 * we decided to write code in GNU style, with no tabs (use spaces)
-
-!basic decisions
-* TimeHandling
+
/***
@@ -954,9 +973,11 @@ git push git://git.pipapo.org/lumiera/mob
 
 lumiera/mob is an anonymous account at pipapo.org where everyone can commit changes. 
-
+
We keep a protocol or short summary of each important discussion. The summaries of the monthly developer meetings are posted to the Mailinglist and can be found on pipapo.org too
 
+* [[10-08 developer meeting 10.Oct.2008|IRC_2008-10-10]]
+* [[07-08 developer meeting 6.Jul.2008|IRC_2008-07-06]]
 * [[06-08 developer meeting 5.Jun.2008|IRC_2008-06-05]]
 * [[05-08 developer meeting 8.May.2008|IRC_2008-05-08]]
 * [[04-08 developer meeting 3.Apr.2008|IRC_2008-04-03]]
@@ -968,12 +989,12 @@ lumiera/mob is an anonymous account at pipapo.org where everyone can commit chan
 * [[buffer allocation for render nodes (6/08)|IRC_log_BufferAllocation_2008-06]]
 
-
+
!10/11 aug 2007
 * maybe let the render graph builder generate a meta language which then is ''jit compiled'' for each configuration
 * using smart pointers and factories for objects ''and avoid unprotected use of {{{new}}} and {{{delete}}}'', if this wont work because of cycles, we might investigate specialized garbage collectors for specific cases.
-* format for frames would be likely ffmpeg or such first, finally we see what suits best. We have to provide coverter nodes to convert frame formats for accessing diffrent libraries anyway (ffmpeg, v4l, gstreamer, ...)
-* we need a pool of worker threads and associated api's
+* format for frames would be likely ffmpeg or such first, finally we see what suits best. We have to provide coverter nodes to convert frame formats for accessing different libraries anyway (ffmpeg, v4l, gstreamer, ...)
+* we need a pool of worker threads and associated ~APIs
 * accessing frames has a time (get until..), ''unique frame identifier'' (see below), policies (what to do when out of time, quality required,..) and hints (recursive dependency, must cache, playback speed and direction, ...)
 * for each sequence (configuration) each node has a number (monotonic incrementing), a generation counter (increment on each parameter change), a propagation sum (from parent nodes) 
 * frames are identified by their time(frame number) and node number plus generation number and propagation sum. This allows easily to find out when a frame has to be rerendered
@@ -981,20 +1002,20 @@ lumiera/mob is an anonymous account at pipapo.org where everyone can commit chan
 ** viewer is just a decoder where a display window attaches
 ** one can have multiple of such display windows
 ** tracks, effects, (things which are nodes in the render graph) can add gui components to the viewer, like masking tools, panning, overlay and other compositor things.
-** in the render graph we have ''attachement points'' i.e. ~ExitNode-instances. Display and other output can only be pulled from such ~ExitNodes. Changing just the display or attaching it to another ~ExitNode doesn't count as change of the render graph, while reordering or reconfiguring the ~ExitNodes themselfes of course //is// a reconfig.
+** in the render graph we have ''attachment points'' i.e. ~ExitNode-instances. Display and other output can only be pulled from such ~ExitNodes. Changing just the display or attaching it to another ~ExitNode doesn't count as change of the render graph, while reordering or reconfiguring the ~ExitNodes themselves of course //is// a reconfiguration.
 * tracks are just containers for other nodes
-** they serve a gui representation (timeline, patchbay, viewer)
+** they serve a GUI representation (timeline, patchbay, viewer)
 ** they do the mixing of contained things
-** can be recursive, the gui represents basically a tree
-** we need some 'wireing' abstraction for the gui to make it a real graph
+** can be recursive, the GUI represents basically a tree
+** we need some 'wiring' abstraction for the GUI to make it a real graph
 * rendering frames, context between frames
 ** the proc layer ''only queries frames'' (by identifier and timeout) the backend tries to serve the best it can do (from cache or let them render)
 ** each render job carries some ''quality limit'' (as S/N ratio) when previewing or scratching through the project this is used to generate reasonable quality previews
-** individual processing nodes can use additional state for their processings...
-*** the node objects themselfs should stay stateles, i.e. they shouldn't store state internally. 
+** individual processing nodes can use additional state for their calculations...
+*** the node objects themselves should stay stateless, i.e. they shouldn't store state internally. 
 *** they can use special ''context frames'', which are provided and managed by the backend (as opaque data blocks).
 *** they can depend on previous state, i.e request from the backend a previous context frame, the same way as they can request previous media frames from the bakend, but there is no guarantee that the backend will satisfy this request.
-* on the question who decides what to do after a cache miss, we tend to put the decision into the render node (because this seems to be the simpler aproach), but still have to work out the details.
+* on the question who decides what to do after a cache miss, we tend to put the decision into the render node (because this seems to be the simpler approach), but still have to work out the details.
 
@@ -1673,6 +1694,272 @@ While in this discussion, several aspects of the cooperation of GUI and Proc lay Next meeting: ''Thursday 3.July 2008 16:30 UTC''
+
+
! 6.July 2008 on #lumiera
+__Participants__
+* ichthyo
+* cehteh
+* jilt
+* dmj726
+* Teld
+* _nasa_
+* alcarinque_
+* MNO
+* Wescotte
+* weatherhead
+
+//Protocol written by Teld//
+
+!Boilerplate
+!!Organization of this meeting
+* dmj726 intends to write the protocol
+* ichtyo is chairman
+* there is no agenda, so this is a freeform meeting
+!!Leftovers from last meeting
+//There are no leftovers//
+
+!Introduction of Lumiera
+Because there are quite some new participants, an introduction of the project Lumiera is given
+
+There are 3 core devs:
+* cehteh: backend serving data (from filesystem and so on), manages threads, using C, Posix System programming, maintains autotools and git
+* ichthyo: proc layer, render graph, in the middle, C++, he maintains scons
+* joelholdsworth: GUI in C++/Gtkm
+Other people involved:
+* rcbarnes: ui designer and HCI expert
+* raffa: web content
+* Simav: gives a hand when and where he can
+* Teld: web infrastructure
+
+The foundations of the design are already done but a lot of detail needs to be worked out. cehteh and ichtyo provide a non exhaustive list.
+
+cehteh:
+* improvement of the testsuite (simple Bash)
+* start of a worker thread manager (Posix knowledge required)
+* start of the scheduler (some Posix, good C coding)
+* runtime profiler (little but advanced Posix realtime programming job)
+* review of code and documentation
+* system administration
+* setup of a build/test environment on the server
+* setup and maintain postfix/dovecot by a mail administrator
+ichtyo:
+* asset management (keeping track of all media files, captures, clips, scenes)
+* session loading saving and the issues of compound documents
+* session structure related issues to be able to Import/Export/Connect via e.g. OSC (Open Sound Control) or JACK
+* flesh out the more high level "edit operations" and the interface to UNDO
+* Prolog integration after the first integration round has been reached. The Prolog interpreter will do some of the more advanced configuration (example: if effect XYZ is used, then deinterlace beforehand).
+* integration with some sort of production support software (like Celtx)
+cehteh emphasizes that Lumiera is an open project, so anybody can jump in where he sees fit as long as he communicates and acknowledges with the persons involved. ichtyo points out that the plugin structure is very important: anything that is not legally completely clean (proprietary), should be factored out into a sister project and be loaded as plugin.
+
+!Issues and questions that come up
+!!handling of config errors.
+When the configuration has a syntax error, in 90% of the cases there will be no possibility to do anything sane. Therefore, the config system will be built to log a warning and the user code does not need to care. The user just gets an alert and the application continues to work.
+
+!!scripting language.
+There will be a scripting interface. ichtyo does not want scripts everywhere, only at well defined interfaces. That implies also that scripts cannot just do anything, only that what is permitted in a controlled way. The meeting agrees on that. cehteh wants one default language and proposes Lua: light, simple.
+
+Other members suggestions: Python, Ruby, Scheme. However, Python and Ruby are very slow. Scheme has many variants.
+
+!!editing on small devices (eeePC)
+Problem: video editors GUIs are some of the most elaborate and complicated GUIs. However, basic functions consist of only a few buttons. Proxy editing could be a solution. It is decided that it is not a primary goal now. First the basics have to be implemented.
+
+!!uWiki.
+uWiki is the glue between a markup driver (Asciidoc) and revision control (git). Haserl with Bash is used now. Haserl appears to have problems with conditional includes. Its limits have been reached while prototyping. Lua could very well be a valid replacement. It will be investigated. PHP is rejected because it is not stable and suffers from serious security problems.
+
+!!'musical' timeline in bars and beats
+The questions of syncing and linking things together are already on the core agenda: the so-called placement concept. Discussion is still going on, especially with the GUI developer joelholdsworth. See for detailed information: http://www.pipapo.org/pipawiki/Lumiera/DesignProcess/ProcPlacementMetaphor
+
+!Next meeting
+The next meeting will be held ''Thursday, 7 August 19:00 UTC''
+
+
+
+
!Oct 10, 2008 on #lumiera
+19:00 - 23:15 UTC
+__Participants__
+* cehteh
+* ichthyo
+* joelholdsworth
+* alcarinque
+* ~KenSentMe
+* Plouj
+* raffa
+* thorwil
+* Victor_Sigma
+* wildhostile
+ 
+//Protocol written by Ichthyo//
+
+!!!organisational
+Not much of a fixed agenda this time.
+Agreement to start with the Logo discussion, as this is of general interest, followed by the design drafts and similar dev topics.
+
+!The Lumiera Logo
+Summary of the situation: discussion regarding a logo for Lumiera is going on sporadically since quite some time. Several people from the community have made proposals. Also, there was discussion about the criteria a logo would have to fulfil. Especially the core devs raised the bar and required quite some professional level of design. On the contrary, several members of the community were concerned that such a demanding attitude will hinder creativity in a domain which is far off from coding. Moreover, many people complained they are really excited about Lumiera and strongly want to participate in some manner, but find it very difficult in the current phase of the project to give any valuable contribution.
+
+This summer, one of the proposals by [[Leandro Ribeiro|http://farm4.static.flickr.com/3060/2927333034_ac94be80ea_b.jpg]] gained some popularity and especially was embraced by two of the core devs, while the GUI core dev wasn't convinced and [[explained|http://www.pipapo.org/pipawiki/JoelHoldsworth/LogoThoughts]] his reservation. Prior to this meeting some people joined a brainstorming session and came up with [[another design|http://www.pipapo.org/pipawiki/Lumiera/Logos?action=AttachFile&do=get&target=combo.png]] compiled of several proposals, which could meet the acceptance of the core devs. At the same time, Raffa made an argument for conducting a public contest, similar to the one which gave us the name of Lumiera. The situation for Lumiera is somewhat special. Usually, the community builds when the product is already minimally usable; we can't have users for now, but we have a lot of prospective users.
+
+Thus, while basically it would be possible for the core devs to shorten the process by just picking a design which is acceptable for all, maybe after augmenting it a little, several of the arguments articulated this far are in favour of a more formal decision by a contest:
+* it would allow for a lot of people to really participate
+* it could help to shape a general (graphic) style for Lumiera
+* it could underpin the fact Lumiera indeed is a collaborative effort
+* it doesn't mean additional work for the core devs on the whole
+* it helps spreading the word
+
+Then, there is some discussion about the requirements. The core devs are concerned to keep up some quality level, because there is the possibility for the community to embrace a design, but when Lumiera enters the area it is intended to do, the standards of comparison will be different. The GIMP logo can be quoted as a negative example here.
+
+!!Conclusion
+There will be a Lumiera Logo contest.
+* we should further discuss requirements on the Mailinglist until the end of the next week
+* the ''deadline for submissions'' will be the next meeting (Nov 12 2008)
+* then, after a pre-selection phase, the vote shall be conducted prior to the December meeting.
+
+Some minimal technical requirements will be enforced:
+* the basic sign fits a compact rather quadratic bounding box (like 4:3)
+* easy to print on various media (on posters, t-shirts, ..)
+* basically a shape, using only a small number of solid colours (web safe)
+* should work on different backgrounds, esp. not requiring white background
+* the design should scale from microscopic size (favicon) up to big posters
+* vector graphic source is mandatory
+
+Besides, we give some artistic guidelines
+* it should be recognisable
+* it should contain something like a sign, not just "Lumiera" in a fancy font
+* it should not rely on transparencies, gradients and subtle shades,
+* it should be viable, possibly work well in different presentation styles, able to be simplified as well as graphically augmented
+
+Raffa volunteers to help organizing the contest and the voting.
+----
+
+
+
+
+!Recurring Topics: design proposals
+Discussion of open [[design process|http://www.pipapo.org/pipawiki/Lumiera/DesignProcess]] drafts.
+
+!!Mistakes to avoid
+[http://www.pipapo.org/pipawiki/Lumiera/DesignProcess/MistakestoAvoid Mistakes to avoid in the Lumiera Design]
+We are carrying this one along since quite some time and we'd like to get rid of it, either by reworking it or by dropping it as-is. Because it contains a mixture of things
+* we fully agree to 80% of the statements made there, but we think those statements are so very basic and self-evident as to be considered off-topic here. We are aware of the recurring problems with open source video editing. That's why we are here.
+* the proposal draws conclusions on two technically substantial points, at which we don't agree. And it fails to provide sufficient (technically sound) arguments to prove these statements.
+
+While it is certainly //desirable// to be cross-platform as much as possible and especially ''target Microsoft Windows'', we don't see much possibilities with today's mainstream technology to build an application which is as technologically demanding as a video editor is. We would end up developing two or even three sister applications, or we are forced to sacrifice performance for portability. When put up to face such options, we have a clear preference to concentrate on a really free and open platform.
+
+While it is certainly //desirable// to make the application as robust as possible, we don't see how ''using multiple separate processes'' could help us with this goal //without creating major scalability or performance problems// due to the use of shared memory. And, yet more important: we don't share the basic assumption made in the proposal, namely that video processing is inherently dangerous. We think the basic algorithms involved are sufficiently well-known and understandable to implement them in a sound manner.
+
+__Conclusion__: drop it
+
+!!!!on the question of separate processes
+The only practical solution would be to separate the GUI. Separating backend and proc-layer doesn't make much sense, technically speaking. We re-considered this question. Joelholdsworth (GUI) and Ichthyo (Proc-layer)prefer running the GUI in-process and to avoid the additional hassle with shared memory. Cehteh (backend) doesn't care for know and would like to re-discuss it as an option later on. This is somewhat similar to the possibility of running Lumiera distributed over the network, which is a goal, but not an immediate one.
+
+
+!!Tag Clouds
+[http://www.pipapo.org/pipawiki/Lumiera/DesignProcess/TagCloudsOnResources Tag clouds on resources]
+Tags are considered very important. Meanwhile, we have a much more advanced proposal, which superseeds this one: [http://www.pipapo.org/pipawiki/Lumiera/DesignProcess/DelectusShotEvaluator "Delectus"]
+
+__Conclusion__: drop it
+
+
+
+!!Overview of Lumiera Architecture
+[http://www.pipapo.org/pipawiki/Lumiera/DesignProcess/ArchitectureOverview Architecture Overview]
+The purpose of this drawing to give an first impression what subsystem is where and what the names mean. Since discussed last time, Ichthyo re-arranged the plugins as requested and added some details for the backend. Joelholdsworth points out that it's OK for him to show the GUI just as a single block here (and of course the GUI has much more internal structure). Cehteh adds that maintaining this drawing surely is a moving target, so we better remove the rendered image and just retain the textual description and link to the source (SVG), which is in GIT.
+
+__Conclusion__: accept it, change the image to a link
+
+
+
+!!EDLs as Meta-Clips
+[http://www.pipapo.org/pipawiki/Lumiera/DesignProcess/EDLsAreMetaClips EDLs are meta-clips]
+This is just a high-level proposal, which doesn't go into technical details of implementing nested EDLs. It just poses the question "do we want to treat nested EDLs as being meta-clip" -- which we do.
+
+__Conclusion__: accepted
+
+
+
+!!The Builder
+[http://www.pipapo.org/pipawiki/Lumiera/DesignProcess/ProcBuilder Builder in the Proc-Layer]
+Similar to the previous one, this is a high-level proposal. It covers the fundamental approach Ichthyo takes within the Proc-Layer. Cehteh adds that he agrees to 98% and the remaining 2% are just matter of favour. Personally, he would have preferred one large graph which gets garbage collected (instead of the segmented graph)
+
+__Conclusion__: accepted
+
+
+
+!!High-level Model
+[http://www.pipapo.org/pipawiki/Lumiera/DesignProcess/ProcHighLevelModel Overview of the High-level model within the Proc-Layer]
+Cehteh queries if this shouldn't be better moved over to the documentation? He is fine with the contents, but it seems to be a bit voluminous for a design proposal. Ichthyo asks to leave it there just for now, as he feels it still needs review.
+
+__Conclusion__: leave it for now, maybe retract it from the design proposals and file it as documentation?
+
+
+
+!!Lua scripting language
+[http://www.pipapo.org/pipawiki/Lumiera/DesignProcess/ScriptingLanguage use Lua as required scripting language]
+All core devs agree with this decision. Joelholdsworth points out that he is fine with Lua, just he didn't want to write the GUI in it. Ichthyo adds that Lua is probably the best choice from today's mainstream scripting languages, because it is very lightweight. He further points out, that having Lua as //required// scripting language doesn't rule out using other popular languages (Python, Ruby) for scripting. Just they aren't required for running Lumiera. Cehteh will have a look at the details as soon as possible, but has currently other more urgent things in the queue. (Plouj shows interest to help here)
+
+__Conclusion__: accepted
+
+
+
+!!Time Handling
+[http://www.pipapo.org/pipawiki/Lumiera/DesignProcess/time_handling time handling]
+A long standing proposal; meanwhile we've decided to build on GAVL, which is now reflected in the text of this proposal too. Ichthyo points out he changed the rounding rule in this proposal from "mathematical" to "floor (x+0.5)". Cehteh asks if we should use a thin library layer on top of gavl, to centralize all the time calculations. There seems to be agreement that this should actually be done //on demand.// Joelholdsworth sais sometimes he'd prefer to have a simple raw type to represent time, because it makes calculations much easier. Ichthyo adds that internally (within the layers, but not on interfaces) one could use a thin C++ wrapper with overloaded operators, which is default-convertible to gavl_time.
+
+__Conclusion__: accepted
+
+Note: the proposed rigid testsuite for time handling is necessary only when we introduce a wrapper...
+
+!!Interface naming convention
+See the design proposal [http://www.pipapo.org/pipawiki/Lumiera/DesignProcess/InterfaceNamespaces Interface Namespaces]. While working on the plugin loader, ''Cehteh'' and ''nasa'' did some brainstorming about a plugin naming scheme and how to get unique interface identifiers. The idea is to use a distinctive prefix, like a condensed organisation domain or email name, or a GPG fingerprint or even a UID, followed by the interface namespace hierarchy. These would be combined into a single identifier (valid C name). The intention is to get non-ambiguous names, yet avoiding the need of a central registry.
+
+__Conclusion__: accepted
+
+----
+general Topics
+
+!Config System
+''cehteh'' landed the first version of this subsystem and asked for review and testing. Currently it's "work with no progress", but it is basically usable (you can get values, you can set values by environment variables, but you can't persist). It should be augmented on demand, e.g. by adding the support for more value types (value types are a hint how to parse, and link the parsed value to a given C type).
+
+
+!Use of Namespaces
+Currently there is no clear uniform rule regarding namespaces use. ''Joelholdsworth'' places his code within lumiera::gui and below. He points out that external libs like Cairo, GTK, GLib will bring in their hierarchies and all of Lumiera should comply and put anything below a lumiera:: root. On the contrary, ''Ichthyo'' deliberately moved his implementation code away from the central lumiera:: interface hierarchy into shallow namespaces and avoids nesting. He argues that having all code below luimiera:: effectively makes this namespace global or forces it to be void of any function; rather he'd prefer to import every interface explicitly into the implementation namespace. ''Cehteh'' argues that having a global lumiera::, even if empty, would mark a general claim and stand for the uniformity of the project. Generally, there should be some correspondence between folders and namespaces.
+
+No conclusion yet, to be discussed further.
+
+
+!Interface Definition Language
+In his work on the plugin loader, ''Cehteh'' created a first draft how to export an interface, and calls for review. An example can be found in [http://www.lumiera.org/gitweb?p=lumiera/ct;a=blob;f=tests/backend/test-interfaces.c;h=fb1c4d30a34414767a313d24df60e679c96ad2a7;hb=7323114e77348995ccaf03417136aef7ee332776 tests/backend/test-interfaces.c]
+
+An interface is a list of "slots" mapping functions. The interface descriptor is itself realised as interface, an thus can be versioned, extended and specialised. By use of some glue code and macros we create a simple Interface Definition Language
+ * after exporting a header with the C interface, including the types to be used...
+ * LUMIERA_INTERFACE_DECLARE creates an interface description (i.e. the official interface)
+ * implementing such an interface can be done in 3 major ways
+   * LUMIERA_INTERFACE_INSTANCE creates an instance on-the-fly (e.g. for descriptors)
+   * LUMIERA_EXPORT for defining a table of functions/interfaces to export from the core
+   * LUMIERA_PLUGIN for defining an interface table for functions located within a dynlib module (plugin)
+ * besides, with LUMIERA_INTERFACE_INLINE you can create a function on-the-fly while LUMIERA_INTERFACE_MAP maps onto an existing function directly
+
+The plugin loading system cares for mapping the given implementation function to the interface slots. Interfaces from the core need to be registered before they can be used, while for plugins this is done automatically on loading the module. The client code later just calls {{{interface_open()}}} and {{{interface_close()}}} where it doesn't matter anymore if the invoked function is in the core or loaded from an dynlib (plugin); loader, registry and/or plugin-DB shall manage it transparently.
+
+Version numbering starts with 1 and uses minor version numbers for compatible changes and major version numbers for everything that breaks existing asumptions. Version number zero is reserved for experimental work and per definition always the most recent version number.
+
+The system is designed to be very flexible and extensible, but this foundation really needs thorough review.
+
+Joelholdworth expresses some concern regarding the UIDs in octal notation used within the interface description. Cehteh explains they never need to be specified by client code. They are just distinctive IDs and provided for some special case within the plugin loader / serializer. He plans to provide a simple tool which automatically replaces a $LUIDGEN with such a bitstring. The octal notation was chosen, because it is the most compact albeit portable notation possible in C source code.
+
+!!Conclusion
+
+looks good, agreement by all core devs.
+Should be reviewed and investigated in detail to find any hidden problems.
+
+
+!Next meeting
+
+There were some problems with the meeting schedule. Using the first week of month seems to be problematic. We'll try with second wednesday...
+
+The next meeting is scheduled for ''Wednesday Nov 12 2008 19:30 UTC'' at #lumiera
+
+
! 5.June 2008 on #lumiera
 __cehteh__ and __ichthyo__
@@ -2152,23 +2439,26 @@ This distributed wiki might be used instead the pipapo.org wiki, investigate tha
 Wiki works. It is simple to use and just flexible enough to handle the task. I don't go to install any other software for such tasks on my server. While the design progresses I'd propose to move our work into git repositories and eventually phase this wiki pages out anyways. I'd rather like to start out distributed/git right away .. but git gives us only a fine storage layer, for a design process we need some good presentation layer (later when using git and starting the implementation everyones favorite editor serves for that) I have no better ideas yet to solve the presentation problem other than using this wiki (or maybe Bouml).
 
-
+
[<img[draw/LumiLogo.png]]
 
 
+
+
   ''Lumiera'' is the emerging professional non linear video editor for Linux
 
-This is the entry point to several [[TiddlyWiki]]-Pages containing the developer and design documentation.
+
+This is the entry point to several [[TiddlyWiki]]-Pages containing the developer and design documentation. The documentation is split in several parts corresponding to the parts of the application. Those TiddlyWiki pages are self modifying HTML pages; we include them into the GIT source tree. For the future we plan to move the contents of these developer doc wikis into a GIT backed uWiki (still under development as of 10/2008)
 * we maintain (semi-) final design docs in DesignDocumentation
-* Things get often worked out on IRC, see IRC-Transcripts for decisions made there and not yet put into the proper documentation places
+* Things get often worked out on IRC, see IRC-Transcripts for protocols, transcripts and decisions made there
 
 ----
 !Architecture and Subsystems
-to get started, we create design drafts emphasizing different aspects and regions of Lumiera
+&rarr; see the ArchitectureOverview
 
 * Cehteh works on the data backend, see [[this page|backend.html]]
 * Ichthyo focuses mainly on Edit operations and Builder, [[see this separate page|renderengine.html]]
-* Joel started with a GUI implementation based on GTK
+* Joel builds the Lumiera GUI based on GTK
 * Gmerlin is in charge of [[GAVL|http://gmerlin.sourceforge.net/gavl.html]] for processing of video data
 * Some tools which don't fit somewhere else and are used everywhere are put into a [[Support Library|support_library.html]]
 
@@ -3209,10 +3499,11 @@ Typically, one would just write the necessary definitions as they come into one
 Moreover, one could simply list all needed files or break everything down into a hierarchical build. But instead, we use for most objects a helper function (located in {{{admin/scons/Buildhelper.py}}}) called {{{srcSubtree()}}}, which will scan a directory tree and add all {{{'*.c','*.cpp','*.cc'}}} - files as Object nodes to the build process. Besides that, we use the //hierarchical aproach rather reluctant//: at the moment, only the subtree for separate tools and the tests-directory have a separate buildscript. Probably, the subtree for plugins will get one as well at some point in the future.
 
-
+
~~This small Tiddler contains usefull Shortcuts, Info, Links~~
 
-*[[Wiki-Markup|http://tiddlywiki.com/#MainFeatures]]
+*[[Wiki-Markup|http://tiddlywiki.org/wiki/TiddlyWiki_Markup]]
+*[[Design-Process|http://www.pipapo.org/pipawiki/Lumiera/DesignProcess]]
 *
 ----
 
@@ -4597,82 +4888,11 @@ function addKeyDownHandlers(e) } //}}}
-
+
The Name of the Software driving this Wiki. Is is written completely in ~JavaScript and contained in one single HTML page.
 Thus no server and no network connection is needed. Simply open the file in your browser and save changes locally. As the wiki HTML is located in the Lumiera source tree, all changes will be managed and distributed via [[GIT|GitNotes]]. While doing so, you sometimes will have to merge conflicing changes manually in the HTML source. There is a 'empty.html' in the same folder serving as template for generating new wikis. Please refrain from editing it.
  * see GettingStarted
- * see [[Homepage|http://tiddlywiki.com]], [[Wiki-Markup|http://tiddlywiki.com/#MainFeatures]]
-
-
-
-
/%||'''State'''||''Final''||%/
-||'''State'''||''Draft''||
-||'''Date'''||[[Date(2007-06-21T05:12:03Z)]]||
-||'''Proprosed by'''||["Ichthyostega"]||
-
-!time handling
-how to handle time values in the code and which policy to aply to the "current" position
-
-!!Description
-# Representation of time values
-#* we use an uniform time type. Time is time, not frames, samples etc.
-#* all timings in Lumiera are based on integral datatypes
-#* we use a fixed, very fine grid, something of the sort of microseconds
-#* the internal representation is based on a {{{typedef int64_t gavl_time_t}}}
-#* we use a set of library routines and  convenience-methods to
-#** get time in different formats (fractional seconds, frame counts)
-#** calculate with time values (overloaded operators)
-#* time measurement is zero based (of course :-P )
-# Quantizing to a frame index or similar
-#* quantizing/rounding shall happen only once at a defined point in the calculation chain and, if in doubt, be done always as late as possible. 
-#* values needing to be quantized to time (grid) positions are calculated by half-way rounding, but the result should not depend on the actual zero-point of the scale (i.e. {{{floor(0.5+val)}}}, thus quant(0.5) yields 1, quant(0.49) yields 0, quant(-0.5) yields 0 )
-# Position of frames[>img[draw/FramePositions1.png]]
-#* frame numbers are zero based and Frame 0 starts at time=0 (or whatever the nominal start time is)
-#* each frame starts when the locator hits its lower border (inclusively) and ends when the locator is on its upper border (exclusively)
-#** when the locator snaps to frames this means it can be placed on the start positions of the frames solely
-#** when the locator is placed on such a start position, this means //always// displaying the frame starting at this position, irrespective of playback direction.
-# Current position for keyframe nodes and automation[>img[draw/FramePositions2.png]]
-#* when parameter values for plugins/automation need to be retrieved on a per frame base (which normally is the case), for each frame there is a well defined __//point of evalutation//__ time position, irrespective of the playback direction
-#* there is no single best choice where to put this "POE", thus we provide a switch
-#** //point of evalutation// of the automation is in the middle of the timespan covered by a frame
-#** //point of evalutation// is on the lower bound of each frame
-#** maybe additional position or fraction (?)
-#* moreover, we provide an option to snap the keyframe nodes to the //point of evalutation// within each frame or to be able to move them arbitrarily
-#* when keyframes are set by tweaking of parameters, they are located at the //point of evalutation// position.
-
-
-!!!!Tasks
-* figure out what has to be done when switching the "current position" policy on a existing project
-
-
-!!!Alternatives
-Leave everything as in Cinelerra2, i.e. show frames after the locator has passed over them, behave differnt when playing backwards and set the keyframes on the position of the locator but use them on the frame actually to be shown (which differs according to the playback direction but is always "one off").
-
-Why not? because it makes frame-precise working with keyframes a real pain and even creates contradictory situations when you
-switch back and forward while tweaking.
-
-Similar for the issues with quantized values. At first sight, e.g. directly using the frame numbers as coordinates (as Cinelerra does) seems to be clever, but on the long run we get lots of case distinctions scattered all over the code. Thus better use one uniform scheme and work with precise time values as long as possible and only quantize for rendering a given frame.
-
-
-!!Rationale
-The intention is to make time handling and calculations as uniform and "rational" as possible. We try to stick to the precise mathematical values and let the calculations just yield an result in an uniform manner, instead of sticking to "simple" values like frame counts or even a session-wide frame rate
-# time and interval calculations are tricky. Solve this question once and be done.
-# rounding is always dangerous, rounded values are not the more "clean" values. The floor-rounding rule is chosen, because the length of an interval after quantizion should not depend on the position in relation to the zero point. The usual mathematical rounding behaves "symmetrical" to the zero point, which could yield a different length after quantizion if an interval contains the zero point
-# this is based on the analoy with real film running through a film projector (or the usual fencepost problem)
-# while using the actual position of the locator as the "current" position for keyframes seems more natural at first, it crates problems when mixing footage with different framerate or when using a low-framerate proxy footage
-
-
-
-!Comments
-This is the summary of a discussion cehteh, Plouj and ichthyo just had on irc.
- -- ["Ichthyostega"] //2007-06-21T05:12:03Z//
-
-We use Gavl now
- -- ["ct"] //2008-03-05T16:19:22Z//
-
-I've tidied up this old design proposal, we could make it final now. I've changed the rounding rule, please check if it's OK. In the original proposal, we  wanted to use the common mathematical rounding rule, i.e. round(-x) = - round(x) . I changed this, because of the danger of interval lengts or alignment to "jump" dependant on the position in relation to the time zero point.
- -- ["Ichthyostega"] //2008-10-04T22:47:54Z//
-
+ * see [[Homepage|http://tiddlywiki.com]], [[Wiki-Markup|http://tiddlywiki.org/wiki/TiddlyWiki_Markup]]