A system and process for making live digital video feeds simultaneously
available to multiple applications running on a computing device. This
involves using a live image server that maintains a camera directory file
containing the names of available feeds, and the name and location of an
image file for each feed. The image file includes image data
corresponding to a current frame of the feed and an index indicative of a
frame sequence number. Each time a new frame becomes available, image
data representing the frame is put into its associated image file, in
place of previously stored image data. A client application chooses a
feed from the camera directory file, then accesses the associated image
file and makes a copy of the image data. When the client wants a new
frame, it determines if the image file index has changed. If so, the
client copies the new image data.