path: root/apps/plugins/mpegplayer/libmpeg2/README
diff options
Diffstat (limited to 'apps/plugins/mpegplayer/libmpeg2/README')
1 files changed, 204 insertions, 0 deletions
diff --git a/apps/plugins/mpegplayer/libmpeg2/README b/apps/plugins/mpegplayer/libmpeg2/README
new file mode 100644
index 0000000000..2a58846772
--- /dev/null
+++ b/apps/plugins/mpegplayer/libmpeg2/README
@@ -0,0 +1,204 @@
+libmpeg2 is a free library for decoding mpeg-2 and mpeg-1 video
+streams. It is released under the terms of the GPL license.
+The main goals in libmpeg2 development are:
+ * 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 !
+The project homepage is at
+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.
+The basic usage is to just type "mpeg2dec file" where file is a
+demultiplexed mpeg video file.
+The "-s" option must be used for multiplexed (audio and video) mpeg
+files using the "program stream" format. These files are usualy found
+on the internet or on unencrypted DVDs.
+The "-t" option must be used for multiplexed (audio and video) mpeg
+files using the "transport stream" format. These files are usualy
+found in digital TV applications.
+The "-o" option is used to select a given output module - for example
+to redirect the output to a file. This is also used for performance
+testing and conformance testing.
+The "-c" option is used to disable all optimizations.
+libmpeg2 is being used by various other projects, including:
+ * xine ( - started as a simple
+ mpeg-2 audio and video decoder, but it since became a
+ full-featured DVD and video media player.
+ * VideoLAN ( - video streaming over an
+ ethernet network, can also be used as a standalone player.
+ * MPlayer ( - another good player, it is
+ also very robust against damaged streams.
+ * movietime ( - still quite
+ young, but it looks very promising !
+ * mpeg2decX ( -
+ a graphical interface for mpeg2dec for macintosh osX.
+ * TCVP ( - video and music player for unix.
+ * drip ( - a DVD to DIVX transcoder.
+ * PoMP
+ ( -
+ a research player optimized to minimize disk power consumption.
+ * OMS (
+ * XMPS (
+ * GStreamer ( - a framework for
+ streaming media; it has an mpeg2 decoding plugin based on
+ libmpeg2.
+ * mpeglib ( - a video decoding
+ library that usess libmpeg2 when decoding mpeg streams.
+ * daphne ( - a laserdisc arcade game
+ simulator.
+ * GOPchop ( - a
+ GOP-accurate editor for MPEG2 streams.
+If you use libmpeg2 in another project, let us know !
+There are several places where we could easily use some help:
+ * Documentation: libmpeg2 still has no documentation. Every
+ project using it has had to figure things out by looking at
+ the header files, at the mpeg2dec sample application, and by
+ asking questions. Writing down a nice documentation would make
+ the code more easily reuseable.
+ * Testing: If you find any stream that does not decode right
+ with libmpeg2, let us know ! The best thing would be to mail
+ to the libmpeg2-devel mailing list. Also, it would be nice to
+ build a stress test so we can make sure libmpeg2 never crashes
+ on bad streams.
+ * Coding: There is a small TODO list in the mpeg2dec package,
+ you can have a look there ! Most items are pretty terse
+ though.
+ * Porting: If you're porting to a new architecture, you might
+ want to experiment with the compile flags defined in
+ . When you figure out whats fastest on your
+ platform, send us a patch !
+ * Assembly optimizations: We only have x86 and altivec
+ optimizations yet, it would be worthwhile writing routines for
+ other architectures, especially those that have SIMD
+ instruction set extensions ! Also the yuv2rgb x86 routines
+ could probably be optimized a lot.
+A daily snapshot is created using "make distcheck" every night and
+uploaded to .
+It is easier to use than the CVS repository, because you do not need
+to have the right versions of automake, autoconf and libtool
+installed. It might be convenient when working on a libmpeg2 port for
+The latest libmpeg2 and mpeg2dec source code can always be found by
+anonymous CVS:
+# export
+# cvs login (Just press Return when prompted for a password)
+# cvs checkout mpeg2dec
+You can also browse the latest changes online at
+The other CVS modules are mpeg2dec-streams for the test suite, and
+mpeg2dec-livid for the CVS history of the project while it was still
+hosted on the servers.
+See the subscription information at
+This is the main mailing list for technical discussion about
+libmpeg2. Anyone wanting to work on libmpeg2, or maybe just stay
+informed about the development process, should probably subscribe to
+this list.
+All libmpeg2 checkins are announced there. This is a good way to keep
+track of what goes into CVS.
+This is a very low traffic mailing list, only for announcements of new
+versions of libmpeg2. Only project administrators can post there.