@chapter Decoders
@c man begin DECODERS

Decoders are configured elements in FFmpeg which allow the decoding of
multimedia streams.

When you configure your FFmpeg build, all the supported native decoders
are enabled by default. Decoders requiring an external library must be enabled
manually via the corresponding @code{--enable-lib} option. You can list all
available decoders using the configure option @code{--list-decoders}.

You can disable all the decoders with the configure option
@code{--disable-decoders} and selectively enable / disable single decoders
with the options @code{--enable-decoder=@var{DECODER}} /
@code{--disable-decoder=@var{DECODER}}.

The option @code{-codecs} of the ff* tools will display the list of
enabled decoders.

@c man end DECODERS

@chapter Video Decoders
@c man begin VIDEO DECODERS

A description of some of the currently available video decoders
follows.

@section rawvideo

Raw video decoder.

This decoder decodes rawvideo streams.

@subsection Options

@table @option
@item top @var{top_field_first}
Specify the assumed field type of the input video.
@table @option
@item -1
the video is assumed to be progressive (default)
@item 0
bottom-field-first is assumed
@item 1
top-field-first is assumed
@end table

@end table

@c man end VIDEO DECODERS

@chapter Audio Decoders
@c man begin AUDIO DECODERS

@section ffwavesynth

Internal wave synthetizer.

This decoder generates wave patterns according to predefined sequences. Its
use is purely internal and the format of the data it accepts is not publicly
documented.

@section libcelt

libcelt decoder wrapper

libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio codec.
Requires the presence of the libcelt headers and library during configuration.
You need to explicitly configure the build with @code{--enable-libcelt}.

@section libgsm

libgsm decoder wrapper

libgsm allows libavcodec to decode the GSM full rate audio codec. Requires
the presence of the libgsm headers and library during configuration. You need
to explicitly configure the build with @code{--enable-libgsm}.

This decoder supports both the ordinary GSM and the Microsoft variant.

@section libilbc

libilbc decoder wrapper

libilbc allows libavcodec to decode the Internet Low Bitrate Codec (iLBC)
audio codec. Requires the presence of the libilbc headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libilbc}.

@subsection Options

The following option is supported by the libilbc wrapper.

@table @option
@item enhance

Enable the enhancement of the decoded audio when set to 1. The default
value is 0 (disabled).

@end table

@section libopencore-amrnb

libopencore-amrnb decoder wrapper

libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate
Narrowband audio codec. Using it requires the presence of the
libopencore-amrnb headers and library during configuration. You need to
explicitly configure the build with @code{--enable-libopencore-amrnb}.

An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB
without this library.

@section libopencore-amrwb

libopencore-amrwb decoder wrapper.

libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate
Wideband audio codec. Using it requires the presence of the
libopencore-amrwb headers and library during configuration. You need to
explicitly configure the build with @code{--enable-libopencore-amrwb}.

An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB
without this library.

@section libopus

libopus decoder wrapper.

libopus allows libavcodec to decode the Opus Interactive Audio Codec.
Requires the presence of the libopus headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libopus}.

@c man end AUDIO DECODERS

@chapter Subtitles Decoders
@c man begin SUBTILES DECODERS

@section dvdsub

This codec decodes the bitmap subtitles used in DVDs; the same subtitles can
also be found in VobSub file pairs and in some Matroska files.

@subsection Options

@table @option
@item palette
Specify the global palette used by the bitmaps. When stored in VobSub, the
palette is normally specified in the index file; in Matroska, the palette is
stored in the codec extra-data in the same format as in VobSub. In DVDs, the
palette is stored in the IFO file, and therefore not available when reading
from dumped VOB files.

The format for this option is a string containing 16 24-bits hexadecimal
numbers (without 0x prefix) separated by comas, for example @code{0d00ee,
ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1,
7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b}.
@end table

@c man end SUBTILES DECODERS
