]> git.sesse.net Git - ffmpeg/blobdiff - doc/ffmpeg-doc.texi
Creative ADPCM decoder, format 0x200, courtesy of Konstantin Shishkov
[ffmpeg] / doc / ffmpeg-doc.texi
index 639346b49b58121d4d58275391ce30410ce57e52..e3e341256c6eedd025b216ad4fa5aa99dbf46799 100644 (file)
@@ -131,7 +131,7 @@ The generic syntax is:
 
 @example 
 @c man begin SYNOPSIS
-ffmpeg [[options][@option{-i} @var{input_file}]]... @{[options] @var{output_file}@}...
+ffmpeg [[infile options][@option{-i} @var{infile}]]... @{[outfile options] @var{outfile}@}...
 @c man end
 @end example
 @c man begin DESCRIPTION
@@ -190,7 +190,7 @@ set the copyright
 set the comment
 
 @item -target type
-specify target file type ("vcd", "svcd" or "dvd"). All the format
+specify target file type ("vcd", "svcd", "dvd", "pal-vcd", "ntsc-svcd", ... ). All the format
 options (bitrate, codecs, buffer sizes) are automatically set by this
 option. You can just type:
 
@@ -198,6 +198,13 @@ option. You can just type:
 ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
 @end example
 
+Nevertheless you can specify additional options as long as you know they do not compromise the
+standard, as in:
+
+@example
+ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg
+@end example
+
 @item -hq
 activate high quality settings
 
@@ -676,6 +683,8 @@ library:
 @tab .fli/.flc files
 @item Sierra VMD       @tab    @tab X
 @tab used in Sierra CD-ROM games
+@item Sierra Online    @tab    @tab X
+@tab .sol files used in Sierra Online games
 @item Matroska         @tab    @tab X
 @end multitable
 
@@ -719,7 +728,8 @@ following image formats are supported:
 @item Sunplus MJPEG          @tab     @tab  X @tab fourcc: SP5X
 @item DV                     @tab  X  @tab  X 
 @item Huff YUV               @tab  X  @tab  X
-@item FFmpeg Video 1         @tab  X  @tab  X @tab Lossless codec (fourcc: FFV1)
+@item FFmpeg Video 1         @tab  X  @tab  X @tab Experimental lossless codec (fourcc: FFV1)
+@item FFmpeg Snow            @tab  X  @tab  X @tab Experimental wavelet codec (fourcc: SNOW)
 @item Asus v1                @tab  X  @tab  X @tab fourcc: ASV1
 @item Asus v2                @tab  X  @tab  X @tab fourcc: ASV2
 @item Creative YUV           @tab     @tab  X @tab fourcc: CYUV
@@ -741,6 +751,7 @@ following image formats are supported:
 @item Apple Animation        @tab     @tab  X @tab fourcc: 'rle '
 @item Apple Graphics         @tab     @tab  X @tab fourcc: 'smc '
 @item Apple Video            @tab     @tab  X @tab fourcc: rpza
+@item Apple QuickDraw        @tab     @tab  X @tab fourcc: qdrw
 @item Cinepak                @tab     @tab  X
 @item Microsoft RLE          @tab     @tab  X
 @item Microsoft Video-1      @tab     @tab  X
@@ -752,6 +763,8 @@ following image formats are supported:
 @item VMD Video              @tab     @tab  X @tab used in Sierra VMD files
 @item MSZH                   @tab     @tab  X @tab Part of LCL
 @item ZLIB                   @tab  X  @tab  X @tab Part of LCL, encoder experimental
+@item TechSmith Camtasia     @tab     @tab  X @tab fourcc: TSCC
+@item IBM Ultimotion         @tab     @tab  X @tab fourcc: ULTI
 @end multitable
 
 @code{X} means that the encoding (resp. decoding) is supported.
@@ -792,6 +805,7 @@ solutions.
 @tab used in Sega Dreamcast games
 @item Electronic Arts ADPCM  @tab      @tab X
 @tab used in various EA titles
+@item Creative ADPCM         @tab      @tab X
 @item RA144                  @tab      @tab X
 @tab Real 14400 bit/s codec
 @item RA288                  @tab      @tab X
@@ -809,9 +823,13 @@ solutions.
 @tab used in various Interplay computer games
 @item Xan DPCM               @tab      @tab X
 @tab used in Origin's Wing Commander IV AVI files
+@item Sierra Online DPCM     @tab      @tab X
+@tab used in Sierra Online game audio files
 @item Apple MACE 3           @tab      @tab X
 @item Apple MACE 6           @tab      @tab X
 @item FLAC                   @tab      @tab X
+@item FFmpeg Sonic           @tab X    @tab X
+@tab Experimental lossy/lossless codec
 @end multitable
 
 @code{X} means that the encoding (resp. decoding) is supported.
@@ -944,6 +962,7 @@ You can use libavcodec or libavformat in your commercial program, but
 @emph{any patch you make must be published}. The best way to proceed is
 to send your patches to the ffmpeg mailing list.
 
+@node Coding Rules
 @section Coding Rules
 
 ffmpeg is programmed in the ISO C90 language with a few additional
@@ -985,15 +1004,48 @@ The presentation is the one specified by 'indent -i4 -kr'.
 Main priority in ffmpeg is simplicity and small code size (=less
 bugs).
 
-Comments: for functions visible from other modules, use the JavaDoc
-format (see examples in @file{libav/utils.c}) so that a documentation
-can be generated automatically.
+Comments: use the JavaDoc/Doxygen 
+format (see examples below) so that a documentation
+can be generated automatically. All non trivial functions should have a comment
+above it explaining what the function does, even if its just one sentance.
+All Structures and their member variables should be documented too.
+@example
+/**
+ * @file mpeg.c
+ * mpeg codec.
+ * @author ...
+ */
+
+/**
+ * Summary sentance.
+ * more text ...
+ * ...
+ */
+typedef struct Foobar{
+    int var1; /**< var1 description */
+    int var2; ///< var2 description
+    /** var3 description */
+    int var3;
+} Foobar;
+
+/**
+ * Summary sentance.
+ * more text ...
+ * ...
+ * @param my_parameter description of my_parameter
+ * @return return value description
+ */
+int myfunc(int my_parameter)
+...
+@end example
 
 fprintf and printf are forbidden in libavformat and libavcodec, 
 please use av_log() instead.
 
 @section Submitting patches
 
+First, (@pxref{Coding Rules}) above if you didn't yet.
+
 When you submit your patch, try to send a unified diff (diff '-up'
 option). I cannot read other diffs :-)
 
@@ -1009,6 +1061,9 @@ It also helps quite a bit if you tell us what the patch does (for example
 'replaces lrint by lrintf') , and why (for example '*bsd isnt c99 compliant
 and has no lrint()')
 
+We reply to all patches submitted and either apply or reject with some
+explanation why, but sometimes we are quite busy so it can take a week or 2
+
 @section Regression tests
 
 Before submitting a patch (or committing with CVS), you should at least