libmpeg2 0.4.1 review

by on

libmpeg2 is a free library for decoding mpeg-2 and mpeg-1 video streams

License: GPL (GNU General Public License)
File size: 482K
Developer: Aaron Holtzman
0 stars award from

libmpeg2 is a free library for decoding mpeg-2 and mpeg-1 video streams. libmpeg2 is released under the terms of the GPL license.


mpeg2dec is a test program for libmpeg2. It decodes mpeg-1 and mpeg-2 video streams, and also includes a demultiplexer for mpeg-1 and mpeg-2 program streams.

It is purposely kept simple : it does not include features like reading files from a DVD, CSS, fullscreen output, navigation, etc... The main purpose of mpeg2dec is to have a simple test bed for libmpeg2.

The libmpeg2 source code is always distributed in the mpeg2dec package, to make it easier for people to test it.

Here are some key features of "libmpeg2":
Conformance - libmpeg2 is able to decode all mpeg streams that conform to certain restrictions: "constrained parameters" for mpeg-1, and "main profile" for mpeg-2. In practice, this is what most people are using. For streams that follow these restrictions, we believe libmpeg2 is 100% conformant to the mpeg standards - and we have a pretty extensive test suite to check this.
Speed - there has been huge efforts there, and we believe libmpeg2 is the fastest library around for what it does. Please tell us if you find a faster one ! With typical video streams as found on DVD's, and doing only decoding with no display, you should be able to get about 110 fps on a PIII/666, or 150 fps on an Athlon/950. This is less than 20 cycles per output pixel. In a real player program, the display routines will probably take as much time as the actual decoding !
Portability - most of the code is written in C, and when we use platform-specific optimizations (typically assembly routines, currently used for the motion compensation and the inverse cosine transform stages) we always have a generic C routine to fall back on. This should be portable to all architectures - at least we have heard reports from people running this code on x86, ppc, sparc, arm and sh4. Assembly-optimized implementations are available on x86 (MMX) and ppc (altivec) architectures. Ultrasparc (VIS) is probably the next on the list - we'll see.
Reuseability - we do not want libmpeg2 to include any project-specific code, but it should still include enough features to be used by very diverse projects. We are only starting to get there - the best way to help here is to give us some feedback !

What's New in This Release:
Newer versions of the autotools and FreeBSD and OS X systems are better handled.
x86 accelerations are now supported on the AMD-64 CPU, including on FreeBSD.
The AltiVec features are also better detected.
The 4:4:4 chroma handling, a memory leak in the Xshm code on remote displays, and alignment issues in the sample programs were fixed.
The parser is more tolerant with invalid sequence display extension.

libmpeg2 0.4.1 search tags