MultiMediaLib (MML) aims at being a powerful yet simple means to work on uncompressed audio and video high quality sequences.
MML is thought to be used in the framework of multimedia research activities carried on by the DSPLab members and students.
Obviously, there exist a number of alternatives out there, which have a long history of widespread application, reliability, completeness, and speed. OpenCV (http://opencv.willowgarage.com/wiki/), for example, is one of such systems. However, if you need to understand what happens under the hood, you must write some C code, at some time. On the other side, Matlab (http://www.mathworks.com/) ha s a long history of usage in image processing, and we currently use it almost every day, but when you look at speed it is not a viable tool.
Please refer to the demo files (
audio_demo.c, etc.) that are provided to understand how you may take profit of the functions to read, process, and write multimedia data.
You may also want to download a couple of tools that you should use to work with uncompressed files:
- PYUV, for viewing raw video (http://dsplab.diei.unipg.it/pyuv_raw_video_sequence_player)
- Audacity, for hearing raw audio (http://audacity.sourceforge.net/)
If you think the logo is horrible, I agree. This is just a placeholder for a cool logo that will be designed in the next future (by the way, if you have an idea and you are good at Scalable Vector Graphics, send me your sketch, preferably in yellow and red tones).
This library is conceived to be as portable as possible among different OSes, although it is being mainly developped under Windows 32 bit. The currently tested platforms are:
- Microsoft Windows 32/64 bit, Visual Studio
- Linux 32/64 bit, gcc
If you need a compiler for the Windows environment, try to download the free
- Visual C++ 2008/2010 Express Edition (http://www.microsoft.com/Express/VC/)
Moreover, you'll find that the library is heavily commented with Doxygen-style commands. If you follow a similar approach, your functions will be automatically documented and shown in this doc!! For more info and to download it,
- Doxygen (http://www.stack.nl/~dimitri/doxygen/)
This library may require external libraries, if certain settings are enabled in the configuration file,
mmlconfig.h; they are
- zlib (http://www.zlib.net/): lossless compression of image, sound, and other data
- bzip2 (http://www.bzip.org/): lossless compression of image, sound, and other data
- OpenJPEG (http://www.openjpeg.org/): JPEG 2000 lossy compression of image (slow speed)
- JPEGLib (http://www.ijg.org/): JPEG lossy compression of image
- Windows Media Photo (http://www.microsoft.com/windows/windowsmedia/forpros/wmphoto/default.aspx): JPEG XR lossy compression of image
- Kakadu (http://www.kakadusoftware.com/): JPEG 2000 lossy compression of image (high speed), needs a separate licence
- FreeType (http://www.freetype.org/): high quality font rendering engine
- Remez (http://www.janovetz.com/): equiripple FIR filter design, integrated, just need enabling
- QuickTime (http://developer.apple.com/quicktime/): audio and video importing of MOV files, needs QuickTime player installed, also
- LibTIFF (http://www.libtiff.org/): image importing of TIFF files
- FFMPeg (http://www.ffmpeg.org/): audio and video import of a plethora of formats, necessary under linux
Thus, you must first install all the external libraries you want to use, then enable them in the configuration file, and finally compile MML. To this purpose, use the Visual Studio project or solution, or the gcc Makefile.
Adding your own functions
It is advisable that you create your own functions with a template similar to that used in existing ones. However, you should not add them directly to the library main files; instead, create files with names like
mmlib_groupX.c, if your functions are fine they will be added into the main files by the administrators.
Licensing & download
The library is only available to DSPLab members and students. Grab it from the DSPLab server SMB exports.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.