cpython/Demo/sgi/video
Guido van Rossum 5e044b7009 - Separated grabbing (which isn't used much!) from VFile.
- Renamed old Vcopy.py to OldVcopy.py, some cosmetic changes to it (is
  it still needed?)
- Added new Vcopy.py which does everything that Vtime.py does but also
  format conversions, image scaling, and packfactors.
- VFile: make packfactor always a tuple; introduce set and get methods
  for pf, format, and calculate some derived values.
- Added new module GET.py to std library, use it instead of defining
  DM* in VFile.
- Get rid of C programs (new Python programs can do all that they do
  and they probably don't understand the current file format anyway).
1993-02-25 14:20:13 +00:00
..
.cvsignore Initial revision 1992-05-14 14:24:57 +00:00
cam.py new syntax 1992-02-11 14:50:22 +00:00
camcorder.py new syntax 1992-02-11 14:50:22 +00:00
cmif-film.ms Initial revision 1992-02-28 16:19:15 +00:00
colorsys.py new syntax 1992-02-11 14:50:22 +00:00
DisplayVideoIn.py DisplayVideoIn - Class similar to LiveVideoIn but sends data from 1993-02-17 15:58:49 +00:00
Dsend.py DisplayVideoIn - Class similar to LiveVideoIn but sends data from 1993-02-17 15:58:49 +00:00
i2v.c Initial revision 1992-02-11 14:50:54 +00:00
imgconv.py - Separated grabbing (which isn't used much!) from VFile. 1993-02-25 14:20:13 +00:00
IN.py Python equivalent of <netinet/in.h> (SGI specific, hence not in python/lib). 1992-09-24 15:02:46 +00:00
LiveVideoIn.py Moved line-size stuff to single routine 1993-02-17 15:54:06 +00:00
LiveVideoOut.py Added support for 24-bit rgb movies 1993-02-17 15:54:32 +00:00
Makefile Initial revision 1992-02-11 14:50:54 +00:00
makemovie.py Minor improvements, comments; fix Vinfo -d. 1992-08-18 21:11:18 +00:00
README - Separated grabbing (which isn't used much!) from VFile. 1993-02-25 14:20:13 +00:00
rgb2video.py Use imgconv to try to do image type conversion 1993-01-27 11:40:16 +00:00
senddefs.py Added options to Vsend and Vreceive; moved common defaults to senddefs. 1992-09-24 15:01:37 +00:00
squash.c Better check of input data? 1992-02-11 14:47:11 +00:00
squash2.c Initial revision 1991-10-30 11:52:48 +00:00
statit.py new syntax 1992-02-11 14:50:22 +00:00
syncaudio.py new syntax 1992-02-11 14:50:22 +00:00
tomono.c Initial revision 1991-10-30 11:52:48 +00:00
tv.py new syntax 1992-02-11 14:50:22 +00:00
v2i.c Fixed to understand new file format; and cosmetics. 1991-11-04 15:54:36 +00:00
Vaddcache.py New modules LiveVideo{In,Out} (interfaces will change!). 1992-09-22 17:23:17 +00:00
Vcopy.py - Separated grabbing (which isn't used much!) from VFile. 1993-02-25 14:20:13 +00:00
vcopy.py Changes for supporting monochrome and greyscale video (not yet fully 1992-12-14 12:25:21 +00:00
Vedit.py VFile.py: fix bogus getrandomframe(). 1993-02-16 16:10:02 +00:00
VeditForm.fd VFile.py: fix bogus getrandomframe(). 1993-02-16 16:10:02 +00:00
VFile.py - Separated grabbing (which isn't used much!) from VFile. 1993-02-25 14:20:13 +00:00
Vfix.py New tool Vfix: truncate the right edge of 'grey' type images to make 1992-09-29 17:07:10 +00:00
VGrabber.py - Separated grabbing (which isn't used much!) from VFile. 1993-02-25 14:20:13 +00:00
video.doc Added usage() and help() to Vrecb, and turn on -f by default. 1993-02-05 15:34:22 +00:00
video.py Append /ufs/guido/src/video to sys.path. 1992-05-12 12:33:44 +00:00
video2rgb.py Rewrite applypackfactor() using imageop: faster and more general; 1993-02-25 00:19:14 +00:00
Viewer.py VFile.py: fix bogus getrandomframe(). 1993-02-16 16:10:02 +00:00
vinfo.py Print real width and warn for stride not a multiple of 4 bytes 1992-05-07 15:21:52 +00:00
Vinfo.py Fix terse mode for printing tuple packfactor and to avoid zero division 1993-02-25 00:16:27 +00:00
Vmkjpeg.py VFile: added new formats 'jpeg' and 'jpeggrey'. Decompression is done 1992-09-29 13:40:47 +00:00
Vplay.py Added options to make window bigger than video (for recording to tape) 1993-01-27 11:42:21 +00:00
vpregs.py Initial revision 1991-11-04 14:31:03 +00:00
Vrec.py Vrec.py: don't print Ids if no frames are captured. 1993-02-15 17:33:36 +00:00
Vrecb.py Added audio recording to Vrecb 1993-02-24 16:08:21 +00:00
Vrecc.py Added mono, grey2 and grey4 formats 1992-12-23 15:37:20 +00:00
Vreceive.py Use plain python. 1992-12-24 11:37:53 +00:00
Vsend.py Use plain python. 1992-12-24 11:37:53 +00:00
Vtime.py VFile: added new formats 'jpeg' and 'jpeggrey'. Decompression is done 1992-09-29 13:40:47 +00:00
vtime.py new syntax 1992-02-11 14:50:22 +00:00
Vunjpeg.py VFile: added new formats 'jpeg' and 'jpeggrey'. Decompression is done 1992-09-29 13:40:47 +00:00
watchcursor.py Cleanup of old files, added watchcursor.py (for Vedit.py), updated README. 1993-02-16 16:49:44 +00:00

CMIF video tools
================

This directory contains Python and C programs to manipulate files
containing digitized video in the "CMIF video format".


History
-------

We started this in October 1991, when we had a large framegrabber
board on loan from SGI for a few weeks: we developed a movie recording
program and added numerous features, including still frame capture and
synchronous sound recording using a second machine (the machine
holding the framegrabber board didn't have audio).

During the following months, when we started using and processing the
recorded film fragments, the "CMIF video format" was revised several
times, and we eventually created an object-oriented interface for
reading and writing various incarnations of these files, called VFile.
(This module is also used by our flagship application, the CMIF
editor, not in this directory but in /ufs/guido/mm/.)

When we got our own Indigo entry-level video board (in June 1992) and
a version of the Irix video library that supported capturing PAL
format (in August 1992), Sjoerd added an interface to the video
library to Python (sv) and Guido wrote Vrec.py (based upon a still
frame grabber by Sjoerd, in turn based upon SGI demo code in C) to
record a movie using it.  Vrec was soon followed by modernized
versions of the other programs (Vinfo, Vplay, Vtime) and an
interactive editor (Vedit).  Finally, VFile was rewritten for more
modularity, functionality and robustness, and various other tools were
added as needed.  Also, new options were added to existing tools, and
several new video file formats were added.

	Guido van Rossum
	Jack Jansen
	Sjoerd Mullender


Overview of files
-----------------

cmif-film.ms	description of the CMIF video file format (more than a
		little out of date -- read the source for VFile for
		more info about new file formats)


These are programs with a command line interface:

Vrec.py		record video movies using the Indigo video library and
		board

Vplay.py	play video movies

Vinfo.py	show statistics on movies

Vtime.py	Copy a video file, manipulating the time codes (e.g.
		faster/slower, or regenerate time codes, or drop
		frames too close apart)

Vcopy.py	Universal video file copying tool.  Can manipulate the
		time codes, change the type, size, and packfactor.
		Subsumes Vtime.py.

Vmkjpeg.py	compress an rgb or grey video file to jpeg[grey] format

Vunjpeg.py	expand a jpeg[grey] video file to rgb or grey format

Vfix.py		truncate the scan line width of a video file to
		a multiple of 4 ('grey' images only)

Vedit.py	interactive video editing program (uses the FORMS library)

Vsend.py	unicast or multicast live video as UDP packets

Vreceive.py	receive transmissions from Vsend

Vaddcache.py	add a "cached index" to a video file, for faster playing

Vrecb.py	like Vrec.py but uses "burst capture" -- somewhat specialized

Dsend.py	like Vsend.py but sends screen snapshots (to Vreceive.py)

DisplayVideoIn.py	Like LiveVideoIn.py but reads screen snapshots

rgb2video.py	combine a sequence of rgb image files into a CMIF video file

video2rgb.py	split a CMIF video file into a sequence of rgb image files


These modules and files are used by the above programs:

VFile.py	classes that read and write CMIF video files

Viewer.py	two viewer classes used by Vedit

LiveVideoIn.py	live video input class, used by Vsend

LiveVideoOut.py	live video output class, used by Vsend and Vreceive

imgconv.py	Image conversion subroutines for rgb2video.py

senddefs.py	Defaults shared by Vsend and Vreceice

watchcursor.py	Generally useful module to define a watch cursor in GL

VeditForm.fd	FORMS' fdesign definition for Vedit's form