diff --git a/doc/APIchanges b/doc/APIchanges index 8ab0d5639f..307e303499 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -110,6 +110,9 @@ API changes, most recent first: 2012-03-26 - a67d9cf - lavfi 2.66.100 Add avfilter_fill_frame_from_{audio_,}buffer_ref() functions. +2012-xx-xx - xxxxxxx - lavu 52.2.0 - audioconvert.h + Rename audioconvert.h to channel_layout.h. audioconvert.h is now deprecated. + 2012-xx-xx - xxxxxxx - lavu 52.1.0 - intmath.h Add av_ctz() for trailing zero bit count diff --git a/doc/examples/decoding_encoding.c b/doc/examples/decoding_encoding.c index cc5953f4af..ae1057c010 100644 --- a/doc/examples/decoding_encoding.c +++ b/doc/examples/decoding_encoding.c @@ -34,7 +34,7 @@ #include #include -#include +#include #include #include #include diff --git a/doc/filters.texi b/doc/filters.texi index 286da97d76..e50e55b410 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -1093,7 +1093,7 @@ representing a channel layout. The default value of @var{channel_layout} is "stereo". Check the channel_layout_map definition in -@file{libavcodec/audioconvert.c} for the mapping between strings and +@file{libavutil/channel_layout.c} for the mapping between strings and channel layout values. @item nb_samples, n diff --git a/ffmpeg.c b/ffmpeg.c index 3554d9e08c..effaf2f925 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -43,7 +43,7 @@ #include "libswscale/swscale.h" #include "libswresample/swresample.h" #include "libavutil/opt.h" -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/parseutils.h" #include "libavutil/samplefmt.h" #include "libavutil/colorspace.h" diff --git a/ffmpeg_filter.c b/ffmpeg_filter.c index 6a5141098d..358e1edb6e 100644 --- a/ffmpeg_filter.c +++ b/ffmpeg_filter.c @@ -24,10 +24,10 @@ #include "libavfilter/avfiltergraph.h" #include "libavfilter/buffersink.h" -#include "libavutil/audioconvert.h" #include "libavutil/avassert.h" #include "libavutil/avstring.h" #include "libavutil/bprint.h" +#include "libavutil/channel_layout.h" #include "libavutil/pixdesc.h" #include "libavutil/pixfmt.h" #include "libavutil/imgutils.h" diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c index 8fdb4cb259..0baa3b17f7 100644 --- a/ffmpeg_opt.c +++ b/ffmpeg_opt.c @@ -30,10 +30,10 @@ #include "libavfilter/avfilter.h" #include "libavfilter/avfiltergraph.h" -#include "libavutil/audioconvert.h" #include "libavutil/avassert.h" #include "libavutil/avstring.h" #include "libavutil/avutil.h" +#include "libavutil/channel_layout.h" #include "libavutil/intreadwrite.h" #include "libavutil/fifo.h" #include "libavutil/mathematics.h" diff --git a/libavcodec/aacdectab.h b/libavcodec/aacdectab.h index 0083260895..4a12b4fb32 100644 --- a/libavcodec/aacdectab.h +++ b/libavcodec/aacdectab.h @@ -30,7 +30,7 @@ #ifndef AVCODEC_AACDECTAB_H #define AVCODEC_AACDECTAB_H -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "aac.h" #include diff --git a/libavcodec/ac3_parser.c b/libavcodec/ac3_parser.c index 8250a67678..8dc4c0d480 100644 --- a/libavcodec/ac3_parser.c +++ b/libavcodec/ac3_parser.c @@ -20,11 +20,11 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "libavutil/channel_layout.h" #include "parser.h" #include "ac3_parser.h" #include "aac_ac3_parser.h" #include "get_bits.h" -#include "libavutil/audioconvert.h" #define AC3_HEADER_SIZE 7 diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 9781af59bb..22b6857847 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -30,9 +30,9 @@ #include -#include "libavutil/audioconvert.h" #include "libavutil/avassert.h" #include "libavutil/avstring.h" +#include "libavutil/channel_layout.h" #include "libavutil/crc.h" #include "libavutil/opt.h" #include "avcodec.h" @@ -40,7 +40,6 @@ #include "dsputil.h" #include "ac3dsp.h" #include "ac3.h" -#include "audioconvert.h" #include "fft.h" #include "ac3enc.h" #include "eac3enc.h" diff --git a/libavcodec/ac3tab.c b/libavcodec/ac3tab.c index ccf04ec016..9d20d907dd 100644 --- a/libavcodec/ac3tab.c +++ b/libavcodec/ac3tab.c @@ -24,7 +24,7 @@ * tables taken directly from the AC-3 spec. */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "avcodec.h" #include "ac3tab.h" diff --git a/libavcodec/alac.c b/libavcodec/alac.c index 2b1eedb5ad..b70534383b 100644 --- a/libavcodec/alac.c +++ b/libavcodec/alac.c @@ -45,7 +45,7 @@ * 32bit samplerate */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "avcodec.h" #include "get_bits.h" #include "bytestream.h" diff --git a/libavcodec/amrnbdec.c b/libavcodec/amrnbdec.c index a523a54ccb..0057959361 100644 --- a/libavcodec/amrnbdec.c +++ b/libavcodec/amrnbdec.c @@ -43,7 +43,7 @@ #include #include -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "avcodec.h" #include "dsputil.h" #include "libavutil/common.h" diff --git a/libavcodec/amrwbdec.c b/libavcodec/amrwbdec.c index a0e7cd66b3..468ffa0716 100644 --- a/libavcodec/amrwbdec.c +++ b/libavcodec/amrwbdec.c @@ -24,7 +24,7 @@ * AMR wideband decoder */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/lfg.h" diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c index 2ab0c89c16..a85d355254 100644 --- a/libavcodec/apedec.c +++ b/libavcodec/apedec.c @@ -20,12 +20,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "libavutil/avassert.h" +#include "libavutil/channel_layout.h" +#include "libavutil/opt.h" #include "avcodec.h" #include "dsputil.h" #include "bytestream.h" -#include "libavutil/audioconvert.h" -#include "libavutil/avassert.h" -#include "libavutil/opt.h" /** * @file diff --git a/libavcodec/audioconvert.h b/libavcodec/audioconvert.h index 03b196bdf8..61124b3a32 100644 --- a/libavcodec/audioconvert.h +++ b/libavcodec/audioconvert.h @@ -31,7 +31,7 @@ #include "libavutil/cpu.h" #include "avcodec.h" -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" struct AVAudioConvert; typedef struct AVAudioConvert AVAudioConvert; diff --git a/libavcodec/bmv.c b/libavcodec/bmv.c index b05bd49038..fa44c6ceff 100644 --- a/libavcodec/bmv.c +++ b/libavcodec/bmv.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "avcodec.h" #include "bytestream.h" #include "libavutil/avassert.h" diff --git a/libavcodec/cook.c b/libavcodec/cook.c index cc256f6616..a02dd86744 100644 --- a/libavcodec/cook.c +++ b/libavcodec/cook.c @@ -42,13 +42,13 @@ * available. */ +#include "libavutil/channel_layout.h" #include "libavutil/lfg.h" #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" #include "bytestream.h" #include "fft.h" -#include "libavutil/audioconvert.h" #include "sinewin.h" #include "cookdata.h" diff --git a/libavcodec/dcadec.c b/libavcodec/dcadec.c index 6c97623842..c21a97b2ec 100644 --- a/libavcodec/dcadec.c +++ b/libavcodec/dcadec.c @@ -26,12 +26,12 @@ #include #include +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/float_dsp.h" #include "libavutil/intmath.h" #include "libavutil/intreadwrite.h" #include "libavutil/mathematics.h" -#include "libavutil/audioconvert.h" #include "libavutil/samplefmt.h" #include "avcodec.h" #include "dsputil.h" diff --git a/libavcodec/dsicinav.c b/libavcodec/dsicinav.c index 6a0d754159..a1b45f1945 100644 --- a/libavcodec/dsicinav.c +++ b/libavcodec/dsicinav.c @@ -24,7 +24,7 @@ * Delphine Software International CIN audio/video decoders */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "avcodec.h" #include "bytestream.h" #include "mathops.h" diff --git a/libavcodec/flac.c b/libavcodec/flac.c index 4c1bc58408..3b803fedb7 100644 --- a/libavcodec/flac.c +++ b/libavcodec/flac.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/crc.h" #include "libavutil/log.h" #include "bytestream.h" diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c index 05793c961d..317d7fa838 100644 --- a/libavcodec/flacdec.c +++ b/libavcodec/flacdec.c @@ -33,8 +33,8 @@ #include -#include "libavutil/audioconvert.h" #include "libavutil/avassert.h" +#include "libavutil/channel_layout.h" #include "libavutil/crc.h" #include "avcodec.h" #include "internal.h" diff --git a/libavcodec/g722dec.c b/libavcodec/g722dec.c index 6c505d93b9..f28c86b3f9 100644 --- a/libavcodec/g722dec.c +++ b/libavcodec/g722dec.c @@ -34,11 +34,11 @@ * respectively of each byte are ignored. */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" +#include "libavutil/opt.h" #include "avcodec.h" #include "get_bits.h" #include "g722.h" -#include "libavutil/opt.h" #define OFFSET(x) offsetof(G722Context, x) #define AD AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_DECODING_PARAM diff --git a/libavcodec/g723_1.c b/libavcodec/g723_1.c index a74c74da61..58df03c0ef 100644 --- a/libavcodec/g723_1.c +++ b/libavcodec/g723_1.c @@ -26,7 +26,7 @@ */ #define BITSTREAM_READER_LE -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/mem.h" #include "libavutil/opt.h" #include "avcodec.h" diff --git a/libavcodec/g726.c b/libavcodec/g726.c index 609882ed7d..e505d5dfb9 100644 --- a/libavcodec/g726.c +++ b/libavcodec/g726.c @@ -23,8 +23,8 @@ */ #include -#include "libavutil/audioconvert.h" #include "libavutil/avassert.h" +#include "libavutil/channel_layout.h" #include "libavutil/opt.h" #include "avcodec.h" #include "internal.h" diff --git a/libavcodec/gsmdec.c b/libavcodec/gsmdec.c index 3e1b86a981..f6f99bdd8e 100644 --- a/libavcodec/gsmdec.c +++ b/libavcodec/gsmdec.c @@ -24,7 +24,7 @@ * GSM decoder */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "avcodec.h" #include "get_bits.h" #include "msgsmdec.h" diff --git a/libavcodec/imc.c b/libavcodec/imc.c index ba39d41c98..fff4b90ee7 100644 --- a/libavcodec/imc.c +++ b/libavcodec/imc.c @@ -35,12 +35,12 @@ #include #include +#include "libavutil/channel_layout.h" +#include "libavutil/libm.h" #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" #include "fft.h" -#include "libavutil/audioconvert.h" -#include "libavutil/libm.h" #include "sinewin.h" #include "imcdata.h" diff --git a/libavcodec/libfaac.c b/libavcodec/libfaac.c index 0bfed1e0fc..a7bf503b3c 100644 --- a/libavcodec/libfaac.c +++ b/libavcodec/libfaac.c @@ -26,11 +26,11 @@ #include +#include "libavutil/channel_layout.h" +#include "libavutil/common.h" #include "avcodec.h" #include "audio_frame_queue.h" #include "internal.h" -#include "libavutil/audioconvert.h" -#include "libavutil/common.h" /* libfaac has an encoder delay of 1024 samples */ diff --git a/libavcodec/libfdk-aacenc.c b/libavcodec/libfdk-aacenc.c index 2874e3797c..c2d8a2be25 100644 --- a/libavcodec/libfdk-aacenc.c +++ b/libavcodec/libfdk-aacenc.c @@ -21,12 +21,12 @@ #include +#include "libavutil/channel_layout.h" +#include "libavutil/common.h" +#include "libavutil/opt.h" #include "avcodec.h" #include "audio_frame_queue.h" #include "internal.h" -#include "libavutil/audioconvert.h" -#include "libavutil/common.h" -#include "libavutil/opt.h" typedef struct AACContext { const AVClass *class; diff --git a/libavcodec/libgsm.c b/libavcodec/libgsm.c index e90bdf0c4e..8915ef57ba 100644 --- a/libavcodec/libgsm.c +++ b/libavcodec/libgsm.c @@ -29,11 +29,11 @@ #include -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" +#include "libavutil/common.h" #include "avcodec.h" #include "internal.h" #include "gsm.h" -#include "libavutil/common.h" static av_cold int libgsm_encode_close(AVCodecContext *avctx) { #if FF_API_OLD_ENCODE_AUDIO diff --git a/libavcodec/libilbc.c b/libavcodec/libilbc.c index 462622a2d5..bcc01eddda 100644 --- a/libavcodec/libilbc.c +++ b/libavcodec/libilbc.c @@ -21,10 +21,10 @@ #include -#include "libavutil/audioconvert.h" -#include "avcodec.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/opt.h" +#include "avcodec.h" #include "internal.h" static int get_mode(AVCodecContext *avctx) diff --git a/libavcodec/libmp3lame.c b/libavcodec/libmp3lame.c index b2669c837b..a0f39bb5f5 100644 --- a/libavcodec/libmp3lame.c +++ b/libavcodec/libmp3lame.c @@ -26,7 +26,7 @@ #include -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/intreadwrite.h" #include "libavutil/log.h" diff --git a/libavcodec/libopencore-amr.c b/libavcodec/libopencore-amr.c index df038dfcbf..efe87cd0fa 100644 --- a/libavcodec/libopencore-amr.c +++ b/libavcodec/libopencore-amr.c @@ -19,11 +19,11 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libavutil/audioconvert.h" -#include "avcodec.h" #include "libavutil/avstring.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/opt.h" +#include "avcodec.h" #include "audio_frame_queue.h" #include "internal.h" diff --git a/libavcodec/libspeexdec.c b/libavcodec/libspeexdec.c index 51ab7ea07c..deed7e9eb5 100644 --- a/libavcodec/libspeexdec.c +++ b/libavcodec/libspeexdec.c @@ -23,7 +23,7 @@ #include #include -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "avcodec.h" diff --git a/libavcodec/libspeexenc.c b/libavcodec/libspeexenc.c index fb597efb6e..7dfc6d333c 100644 --- a/libavcodec/libspeexenc.c +++ b/libavcodec/libspeexenc.c @@ -85,7 +85,7 @@ #include #include -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/opt.h" #include "avcodec.h" diff --git a/libavcodec/mlp_parser.c b/libavcodec/mlp_parser.c index 1f5a3b13ab..f1c0a0d1e8 100644 --- a/libavcodec/mlp_parser.c +++ b/libavcodec/mlp_parser.c @@ -26,8 +26,8 @@ #include +#include "libavutil/channel_layout.h" #include "libavutil/crc.h" -#include "libavutil/audioconvert.h" #include "get_bits.h" #include "parser.h" #include "mlp_parser.h" diff --git a/libavcodec/mpc7.c b/libavcodec/mpc7.c index 9f3cf6c828..bacb78e8e6 100644 --- a/libavcodec/mpc7.c +++ b/libavcodec/mpc7.c @@ -25,12 +25,12 @@ * divided into 32 subbands. */ +#include "libavutil/channel_layout.h" #include "libavutil/lfg.h" #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" #include "mpegaudiodsp.h" -#include "libavutil/audioconvert.h" #include "mpc.h" #include "mpc7data.h" diff --git a/libavcodec/mpc8.c b/libavcodec/mpc8.c index 8b1c9353ba..1af417ac08 100644 --- a/libavcodec/mpc8.c +++ b/libavcodec/mpc8.c @@ -25,12 +25,12 @@ * divided into 32 subbands. */ +#include "libavutil/channel_layout.h" #include "libavutil/lfg.h" #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" #include "mpegaudiodsp.h" -#include "libavutil/audioconvert.h" #include "mpc.h" #include "mpc8data.h" diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c index f0256f31c1..8f7d34c254 100644 --- a/libavcodec/mpegaudiodec.c +++ b/libavcodec/mpegaudiodec.c @@ -24,8 +24,8 @@ * MPEG Audio decoder */ -#include "libavutil/audioconvert.h" #include "libavutil/avassert.h" +#include "libavutil/channel_layout.h" #include "libavutil/libm.h" #include "avcodec.h" #include "get_bits.h" diff --git a/libavcodec/mpegaudioenc.c b/libavcodec/mpegaudioenc.c index 806cb21a88..75436f8522 100644 --- a/libavcodec/mpegaudioenc.c +++ b/libavcodec/mpegaudioenc.c @@ -24,7 +24,7 @@ * The simplest mpeg audio layer 2 encoder. */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "avcodec.h" #include "internal.h" diff --git a/libavcodec/nellymoserdec.c b/libavcodec/nellymoserdec.c index 8413ea5ce7..b4823a895d 100644 --- a/libavcodec/nellymoserdec.c +++ b/libavcodec/nellymoserdec.c @@ -31,14 +31,14 @@ * implementors. The original code is available from http://code.google.com/p/nelly2pcm/ */ -#include "nellymoser.h" +#include "libavutil/channel_layout.h" #include "libavutil/lfg.h" #include "libavutil/random_seed.h" -#include "libavutil/audioconvert.h" #include "avcodec.h" #include "dsputil.h" #include "fft.h" #include "fmtconvert.h" +#include "nellymoser.h" #include "sinewin.h" #define BITSTREAM_READER_LE diff --git a/libavcodec/pcm-mpeg.c b/libavcodec/pcm-mpeg.c index 207f12134a..01a61c8696 100644 --- a/libavcodec/pcm-mpeg.c +++ b/libavcodec/pcm-mpeg.c @@ -24,7 +24,7 @@ * PCM codecs for encodings found in MPEG streams (DVD/Blu-ray) */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "avcodec.h" #include "bytestream.h" diff --git a/libavcodec/qcelpdec.c b/libavcodec/qcelpdec.c index 9cc30f6397..e406049171 100644 --- a/libavcodec/qcelpdec.c +++ b/libavcodec/qcelpdec.c @@ -29,7 +29,7 @@ #include -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "avcodec.h" #include "internal.h" #include "get_bits.h" diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c index 38eca42476..08674be709 100644 --- a/libavcodec/qdm2.c +++ b/libavcodec/qdm2.c @@ -36,7 +36,7 @@ #include #define BITSTREAM_READER_LE -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" diff --git a/libavcodec/ra144dec.c b/libavcodec/ra144dec.c index acf6247c06..ad9e00836f 100644 --- a/libavcodec/ra144dec.c +++ b/libavcodec/ra144dec.c @@ -22,7 +22,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/intmath.h" #include "avcodec.h" #include "get_bits.h" diff --git a/libavcodec/ra288.c b/libavcodec/ra288.c index 41364f36bc..a9f67bf147 100644 --- a/libavcodec/ra288.c +++ b/libavcodec/ra288.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/float_dsp.h" #include "avcodec.h" #define BITSTREAM_READER_LE diff --git a/libavcodec/ralf.c b/libavcodec/ralf.c index 3244424f74..c9c8080dd9 100644 --- a/libavcodec/ralf.c +++ b/libavcodec/ralf.c @@ -26,11 +26,11 @@ * Dedicated to the mastermind behind it, Ralph Wiggum. */ +#include "libavutil/channel_layout.h" #include "avcodec.h" #include "get_bits.h" #include "golomb.h" #include "unary.h" -#include "libavutil/audioconvert.h" #include "ralfdata.h" #define FILTER_NONE 0 diff --git a/libavcodec/sipr.c b/libavcodec/sipr.c index 986310dda9..d8bfdd28c9 100644 --- a/libavcodec/sipr.c +++ b/libavcodec/sipr.c @@ -25,7 +25,7 @@ #include #include -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/mathematics.h" #include "avcodec.h" #define BITSTREAM_READER_LE diff --git a/libavcodec/smacker.c b/libavcodec/smacker.c index a6a4386605..f4cc6ae72b 100644 --- a/libavcodec/smacker.c +++ b/libavcodec/smacker.c @@ -31,8 +31,8 @@ #include #include +#include "libavutil/channel_layout.h" #include "avcodec.h" -#include "libavutil/audioconvert.h" #include "mathops.h" #define BITSTREAM_READER_LE diff --git a/libavcodec/truespeech.c b/libavcodec/truespeech.c index 686bf080ec..d523bdd792 100644 --- a/libavcodec/truespeech.c +++ b/libavcodec/truespeech.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/intreadwrite.h" #include "avcodec.h" #include "dsputil.h" diff --git a/libavcodec/twinvq.c b/libavcodec/twinvq.c index 88c1c9a6c8..d7a372648a 100644 --- a/libavcodec/twinvq.c +++ b/libavcodec/twinvq.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/float_dsp.h" #include "avcodec.h" #include "get_bits.h" diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 931f3fd53e..0d3cb81bf1 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -27,10 +27,10 @@ #include "libavutil/avassert.h" #include "libavutil/avstring.h" +#include "libavutil/channel_layout.h" #include "libavutil/crc.h" #include "libavutil/mathematics.h" #include "libavutil/pixdesc.h" -#include "libavutil/audioconvert.h" #include "libavutil/imgutils.h" #include "libavutil/samplefmt.h" #include "libavutil/dict.h" @@ -40,7 +40,6 @@ #include "libavutil/opt.h" #include "thread.h" #include "frame_thread_encoder.h" -#include "audioconvert.h" #include "internal.h" #include "bytestream.h" #include diff --git a/libavcodec/vmdav.c b/libavcodec/vmdav.c index 1ecf211582..63343fd2ee 100644 --- a/libavcodec/vmdav.c +++ b/libavcodec/vmdav.c @@ -43,7 +43,7 @@ #include #include -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/intreadwrite.h" #include "avcodec.h" diff --git a/libavcodec/vorbis_data.c b/libavcodec/vorbis_data.c index f4b25fbf20..8aa8015df5 100644 --- a/libavcodec/vorbis_data.c +++ b/libavcodec/vorbis_data.c @@ -18,10 +18,10 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "libavutil/channel_layout.h" +#include "libavutil/mem.h" #include "dsputil.h" #include "vorbis.h" -#include "libavutil/audioconvert.h" -#include "libavutil/mem.h" const uint8_t ff_vorbis_channel_layout_offsets[8][8] = { { 0 }, diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c index 253974e4b6..69637fee51 100644 --- a/libavcodec/wavpack.c +++ b/libavcodec/wavpack.c @@ -21,7 +21,7 @@ #define BITSTREAM_READER_LE -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "avcodec.h" #include "get_bits.h" #include "unary.h" diff --git a/libavcodec/wmavoice.c b/libavcodec/wmavoice.c index f4e156e92e..c156be830a 100644 --- a/libavcodec/wmavoice.c +++ b/libavcodec/wmavoice.c @@ -29,7 +29,7 @@ #include -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/mem.h" #include "dsputil.h" #include "avcodec.h" diff --git a/libavcodec/ws-snd1.c b/libavcodec/ws-snd1.c index 3a83f94e41..0f23a6d2b5 100644 --- a/libavcodec/ws-snd1.c +++ b/libavcodec/ws-snd1.c @@ -21,7 +21,7 @@ #include -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/intreadwrite.h" #include "avcodec.h" diff --git a/libavdevice/alsa-audio-common.c b/libavdevice/alsa-audio-common.c index 9da868ff6c..afe67510d7 100644 --- a/libavdevice/alsa-audio-common.c +++ b/libavdevice/alsa-audio-common.c @@ -31,7 +31,7 @@ #include #include "avdevice.h" #include "libavutil/avassert.h" -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "alsa-audio.h" diff --git a/libavfilter/af_aformat.c b/libavfilter/af_aformat.c index 79e0db2e20..b1d779f9ec 100644 --- a/libavfilter/af_aformat.c +++ b/libavfilter/af_aformat.c @@ -23,8 +23,8 @@ * format audio filter */ -#include "libavutil/audioconvert.h" #include "libavutil/avstring.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/opt.h" diff --git a/libavfilter/af_amix.c b/libavfilter/af_amix.c index a93adddf34..37853ca1ee 100644 --- a/libavfilter/af_amix.c +++ b/libavfilter/af_amix.c @@ -28,10 +28,10 @@ * output. */ -#include "libavutil/audioconvert.h" #include "libavutil/audio_fifo.h" #include "libavutil/avassert.h" #include "libavutil/avstring.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/float_dsp.h" #include "libavutil/mathematics.h" diff --git a/libavfilter/af_ashowinfo.c b/libavfilter/af_ashowinfo.c index 82ce261064..8e4f30159f 100644 --- a/libavfilter/af_ashowinfo.c +++ b/libavfilter/af_ashowinfo.c @@ -27,7 +27,7 @@ #include #include "libavutil/adler32.h" -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/mem.h" #include "libavutil/timestamp.h" diff --git a/libavfilter/af_channelmap.c b/libavfilter/af_channelmap.c index 57ad0e0ff7..eccdf44b3c 100644 --- a/libavfilter/af_channelmap.c +++ b/libavfilter/af_channelmap.c @@ -25,8 +25,8 @@ #include -#include "libavutil/audioconvert.h" #include "libavutil/avstring.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/mathematics.h" #include "libavutil/opt.h" diff --git a/libavfilter/af_channelsplit.c b/libavfilter/af_channelsplit.c index 56950c8fd4..65bbaa67d0 100644 --- a/libavfilter/af_channelsplit.c +++ b/libavfilter/af_channelsplit.c @@ -23,7 +23,7 @@ * Split an audio stream into per-channel streams. */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/internal.h" #include "libavutil/opt.h" diff --git a/libavfilter/af_join.c b/libavfilter/af_join.c index 210c844524..ee8a4972c5 100644 --- a/libavfilter/af_join.c +++ b/libavfilter/af_join.c @@ -25,8 +25,8 @@ * a single output */ -#include "libavutil/audioconvert.h" #include "libavutil/avassert.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/opt.h" diff --git a/libavfilter/asrc_anullsrc.c b/libavfilter/asrc_anullsrc.c index 3b20acaaf9..5eec4adeae 100644 --- a/libavfilter/asrc_anullsrc.c +++ b/libavfilter/asrc_anullsrc.c @@ -27,14 +27,13 @@ #include #include +#include "libavutil/channel_layout.h" +#include "libavutil/internal.h" +#include "libavutil/opt.h" #include "audio.h" #include "avfilter.h" #include "internal.h" -#include "libavutil/audioconvert.h" -#include "libavutil/internal.h" -#include "libavutil/opt.h" - typedef struct { const AVClass *class; char *channel_layout_str; diff --git a/libavfilter/audio.c b/libavfilter/audio.c index 06702a6043..500b97f5d1 100644 --- a/libavfilter/audio.c +++ b/libavfilter/audio.c @@ -20,7 +20,7 @@ */ #include "libavutil/avassert.h" -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "audio.h" diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index dee7ba08de..4d59bba4ee 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -19,12 +19,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "libavutil/avassert.h" +#include "libavutil/avstring.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/pixdesc.h" #include "libavutil/rational.h" -#include "libavutil/audioconvert.h" -#include "libavutil/avassert.h" -#include "libavutil/avstring.h" #include "avfilter.h" #include "formats.h" diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index ccc7f2b7ed..ea8464e401 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -534,7 +534,7 @@ struct AVFilterLink { int h; ///< agreed upon image height AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio /* These parameters apply only to audio */ - uint64_t channel_layout; ///< channel layout of current buffer (see libavutil/audioconvert.h) + uint64_t channel_layout; ///< channel layout of current buffer (see libavutil/channel_layout.h) int sample_rate; ///< samples per second int format; ///< agreed upon media format diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index 86be2c4a8c..d75af9003c 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -23,8 +23,8 @@ #include #include -#include "libavutil/audioconvert.h" #include "libavutil/avassert.h" +#include "libavutil/channel_layout.h" #include "libavutil/pixdesc.h" #include "libavcodec/avcodec.h" // avcodec_find_best_pix_fmt_of_2() #include "avfilter.h" @@ -32,11 +32,6 @@ #include "formats.h" #include "internal.h" -#include "libavutil/audioconvert.h" -#include "libavutil/avassert.h" -#include "libavutil/common.h" -#include "libavutil/log.h" - static const AVClass filtergraph_class = { .class_name = "AVFilterGraph", .item_name = av_default_item_name, diff --git a/libavfilter/buffer.c b/libavfilter/buffer.c index ae1867f834..a8155efbdd 100644 --- a/libavfilter/buffer.c +++ b/libavfilter/buffer.c @@ -20,7 +20,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/avassert.h" #include "libavutil/common.h" #include "libavutil/imgutils.h" diff --git a/libavfilter/buffersink.c b/libavfilter/buffersink.c index 9a9aaf1d38..1e3cf50ef6 100644 --- a/libavfilter/buffersink.c +++ b/libavfilter/buffersink.c @@ -24,8 +24,8 @@ */ #include "libavutil/audio_fifo.h" -#include "libavutil/audioconvert.h" #include "libavutil/avassert.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/mathematics.h" diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c index a88cc463da..134163f5a2 100644 --- a/libavfilter/buffersrc.c +++ b/libavfilter/buffersrc.c @@ -23,6 +23,12 @@ * memory buffer source filter */ +#include "libavutil/channel_layout.h" +#include "libavutil/common.h" +#include "libavutil/fifo.h" +#include "libavutil/imgutils.h" +#include "libavutil/opt.h" +#include "libavutil/samplefmt.h" #include "audio.h" #include "avfilter.h" #include "buffersrc.h" @@ -31,13 +37,6 @@ #include "video.h" #include "avcodec.h" -#include "libavutil/audioconvert.h" -#include "libavutil/common.h" -#include "libavutil/fifo.h" -#include "libavutil/imgutils.h" -#include "libavutil/opt.h" -#include "libavutil/samplefmt.h" - typedef struct { const AVClass *class; AVFifoBuffer *fifo; diff --git a/libavfilter/fifo.c b/libavfilter/fifo.c index 75f9ddb40c..8284ef087a 100644 --- a/libavfilter/fifo.c +++ b/libavfilter/fifo.c @@ -24,7 +24,7 @@ */ #include "libavutil/avassert.h" -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/mathematics.h" #include "libavutil/samplefmt.h" diff --git a/libavformat/aea.c b/libavformat/aea.c index 6aa7ae321c..15b9b1cd32 100644 --- a/libavformat/aea.c +++ b/libavformat/aea.c @@ -20,10 +20,10 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "libavutil/channel_layout.h" +#include "libavutil/intreadwrite.h" #include "avformat.h" #include "pcm.h" -#include "libavutil/intreadwrite.h" -#include "libavutil/audioconvert.h" #define AT1_SU_SIZE 212 diff --git a/libavformat/flic.c b/libavformat/flic.c index db3f5d8dfa..2b9ee67d46 100644 --- a/libavformat/flic.c +++ b/libavformat/flic.c @@ -31,8 +31,8 @@ * special FLIs from the PC games "Magic Carpet" and "X-COM: Terror from the Deep". */ +#include "libavutil/channel_layout.h" #include "libavutil/intreadwrite.h" -#include "libavutil/audioconvert.h" #include "avformat.h" #include "internal.h" diff --git a/libavformat/g723_1.c b/libavformat/g723_1.c index 7d97a4ba8d..8d35f885a8 100644 --- a/libavformat/g723_1.c +++ b/libavformat/g723_1.c @@ -24,7 +24,7 @@ * G.723.1 demuxer */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "avformat.h" #include "internal.h" diff --git a/libavformat/mov.c b/libavformat/mov.c index cd260b44bc..11b1c8d49d 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -26,7 +26,7 @@ //#define MOV_EXPORT_ALL_METADATA #include "libavutil/attributes.h" -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/intreadwrite.h" #include "libavutil/intfloat.h" #include "libavutil/mathematics.h" diff --git a/libavformat/mov_chan.c b/libavformat/mov_chan.c index 58aec57374..cf1f839800 100644 --- a/libavformat/mov_chan.c +++ b/libavformat/mov_chan.c @@ -25,7 +25,7 @@ #include -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavcodec/avcodec.h" #include "mov_chan.h" diff --git a/libavformat/wv.c b/libavformat/wv.c index 8d9184c1ca..cf410c0179 100644 --- a/libavformat/wv.c +++ b/libavformat/wv.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libavutil/audioconvert.h" +#include "libavutil/channel_layout.h" #include "libavutil/intreadwrite.h" #include "libavutil/dict.h" #include "avformat.h" diff --git a/libavresample/avresample.h b/libavresample/avresample.h index b0a9e247e8..affeeeb73b 100644 --- a/libavresample/avresample.h +++ b/libavresample/avresample.h @@ -93,8 +93,8 @@ * avresample_free(). */ -#include "libavutil/audioconvert.h" #include "libavutil/avutil.h" +#include "libavutil/channel_layout.h" #include "libavutil/dict.h" #include "libavutil/log.h" diff --git a/libavutil/Makefile b/libavutil/Makefile index 63da9e9a80..61ddc9a3fc 100644 --- a/libavutil/Makefile +++ b/libavutil/Makefile @@ -14,6 +14,7 @@ HEADERS = adler32.h \ blowfish.h \ bprint.h \ bswap.h \ + channel_layout.h \ common.h \ cpu.h \ crc.h \ @@ -58,11 +59,11 @@ BUILT_HEADERS = avconfig.h OBJS = adler32.o \ aes.o \ audio_fifo.o \ - audioconvert.o \ avstring.o \ base64.o \ blowfish.o \ bprint.o \ + channel_layout.o \ cpu.o \ crc.o \ des.o \ diff --git a/libavutil/audioconvert.h b/libavutil/audioconvert.h index 76eb2783b5..300a67cd3d 100644 --- a/libavutil/audioconvert.h +++ b/libavutil/audioconvert.h @@ -1,208 +1,6 @@ -/* - * Copyright (c) 2006 Michael Niedermayer - * Copyright (c) 2008 Peter Ross - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef AVUTIL_AUDIOCONVERT_H -#define AVUTIL_AUDIOCONVERT_H +#include "version.h" -#include - -/** - * @file - * audio conversion routines - */ - -/** - * @addtogroup lavu_audio - * @{ - */ - -/** - * @defgroup channel_masks Audio channel masks - * @{ - */ -#define AV_CH_FRONT_LEFT 0x00000001 -#define AV_CH_FRONT_RIGHT 0x00000002 -#define AV_CH_FRONT_CENTER 0x00000004 -#define AV_CH_LOW_FREQUENCY 0x00000008 -#define AV_CH_BACK_LEFT 0x00000010 -#define AV_CH_BACK_RIGHT 0x00000020 -#define AV_CH_FRONT_LEFT_OF_CENTER 0x00000040 -#define AV_CH_FRONT_RIGHT_OF_CENTER 0x00000080 -#define AV_CH_BACK_CENTER 0x00000100 -#define AV_CH_SIDE_LEFT 0x00000200 -#define AV_CH_SIDE_RIGHT 0x00000400 -#define AV_CH_TOP_CENTER 0x00000800 -#define AV_CH_TOP_FRONT_LEFT 0x00001000 -#define AV_CH_TOP_FRONT_CENTER 0x00002000 -#define AV_CH_TOP_FRONT_RIGHT 0x00004000 -#define AV_CH_TOP_BACK_LEFT 0x00008000 -#define AV_CH_TOP_BACK_CENTER 0x00010000 -#define AV_CH_TOP_BACK_RIGHT 0x00020000 -#define AV_CH_STEREO_LEFT 0x20000000 ///< Stereo downmix. -#define AV_CH_STEREO_RIGHT 0x40000000 ///< See AV_CH_STEREO_LEFT. -#define AV_CH_WIDE_LEFT 0x0000000080000000ULL -#define AV_CH_WIDE_RIGHT 0x0000000100000000ULL -#define AV_CH_SURROUND_DIRECT_LEFT 0x0000000200000000ULL -#define AV_CH_SURROUND_DIRECT_RIGHT 0x0000000400000000ULL -#define AV_CH_LOW_FREQUENCY_2 0x0000000800000000ULL - -/** Channel mask value used for AVCodecContext.request_channel_layout - to indicate that the user requests the channel order of the decoder output - to be the native codec channel order. */ -#define AV_CH_LAYOUT_NATIVE 0x8000000000000000ULL - -/** - * @} - * @defgroup channel_mask_c Audio channel convenience macros - * @{ - * */ -#define AV_CH_LAYOUT_MONO (AV_CH_FRONT_CENTER) -#define AV_CH_LAYOUT_STEREO (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT) -#define AV_CH_LAYOUT_2POINT1 (AV_CH_LAYOUT_STEREO|AV_CH_LOW_FREQUENCY) -#define AV_CH_LAYOUT_2_1 (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER) -#define AV_CH_LAYOUT_SURROUND (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER) -#define AV_CH_LAYOUT_3POINT1 (AV_CH_LAYOUT_SURROUND|AV_CH_LOW_FREQUENCY) -#define AV_CH_LAYOUT_4POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_CENTER) -#define AV_CH_LAYOUT_4POINT1 (AV_CH_LAYOUT_4POINT0|AV_CH_LOW_FREQUENCY) -#define AV_CH_LAYOUT_2_2 (AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) -#define AV_CH_LAYOUT_QUAD (AV_CH_LAYOUT_STEREO|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) -#define AV_CH_LAYOUT_5POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) -#define AV_CH_LAYOUT_5POINT1 (AV_CH_LAYOUT_5POINT0|AV_CH_LOW_FREQUENCY) -#define AV_CH_LAYOUT_5POINT0_BACK (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) -#define AV_CH_LAYOUT_5POINT1_BACK (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_LOW_FREQUENCY) -#define AV_CH_LAYOUT_6POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_CENTER) -#define AV_CH_LAYOUT_6POINT0_FRONT (AV_CH_LAYOUT_2_2|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) -#define AV_CH_LAYOUT_HEXAGONAL (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_BACK_CENTER) -#define AV_CH_LAYOUT_6POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_CENTER) -#define AV_CH_LAYOUT_6POINT1_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_BACK_CENTER) -#define AV_CH_LAYOUT_6POINT1_FRONT (AV_CH_LAYOUT_6POINT0_FRONT|AV_CH_LOW_FREQUENCY) -#define AV_CH_LAYOUT_7POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) -#define AV_CH_LAYOUT_7POINT0_FRONT (AV_CH_LAYOUT_5POINT0|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) -#define AV_CH_LAYOUT_7POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) -#define AV_CH_LAYOUT_7POINT1_WIDE (AV_CH_LAYOUT_5POINT1|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) -#define AV_CH_LAYOUT_7POINT1_WIDE_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) -#define AV_CH_LAYOUT_OCTAGONAL (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_CENTER|AV_CH_BACK_RIGHT) -#define AV_CH_LAYOUT_STEREO_DOWNMIX (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT) - -enum AVMatrixEncoding { - AV_MATRIX_ENCODING_NONE, - AV_MATRIX_ENCODING_DOLBY, - AV_MATRIX_ENCODING_DPLII, - AV_MATRIX_ENCODING_NB -}; - -/** - * @} - */ - -/** - * Return a channel layout id that matches name, or 0 if no match is found. - * - * name can be one or several of the following notations, - * separated by '+' or '|': - * - the name of an usual channel layout (mono, stereo, 4.0, quad, 5.0, - * 5.0(side), 5.1, 5.1(side), 7.1, 7.1(wide), downmix); - * - the name of a single channel (FL, FR, FC, LFE, BL, BR, FLC, FRC, BC, - * SL, SR, TC, TFL, TFC, TFR, TBL, TBC, TBR, DL, DR); - * - a number of channels, in decimal, optionally followed by 'c', yielding - * the default channel layout for that number of channels (@see - * av_get_default_channel_layout); - * - a channel layout mask, in hexadecimal starting with "0x" (see the - * AV_CH_* macros). - * - * Example: "stereo+FC" = "2+FC" = "2c+1c" = "0x7" - */ -uint64_t av_get_channel_layout(const char *name); - -/** - * Return a description of a channel layout. - * If nb_channels is <= 0, it is guessed from the channel_layout. - * - * @param buf put here the string containing the channel layout - * @param buf_size size in bytes of the buffer - */ -void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, uint64_t channel_layout); - -struct AVBPrint; -/** - * Append a description of a channel layout to a bprint buffer. - */ -void av_bprint_channel_layout(struct AVBPrint *bp, int nb_channels, uint64_t channel_layout); - -/** - * Return the number of channels in the channel layout. - */ -int av_get_channel_layout_nb_channels(uint64_t channel_layout); - -/** - * Return default channel layout for a given number of channels. - */ -int64_t av_get_default_channel_layout(int nb_channels); - -/** - * Get the index of a channel in channel_layout. - * - * @param channel a channel layout describing exactly one channel which must be - * present in channel_layout. - * - * @return index of channel in channel_layout on success, a negative AVERROR - * on error. - */ -int av_get_channel_layout_channel_index(uint64_t channel_layout, - uint64_t channel); - -/** - * Get the channel with the given index in channel_layout. - */ -uint64_t av_channel_layout_extract_channel(uint64_t channel_layout, int index); - -/** - * Get the name of a given channel. - * - * @return channel name on success, NULL on error. - */ -const char *av_get_channel_name(uint64_t channel); - -/** - * Get the description of a given channel. - * - * @param channel a channel layout with a single channel - * @return channel description on success, NULL on error - */ -const char *av_get_channel_description(uint64_t channel); - -/** - * Get the value and name of a standard channel layout. - * - * @param[in] index index in an internal list, starting at 0 - * @param[out] layout channel layout mask - * @param[out] name name of the layout - * @return 0 if the layout exists, - * <0 if index is beyond the limits - */ -int av_get_standard_channel_layout(unsigned index, uint64_t *layout, - const char **name); - -/** - * @} - */ - -#endif /* AVUTIL_AUDIOCONVERT_H */ +#if FF_API_AUDIOCONVERT +#include "channel_layout.h" +#endif diff --git a/libavutil/audioconvert.c b/libavutil/channel_layout.c similarity index 99% rename from libavutil/audioconvert.c rename to libavutil/channel_layout.c index caab5e6910..ef6bad788b 100644 --- a/libavutil/audioconvert.c +++ b/libavutil/channel_layout.c @@ -20,12 +20,12 @@ /** * @file - * audio conversion routines + * audio channel layout utility functions */ #include "avstring.h" #include "avutil.h" -#include "audioconvert.h" +#include "channel_layout.h" #include "bprint.h" #include "common.h" diff --git a/libavutil/channel_layout.h b/libavutil/channel_layout.h new file mode 100644 index 0000000000..e1a6d28b1f --- /dev/null +++ b/libavutil/channel_layout.h @@ -0,0 +1,208 @@ +/* + * Copyright (c) 2006 Michael Niedermayer + * Copyright (c) 2008 Peter Ross + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_CHANNEL_LAYOUT_H +#define AVUTIL_CHANNEL_LAYOUT_H + +#include + +/** + * @file + * audio channel layout utility functions + */ + +/** + * @addtogroup lavu_audio + * @{ + */ + +/** + * @defgroup channel_masks Audio channel masks + * @{ + */ +#define AV_CH_FRONT_LEFT 0x00000001 +#define AV_CH_FRONT_RIGHT 0x00000002 +#define AV_CH_FRONT_CENTER 0x00000004 +#define AV_CH_LOW_FREQUENCY 0x00000008 +#define AV_CH_BACK_LEFT 0x00000010 +#define AV_CH_BACK_RIGHT 0x00000020 +#define AV_CH_FRONT_LEFT_OF_CENTER 0x00000040 +#define AV_CH_FRONT_RIGHT_OF_CENTER 0x00000080 +#define AV_CH_BACK_CENTER 0x00000100 +#define AV_CH_SIDE_LEFT 0x00000200 +#define AV_CH_SIDE_RIGHT 0x00000400 +#define AV_CH_TOP_CENTER 0x00000800 +#define AV_CH_TOP_FRONT_LEFT 0x00001000 +#define AV_CH_TOP_FRONT_CENTER 0x00002000 +#define AV_CH_TOP_FRONT_RIGHT 0x00004000 +#define AV_CH_TOP_BACK_LEFT 0x00008000 +#define AV_CH_TOP_BACK_CENTER 0x00010000 +#define AV_CH_TOP_BACK_RIGHT 0x00020000 +#define AV_CH_STEREO_LEFT 0x20000000 ///< Stereo downmix. +#define AV_CH_STEREO_RIGHT 0x40000000 ///< See AV_CH_STEREO_LEFT. +#define AV_CH_WIDE_LEFT 0x0000000080000000ULL +#define AV_CH_WIDE_RIGHT 0x0000000100000000ULL +#define AV_CH_SURROUND_DIRECT_LEFT 0x0000000200000000ULL +#define AV_CH_SURROUND_DIRECT_RIGHT 0x0000000400000000ULL +#define AV_CH_LOW_FREQUENCY_2 0x0000000800000000ULL + +/** Channel mask value used for AVCodecContext.request_channel_layout + to indicate that the user requests the channel order of the decoder output + to be the native codec channel order. */ +#define AV_CH_LAYOUT_NATIVE 0x8000000000000000ULL + +/** + * @} + * @defgroup channel_mask_c Audio channel convenience macros + * @{ + * */ +#define AV_CH_LAYOUT_MONO (AV_CH_FRONT_CENTER) +#define AV_CH_LAYOUT_STEREO (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT) +#define AV_CH_LAYOUT_2POINT1 (AV_CH_LAYOUT_STEREO|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_2_1 (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_SURROUND (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER) +#define AV_CH_LAYOUT_3POINT1 (AV_CH_LAYOUT_SURROUND|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_4POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_4POINT1 (AV_CH_LAYOUT_4POINT0|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_2_2 (AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) +#define AV_CH_LAYOUT_QUAD (AV_CH_LAYOUT_STEREO|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_5POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) +#define AV_CH_LAYOUT_5POINT1 (AV_CH_LAYOUT_5POINT0|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_5POINT0_BACK (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_5POINT1_BACK (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_6POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_6POINT0_FRONT (AV_CH_LAYOUT_2_2|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_HEXAGONAL (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_6POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_6POINT1_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_6POINT1_FRONT (AV_CH_LAYOUT_6POINT0_FRONT|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_7POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_7POINT0_FRONT (AV_CH_LAYOUT_5POINT0|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_7POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_7POINT1_WIDE (AV_CH_LAYOUT_5POINT1|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_7POINT1_WIDE_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_OCTAGONAL (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_CENTER|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_STEREO_DOWNMIX (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT) + +enum AVMatrixEncoding { + AV_MATRIX_ENCODING_NONE, + AV_MATRIX_ENCODING_DOLBY, + AV_MATRIX_ENCODING_DPLII, + AV_MATRIX_ENCODING_NB +}; + +/** + * @} + */ + +/** + * Return a channel layout id that matches name, or 0 if no match is found. + * + * name can be one or several of the following notations, + * separated by '+' or '|': + * - the name of an usual channel layout (mono, stereo, 4.0, quad, 5.0, + * 5.0(side), 5.1, 5.1(side), 7.1, 7.1(wide), downmix); + * - the name of a single channel (FL, FR, FC, LFE, BL, BR, FLC, FRC, BC, + * SL, SR, TC, TFL, TFC, TFR, TBL, TBC, TBR, DL, DR); + * - a number of channels, in decimal, optionally followed by 'c', yielding + * the default channel layout for that number of channels (@see + * av_get_default_channel_layout); + * - a channel layout mask, in hexadecimal starting with "0x" (see the + * AV_CH_* macros). + * + * Example: "stereo+FC" = "2+FC" = "2c+1c" = "0x7" + */ +uint64_t av_get_channel_layout(const char *name); + +/** + * Return a description of a channel layout. + * If nb_channels is <= 0, it is guessed from the channel_layout. + * + * @param buf put here the string containing the channel layout + * @param buf_size size in bytes of the buffer + */ +void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, uint64_t channel_layout); + +struct AVBPrint; +/** + * Append a description of a channel layout to a bprint buffer. + */ +void av_bprint_channel_layout(struct AVBPrint *bp, int nb_channels, uint64_t channel_layout); + +/** + * Return the number of channels in the channel layout. + */ +int av_get_channel_layout_nb_channels(uint64_t channel_layout); + +/** + * Return default channel layout for a given number of channels. + */ +int64_t av_get_default_channel_layout(int nb_channels); + +/** + * Get the index of a channel in channel_layout. + * + * @param channel a channel layout describing exactly one channel which must be + * present in channel_layout. + * + * @return index of channel in channel_layout on success, a negative AVERROR + * on error. + */ +int av_get_channel_layout_channel_index(uint64_t channel_layout, + uint64_t channel); + +/** + * Get the channel with the given index in channel_layout. + */ +uint64_t av_channel_layout_extract_channel(uint64_t channel_layout, int index); + +/** + * Get the name of a given channel. + * + * @return channel name on success, NULL on error. + */ +const char *av_get_channel_name(uint64_t channel); + +/** + * Get the description of a given channel. + * + * @param channel a channel layout with a single channel + * @return channel description on success, NULL on error + */ +const char *av_get_channel_description(uint64_t channel); + +/** + * Get the value and name of a standard channel layout. + * + * @param[in] index index in an internal list, starting at 0 + * @param[out] layout channel layout mask + * @param[out] name name of the layout + * @return 0 if the layout exists, + * <0 if index is beyond the limits + */ +int av_get_standard_channel_layout(unsigned index, uint64_t *layout, + const char **name); + +/** + * @} + */ + +#endif /* AVUTIL_CHANNEL_LAYOUT_H */ diff --git a/libavutil/version.h b/libavutil/version.h index 55e0d118e6..691e8ab1fb 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -75,7 +75,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 52 -#define LIBAVUTIL_VERSION_MINOR 5 +#define LIBAVUTIL_VERSION_MINOR 6 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ @@ -120,6 +120,9 @@ #ifndef FF_API_AV_REVERSE #define FF_API_AV_REVERSE (LIBAVUTIL_VERSION_MAJOR < 53) #endif +#ifndef FF_API_AUDIOCONVERT +#define FF_API_AUDIOCONVERT (LIBAVUTIL_VERSION_MAJOR < 53) +#endif /** * @}