# reportfmt

title: All Tickets
cols:
  #ffffff Key:
  #f2dcdc Active
  #e8e8e8 Review
  #cfe8bd Fixed
  #bde5d6 Tested
  #cacae5 Deferred
  #c8c8c8 Closed

sqlcode:
  SELECT
    CASE WHEN status IN ('Open','Verified') THEN '#f2dcdc'
         WHEN status='Review' THEN '#e8e8e8'
         WHEN status='Fixed' THEN '#cfe8bd'
         WHEN status='Tested' THEN '#bde5d6'
         WHEN status='Deferred' THEN '#cacae5'
         ELSE '#c8c8c8' END AS 'bgcolor',
    substr(tkt_uuid,1,10) AS '#',
    datetime(tkt_mtime) AS 'mtime',
    type,
    status,
    subsystem,
    title
  FROM ticket


# event

type: ci
user: aku
comment:
  Basic setup of the kinetcl binding and classes. The latter use the new critcl::class utility package to auto-generate the boilerplate code. This means that this code requires at least commit [b8fdfa2249033dd947d485c76f14a1c8b5c6096f] (branch dev31) of critcl 3 @ git@github.com:jcw/critcl.git to build.


type: ci
user: aku
ecomment:
  Implemented the basic API to a user generator. Note: This should be build with critcl commit [fd6df2a67f1a6ab3f8ac8cfe85f4b54b65d392a5]. This ensures the presence of a 'destroy' method, automatically generated.

comment:
  Implemented the basic API to a user generator. Note: This should be build with critcl commit [xnGetUserCoM ( XnNodeHandle  hInstance,]


type: ci
user: aku
ecomment:
  Reworked the global structure of the package.

  Use our own structure instead of the OpenNI context directly.

  Use the extended structure to store a few global string constants for
  use in callbacks. No need to allocate a new Tcl_Obj* every time.

  Extended the user generator class with methods for (un)setting
  various callbacks, and invoking them from the C level.

  This required extension of the instance structure as well, to keep the
  callback command prefixes around, the OpenNI tokens for the callbacks,
  and our Tcl interpreter

comment:
  Reworked the global structure of the package.

  Use our own structure instead of OpenNI context directly.

  Use the extend structure to store a few global string constants for
  use in callbacks. No need to alloocate a new Tcl_Obj* everytime.

  Extended 'user' generator class with methods for setting and unset
  callbacks, and invoking it from the C level.

  This required extension of the instance structure as well, to keep the
  callback command prefixes around, and the OpenNI tokens for the
  callbacks.


type: ci
user: andreask
comment:
  Started to flesh out the documentation, basic methods for everything, and the user generator methods especially. Note: API is not in the final form yet.


type: ci
user: aku
comment:
  Individualized the class documentation a bit. Added a section about OpenNI/NITE requirements to the install guide. Regenerated the embedded documentation.


type: ci
user: aku
comment:
  This commit uses the new critcl API "critcl::source", and therefore requires the critcl commit [df391fb9ab84321f1dde912ac8f8e1c02c129c79] providing said API to build successfully. Split the various C classes into their own files. Added Tcl policy for the classes. Renamed the user generator class and wrapped a TclOO class around it. This will be used to bring in the super classes and capability based aspects.


type: ci
user: aku
comment:
  Saving the current state of work. This code builds, provided the local revision of critcl::class is used. It doesn't run, as the class command has not been modified yet to support multiple methods. The basic class hierarchy is done, as is the support code for linking in capabilities and exporting the C methods. The capability classes are not defined yet.


type: ci
user: aku
comment:
  Synchronized all the C classes to the new standard, and fixed name/scope issues with the Tcl classes. Further give the C components unique names, they are all in the same namespace.


type: ci
user: aku
comment:
  This change requires commit [6bd608d4655573407297725ffd4694a235204f7c]
  of the critcl dev31 branch, for access to the class specification
  commands 'classvar', 'classmethod', and 'introspect-methods'. The
  previous two commits require this as well, but had no commit to
  actually refer to.

  Beyond that moved all the common code of the C classes, which is a
  lot, into new build-time helper commands. class macros, if you will.


type: ci
user: aku
comment:
  Added capability introspection (base class, C & Tcl). Fixed inverted guard condition in the method publication code.


type: ci
user: aku
comment:
  Implemented the basic generator methods controlling and introspecting data generation and the general properties generated data (frame id, timestamp).


type: ci
user: aku
comment:
  This change requires commit [8f52ccaad22e36d63574cb92139f862d2cca0210]
  of the critcl dev31 branch, using the new ability to declare multiple
  constructor/destructor C code fragments for instances..

  Created macro commands setting up callback handling, for 1:1 mapping
  (One C (un)register function for one callback), and 1:2 mapping (One C
  (un)register function for two callbacks).


type: ci
user: aku
comment:
  Updated the documentation to include the abstract base classes, and all newly written or changed methods.


type: ci
user: aku
comment:
  Split the capability documentation we have so far into their own files. Regenerated the embedded documentation.


type: ci
user: aku
comment:
  Fixed a few command argument references, and moved command syntax comments to where a simple grep will show them.


type: ci
user: aku
ecomment:
  Replaced the manually written C code for the per-interp global context with code generated by critcl::iassoc. This means that critcl commit [8cea2c79281b595dfc8933787fb49f32e57334b9] is now required to build the package.

comment:
  Replaced the maually written C code for the per-interp global context with code generated by critcl::iassoc. This means that critcl commit [8cea2c79281b595dfc8933787fb49f32e57334b9] is now required to build the package.


type: ci
user: aku
comment:
  Documented the skeleton tracking API. Regenerated the embedded documentaton. Fixed a typo in the joint names. Fixed references to the capability checking method.


type: ci
user: aku
comment:
  Added license to the documentation and guides. Moved a few things into separate text blocks for sharing (module, welcome). New text block and section for feedback.


type: ci
user: aku
comment:
  Renamed the files of the existing capability classes to separate them from the regular classes. Added definitions (outlines) for all missing capability classes.


type: ci
user: aku
comment:
  Integrated the outline capability classes into the setup, and updated the entries for the existing classes to use the new names.


type: ci
user: aku
comment:
  Removed the MixCapability code from all the derived classes. Centralized the handling (i.e. construction and export) of the capabilities in the base class. This is why we needed all the capability classes, even if only as outline, to avoid errors in that central code.


type: ci
user: aku
comment:
  Restructured the documentation a bit, moving the capability APIs into their own global section. Nodes which may have particular capabilities will simply refer to the relevant subsection. Tweaked the class introductions, adding more descriptions, and section references to superclasses. Regenerated the embedded documentation.


type: ci
user: aku
comment:
  Moved the core callback invokation logic into a separate function, and fixed it to properly save/restore the interp state, and to keep the interp reference valid. The second is a pre-caution, the first definitely necessary or we get bogus "infinite recursion?" messages after invoking callbacks.


type: ci
user: aku
comment:
  Added conversion functions for meta data (output, map, depth). Added various query methods to the depth map generator class.


type: ci
user: aku
comment:
  Simplified the meta data handling, found the utility functions to allocate and release these structures.


type: ci
user: aku
comment:
  Extended depth map generator with method returning the depth map as a CRIMP image, of type "grey16".


type: ci
user: aku
comment:
  Extended image generator with methods to query and specify formats, and to get the image. Note that we are not supporting all pixel formats. Added notes re the XnPixelFormat enum, this one is 1-indexed.


type: ci
user: aku
comment:
  Disabled propagation of callbacks to Tcl level until the thread/event issues are sorted out. Left the debug output in the code. Extended common class def to allow the higher levels to override which object is used in the callbacks. This part requires commit [83f5a3c97cedd82807ba537d3c6115260f370d0c] of critcl.


type: ci
user: aku
comment:
  Partial implementation of the alt.view and framesync capabilities (callbacks on changes). Use requires ability to test if a cmd name refers to a kinetcl node object command, and conversion from that node handle


type: ci
user: aku
comment:
  Restricted the special @unmark to the C-level base class, and added the special @mark method. Updated the policies using @unmark to go through the new delegate.


type: ci
user: aku
comment:
  Added validation of instances as kinetcl objects, Tcl- and C-level, the latter calling out to the former. Using the new @mark special.


type: ci
user: aku
comment:
  implemented various global commands, especially the global wait/update functionality. The wait-one-update-all makes use of the new instance validation.


type: ci
user: aku
comment:
  Code reorganization. Split the support.tcl into smaller, more manageable pieces. Class support, Callback support 1/2/3.


type: ci
user: aku
comment:
  Completed implementation of alt.view and frame.sync capabilities, now that we can validate kinetcl instances.


type: ci
user: aku
comment:
  Fix crash in pose enumeration. Have to pre-allocate the individual strings, and use the API taking the string-length. Otherwise we have a crash, or bogus strings.


type: ci
user: aku
comment:
  Fixed crash in the 2:1 and 3:1 callback management code. Forgot to check if the callback is set when doing an unset.


type: ci
user: aku
comment:
  Skeleton tracking. Added more introspection to the profiles. Fixed off-by-one-translation errors between the OpenNI enum and my strings. They seem to consistently enumerate from 1.


type: ci
user: aku
comment:
  Moved the low-level callback code generation into separate file and command, and simplified the higher-level management. This is also preparation for reworking these low-level pieces to be properly thread-safe. Now this is all handled in a single place.


type: ci
user: aku
comment:
  Saved state of the reworked callback processing. Basic handler now generates events, enqueues them, separate event handler function. Compiles fine, albeit with warnings. Un tried in execution. Event cleanup is incomplete. Still thinking about how to handle callbacks where multiple events can be collapsed into one without loss of usability.


type: ci
user: aku
comment:
  Fixed return types of the event handling functions, and have them return proper signals to the core event system. Moved the instance information out of the generated part of the event structure and handle directly. Added code cleaning up unprocessed events at instance destruction. First tests show callbacks and event handling, without crash. At least new-data. Unclear for the callbacks with more complex structures in the events. Also still to do the collapsing of various event sequences to the last. Thinking about indirection through the instance to keep the data about the last event. Must be mutex-protected.


type: ci
user: aku
comment:
  Added missing field destruction when processing out-dated event. Also, a clarification: The "no crash anymore" mentioned in commit [fb9433ab00] is true only when using a Tcl compiled for threading as only that will have proper mutex protection in Tcl_ThreadQueueEvent() and/or Tcl_ThreadAlert(). Without that it can still crash, although it usually takes longer than before callbacks became proper events.


type: ci
user: aku
ecomment:
  Implemented event collapsing (throttling), configurable. Currently used only for the "newdata" event of which we get several tens per second.

  Note: For throttled events R the event queue is currently opened to E again at the processing of the current event, i.e. inside of [update]. Given the high rate of newdata events this means that chances are very high that the next event is added while update runs. Which prevents! update from ever ending, starving out everything else, including idle tasks. :(

  This behavior can be gotten under control by stopping openni generators before update, and restarting after. This also strongly slows down the processing of frames.

  This requires more thought.

comment:
  Implemented event collapsing (throttling), configurable. Currently used only for the "newdata" event of which get several tens per second. Note: For throttled events R the event queue is currently openend to E again at the processing of the current event, i.e. inside of [update]. Given the high rate of newdata this means that chances are very high that the next event is added while update runs. Which prevents! update from ever ending, starving out everything else, including idle tasks. :( This behaviour can be gotten under control by stopping openni generators before update, and restarting after. This also strongly slows down the processing of frames. This part requires more thought.


type: ci
user: aku
comment:
  Added global flag, accessor functions, public commands to control addition of events to the queue without having to perform expensive OpenNI node start/stop operations. With this are able to let the nodes generate their events continously yet quickly disable/enable their queuing before/after invoking "update".


type: ci
user: aku
ecomment:
  More tinkering with the callbacks/events.

  Callbacks arriving during lockout/deferral are not lost anymore but caught in a separate event queue, and moved to the main queue when the lockout/deferral ends.

  This is independent of the throttling applied to "newdata" events.

comment:
  More tinkering with the callbacks/events. Callbacks arriving during lockout are not lost anymore but caught in a separate event queue, and moved to the main queue when the deferal ends. This is independent of the throttling applied to "newdata" events.


type: ci
user: aku
comment: Extended scene-analyzer and user tracker, methods to get segmentation and a user's pixels
ecomment:
  Extended scene-analyzer and user tracker.
  Added methods to retrieve the segmentation and a user's pixels.


type: ci
user: aku
ecomment:
  view-user tweak: Reorganized the summation of the user-labels to be in grey16 space before converting for display.

  Note: This requires crimp commit [9c029a9ace] which provides the grey16/16 add operator.

comment:
  view-user tweak: Reorganized the summation of the user-labels to be in grey16 space before converting for display. Note: This requires crimp commit [9c029a9ace] which provides grey16/16-addition operator.


type: ci
user: aku
comment:
  New example for user-tracking. No pixels, just the various events for users, skeleton-tracking, and pose-detection.


type: ci
user: aku
comment:
  Documentation: Added descriptions of new base methods. Filled the documentation for scene analyzer, image and depth maps. Fixed a few formatting markup typos. Regenerated the embedded documentation.


type: ci
user: aku
comment:
  Documented the global commands operating on the whole OpenNI context. Regenerated the embedded documentation.


type: ci
user: aku
comment:
  Documented the capabilities of depth and map generators. I.e. alternative viewpoint, anti-flicker, cropping, frame synchronization, mirror. Regenerated the embedded documentation.


type: ci
user: aku
comment:
  Implemented support for the general integer capability facility. Implemented all the capabilities based on it.


type: ci
user: aku
comment:
  Modified the examples to use a different visualization of the depth-image: Larger depth differences are color coded, the details are put into the luminance. Note: This requires crimp commit [795374375f] which provides the grey16 split operation we use here.


type: ci
user: aku
comment:
  Documented all capabilities based on the general integer facility. Regenerated the embedded documentation.


type: ci
user: aku
comment:
  Updated install guide to mention crimp dependency. Updated notes on commits required to use, for critcl and crimp. Regenerated the embedded documentation.


type: ci
user: aku
comment:
  Depth maps. Implemented and documented the conversions between real world and projective (sensor) coordinates.


type: ci
user: aku
ecomment:
  Fixed bad indexing in method argument handling.

  Fixed bogus result handling of the query functions.

  Created a convenience method returning a whole skeleton as dictionary. Factored joint retrieval and conversion into a separate function for this.

  Documented the new method.

  New example showing the skeleton tracking (record only).

comment:
  Fixed mis-indexing in method argument handling. Fixed bogus result handling of the query functions. Created a convenience method returning a whole skeleton as dictionary. Factored joint retrieval and conversion into separate function. Documented the new method. New example showing the skeleton tracking (record only).


type: ci
user: andreask
comment:
  Went through the code and changed all places converting a 3d-point to Tcl to use the new helper of commit [10a7a45801].


type: ci
user: andreask
comment:
  New helper function for unboxing 3d points from Tcl list. Modified all places doing so to use this helper.


type: ci
user: aku
comment:
  INCOMPATIBILITY.
    Renamed all the events using camelCase to dashed form, i.e camel-case.

    Added a prefix to some them for better distinctibility.

    Reordered the first two arguments from "obj event" to "event
    obj". That allows later to use objects or ensemble as callback
    commands, with the event then used as method.  Much easier dispatch.

  Reworked the internals generating the callback C code to ensure that
  the dashes do not cause mis-compilation.

  Updated all examples to use new argument order and names.

  Updated the documentation for the new argument order and names, with
  more templating, i.e consistent description, in text, and style.

  Regenerated the embedded documentation.


type: ci
user: aku
comment:
  Updated the documentation, describing method "floor" of scene-analyzers. Regenerated the embedded documentation.


type: ci
user: aku
comment:
  Modified skeleton examples: Moved explicit user/skeleton updates out of the loop and put into the user "newframe" callback.


type: ci
user: aku
comment:
  Modified the gesture class. Apparently we are allowed to specify NULL for the bounding box, making this argument optional. Documented. Regenerated embedded documentation.


type: ci
user: aku
comment:
  Two new examples. Initiate tracking of hands by RaiseHand gesture. Demonstrate both gesture recognizer and hands tracker. The pure form simply shows the tracking dot for the hand, while the other overlays depth image and tracking dot


type: ci
user: andreask
comment:
  Dropped the (un)set-callback-* methods from the visible API and implemented access to them as proper events the nodes may generate. Using Tcllib's uevent package as the raw machine. Requiring version 0.3 (cvs head as of today) as only that supports the (un)bind monitoring we do to (de)activate the C level callbacks as needed instead of having them continuously running.


type: ci
user: andreask
comment:
  Updated all examples to the new API. Note that the internals event details have not been matched up yet.


type: ci
user: aku
comment:
  Stronger reorganization of internals
  (1) Callback API, set-callback-foo. Command prefix now is single-argument.
  (2) Callback API, callback signature now fixed at 3 arguments, with the details provided through a dictionary.
  (3) New base class methods to (un)bind directly at node instances.
  Updated the documentation.
  Updated all examples.


type: ci
user: aku
comment:
  Fix package "uevent" providing the arguments to a callback in order of <obj event detail>. Switching to order <event obj details>, so that our callback may directly dispatch further on the <event>.


type: ci
user: aku
comment:
  Fix bug in the public validation method. Internal method is not public and has to be run by direct access of internal parts.


type: ci
user: aku
comment:
  New class, part of kinetcl, for joint tracking. Hides the event-flow from recognizing a user through calibration to tracking, and generates events on per-user and per-user/joint basis


type: ci
user: aku
comment:
  Two new packages! Pure Tcl. Adapter classes which take events from a joints tracker (see previous commit), and use them to draw the joints and skeleton lines on a Tk canvas. Added to the build script. Updated the examples doing skeleton tracking and drawing, vastly simplified.


type: ci
user: aku
comment:
  New example, hand-tracking/mouse, based on the new joint-tracker. Reporting absolute coordinates. Consider relative coordinates, and ways of reducing jitter in the coordinate stream. Currently two streams, left and right hand get both tracked, for 6DOF manipulation (position, and rotations).


type: ci
user: aku
comment:
  Another mouse example, producing coordinate changes, not absolute coordinates. Both mouse UIs feel a bit like I guess a Theremin would be controlled with. It is continuous. You cannot stop the UI from reacting to a hand. Gestures to (de)activate tracking (or initiate other actions, switch modes, etc.) seem to be a necessity in a full UI.


type: ci
user: aku
comment:
  Simplified the handling of bindings in event-receivers through a new small helper class, "eventbindings", which encapsulates remembrance and destruction.


type: ci
user: aku
comment:
  Documented the various event base classes, and the new high-level joint tracker class. Regenerated the embedded documentation.


type: ci
user: andreask
comment:
  Extended the pure skeleton viewer with recording ability, simple file format, lines of events. Plus new example, playing back such a recording. From there we will go into stance recognition from a recording.


type: ci
user: aku
comment:
  Fixed recorder, store the joint position information. Plus new file, a recording of basic stances. Player not functional yet.


type: ci
user: aku
comment:
  Fixed the player of skeleton/joint recordings. Next add annotations to joints, i.e. names, 3D locations. From there we can then add and debug stance recognition.


type: ci
user: andreask
comment:
  Added build recipes for starkit and starpack forms. Essentially tclkits with the kinetcl packages ready to be required.


type: ci
user: aku
comment:
  Fixed three issues with callback/event handling. The delete and free functions allocate a structure instead of using their argument. Leaks memory per event. Return type of free was wrong also, it returns a bool flag, not void.


type: ci
user: aku
comment:
  Chased compiler warnings, and fixed them. Mainly missing const qualifiers, missing casts, and a missing header inclusion.


type: ci
user: aku
comment:
  Updated the callback support code now as well. Dropped the various uses of uplevel which block proper transmission of location information. The class commands are still found due to critcl::class transiently tweaking the global namespace resolution path.


type: ci
user: aku
comment:
  Update kinetcl's use of critcl::class to the changes in the same-named branch of the critcl repository. This commit is incomplete, the callback support was not touched yet. This will only merge back when the critcl changes become the official 3.1 release.


type: ci
user: aku
comment:
  Chasing compiler warnings, found and fixed genuine bug in kinetcl::user (pixelsof). Released scene metadata with the wrong functions. This was a memory nug waiting to happen. Affected examples are record-users and view-users, as the two users of the method in question.


type: ci
user: andreask
comment:
  Another bug fixed, swapped OK/ERROR in the methods to unset/remove callbacks. Not seen in use as none of the example are removing low-level callbacks, only set them.


type: ci
user: aku
comment:
  Continued refactoring of the callback support code. Completed the basics. Coming up next unification of the setup for 1/2/3 events per callback.


type: ci
user: aku
comment:
  Updated the callback setup code to use the unified core. Refixed [b2ed4cd697, 00c7bda656] in the unified code, was reintroduced by [5ac94cce65].


type: ci
user: andreask
comment:
  Starting update to critcl revision
  [bbf68646b560adf919bcaa564dcfa08fb2935453], i.e. the changed API of
  method definitions now distinguishing between ccommand- versus
  cproc-like. Most methods became cproc-like, with ccommand-like methods
  used only where procedures are not possible (optional arguments,
  special argument types, special result processing, ...). A few methods
  split into two procedures, with the processing of optional arguments
  moved to the TclOO policy/glue level.

  Not yet done, but planned, is to write custom argument and result
  types to allow for more places to use cproc-like methods.


type: ci
user: andreask
comment:
  Another pass simplifying using standard (Tcl_Obj*) and custom result types (XnStatus). Plus various small bug fixes.


type: ci
user: andreask
comment:
  New wrapper class for mirror capability, allowing for simplification of code in C-level (command -> proc).


type: ci
user: andreask
comment:
  New wrapper class for antiflicker capability, allowing for simplification of code in C-level (command -> proc).


type: ci
user: andreask
comment:
  New wrapper class for cropping capability, allowing for simplification of code in C-level (command -> proc).


type: ci
user: aku
comment:
  Merged revisions while no build problems occured, then fixed the problems of the last merged revision.


type: ci
user: aku
ecomment:
  Bugfixes in the conversion work. Tracked in a semi-internal parallel branch. Some fixes are possibly done in upcoming child commits, others becoming irrelevant due to other changes. Part of incrementally testing package buildability. Worked too far ahead without testing/building the commits.

comment:
  Bugfixes in the conversion work. Tracked in internal parallel branch, some fixes possibly done in upcoming child commits, others becoming irrelevant. Part of incrementally testing build ability. Worked too far ahead without testing/building.


type: ci
user: aku
ecomment:
  Match critcl revision [20500734cb84082bd6bdf7c39b932d408923f54e], updating the custom types (ip -> interp), and using new result type (const char*).
  At this point the package builds without warnings (again).

comment:
  Match critcl revision [20500734cb84082bd6bdf7c39b932d408923f54e], updating the custom types (ip -> interp), and using new result type (const char*).


type: ci
user: aku
comment:
  With building ok, re-testing usability: Fixed bug in the new capability policy classes. Just a forward for @self is not enough. It has to be explicitly exported as well.


type: ci
user: aku
comment:
  More careful refcount handling in @self, prevent possible loss of the Tcl_Obj* in case of new == old


type: ci
user: aku
comment:
  Fixed seg.fault. Switched to a custom Tcl_Obj* result type which doesn't fiddle with the refcount of the result returned by our methods like the standard type does.


type: g
user: andreas_kupries
comment:
  Edit &#91;[/info/c792c29f1a9b754d | c792c29f1a9b754d]&#93;: Add tag "critcl-match-2f446e5a985fe5c5cd11d8b393f817d1710f99f2".


type: g
user: andreas_kupries
comment:
  Edit &#91;[/info/a9dbb35a2a4949c4 | a9dbb35a2a4949c4]&#93;: Add tag "critcl-match-20500734cb84082bd6bdf7c39b932d408923f54e".


type: g
user: andreas_kupries
comment:
  Edit &#91;[/info/a5647b59f244dff0 | a5647b59f244dff0]&#93;: Add tag "critcl-match-6eb4178d77876c47db718edb24499c5e5f8cd50c".


type: ci
user: aku
ecomment:
  Modified all methods returning images to handle truncation of input
  data without a panic, by returning an incomplete image instead.

  This has been seen so far only for depth-images.  Time until occurrence
  is highly variant.  So far the issue has been seen within 5 minutes,
  11 minutes, and 30 minutes, all via 'view-skeleton'. Not seen so far
  for 'view-depth'.

  The moment it occurs probability for re-occurrence rapidly climbs to
  100%. I.e. after first occurrence it becomes roughly 50% immediately
  100% in short order. Skeleton tracking in NITE seems to get the
  truncated images as well, as tracking does not seem to start when
  moving in front of the sensor.

  It seems that the best way of dealing with the issue is to exit the
  process and restart it, cleaning the broken state. If that is done I
  would recommend to add timing commands to the restart loop as well, to
  gain a larger record of time to occurrence from start of process.

comment:
  Modified all methods returning images to handle truncation of input
  data without a panic, returning and incomplete image instead.

  This has been seen so far only for depth images.  Time until occurence
  is highly variant.  So far the issue has been seen within 5 minutes,
  11 minutes, and 30 minutes, all via 'view-skeleton'. Not seen so far
  for 'view-depth'.

  The moment it occurs probability for reoccurence rapidly climps to
  100%. I.e. after first occurence it becomes roughly 50% immediately
  100% in short order. Skeleton tracking in NITE seems to get the
  truncated images as well, as tracking does not seem to start when
  moving in front of the sensor.

  It seems that the best way of dealing with the issue is to exit the
  process and restart it, cleaning the broken state. If that is done I
  would recommend to add timing commands to the restart loop as well, to
  gain a larger record of time to occurence from start of process.


type: ci
user: andreask
comment:
  Modified view-skeleton to exit cleanly when encountering image-truncation  Added a helper script which can keep an application alive after crash/exit, recording runtimes to a log.


type: ci
user: aku
comment:
  Documentation tweak, list API reference among the related documents of the introduction. Regenerated embedded.


type: ci
user: andreask
comment:
  Added Kettle to the list of build requisites. Split the build instructions into unix versus windows. Small tweaks and typo fixes in other places.


