README for Galileo, Indigo2 Video and IndyVideo Demos the file demo.scf is included in the galileo.sw.demos subsystem. and gets loaded as /usr/demos/bin/video/galileo/demo.scf This directory contains the following demos and files: specialfx: ---------- 'specialfx' demonstrates many of the special effects features possible with Galileo, Indigo2 Video and IndyVideo, particularly in the areas of chroma keying, luma keying, and transitions (also known as wipes & fades, blends, and/or switches). These effects, by definition, generally operate upon two input sources. 'specialfx' demonstrates these effects with the two input sources consisting of one video input source (e.g. a camera connected to your video board input), and one graphics source (i.e. pixel data which is drawn on your computer display). The results are sent to the video output, and also displayed on the screen. The current version is not designed to show all additional possibilities available with the digital break-out-box option(s). However, the video input source may be set to any of the digital inputs or outputs (see below, under "options"). Running 'specialfx': Exit existing video applications (e.g., videoin). Within the directory /usr/demos/bin/video/galileo, type 'specialfx'. You may also decide to use the simple shell script 'run_specialfx', which can be copied to and run from any directory. NOTE: you must edit this file if you wish to use 'run_specialfx' to launch specialfx with any of its command line options. The icon for 'run_specialfx' is one you can drag anywhere within your desktop environment so that you may run the 'specialfx' program whenever you double-click on it, as long as this directory remains intact. 'specialfx' assumes you have an active video input source which is appropriately selected using the videopanel. 'specialfx' is best demonstrated when a high quality video monitor is available to view the video output. In order to quit, select 'Quit' under 'File' on the main panel, or you may also press the 'q' key while the mouse is inside the video blending window. The layout for the program upon startup, is as follows: - An unmarked region is defined in the upper left corner of your monitor's screen as an input graphics window. The dimensions of this region are either NTSC or PAL sized to match your input source type. Whatever is drawn to and appears in this region will serve as a graphics input source to the program. This region's location currently cannot be changed. - The active video input source is used as a second input source. - A video blending window appears in the lower left. The result of the special effects are displayed here, as well as sent to the video output of your video board. Characteristics of this blending window include: - The window may later be moved if desired. - The window contents are 24 bit color, however if an additional video input window is opened, then both the blending window and the third window will become 12-bit dithered versions of the video output. - The window and its contents may be zoomed up and down using the '+' and '-' keys (with the mouse positioned inside the window). A zoomed up window may be panned using the arrow keys. - NTSC users will see an NTSC sized window by default. PAL users will see a PAL window, zoomed down 1/2 in each dimension, which may then be zoomed up and viewed with truncation and with use of panning, if so desired. - A main program control panel. The contents of the main control panel are as follows: Menu Bar with pulldowns for: File Controls Apps Utilities Help Four buttons: - Grab & Save - Grab & Display - Gfx over Video - Video over Gfx Found under 'Controls', the 'Display All Control Windows' menu choice brings up three windows which control three modes of blending. These three modes are: luma keying, chroma keying, and switches (transitions). For all modes, one of your two input sources is defined to be the 'Foreground' source, and the other as the 'Background'. Touching any of the sliders or buttons on any one control window activates the blending associated with that window. The three modes of blending are: Luma keying: pixels are selected from your foreground source based upon their luminance (Y value in YUV color space), and blended with variable transparency with the corresponding pixels from your background source. Chroma keying: pixels are selected from your foreground source based upon their chrominance (U and V values in YUV color space), and blended with the corresponding pixels from your background source. Switches (or transitions): pixels are selected from your foreground source based upon their spatial location, and blended with the corresponding pixels in your background source. The usual use of such a spatially based effect is that a progression is made over time which in essence executes a transition from one source to the other. The Luma Key control window consists of four sliders: Ymin, Ymax, Sharp, and Dense. Ymin and Ymax specify a range of Y values for the execution of your key. Sharp performs a filter on the selection of the your Y values, and may be visually described as a sharpness of the key. Dense (Density) controls the density or opacity of the foreground pixels *not* selected by the Y range key. The Chroma Key control window consists of five sliders: Umin, Umax, Vmin, Vmax, and Sharp. These perform the same functions as the luma sliders, only for U and V instead of Y. Also, note there is no density or opacity control. NOTE: Please refer to your Video Library guide(s) for examples and discussion on keying, related subjects, and the parameters which are accessible to user control through the Video Library (VL). Both the Luma Key and Chroma Key control windows contain 'lock' buttons and preset buttons A B 1 2 3 4 5. The 'lock' buttons lock the min and max sliders together so that you maintain a constant range. The preset buttons allow you to save the current settings for future recall, much in the way radio station presets work. In order to save your current settings into button 1, simply press the 'set' button, and then press button 1, deactivating the 'set' button. When you press any preset button without the 'set' button being activated, then the sliders will be set to the last stored values. By default, the control windows come with a few useful preset values. The A button on the Chroma window is a key on a shade of blue found in the demo program 'atlantis'. The A button on the Luma window should work for black or near black values. At this time, there is no way to save these presets into a file, therefore the presets are only useful during the time in which 'specialfx' is running. The up and down arrow keys allow for incremental (+1 and -1) of the slider values on the Luma and Chroma Key control windows. The Switch Control consists of several transition buttons which execute transitions from one source to the other. There are also controls for the speed, sharpness and repeat (a geometry factor applying to some but not all transitions). Also, if the 'automatic' toggle is deactivated, the 'manual' slider allows one to control the progression of the switch. For all modes of blending, the 'Gfx over Video' and 'Video over Gfx' buttons allow you to specify which of the two input sources will be considered the foreground and which will be the background. The rest of the menu choices and buttons: Under Apps:Buttonfly,ImageWorks,Showcase,Movieplayer,Video Paint,Video T-mesh Each of these launches the correspondingly named application or demo program. These are included for easy access to interesting material to use as your graphics source. Vidpaint and vidtmesh are described below, the rest should have their own man pages. Some of these may not by default place their windows into the graphics source region (upper left), so it is up to you to do so. You need to have 'imgtools' installed in order to run ImageWorks (/usr/sbin/imgworks). Under Utils: Video Control Panel, Show Color Wheels The video control panel (videopanel) is essential in selecting your video input source (e.g. composite 1, composite 2, etc.) and providing access to all basic video control functions. Show Color Wheels displays some color wheels which are very instructional when placed into the graphics source region during luma and chroma keying operations, and can be used as an aid in identifying the desired values for your sliders. It is important to note that the color wheels represent an RGB color space and not a YUV color space. Grab & Save, Grab & Display These buttons allow you to capture a single full-sized frame of your video input source. The saved frame can then be displayed as part of your graphics source. The ImageWorks app allows you to view and perform some basic image processing algorithms from the image processing library on the saved frame. Customizing the specialfx demo environment: 'specialfx' has several shell scripts which called depending on which buttons on the main control panel are pressed. The contents of these scripts may be changed but the names of the scripts must remain the same for proper operation. Thus, there is room for tailoring of 'specialfx' to demonstrate 'favorite' applications, demos, etc.. The X resource file, 'Specialfx', which can be found in /usr/lib/X11/app-defaults, may also be modified for different fonts, button labels, etc.. Under Apps, the following shell scripts are called. The labels for these buttons are found in the resource file 'Specialfx' app1.sh : run 'buttonfly' (access to installed graphics demos) app2.sh : run 'imgworks' - (show and process a snapped image) app3.sh : run 'showcase' (can show text overlays, etc.) app4.sh : run 'movieplayer' (can run a digitized movie) app5.sh : run 'vidpaint' demo (see below) app6.sh : run 'vidtmesh' demo (see below) The grab & display, grab & save buttons on the main menu: grabndisp.sh: run 'vidtomem' to grab a frame and display it grabnsave.sh: run 'vidtomem' to grab a frame Help and Util pulldowns: help.sh : view a showcase document with help (this document). util1.sh : run 'videopanel' util2.sh : display (using 'ipaste') color wheels for reference The 'snapped image' or 'grabbed frame' referred to above, is the file out-00000.rgb. In the default operation, there is always just this one file, which gets written over whenever 'grabndisp.sh' and 'grabnsave.sh' are run (both use vidtomem). options: -------- To see 'specialfx' command line options, type 'specialfx -h'. Note that the optional command line arguments must be specified in the order suggested for proper operation. Digital video input and output may be specified in one of 2 ways: 1) set the desired inputs and outputs using the video control panel, then run specialfx with no command line arguments (default mode). 2) use the command line options -v <videonode> and -o <videonode> to set the input and output video nodes respectively, where 'videonode' is an integer with one the following values: 0 (analog), 1 (digital 1), or 2 (digital 2). vidpaint: --------- Vidpaint captures video into memory at the 1/4 by 1/4 size (1/8 the area of the full size of the source you are using), and then draws the frames into a window. You can 'paint' with the frames by pressing down on the left mouse button and dragging the mouse around. The middle mouse button clears the background, and the right mouse button brings up a pop up menu with many options which you can experiment with. If you run vidpaint independently, without having first run specialfx, you may have to make sure that the device SYNC is set to SLAVE mode. The input source will be the current default setting, which you can set with the videopanel. If 'specialfx' is running, the input used by 'specialfx' will become the input for vidpaint. vidtmesh: --------- Vidtmesh captures video into memory at the 1/4 by 1/4 size, (1/8 the area of the full size of the source you are using) and places the frames onto a 3D triangle mesh (tmesh) grid, which you can then manipulate in space. The left mouse button zooms up and down, the middle mouse allows you to rotate the grid, and as in vidpaint, the right mouse brings up a pop up menu with several options which you can experiment with. If you run vidtmesh independently, without having first run specialfx, you may have to make sure that the device SYNC is set to SLAVE mode. The input source will be the current default setting, which you can set with the videopanel. If 'specialfx' is running, the input used by 'specialfx' will become the input for vidtmesh. bigvideoin: ---------- A very simple mini application which shows a zoomed up videoin window which nearly fills your display with video. trails: ------- A specialty program which sets up a feedback loop so that you can see trailing effects. This program requires a lot of fine tuning based upon your incoming picture content. One generally needs to run the example blending control interface, /usr/people/4Dgifts/examples/video/vl/keyctls and also experiment with the Pro/Video Input and Pro/Video Output control panels of the video control panel (videopanel). Known bugs, limitations and/or explanation of specific behaviors: --------------------------------------------------------------------------- - Other apps such as video input must be exited before running 'specialfx', otherwise the program will exit with a startup error. - Running other apps while 'specialfx' is running may leave 'specialfx' in an inoperable condition. Quitting and starting over again may be necessary. - There is a flickering line at the very top of the video blending window ('specialfx'). This is similar to the behavior seen in 'videoin'. One way to stop seeing this line on your screen (note that it should not exist on your video output) is to push the window down against the bottom edge of your screen until the top window border comes down and cuts off the flickering line. This may be resolvable in a future release. - In zoomed down modes, there may sometimes be some jittery behavior or misalighed video in the zoomed down video window initially. Zooming up and then back down usually fixes the image. Also, if an additional video input window is started, the placement of the two windows may be sensitive - there may be many positions which may result in poor video image quality. This is likely a software issue which should be resolved in a future release. - When the buttons on the switch control window ('specialfx') are pressed, there will occasionally be a slight flash from graphics to video or vice versa, just before the switch occurs. This is a VL implemenation issue which will likely be improved/fixed/changed in a future release. - 'bigvideoin' may not work properly if other apps are running video input windows. Exit other video-in windows for best results. - the 'Grab and Display' and 'Grab and Save' functions currently attempt to write a captured frame to /var/tmp/out-00000.rgb. In some cases this file may exist and have write restrictions which cannot be overcome. In these cases, you will see the message, 'iopen: can't open output file out-00000.rgb' You may try to delete or move the current copy in /var/tmp in order to allow you to write a new one. - It has been observed, in rare circumstances, that running 'vidpaint' or 'vidtmesh' while 'specialfx' is running, may result in strong flickering both in the blending window and in the output display. This is strictly a software issue, which will likely be fixed in a future release. Quitting from the 'specialfx' program and running some other standalone apps such as /usr/people/4Dgifts/examples/video/vl/simpleblend, or 'trails', or 'bigvideoin' and then returning to 'specialfx' should fix the situation.
Source
Documentation
Images
Reference