This package contains MPEG-2 Video extensions for the Dali multimedia processing toolkit. Dali is a toolkit for manipulating multimedia data types developed at Cornell. This package extends that toolkit to provide operators for MPEG-2 video streams. This software works with Dali 1.0 which is available here. This package is designed for flexibility rather than performance. It allows you to build applications that get at the internal coding elements like motion vectors, dct coefficients, etc.
The gzipped, tarfile distribution of the MPEG-2 video extensions is available here.
Dali provides C libraries that define data types for storing images, bitstreams, audio streams, etc and operators (i.e., functions) that operate on those data types. Additionally, Dali provides Tcl bindings for these functions and data types to allow rapid prototyping of multimedia applications using Tcl/Tk. Dali is organized as a collection of "packages". Packages may depend on each other. In general, Dali has a couple of base packages that provide common functionality with the remaining packages being format-specific. All the functions in this package depend only on Dali's "basic" and "color" packages. The other Dali packages are useful, but not necessarily required.
This package has been developed and tested on Linux (2.2.12-20). It doesn't do anything odd, so it should port to other systems pretty easily.
There are only a few things that need to be edited at the beginning of the Makefile. First, the location of where your Dali source tree needs to be set. Second, the location of where tcl.h is on your system needs to be set. Finally, if you are not using a Pentium processor with the MMX instruction set, a flag needs to be defined. All of this is pretty clearly documented in the Makefile itself.
This will produce two libraries:
An example application using the package is included in the subdirectory "example_apps." The example application is written as one big Tcl/Tk script in the file "mpeg2info.tcl". This application allows you to randomly access a from of an MPEG-2 video sequence and view information about motion vectors, macroblock types, etc.
A screenshot of the application is here.
To run the application do the following:
The C API provided in libdvmmpeg2.a is documented here.
The Tcl API provided in tclDvmMpeg2.so are for the most part Tcl bindings to the C API. These bindings can be easily seen by examining the beginning of the file mpeg2init.c