[ Previous | Next | Contents | Glossary | Home | Search ]
Ultimedia Services Version 2 for AIX: Programmer's Guide and Reference

Chapter 13. Programming with Video and Monitor Support Objects

The UMSVideoMonitor and UMSVideoIn classes are an Ultimedia Services Version 2 feature and do not apply to Ultimedia Services Version 1.2.1.

The UMSVideoMonitor class defines an interface to start the monitoring of live video in a window. The Monitor object itself is not meant to be instantiated. Instead, it is meant to be the parent class of Video Input (and Output) objects. This was done because almost all video capture hardware has built-in monitor capability. Therefore, a monitor interface should be part of a video input (or video output) object. If you desire to instantiate a pure monitor object, you would merely construct a VideoIn and Monitor object and cast the object to a type UMSVideoMonitor. This would, in effect, polymorph the UMSVideoIn object into a UMSVideoMonitor object. In most applications however, the UMSVideoIn class would be the most appropriate. The UMSVideoMonitor class inherits from the UMSXWindow class.

The UMSVideoIn class defines an interface to do video capture from a video hardware device. This is not to be confused with a UMSVideoCapture object, whose purpose is to do video file output and synchronization. This is capture at the device level. The application is able to grab frames of video data, one frame at a time. The UMSVideoIn class inherits from the UMSVideoMonitor class (who in turn, inherits from the UMSXWindow class). The class also inherits from the UMSNegotiatorSource class. This is a case of multiple inheritance. The UMSVideoIn class is a negotiator source because it is a source of video, for which a format and other attributes must be negotiated.

It is intended that there are subclasses of UMSVideoIn for specific hardware. These device-specific objects contain most of the video implementation. This is because every device has a slightly (or wholly) different interface. Also, each device has different levels of support for the defined methods and supports different formats. The best way for an application to program to the video device objects would be to use a Metaclass. The metaclass would then decide the best object to instantiate bases on the config file, the system configuration and the desired video format. UMS supplies some existing VideoIn device objects. These are UMSVideoInSR, UMSVideoInS15v, UMSVideoInParallax, UMSVideoInPortable, and UMSVideoInLM.

UMSVideoInSR This object is for the Ultimedia Video I/O adapter for Micro Channel. This adapter supports JPEG compression/decompression, NTSC and PAL input, NTSC output, RGB24, RGB8, and YUV422 capture. Because the adapter does not support monitor, the monitor functions are unsupported in the object.
UMSVideoInS15v This object is for the S15 Video extension board. The S15 is a graphics card for PCI and the video extension is a low-cost video capture option that fits in an ISA slot. The card supports NTSC and PAL input. It supports capture of YUV422, and RGB8. It does contain support for a hardware monitor of the live input and/or monitor of captured data. There is scaling support (up or down) on the graphics portion.
UMSVideoInParallax This object is for the PowerVideo PCI card from Parallax Graphics. This card supports NTSC and PAL capture. It also supports JPEG compression (capture)/decompression(display) and RGB24 capture and display. The card has support for hardware monitor, which can be carried out in conjunction with the compression or decompression of a video stream. There is a scale down and a zoom on the card. The card also has support for the simultaneous compression and decompression of a video stream, which makes it ideal for video conferencing.
UMSVideoInPortable This object is for the G10 Graphics with Motion Video Adapter. This hardware supports NTSC and PAL video capture. It can capture YUV data. It has scale down capabilities. The device has hardware monitor support.
UMSVideoInLM This object is for the GT20 Graphics Adapter. It supports NTSC and PAL monitor and capture. It can scale down on capture, and scale up for display.

UMS supplies more objects in the future as hardware becomes available for use. The framework is set up such that third parties can also create UMS objects. This is ideal for a hardware provider. The hardware vendor would now supply a UMS object and config stanza in addition to a device driver and configuration method. To do this, the object would inherit directly from the UMSVideoIn class. The object would override any applicable methods based on what the hardware could support.

To learn more about programming with VideoMonitor and VideoIn objects, see:

[ Previous | Next | Contents | Glossary | Home | Search ]