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 |