This reverts commit f8a45fa1b1.
Conflicts:
doc/optimization.txt
tags/n0.8
| @@ -1,7 +1,7 @@ | |||
| @chapter Bitstream Filters | |||
| @c man begin BITSTREAM FILTERS | |||
| When you configure your Libav build, all the supported bitstream | |||
| When you configure your FFmpeg build, all the supported bitstream | |||
| filters are enabled by default. You can list all available ones using | |||
| the configure option @code{--list-bsfs}. | |||
| @@ -1,4 +1,4 @@ | |||
| Libav currently uses a custom build system, this text attempts to document | |||
| FFmpeg currently uses a custom build system, this text attempts to document | |||
| some of its obscure features and options. | |||
| Options to make: | |||
| @@ -1,10 +1,10 @@ | |||
| @chapter Demuxers | |||
| @c man begin DEMUXERS | |||
| Demuxers are configured elements in Libav which allow to read the | |||
| Demuxers are configured elements in FFmpeg which allow to read the | |||
| multimedia streams from a particular type of file. | |||
| When you configure your Libav build, all the supported demuxers | |||
| When you configure your FFmpeg build, all the supported demuxers | |||
| are enabled by default. You can list all available ones using the | |||
| configure option "--list-demuxers". | |||
| @@ -32,12 +32,12 @@ generated by ./configure to understand what is needed. | |||
| 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 Libav mailing list. | |||
| to send your patches to the FFmpeg mailing list. | |||
| @anchor{Coding Rules} | |||
| @section Coding Rules | |||
| Libav is programmed in the ISO C90 language with a few additional | |||
| FFmpeg is programmed in the ISO C90 language with a few additional | |||
| features from ISO C99, namely: | |||
| @itemize @bullet | |||
| @item | |||
| @@ -54,7 +54,7 @@ These features are supported by all compilers we care about, so we will not | |||
| accept patches to remove their use unless they absolutely do not impair | |||
| clarity and performance. | |||
| All code must compile with GCC 2.95 and GCC 3.3. Currently, Libav also | |||
| All code must compile with GCC 2.95 and GCC 3.3. Currently, FFmpeg also | |||
| compiles with several other compilers, such as the Compaq ccc compiler | |||
| or Sun Studio 9, and we would like to keep it that way unless it would | |||
| be exceedingly involved. To ensure compatibility, please do not use any | |||
| @@ -76,7 +76,7 @@ The TAB character is forbidden outside of Makefiles as is any | |||
| form of trailing whitespace. Commits containing either will be | |||
| rejected by the Subversion repository. | |||
| The main priority in Libav is simplicity and small code size in order to | |||
| The main priority in FFmpeg is simplicity and small code size in order to | |||
| minimize the bug count. | |||
| Comments: Use the JavaDoc/Doxygen | |||
| @@ -129,7 +129,7 @@ should also be avoided if they don't make the code easier to understand. | |||
| an "or any later version" clause is also acceptable, but LGPL is | |||
| preferred. | |||
| @item | |||
| You must not commit code which breaks Libav! (Meaning unfinished but | |||
| You must not commit code which breaks FFmpeg! (Meaning unfinished but | |||
| enabled code which breaks compilation or compiles but does not work or | |||
| breaks the regression tests) | |||
| You can commit unfinished stuff (for testing etc), but it must be disabled | |||
| @@ -168,7 +168,7 @@ should also be avoided if they don't make the code easier to understand. | |||
| with functional changes, such commits will be rejected and removed. Every | |||
| developer has his own indentation style, you should not change it. Of course | |||
| if you (re)write something, you can use your own style, even though we would | |||
| prefer if the indentation throughout Libav was consistent (Many projects | |||
| prefer if the indentation throughout FFmpeg was consistent (Many projects | |||
| force a given indentation style - we do not.). If you really need to make | |||
| indentation changes (try to avoid this), separate them strictly from real | |||
| changes. | |||
| @@ -253,7 +253,7 @@ keeping it as a logical unit that contains an individual change, even | |||
| if it spans multiple files. This makes reviewing your patches much easier | |||
| for us and greatly increases your chances of getting your patch applied. | |||
| Use the patcheck tool of Libav to check your patch. | |||
| Use the patcheck tool of FFmpeg to check your patch. | |||
| The tool is located in the tools directory. | |||
| Run the regression tests before submitting a patch so that you can | |||
| @@ -275,7 +275,7 @@ Your patch will be reviewed on the mailing list. You will likely be asked | |||
| to make some changes and are expected to send in an improved version that | |||
| incorporates the requests from the review. This process may go through | |||
| several iterations. Once your patch is deemed good enough, some developer | |||
| will pick it up and commit it to the official Libav tree. | |||
| will pick it up and commit it to the official FFmpeg tree. | |||
| Give us a few days to react. But if some time passes without reaction, | |||
| send a reminder by email. Your patch should eventually be dealt with. | |||
| @@ -325,7 +325,7 @@ send a reminder by email. Your patch should eventually be dealt with. | |||
| @item | |||
| Is the patch a unified diff? | |||
| @item | |||
| Is the patch against latest Libav git master branch? | |||
| Is the patch against latest FFmpeg git master branch? | |||
| @item | |||
| Are you subscribed to ffmpeg-dev? | |||
| (the list is subscribers only due to spam) | |||
| @@ -374,7 +374,7 @@ send a reminder by email. Your patch should eventually be dealt with. | |||
| patch easily? | |||
| @item | |||
| If you added a new file, did you insert a license header? It should be | |||
| taken from Libav, not randomly copied and pasted from somewhere else. | |||
| taken from FFmpeg, not randomly copied and pasted from somewhere else. | |||
| @item | |||
| You should maintain alphabetical order in alphabetically ordered lists as | |||
| long as doing so does not break API/ABI compatibility. | |||
| @@ -1,10 +1,10 @@ | |||
| @chapter Encoders | |||
| @c man begin ENCODERS | |||
| Encoders are configured elements in Libav which allow the encoding of | |||
| Encoders are configured elements in FFmpeg which allow the encoding of | |||
| multimedia streams. | |||
| When you configure your Libav build, all the supported native encoders | |||
| When you configure your FFmpeg build, all the supported native encoders | |||
| are enabled by default. Encoders requiring an external library must be enabled | |||
| manually via the corresponding @code{--enable-lib} option. You can list all | |||
| available encoders using the configure option @code{--list-encoders}. | |||
| @@ -1,7 +1,7 @@ | |||
| @chapter Expression Evaluation | |||
| @c man begin EXPRESSION EVALUATION | |||
| When evaluating an arithemetic expression, Libav uses an internal | |||
| When evaluating an arithemetic expression, FFmpeg uses an internal | |||
| formula evaluator, implemented through the @file{libavutil/eval.h} | |||
| interface. | |||
| @@ -1,8 +1,8 @@ | |||
| \input texinfo @c -*- texinfo -*- | |||
| @settitle Libav FAQ | |||
| @settitle FFmpeg FAQ | |||
| @titlepage | |||
| @center @titlefont{Libav FAQ} | |||
| @center @titlefont{FFmpeg FAQ} | |||
| @end titlepage | |||
| @top | |||
| @@ -11,33 +11,33 @@ | |||
| @chapter General Questions | |||
| @section When will the next Libav version be released? / Why are Libav releases so few and far between? | |||
| @section When will the next FFmpeg version be released? / Why are FFmpeg releases so few and far between? | |||
| Like most open source projects Libav suffers from a certain lack of | |||
| Like most open source projects FFmpeg suffers from a certain lack of | |||
| manpower. For this reason the developers have to prioritize the work | |||
| they do and putting out releases is not at the top of the list, fixing | |||
| bugs and reviewing patches takes precedence. Please don't complain or | |||
| request more timely and/or frequent releases unless you are willing to | |||
| help out creating them. | |||
| @section I have a problem with an old version of Libav; where should I report it? | |||
| Nowhere. We do not support old Libav versions in any way, we simply lack | |||
| @section I have a problem with an old version of FFmpeg; where should I report it? | |||
| Nowhere. We do not support old FFmpeg versions in any way, we simply lack | |||
| the time, motivation and manpower to do so. If you have a problem with an | |||
| old version of Libav, upgrade to the latest Subversion snapshot. If you | |||
| old version of FFmpeg, upgrade to the latest Subversion snapshot. If you | |||
| still experience the problem, then you can report it according to the | |||
| guidelines in @url{http://ffmpeg.org/bugreports.html}. | |||
| @section Why doesn't Libav support feature [xyz]? | |||
| @section Why doesn't FFmpeg support feature [xyz]? | |||
| Because no one has taken on that task yet. Libav development is | |||
| Because no one has taken on that task yet. FFmpeg development is | |||
| driven by the tasks that are important to the individual developers. | |||
| If there is a feature that is important to you, the best way to get | |||
| it implemented is to undertake the task yourself or sponsor a developer. | |||
| @section Libav does not support codec XXX. Can you include a Windows DLL loader to support it? | |||
| @section FFmpeg does not support codec XXX. Can you include a Windows DLL loader to support it? | |||
| No. Windows DLLs are not portable, bloated and often slow. | |||
| Moreover Libav strives to support all codecs natively. | |||
| Moreover FFmpeg strives to support all codecs natively. | |||
| A DLL loader is not conducive to that goal. | |||
| @section My bug report/mail to ffmpeg-devel/user has not received any replies. | |||
| @@ -55,10 +55,10 @@ libav* from another application. | |||
| @item You speak about a video having problems on playback but | |||
| not what you use to play it. | |||
| @item We have no faint clue what you are talking about besides | |||
| that it is related to Libav. | |||
| that it is related to FFmpeg. | |||
| @end itemize | |||
| @section Is there a forum for Libav? I do not like mailing lists. | |||
| @section Is there a forum for FFmpeg? I do not like mailing lists. | |||
| You may view our mailing lists with a more forum-alike look here: | |||
| @url{http://dir.gmane.org/gmane.comp.video.ffmpeg.user}, | |||
| @@ -272,7 +272,7 @@ material, and try '-top 0/1' if the result looks really messed-up. | |||
| @section How can I read DirectShow files? | |||
| If you have built Libav with @code{./configure --enable-avisynth} | |||
| If you have built FFmpeg with @code{./configure --enable-avisynth} | |||
| (only possible on MinGW/Cygwin platforms), | |||
| then you may use any file that DirectShow can read as input. | |||
| @@ -368,11 +368,11 @@ examining all of the vbv_delay values and making complicated computations." | |||
| @chapter Development | |||
| @section Are there examples illustrating how to use the Libav libraries, particularly libavcodec and libavformat? | |||
| @section Are there examples illustrating how to use the FFmpeg libraries, particularly libavcodec and libavformat? | |||
| Yes. Read the Developers Guide of the Libav documentation. Alternatively, | |||
| Yes. Read the Developers Guide of the FFmpeg documentation. Alternatively, | |||
| examine the source code for one of the many open source projects that | |||
| already incorporate Libav at (@url{projects.html}). | |||
| already incorporate FFmpeg at (@url{projects.html}). | |||
| @section Can you support my C compiler XXX? | |||
| @@ -383,14 +383,14 @@ with @code{#ifdef}s related to the compiler. | |||
| @section Is Microsoft Visual C++ supported? | |||
| No. Microsoft Visual C++ is not compliant to the C99 standard and does | |||
| not - among other things - support the inline assembly used in Libav. | |||
| not - among other things - support the inline assembly used in FFmpeg. | |||
| If you wish to use MSVC++ for your | |||
| project then you can link the MSVC++ code with libav* as long as | |||
| you compile the latter with a working C compiler. For more information, see | |||
| the @emph{Microsoft Visual C++ compatibility} section in the Libav | |||
| the @emph{Microsoft Visual C++ compatibility} section in the FFmpeg | |||
| documentation. | |||
| There have been efforts to make Libav compatible with MSVC++ in the | |||
| There have been efforts to make FFmpeg compatible with MSVC++ in the | |||
| past. However, they have all been rejected as too intrusive, especially | |||
| since MinGW does the job adequately. None of the core developers | |||
| work with MSVC++ and thus this item is low priority. Should you find | |||
| @@ -398,13 +398,13 @@ the silver bullet that solves this problem, feel free to shoot it at us. | |||
| We strongly recommend you to move over from MSVC++ to MinGW tools. | |||
| @section Can I use Libav or libavcodec under Windows? | |||
| @section Can I use FFmpeg or libavcodec under Windows? | |||
| Yes, but the Cygwin or MinGW tools @emph{must} be used to compile Libav. | |||
| Read the @emph{Windows} section in the Libav documentation to find more | |||
| Yes, but the Cygwin or MinGW tools @emph{must} be used to compile FFmpeg. | |||
| Read the @emph{Windows} section in the FFmpeg documentation to find more | |||
| information. | |||
| To get help and instructions for building Libav under Windows, check out | |||
| To get help and instructions for building FFmpeg under Windows, check out | |||
| the FFmpeg Windows Help Forum at | |||
| @url{http://ffmpeg.arrozcru.org/}. | |||
| @@ -414,7 +414,7 @@ No. These tools are too bloated and they complicate the build. | |||
| @section Why not rewrite ffmpeg in object-oriented C++? | |||
| Libav is already organized in a highly modular manner and does not need to | |||
| FFmpeg is already organized in a highly modular manner and does not need to | |||
| be rewritten in a formal object language. Further, many of the developers | |||
| favor straight C; it works for them. For more arguments on this matter, | |||
| read "Programming Religion" at (@url{http://www.tux.org/lkml/#s15}). | |||
| @@ -441,16 +441,16 @@ the compilation failure then you are probably not qualified for this. | |||
| @section I'm using libavcodec from within my C++ application but the linker complains about missing symbols which seem to be available. | |||
| Libav is a pure C project, so to use the libraries within your C++ application | |||
| FFmpeg is a pure C project, so to use the libraries within your C++ application | |||
| you need to explicitly state that you are using a C library. You can do this by | |||
| encompassing your Libav includes using @code{extern "C"}. | |||
| encompassing your FFmpeg includes using @code{extern "C"}. | |||
| See @url{http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html#faq-32.3} | |||
| @section I have a file in memory / a API different from *open/*read/ libc how do I use it with libavformat? | |||
| You have to implement a URLProtocol, see @file{libavformat/file.c} in | |||
| Libav and @file{libmpdemux/demux_lavf.c} in MPlayer sources. | |||
| FFmpeg and @file{libmpdemux/demux_lavf.c} in MPlayer sources. | |||
| @section I get "No compatible shell script interpreter found." in MSys. | |||
| @@ -735,7 +735,7 @@ A preset file contains a sequence of @var{option}=@var{value} pairs, | |||
| one for each line, specifying a sequence of options which would be | |||
| awkward to specify on the command line. Lines starting with the hash | |||
| ('#') character are ignored and are used to provide comments. Check | |||
| the @file{ffpresets} directory in the Libav source tree for examples. | |||
| the @file{ffpresets} directory in the FFmpeg source tree for examples. | |||
| Preset files are specified with the @code{vpre}, @code{apre}, | |||
| @code{spre}, and @code{fpre} options. The @code{fpre} option takes the | |||
| @@ -997,11 +997,11 @@ file to which you want to add them. | |||
| @settitle FFmpeg video converter | |||
| @c man begin SEEALSO | |||
| ffplay(1), ffprobe(1), ffserver(1) and the Libav HTML documentation | |||
| ffplay(1), ffprobe(1), ffserver(1) and the FFmpeg HTML documentation | |||
| @c man end | |||
| @c man begin AUTHORS | |||
| The Libav developers | |||
| The FFmpeg developers | |||
| @c man end | |||
| @end ignore | |||
| @@ -20,9 +20,9 @@ ffplay [options] @file{input_file} | |||
| @chapter Description | |||
| @c man begin DESCRIPTION | |||
| FFplay is a very simple and portable media player using the Libav | |||
| FFplay is a very simple and portable media player using the FFmpeg | |||
| libraries and the SDL library. It is mostly used as a testbed for the | |||
| various Libav APIs. | |||
| various FFmpeg APIs. | |||
| @c man end | |||
| @chapter Options | |||
| @@ -169,11 +169,11 @@ Seek to percentage in file corresponding to fraction of width. | |||
| @settitle FFplay media player | |||
| @c man begin SEEALSO | |||
| ffmpeg(1), ffprobe(1), ffserver(1) and the Libav HTML documentation | |||
| ffmpeg(1), ffprobe(1), ffserver(1) and the FFmpeg HTML documentation | |||
| @c man end | |||
| @c man begin AUTHORS | |||
| The Libav developers | |||
| The FFmpeg developers | |||
| @c man end | |||
| @end ignore | |||
| @@ -122,11 +122,11 @@ with name "STREAM". | |||
| @settitle FFprobe media prober | |||
| @c man begin SEEALSO | |||
| ffmpeg(1), ffplay(1), ffserver(1) and the Libav HTML documentation | |||
| ffmpeg(1), ffplay(1), ffserver(1) and the FFmpeg HTML documentation | |||
| @c man end | |||
| @c man begin AUTHORS | |||
| The Libav developers | |||
| The FFmpeg developers | |||
| @c man end | |||
| @end ignore | |||
| @@ -266,11 +266,11 @@ rather than as a daemon. | |||
| @c man begin SEEALSO | |||
| ffmpeg(1), ffplay(1), ffprobe(1), the @file{ffmpeg/doc/ffserver.conf} | |||
| example and the Libav HTML documentation | |||
| example and the FFmpeg HTML documentation | |||
| @c man end | |||
| @c man begin AUTHORS | |||
| The Libav developers | |||
| The FFmpeg developers | |||
| @c man end | |||
| @end ignore | |||
| @@ -88,6 +88,6 @@ can be disabled setting the environment variable | |||
| @env{FFMPEG_FORCE_NOCOLOR} or @env{NO_COLOR}, or can be forced setting | |||
| the environment variable @env{FFMPEG_FORCE_COLOR}. | |||
| The use of the environment variable @env{NO_COLOR} is deprecated and | |||
| will be dropped in a following Libav version. | |||
| will be dropped in a following FFmpeg version. | |||
| @end table | |||
| @@ -92,7 +92,7 @@ Follows a BNF description for the filtergraph syntax: | |||
| @chapter Audio Filters | |||
| @c man begin AUDIO FILTERS | |||
| When you configure your Libav build, you can disable any of the | |||
| When you configure your FFmpeg build, you can disable any of the | |||
| existing filters using --disable-filters. | |||
| The configure output will show the audio filters included in your | |||
| build. | |||
| @@ -155,7 +155,7 @@ tools. | |||
| @chapter Video Filters | |||
| @c man begin VIDEO FILTERS | |||
| When you configure your Libav build, you can disable any of the | |||
| When you configure your FFmpeg build, you can disable any of the | |||
| existing filters using --disable-filters. | |||
| The configure output will show the video filters included in your | |||
| build. | |||
| @@ -531,7 +531,7 @@ format=yuv420p:yuv444p:yuv410p | |||
| Apply a frei0r effect to the input video. | |||
| To enable compilation of this filter you need to install the frei0r | |||
| header and configure Libav with --enable-frei0r. | |||
| header and configure FFmpeg with --enable-frei0r. | |||
| The filter supports the syntax: | |||
| @example | |||
| @@ -669,7 +669,7 @@ Pass the video source unchanged to the output. | |||
| Apply video transform using libopencv. | |||
| To enable this filter install libopencv library and headers and | |||
| configure Libav with --enable-libopencv. | |||
| configure FFmpeg with --enable-libopencv. | |||
| The filter takes the parameters: @var{filter_name}@{:=@}@var{filter_params}. | |||
| @@ -1314,7 +1314,7 @@ timebase. The expression can contain the constants "PI", "E", "PHI", | |||
| Provide a frei0r source. | |||
| To enable compilation of this filter you need to install the frei0r | |||
| header and configure Libav with --enable-frei0r. | |||
| header and configure FFmpeg with --enable-frei0r. | |||
| The source supports the syntax: | |||
| @example | |||
| @@ -11,13 +11,13 @@ | |||
| @chapter external libraries | |||
| Libav can be hooked up with a number of external libraries to add support | |||
| FFmpeg can be hooked up with a number of external libraries to add support | |||
| for more formats. None of them are used by default, their use has to be | |||
| explicitly requested by passing the appropriate flags to @file{./configure}. | |||
| @section OpenCORE AMR | |||
| Libav can make use of the OpenCORE libraries for AMR-NB | |||
| FFmpeg can make use of the OpenCORE libraries for AMR-NB | |||
| decoding/encoding and AMR-WB decoding. | |||
| Go to @url{http://sourceforge.net/projects/opencore-amr/} and follow the instructions for | |||
| @@ -27,7 +27,7 @@ installing the libraries. Then pass @code{--enable-libopencore-amrnb} and/or | |||
| Note that OpenCORE is under the Apache License 2.0 (see | |||
| @url{http://www.apache.org/licenses/LICENSE-2.0} for details), which is | |||
| incompatible with the LGPL version 2.1 and GPL version 2. You have to | |||
| upgrade Libav's license to LGPL version 3 (or if you have enabled | |||
| upgrade FFmpeg's license to LGPL version 3 (or if you have enabled | |||
| GPL components, GPL version 3) to use it. | |||
| @@ -37,7 +37,7 @@ You can use the @code{-formats} and @code{-codecs} options to have an exhaustive | |||
| @section File Formats | |||
| Libav supports the following file formats through the @code{libavformat} | |||
| FFmpeg supports the following file formats through the @code{libavformat} | |||
| library: | |||
| @multitable @columnfractions .4 .1 .1 .4 | |||
| @@ -751,18 +751,18 @@ Using a cross-compiler is preferred for various reasons. | |||
| @subsection DJGPP | |||
| Libav cannot be compiled because of broken system headers, add | |||
| FFmpeg cannot be compiled because of broken system headers, add | |||
| @code{--extra-cflags=-U__STRICT_ANSI__} to the configure options as a | |||
| workaround. | |||
| @section OS/2 | |||
| For information about compiling Libav on OS/2 see | |||
| For information about compiling FFmpeg on OS/2 see | |||
| @url{http://www.edm2.com/index.php/FFmpeg}. | |||
| @section Unix-like | |||
| Some parts of Libav cannot be built with version 2.15 of the GNU | |||
| Some parts of FFmpeg cannot be built with version 2.15 of the GNU | |||
| assembler which is still provided by a few AMD64 distributions. To | |||
| make sure your compiler really uses the required version of gas | |||
| after a binutils upgrade, run: | |||
| @@ -777,7 +777,7 @@ to configure. | |||
| @subsection BSD | |||
| BSD make will not build Libav, you need to install and use GNU Make | |||
| BSD make will not build FFmpeg, you need to install and use GNU Make | |||
| (@file{gmake}). | |||
| @subsubsection FreeBSD | |||
| @@ -790,7 +790,7 @@ getting the system headers fixed. | |||
| @subsection (Open)Solaris | |||
| GNU Make is required to build Libav, so you have to invoke (@file{gmake}), | |||
| GNU Make is required to build FFmpeg, so you have to invoke (@file{gmake}), | |||
| standard Solaris Make will not work. When building with a non-c99 front-end | |||
| (gcc, generic suncc) add either @code{--extra-libs=/usr/lib/values-xpg6.o} | |||
| or @code{--extra-libs=/usr/lib/64/values-xpg6.o} to the configure options | |||
| @@ -808,22 +808,22 @@ bash ./configure | |||
| MacOS X on PowerPC or ARM (iPhone) requires a preprocessor from | |||
| @url{http://github.com/yuvi/gas-preprocessor} to build the optimized | |||
| assembler functions. Just download the Perl script and put it somewhere | |||
| in your PATH, Libav's configure will pick it up automatically. | |||
| in your PATH, FFmpeg's configure will pick it up automatically. | |||
| @section Windows | |||
| To get help and instructions for building Libav under Windows, check out | |||
| To get help and instructions for building FFmpeg under Windows, check out | |||
| the FFmpeg Windows Help Forum at | |||
| @url{http://ffmpeg.arrozcru.org/}. | |||
| @subsection Native Windows compilation | |||
| Libav can be built to run natively on Windows using the MinGW tools. Install | |||
| FFmpeg can be built to run natively on Windows using the MinGW tools. Install | |||
| 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. | |||
| Libav does not build out-of-the-box with the packages the automated MinGW | |||
| 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: | |||
| @@ -835,7 +835,7 @@ are listed below: | |||
| @item mingw-runtime 3.15 | |||
| @end itemize | |||
| Libav automatically passes @code{-fno-common} to the compiler to work around | |||
| FFmpeg automatically passes @code{-fno-common} to the compiler to work around | |||
| a GCC bug (see @url{http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216}). | |||
| Within the MSYS shell, configure and make with: | |||
| @@ -866,14 +866,14 @@ Edit the @file{bin/sdl-config} script so that it points to the correct prefix | |||
| where SDL was installed. Verify that @file{sdl-config} can be launched from | |||
| the MSYS command line. | |||
| @item By using @code{./configure --enable-shared} when configuring Libav, | |||
| @item By using @code{./configure --enable-shared} when configuring FFmpeg, | |||
| you can build libavutil, libavcodec and libavformat as DLLs. | |||
| @end itemize | |||
| @subsection Microsoft Visual C++ compatibility | |||
| As stated in the FAQ, Libav will not compile under MSVC++. However, if you | |||
| As stated in the FAQ, FFmpeg will not compile under MSVC++. However, if you | |||
| want to use the libav* libraries in your own applications, you can still | |||
| compile those applications using MSVC++. But the libav* libraries you link | |||
| to @emph{must} be built with MinGW. However, you will not be able to debug | |||
| @@ -881,13 +881,13 @@ inside the libav* libraries, since MSVC++ does not recognize the debug | |||
| symbols generated by GCC. | |||
| We strongly recommend you to move over from MSVC++ to MinGW tools. | |||
| This description of how to use the Libav libraries with MSVC++ is based on | |||
| This description of how to use the FFmpeg libraries with MSVC++ is based on | |||
| Microsoft Visual C++ 2005 Express Edition. If you have a different version, | |||
| you might have to modify the procedures slightly. | |||
| @subsubsection Using static libraries | |||
| Assuming you have just built and installed Libav in @file{/usr/local}. | |||
| Assuming you have just built and installed FFmpeg in @file{/usr/local}. | |||
| @enumerate | |||
| @@ -898,13 +898,13 @@ Application Wizard, uncheck the "Precompiled headers" option. | |||
| @item Write the source code for your application, or, for testing, just | |||
| copy the code from an existing sample application into the source file | |||
| that MSVC++ has already created for you. For example, you can copy | |||
| @file{libavformat/output-example.c} from the Libav distribution. | |||
| @file{libavformat/output-example.c} from the FFmpeg distribution. | |||
| @item Open the "Project / Properties" dialog box. In the "Configuration" | |||
| combo box, select "All Configurations" so that the changes you make will | |||
| affect both debug and release builds. In the tree view on the left hand | |||
| side, select "C/C++ / General", then edit the "Additional Include | |||
| Directories" setting to contain the path where the Libav includes were | |||
| Directories" setting to contain the path where the FFmpeg includes were | |||
| installed (i.e. @file{c:\msys\1.0\local\include}). | |||
| Do not add MinGW's include directory here, or the include files will | |||
| conflict with MSVC's. | |||
| @@ -912,7 +912,7 @@ conflict with MSVC's. | |||
| @item Still in the "Project / Properties" dialog box, select | |||
| "Linker / General" from the tree view and edit the | |||
| "Additional Library Directories" setting to contain the @file{lib} | |||
| directory where Libav was installed (i.e. @file{c:\msys\1.0\local\lib}), | |||
| directory where FFmpeg was installed (i.e. @file{c:\msys\1.0\local\lib}), | |||
| the directory where MinGW libs are installed (i.e. @file{c:\mingw\lib}), | |||
| and the directory where MinGW's GCC libs are installed | |||
| (i.e. @file{C:\mingw\lib\gcc\mingw32\4.2.1-sjlj}). Then select | |||
| @@ -929,13 +929,13 @@ set to "Multi-threaded DLL". | |||
| @item Click "OK" to close the "Project / Properties" dialog box. | |||
| @item MSVC++ lacks some C99 header files that are fundamental for Libav. | |||
| @item MSVC++ lacks some C99 header files that are fundamental for FFmpeg. | |||
| Get msinttypes from @url{http://code.google.com/p/msinttypes/downloads/list} | |||
| and install it in MSVC++'s include directory | |||
| (i.e. @file{C:\Program Files\Microsoft Visual Studio 8\VC\include}). | |||
| @item MSVC++ also does not understand the @code{inline} keyword used by | |||
| Libav, so you must add this line before @code{#include}ing libav*: | |||
| FFmpeg, so you must add this line before @code{#include}ing libav*: | |||
| @example | |||
| #define inline _inline | |||
| @end example | |||
| @@ -968,10 +968,10 @@ and run @file{c:\msys\1.0\msys.bat} from there. | |||
| @item Within the MSYS shell, run @code{lib.exe}. If you get a help message | |||
| from @file{Microsoft (R) Library Manager}, this means your environment | |||
| variables are set up correctly, the @file{Microsoft (R) Library Manager} | |||
| is on the path and will be used by Libav to create | |||
| is on the path and will be used by FFmpeg to create | |||
| MSVC++-compatible import libraries. | |||
| @item Build Libav with | |||
| @item Build FFmpeg with | |||
| @example | |||
| ./configure --enable-shared --enable-memalign-hack | |||
| @@ -1000,7 +1000,7 @@ of DLL files, but the ones that are actually used to run your application | |||
| are the ones with a major version number in their filenames | |||
| (i.e. @file{avcodec-51.dll}). | |||
| Libav headers do not declare global data for Windows DLLs through the usual | |||
| FFmpeg headers do not declare global data for Windows DLLs through the usual | |||
| dllexport/dllimport interface. Such data will be exported properly while | |||
| building, but to use them in your MSVC++ code you will have to edit the | |||
| appropriate headers and mark the data as dllimport. For example, in | |||
| @@ -1014,14 +1014,14 @@ extern __declspec(dllimport) const AVPixFmtDescriptor av_pix_fmt_descriptors[]; | |||
| You must use the MinGW cross compilation tools available at | |||
| @url{http://www.mingw.org/}. | |||
| Then configure Libav with the following options: | |||
| Then configure FFmpeg with the following options: | |||
| @example | |||
| ./configure --target-os=mingw32 --cross-prefix=i386-mingw32msvc- | |||
| @end example | |||
| (you can change the cross-prefix according to the prefix chosen for the | |||
| MinGW tools). | |||
| Then you can easily test Libav with Wine | |||
| Then you can easily test FFmpeg with Wine | |||
| (@url{http://www.winehq.com/}). | |||
| @subsection Compilation under Cygwin | |||
| @@ -1055,7 +1055,7 @@ shared libraries: | |||
| ./configure --enable-shared --disable-static --extra-cflags=-fno-reorder-functions | |||
| @end example | |||
| If you want to build Libav with additional libraries, download Cygwin | |||
| If you want to build FFmpeg with additional libraries, download Cygwin | |||
| "Devel" packages for Ogg and Vorbis from any Cygwin packages repository: | |||
| @example | |||
| libogg-devel, libvorbis-devel | |||
| @@ -28,9 +28,9 @@ Consult these resources whenever you have problems, they are quite exhaustive. | |||
| You do not need a special username or password. | |||
| All you need is to provide a ssh public key to the Git server admin. | |||
| What follows now is a basic introduction to Git and some Libav-specific | |||
| What follows now is a basic introduction to Git and some FFmpeg-specific | |||
| guidelines. Read it at least once, if you are granted commit privileges to the | |||
| Libav project you are expected to be familiar with these rules. | |||
| FFmpeg project you are expected to be familiar with these rules. | |||
| @@ -46,11 +46,11 @@ I. BASICS: | |||
| git clone git://git.videolan.org/ffmpeg <target> | |||
| This will put the Libav sources into the directory <target>. | |||
| This will put the FFmpeg sources into the directory <target>. | |||
| git clone git@git.videolan.org:ffmpeg <target> | |||
| This will put the Libav sources into the directory <target> and let | |||
| This will put the FFmpeg sources into the directory <target> and let | |||
| you push back your changes to the remote repository. | |||
| @@ -72,7 +72,7 @@ I. BASICS: | |||
| fetches the changes from the main repository and replays your local commits | |||
| over it. This is required to keep all your local changes at the top of | |||
| Libav's master tree. The master tree will reject pushes with merge commits. | |||
| FFmpeg's master tree. The master tree will reject pushes with merge commits. | |||
| 3. Adding/removing files/directories: | |||
| @@ -1,10 +1,10 @@ | |||
| @chapter Input Devices | |||
| @c man begin INPUT DEVICES | |||
| Input devices are configured elements in Libav which allow to access | |||
| Input devices are configured elements in FFmpeg which allow to access | |||
| the data coming from a multimedia device attached to your system. | |||
| When you configure your Libav build, all the supported input devices | |||
| When you configure your FFmpeg build, all the supported input devices | |||
| are enabled by default. You can list all available ones using the | |||
| configure option "--list-indevs". | |||
| @@ -95,7 +95,7 @@ A JACK input device creates one or more JACK writable clients, one for | |||
| each audio channel, with name @var{client_name}:input_@var{N}, where | |||
| @var{client_name} is the name provided by the application, and @var{N} | |||
| is a number which identifies the channel. | |||
| Each writable client will send the acquired data to the Libav input | |||
| Each writable client will send the acquired data to the FFmpeg input | |||
| device. | |||
| Once you have created one or more JACK readable clients, you need to | |||
| @@ -1,11 +1,11 @@ | |||
| Libav's bug/patch/feature request tracker manual | |||
| ================================================ | |||
| FFmpeg's bug/patch/feature request tracker manual | |||
| ================================================= | |||
| NOTE: This is a draft. | |||
| Overview: | |||
| --------- | |||
| Libav uses Roundup for tracking issues, new issues and changes to | |||
| FFmpeg uses Roundup for tracking issues, new issues and changes to | |||
| existing issues can be done through a web interface and through email. | |||
| It is possible to subscribe to individual issues by adding yourself to the | |||
| nosy list or to subscribe to the ffmpeg-issues mailing list which receives | |||
| @@ -60,7 +60,7 @@ critical | |||
| No feature request can be critical. | |||
| important | |||
| Bugs which make Libav unusable for a significant number of users, and | |||
| Bugs which make FFmpeg unusable for a significant number of users, and | |||
| patches fixing them. | |||
| Examples here might be completely broken MPEG-4 decoding or a build issue | |||
| on Linux. | |||
| @@ -81,7 +81,7 @@ minor | |||
| wish | |||
| Something that is desirable to have but that there is no urgency at | |||
| all to implement, e.g. something completely cosmetic like a website | |||
| restyle or a personalized doxy template or the Libav logo. | |||
| restyle or a personalized doxy template or the FFmpeg logo. | |||
| This priority is not valid for bugs. | |||
| @@ -11,10 +11,10 @@ | |||
| @chapter Introduction | |||
| Libavfilter is the filtering API of Libav. It is the substitute of the | |||
| Libavfilter is the filtering API of FFmpeg. It is the substitute of the | |||
| now deprecated 'vhooks' and started as a Google Summer of Code project. | |||
| Integrating libavfilter into the main Libav repository is a work in | |||
| Integrating libavfilter into the main FFmpeg repository is a work in | |||
| progress. If you wish to try the unfinished development code of | |||
| libavfilter then check it out from the libavfilter repository into | |||
| some directory of your choice by: | |||
| @@ -74,7 +74,7 @@ not have video output. | |||
| @chapter graph2dot | |||
| The @file{graph2dot} program included in the Libav @file{tools} | |||
| The @file{graph2dot} program included in the FFmpeg @file{tools} | |||
| directory can be used to parse a filter graph description and issue a | |||
| corresponding textual representation in the dot language. | |||
| @@ -1,7 +1,7 @@ | |||
| @chapter Metadata | |||
| @c man begin METADATA | |||
| Libav is able to dump metadata from media files into a simple UTF-8-encoded | |||
| FFmpeg is able to dump metadata from media files into a simple UTF-8-encoded | |||
| INI-like text file and then load it back using the metadata muxer/demuxer. | |||
| The file format is as follows: | |||
| @@ -53,7 +53,7 @@ A ffmetadata file might look like this: | |||
| ;FFMETADATA1 | |||
| title=bike\\shed | |||
| ;this is a comment | |||
| artist=Libav troll team | |||
| artist=FFmpeg troll team | |||
| [CHAPTER] | |||
| TIMEBASE=1/1000 | |||
| @@ -1,7 +1,7 @@ | |||
| Libav multithreading methods | |||
| FFmpeg multithreading methods | |||
| ============================================== | |||
| Libav provides two methods for multithreading codecs. | |||
| FFmpeg provides two methods for multithreading codecs. | |||
| Slice threading decodes multiple parts of a frame at the same time, using | |||
| AVCodecContext execute() and execute2(). | |||
| @@ -1,10 +1,10 @@ | |||
| @chapter Muxers | |||
| @c man begin MUXERS | |||
| Muxers are configured elements in Libav which allow writing | |||
| Muxers are configured elements in FFmpeg which allow writing | |||
| multimedia streams to a particular type of file. | |||
| When you configure your Libav build, all the supported muxers | |||
| When you configure your FFmpeg build, all the supported muxers | |||
| are enabled by default. You can list all available muxers using the | |||
| configure option @code{--list-muxers}. | |||
| @@ -201,7 +201,7 @@ Inline asm vs. external asm | |||
| --------------------------- | |||
| Both inline asm (__asm__("..") in a .c file, handled by a compiler such as gcc) | |||
| and external asm (.s or .asm files, handled by an assembler such as yasm/nasm) | |||
| are accepted in Libav. Which one to use differs per specific case. | |||
| are accepted in FFmpeg. Which one to use differs per specific case. | |||
| - if your code is intended to be inlined in a C function, inline asm is always | |||
| better, because external asm cannot be inlined | |||
| @@ -1,10 +1,10 @@ | |||
| @chapter Output Devices | |||
| @c man begin OUTPUT DEVICES | |||
| Output devices are configured elements in Libav which allow to write | |||
| Output devices are configured elements in FFmpeg which allow to write | |||
| multimedia data to an output device attached to your system. | |||
| When you configure your Libav build, all the supported output devices | |||
| When you configure your FFmpeg build, all the supported output devices | |||
| are enabled by default. You can list all available ones using the | |||
| configure option "--list-outdevs". | |||
| @@ -1,10 +1,10 @@ | |||
| @chapter Protocols | |||
| @c man begin PROTOCOLS | |||
| Protocols are configured elements in Libav which allow to access | |||
| Protocols are configured elements in FFmpeg which allow to access | |||
| resources which require the use of a particular protocol. | |||
| When you configure your Libav build, all the supported protocols are | |||
| When you configure your FFmpeg build, all the supported protocols are | |||
| enabled by default. You can list all available ones using the | |||
| configure option "--list-protocols". | |||
| @@ -8,9 +8,9 @@ it's a little late for this year's soc (2006). | |||
| The Goal: | |||
| Our goal in respect to soc is and must be of course exactly one thing and | |||
| that is to improve Libav, to reach this goal, code must | |||
| that is to improve FFmpeg, to reach this goal, code must | |||
| * conform to the development policy and patch submission guidelines | |||
| * must improve Libav somehow (faster, smaller, "better", | |||
| * must improve FFmpeg somehow (faster, smaller, "better", | |||
| more codecs supported, fewer bugs, cleaner, ...) | |||
| for mentors and other developers to help students to reach that goal it is | |||
| @@ -20,5 +20,5 @@ easy reviewable that again leads us to: | |||
| * separation of cosmetic from non-cosmetic changes (this is almost entirely | |||
| ignored by mentors and students in soc 2006 which might lead to a suprise | |||
| when the code will be reviewed at the end before a possible inclusion in | |||
| Libav, individual changes were generally not reviewable due to cosmetics). | |||
| FFmpeg, individual changes were generally not reviewable due to cosmetics). | |||
| * frequent commits, so that comments can be provided early | |||