[cheese/three-point-oh] Add some notes to TODO



commit 73021661c5950f184ff97d273bda5bf066114871
Author: Filippo Argiolas <filippo argiolas gmail com>
Date:   Fri Jul 16 09:52:31 2010 +0200

    Add some notes to TODO

 TODO |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)
---
diff --git a/TODO b/TODO
index cc8d3eb..7283ce6 100644
--- a/TODO
+++ b/TODO
@@ -6,6 +6,8 @@ please fix me before 3.0
   preferences etc.
 7 improve video recording (doesnt work here atm)
 6 move to gsettings
+? move to gapplication
+? move to gtk3
 5 fix effects preview layout in fullscreen
 5 remove all warnings when compiling
 4 when maximizing the window, the webcam video still stays the same size
@@ -14,3 +16,31 @@ please fix me before 3.0
 2 startup time is till quite long
 2 overlay effect previews with their names
 
+NOTES, particularly about "show a throbber" and startup time
+
+Who's taking so much time at cheese startup?
+- cheese_camera_connect_effect_texture
+
+That's the most expensive thing we do, it takes a rough 50% (maybe more)
+of startup time, particularly link_many for each effect is quite
+expensive because it has to match colorspace caps (but in general, gst
+linking is slow).
+
+Can it be avoided? I doubt so. Can it be postponed? definitely.
+
+There's no reason to link all the effects at startup, the
+highest priority thing at startup is show the window and put an image
+into it (or if the camera preview takes some time to show up at least
+show something moving like a throbber as we always did).  The effects
+section of the pipeline can be isolated with a valve,
+meanwhile the main pipeline can be started, when the effects are ready
+we can connect them. Ideally given they all have a valve we could
+connect them one at the time and show a throbber for each one. So when
+the user clicks on effect he can see that they are progressively
+loading (or if it clicks on effects when they are ready he won't notice
+the loading thing at all).
+
+Obviously all this stuff has to be done async so that the UI doesn't
+ever block waiting for each task to complete. This could be done with a
+separate thread like we did or taking advantage of gstreamer async
+facilities (GstBus, GstMessages) or, probably, with a mix of the two.



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