summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README188
1 files changed, 188 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..8713268
--- /dev/null
+++ b/README
@@ -0,0 +1,188 @@
+
+
+ABOUT LIBMPEG2
+
+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 http://libmpeg2.sourceforge.net/
+
+
+MPEG2DEC
+
+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.
+
+
+OTHER PROJECTS USING LIBMPEG2
+
+libmpeg2 is being used by various other projects, including:
+
+ * xine (http://xine.sourceforge.net/) - started as a simple
+ mpeg-2 audio and video decoder, but it since became a
+ full-featured DVD and video media player.
+
+ * VideoLAN (http://www.videolan.org/) - video streaming over an
+ ethernet network, can also be used as a standalone player.
+
+ * MPlayer (http://www.MPlayerHQ.hu) - another good player, it is
+ also very robust against damaged streams.
+
+ * movietime (http://movietime.sourceforge.net/) - still quite
+ young, but it looks very promising !
+
+ * mpeg2decX (http://homepage1.nifty.com/~toku/software_en.html) -
+ a graphical interface for mpeg2dec for macintosh osX.
+
+ * TCVP (http://tcvp.sf.net) - video and music player for unix.
+
+ * drip (http://drip.sourceforge.net/) - a DVD to DIVX transcoder.
+
+ * PoMP
+ (http://www.dmclab.hanyang.ac.kr/research/project/PoDS/PoDS_sw.htm) -
+ a research player optimized to minimize disk power consumption.
+
+ * OMS (http://www.linuxvideo.org/oms/)
+
+ * XMPS (http://xmps.sourceforge.net/)
+
+ * GStreamer (http://www.gstreamer.net/) - a framework for
+ streaming media; it has an mpeg2 decoding plugin based on
+ libmpeg2.
+
+ * mpeglib (http://mpeglib.sourceforge.net/) - a video decoding
+ library that usess libmpeg2 when decoding mpeg streams.
+
+ * daphne (http://daphne.rulecity.com/) - a laserdisc arcade game
+ simulator.
+
+ * GOPchop (http://outflux.net/unix/software/GOPchop/) - a
+ GOP-accurate editor for MPEG2 streams.
+
+If you use libmpeg2 in another project, let us know !
+
+
+TASKS
+
+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
+ configure.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.
+
+
+SUBVERSION REPOSITORY
+
+The latest libmpeg2 and mpeg2dec source code can always be found by
+anonymous Subversion:
+
+$ svn checkout svn://svn.videolan.org/libmpeg2/trunk libmpeg2
+
+You can also browse the latest changes online at
+https://trac.videolan.org/libmpeg2/browser
+
+
+MAILING LISTS
+
+See the subscription information at http://libmpeg2.sourceforge.net/lists.html
+
+libmpeg2-devel
+
+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.
+
+libmpeg2-checkins
+
+All libmpeg2 checkins are announced there. This is a good way to keep
+track of what goes into CVS.
+
+libmpeg2-announce
+
+This is a very low traffic mailing list, only for announcements of new
+versions of libmpeg2. Only project administrators can post there.