mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
Revert "replace FFmpeg with Libav in doc/"
This reverts commit f8a45fa1b1
.
Conflicts:
doc/optimization.txt
This commit is contained in:
parent
0fecf2642b
commit
a6be21d3ba
@ -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.
|
||||
|
||||
|
56
doc/faq.texi
56
doc/faq.texi
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user