]> git.sesse.net Git - ffmpeg/blobdiff - doc/general.texi
Corrections to channel coupling code to attain conformance for appropriate
[ffmpeg] / doc / general.texi
index 8fa0247b68c9ea224f4b96951d1e654750e43668..a6aa58242fbc60958b447209d998cb0a621595c7 100644 (file)
@@ -40,7 +40,7 @@ FFmpeg supports the following file formats through the @code{libavformat}
 library:
 
 @multitable @columnfractions .4 .1 .1 .4
-@item Supported File Format @tab Encoding @tab Decoding @tab Comments
+@item Name @tab Encoding @tab Decoding @tab Comments
 @item 4xm                       @tab   @tab X
     @tab 4X Technologies format, used in some games.
 @item ADTS AAC audio            @tab X @tab X
@@ -91,6 +91,7 @@ library:
 @item MAXIS EA XA               @tab   @tab X
     @tab Used in Sim City 3000; file extension .xa.
 @item Monkey's Audio            @tab   @tab X
+@item Motion Pixels MVI         @tab   @tab X
 @item MOV/QuickTime             @tab X @tab X
 @item MPEG audio                @tab X @tab X
 @item MPEG-1 systems            @tab X @tab X
@@ -103,7 +104,7 @@ library:
     @tab MPEG-4 is a variant of QuickTime.
 @item MSN TCP webcam            @tab   @tab X
     @tab Used by MSN Messenger webcam streams.
-@item MXF                       @tab   @tab X
+@item MXF                       @tab X @tab X
     @tab Material eXchange Format SMPTE 377M, used by D-Cinema, broadcast industry.
 @item Nullsoft Video            @tab   @tab X
 @item NUT                       @tab X @tab X
@@ -118,7 +119,7 @@ library:
 @item raw MJPEG                 @tab X @tab X
 @item raw MPEG video            @tab X @tab X
 @item raw MPEG-4 video          @tab X @tab X
-@item raw PCM 8/16 bits, mu-law/A-law @tab X  @tab  X
+@item raw PCM 8/16/32 bits, 32/64-bit floating point, mu-law/A-law @tab X  @tab  X
 @item raw Shorten audio         @tab    @tab  X
 @item RealMedia                 @tab X @tab X
 @item RL2                       @tab   @tab X
@@ -153,7 +154,7 @@ FFmpeg can read and write images for each frame of a video sequence. The
 following image formats are supported:
 
 @multitable @columnfractions .4 .1 .1 .4
-@item Supported Image Format @tab Encoding @tab Decoding @tab Comments
+@item Name @tab Encoding @tab Decoding @tab Comments
 @item .Y.U.V       @tab X @tab X @tab one raw file per component
 @item animated GIF @tab X @tab X @tab Only uncompressed GIFs are generated.
 @item JPEG         @tab X @tab X @tab Progressive JPEG is not supported.
@@ -174,7 +175,7 @@ following image formats are supported:
 @section Video Codecs
 
 @multitable @columnfractions .4 .1 .1 .4
-@item Supported Codec @tab Encoding @tab Decoding @tab Comments
+@item Name @tab Encoding @tab Decoding @tab Comments
 @item 4X Video               @tab     @tab  X
     @tab Used in certain computer games.
 @item American Laser Games Video  @tab    @tab X
@@ -228,6 +229,7 @@ following image formats are supported:
     @tab Codec originally used in Feeble Files game.
 @item Electronic Arts CMV    @tab     @tab  X
     @tab Used in NHL 95 game.
+@item Electronic Arts TGV    @tab     @tab  X
 @item FFmpeg Video 1         @tab  X  @tab  X
     @tab experimental lossless codec (fourcc: FFV1)
 @item Flash Screen Video     @tab  X  @tab  X
@@ -263,6 +265,7 @@ following image formats are supported:
 @item Miro VideoXL           @tab     @tab  X
     @tab fourcc: VIXL
 @item MJPEG                  @tab  X  @tab  X
+@item Motion Pixels Video    @tab     @tab  X
 @item MPEG-1                 @tab  X  @tab  X
 @item MPEG-2                 @tab  X  @tab  X
 @item MPEG-4                 @tab  X  @tab  X
@@ -330,20 +333,19 @@ following image formats are supported:
 @section Audio Codecs
 
 @multitable @columnfractions .4 .1 .1 .1 .7
-@item Supported Codec @tab Encoding @tab Decoding @tab Comments
+@item Name @tab Encoding @tab Decoding @tab Comments
 @item 4X IMA ADPCM           @tab     @tab  X
 @item 8SVX audio             @tab     @tab  X
 @item AAC                    @tab  X  @tab  X
-    @tab Supported through the external library libfaac/libfaad.
+    @tab Encoding is supported through the external library libfaac.
 @item AC-3                   @tab IX  @tab IX
-    @tab liba52 can be used alternatively for decoding.
 @item AMR-NB                 @tab  X  @tab  X
     @tab Supported through an external library.
 @item AMR-WB                 @tab  X  @tab  X
     @tab Supported through an external library.
 @item AMV IMA ADPCM          @tab     @tab  X
     @tab Used in AMV files
-@item Apple lossless audio   @tab     @tab  X
+@item Apple lossless audio   @tab  X  @tab  X
     @tab QuickTime fourcc 'alac'
 @item Apple MACE 3           @tab     @tab  X
 @item Apple MACE 6           @tab     @tab  X
@@ -364,11 +366,8 @@ following image formats are supported:
 @item DV audio               @tab     @tab  X
 @item Electronic Arts ADPCM  @tab     @tab  X
     @tab Used in various EA titles.
-@item Sonic                  @tab  X  @tab  X
-    @tab experimental codec
-@item Sonic lossless         @tab  X  @tab  X
-    @tab experimental codec
-@item FLAC lossless audio    @tab  X  @tab  X
+@item Enhanced AC-3          @tab     @tab  X
+@item FLAC lossless audio    @tab IX  @tab  X
 @item G.726  ADPCM           @tab  X  @tab  X
 @item id RoQ DPCM            @tab  X  @tab  X
     @tab Used in Quake III, Jedi Knight 2, other computer games.
@@ -388,7 +387,7 @@ following image formats are supported:
 @item MS IMA ADPCM           @tab  X  @tab  X
 @item Musepack               @tab     @tab  X
     @tab SV7 and SV8 are supported.
-@item Nellymoser ASAO        @tab     @tab  X
+@item Nellymoser ASAO        @tab  X  @tab  X
 @item Qdesign QDM2           @tab     @tab  X
     @tab There are still some distortions.
 @item QT IMA ADPCM           @tab  X  @tab  X
@@ -396,8 +395,8 @@ following image formats are supported:
     @tab Real 14400 bit/s codec
 @item RA288                  @tab     @tab  X
     @tab Real 28800 bit/s codec
-@item RADnet                 @tab  X  @tab IX
-    @tab real low bitrate AC-3 codec
+@item RADnet                 @tab IX  @tab IX
+    @tab Real low bitrate AC-3 codec
 @item Real COOK              @tab     @tab  X
     @tab All versions except 5.1 are supported.
 @item Shorten                @tab     @tab  X
@@ -406,6 +405,10 @@ following image formats are supported:
 @item Smacker audio          @tab     @tab  X
 @item SMJPEG IMA ADPCM       @tab     @tab  X
     @tab Used in certain Loki game ports.
+@item Sonic                  @tab  X  @tab  X
+    @tab experimental codec
+@item Sonic lossless         @tab  X  @tab  X
+    @tab experimental codec
 @item THP ADPCM              @tab     @tab  X
     @tab Used on the Nintendo GameCube.
 @item True Audio (TTA)       @tab     @tab  X
@@ -434,16 +437,27 @@ BSD make will not build FFmpeg, you need to install and use GNU Make
 
 To get help and instructions for building FFmpeg under Windows, check out
 the FFmpeg Windows Help Forum at
-@url{http://arrozcru.no-ip.org/ffmpeg/}.
+@url{http://ffmpeg.arrozcru.org/}.
 
 @subsection Native Windows compilation
 
 FFmpeg can be built to run natively on Windows using the MinGW tools. Install
-the current versions of MSYS and MinGW from @url{http://www.mingw.org/}. Also
-install the coreutils package, and update to the latest MSYS make (note: not
-mingw32-make). You can find detailed installation
+the latest versions of MSYS and MinGW from @url{http://www.mingw.org/}.
+You can find detailed installation
 instructions in the download section and the FAQ.
 
+FFmpeg does not build out-of-the-box with the packages the automated MinGW
+installer provides. It also requires coreutils to be installed and many other
+packages updated to the latest version. The minimum version for some packages
+are listed below:
+
+@itemize
+@item bash 3.1
+@item msys-make 3.81-2 (note: not mingw32-make)
+@item w32api 3.12
+@item mingw-runtime 3.15
+@end itemize
+
 Within the MSYS shell, configure and make with:
 
 @example
@@ -460,9 +474,6 @@ Notes:
 
 @itemize
 
-@item Use at least bash 3.1. Older versions are known to fail on the
-configure script.
-
 @item In order to compile vhooks, you must have a POSIX-compliant libdl in
 your MinGW system. Get dlfcn-win32 from
 @url{http://code.google.com/p/dlfcn-win32}.
@@ -896,19 +907,14 @@ should also be avoided if they don't make the code easier to understand.
 @item
     Remember to check if you need to bump versions for the specific libav
     parts (libavutil, libavcodec, libavformat) you are changing. You need
-    to change the version integer and the version string.
+    to change the version integer.
     Incrementing the first component means no backward compatibility to
     previous versions (e.g. removal of a function from the public API).
     Incrementing the second component means backward compatible change
-    (e.g. addition of a function to the public API).
+    (e.g. addition of a function to the public API or extension of an
+    existing data structure).
     Incrementing the third component means a noteworthy binary compatible
     change (e.g. encoder bug fix that matters for the decoder).
-@item
-    If you add a new codec, remember to update the changelog, add it to
-    the supported codecs table in the documentation and bump the second
-    component of the @file{libavcodec} version number appropriately. If
-    it has a fourcc, add it to @file{libavformat/riff.c}, even if it
-    is only a decoder.
 @item
     Compiler warnings indicate potential bugs or code with bad style. If a type of
     warning always points to correct and clean code, that warning should
@@ -955,6 +961,40 @@ and has no lrint()')
 Also please if you send several patches, send each patch as a separate mail,
 do not attach several unrelated patches to the same mail.
 
+@section New codecs or formats checklist
+
+@enumerate
+@item
+    Did you use av_cold for codec initialization and close functions?
+@item
+    Did you add a long_name under NULL_IF_CONFIG_SMALL to the AVCodec or
+    AVInputFormat/AVOutputFormat struct?
+@item
+    Did you bump the minor version number in @file{avcodec.h} or
+    @file{avformat.h}?
+@item
+    Did you register it in @file{allcodecs.c} or @file{allformats.c}?
+@item
+    Did you add the CodecID to @file{avcodec.h}?
+@item
+    If it has a fourcc, did you add it to @file{libavformat/riff.c},
+    even if it is only a decoder?
+@item
+    Did you add a rule to compile the appropriate files in the Makefile?
+    Remember to do this even if you're just adding a format to a file that is
+    already being compiled by some other rule, like a raw demuxer.
+@item
+    Did you add an entry to the table of supported formats or codecs in the
+    documentation?
+@item
+    Did you add an entry in the Changelog?
+@item
+    If it depends on a parser or a library, did you add that dependency in
+    configure?
+@item
+    Did you "svn add" the appropriate files before commiting?
+@end enumerate
+
 @section patch submission checklist
 
 @enumerate