libavcodec/audioconvert.h
c2b28bb9
 /*
  * audio conversion
  * Copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
  * 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
  */
 
98790382
 #ifndef AVCODEC_AUDIOCONVERT_H
 #define AVCODEC_AUDIOCONVERT_H
c2b28bb9
 
 /**
ba87f080
  * @file
c2b28bb9
  * Audio format conversion routines
5a6e6dca
  * This interface is deprecated and will be dropped in a future
  * version. You should use the libswresample library instead.
c2b28bb9
  */
 
5a6e6dca
 #if FF_API_AUDIO_CONVERT
c2b28bb9
 
7160bb71
 #include "libavutil/cpu.h"
c2b28bb9
 #include "avcodec.h"
a903f8f0
 #include "libavutil/channel_layout.h"
c2b28bb9
 
82cee279
 struct AVAudioConvert;
 typedef struct AVAudioConvert AVAudioConvert;
 
 /**
  * Create an audio sample format converter context
  * @param out_fmt Output sample format
  * @param out_channels Number of output channels
  * @param in_fmt Input sample format
  * @param in_channels Number of input channels
  * @param[in] matrix Channel mixing matrix (of dimension in_channel*out_channels). Set to NULL to ignore.
7160bb71
  * @param flags See AV_CPU_FLAG_xx
82cee279
  * @return NULL on error
e3623196
  * @deprecated See libswresample
82cee279
  */
e3623196
 
 attribute_deprecated
5d6e4c16
 AVAudioConvert *av_audio_convert_alloc(enum AVSampleFormat out_fmt, int out_channels,
                                        enum AVSampleFormat in_fmt, int in_channels,
82cee279
                                        const float *matrix, int flags);
 
 /**
  * Free audio sample format converter context
e3623196
  * @deprecated See libswresample
82cee279
  */
e3623196
 
 attribute_deprecated
82cee279
 void av_audio_convert_free(AVAudioConvert *ctx);
 
 /**
  * Convert between audio sample formats
  * @param[in] out array of output buffers for each channel. set to NULL to ignore processing of the given channel.
d3d87481
  * @param[in] out_stride distance between consecutive output samples (measured in bytes)
82cee279
  * @param[in] in array of input buffers for each channel
d3d87481
  * @param[in] in_stride distance between consecutive input samples (measured in bytes)
82cee279
  * @param len length of audio frame size (measured in samples)
e3623196
  * @deprecated See libswresample
82cee279
  */
e3623196
 
 attribute_deprecated
82cee279
 int av_audio_convert(AVAudioConvert *ctx,
                            void * const out[6], const int out_stride[6],
                      const void * const  in[6], const int  in_stride[6], int len);
 
5a6e6dca
 #endif /* FF_API_AUDIO_CONVERT */
 
98790382
 #endif /* AVCODEC_AUDIOCONVERT_H */