FFmpeg
Files | Functions
libswresample

Audio resampling, sample format conversion and mixing library. More...

Files

file  swresample.h
 

Functions

const AVClassswr_get_class (void)
 Get the AVClass for SwrContext. More...
 

Option constants

These constants are used for the AVOptions interface for lswr.

enum  SwrDitherType {
  SWR_DITHER_NONE = 0, SWR_DITHER_RECTANGULAR, SWR_DITHER_TRIANGULAR, SWR_DITHER_TRIANGULAR_HIGHPASS,
  SWR_DITHER_NS = 64, SWR_DITHER_NS_LIPSHITZ, SWR_DITHER_NS_F_WEIGHTED, SWR_DITHER_NS_MODIFIED_E_WEIGHTED,
  SWR_DITHER_NS_IMPROVED_E_WEIGHTED, SWR_DITHER_NS_SHIBATA, SWR_DITHER_NS_LOW_SHIBATA, SWR_DITHER_NS_HIGH_SHIBATA,
  SWR_DITHER_NB
}
 Dithering algorithms. More...
 
enum  SwrEngine { SWR_ENGINE_SWR, SWR_ENGINE_SOXR, SWR_ENGINE_NB }
 Resampling Engines. More...
 
enum  SwrFilterType { SWR_FILTER_TYPE_CUBIC, SWR_FILTER_TYPE_BLACKMAN_NUTTALL, SWR_FILTER_TYPE_KAISER }
 Resampling Filter Types. More...
 
#define SWR_FLAG_RESAMPLE   1
 Force resampling even if equal sample rate. More...
 

SwrContext constructor functions

struct SwrContextswr_alloc (void)
 Allocate SwrContext. More...
 
int swr_init (struct SwrContext *s)
 Initialize context after user parameters have been set. More...
 
int swr_is_initialized (struct SwrContext *s)
 Check whether an swr context has been initialized or not. More...
 
int swr_alloc_set_opts2 (struct SwrContext **ps, const AVChannelLayout *out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate, const AVChannelLayout *in_ch_layout, enum AVSampleFormat in_sample_fmt, int in_sample_rate, int log_offset, void *log_ctx)
 Allocate SwrContext if needed and set/reset common parameters. More...
 

SwrContext destructor functions

void swr_free (struct SwrContext **s)
 Free the given SwrContext and set the pointer to NULL. More...
 
void swr_close (struct SwrContext *s)
 Closes the context so that swr_is_initialized() returns 0. More...
 

Core conversion functions

int swr_convert (struct SwrContext *s, uint8_t *const *out, int out_count, const uint8_t *const *in, int in_count)
 Convert audio. More...
 
int64_t swr_next_pts (struct SwrContext *s, int64_t pts)
 Convert the next timestamp from input to output timestamps are in 1/(in_sample_rate * out_sample_rate) units. More...
 

Low-level option setting functions

These functons provide a means to set low-level options that is not possible with the AVOption API.

int swr_set_compensation (struct SwrContext *s, int sample_delta, int compensation_distance)
 Activate resampling compensation ("soft" compensation). More...
 
int swr_set_channel_mapping (struct SwrContext *s, const int *channel_map)
 Set a customized input channel mapping. More...
 
int swr_build_matrix2 (const AVChannelLayout *in_layout, const AVChannelLayout *out_layout, double center_mix_level, double surround_mix_level, double lfe_mix_level, double maxval, double rematrix_volume, double *matrix, ptrdiff_t stride, enum AVMatrixEncoding matrix_encoding, void *log_context)
 Generate a channel mixing matrix. More...
 
int swr_set_matrix (struct SwrContext *s, const double *matrix, int stride)
 Set a customized remix matrix. More...
 

Sample handling functions

int swr_drop_output (struct SwrContext *s, int count)
 Drops the specified number of output samples. More...
 
int swr_inject_silence (struct SwrContext *s, int count)
 Injects the specified number of silence samples. More...
 
int64_t swr_get_delay (struct SwrContext *s, int64_t base)
 Gets the delay the next input sample will experience relative to the next output sample. More...
 
int swr_get_out_samples (struct SwrContext *s, int in_samples)
 Find an upper bound on the number of samples that the next swr_convert call will output, if called with in_samples of input samples. More...
 

Configuration accessors

unsigned swresample_version (void)
 Return the LIBSWRESAMPLE_VERSION_INT constant. More...
 
const char * swresample_configuration (void)
 Return the swr build-time configuration. More...
 
const char * swresample_license (void)
 Return the swr license. More...
 

AVFrame based API

int swr_convert_frame (SwrContext *swr, AVFrame *output, const AVFrame *input)
 Convert the samples in the input AVFrame and write them to the output AVFrame. More...
 
int swr_config_frame (SwrContext *swr, const AVFrame *out, const AVFrame *in)
 Configure or reconfigure the SwrContext using the information provided by the AVFrames. More...
 

Detailed Description

Audio resampling, sample format conversion and mixing library.

Interaction with lswr is done through SwrContext, which is allocated with swr_alloc() or swr_alloc_set_opts2(). It is opaque, so all parameters must be set with the AVOptions API.

The first thing you will need to do in order to use lswr is to allocate SwrContext. This can be done with swr_alloc() or swr_alloc_set_opts2(). If you are using the former, you must set options through the AVOptions API. The latter function provides the same feature, but it allows you to set some common options in the same statement.

For example the following code will setup conversion from planar float sample format to interleaved signed 16-bit integer, downsampling from 48kHz to 44.1kHz and downmixing from 5.1 channels to stereo (using the default mixing matrix). This is using the swr_alloc() function.

av_opt_set_int(swr, "in_sample_rate", 48000, 0);
av_opt_set_int(swr, "out_sample_rate", 44100, 0);
av_opt_set_sample_fmt(swr, "in_sample_fmt", AV_SAMPLE_FMT_FLTP, 0);
av_opt_set_sample_fmt(swr, "out_sample_fmt", AV_SAMPLE_FMT_S16, 0);

The same job can be done using swr_alloc_set_opts2() as well:

int ret = swr_alloc_set_opts2(&swr, // we're allocating a new context
AV_SAMPLE_FMT_S16, // out_sample_fmt
44100, // out_sample_rate
AV_SAMPLE_FMT_FLTP, // in_sample_fmt
48000, // in_sample_rate
0, // log_offset
NULL); // log_ctx

Once all values have been set, it must be initialized with swr_init(). If you need to change the conversion parameters, you can change the parameters using AVOptions, as described above in the first example; or by using swr_alloc_set_opts2(), but with the first argument the allocated context. You must then call swr_init() again.

The conversion itself is done by repeatedly calling swr_convert(). Note that the samples may get buffered in swr if you provide insufficient output space or if sample rate conversion is done, which requires "future" samples. Samples that do not require future input can be retrieved at any time by using swr_convert() (in_count can be set to 0). At the end of conversion the resampling buffer can be flushed by calling swr_convert() with NULL in and 0 in_count.

The samples used in the conversion process can be managed with the libavutil samples manipulation API, including av_samples_alloc() function used in the following example.

The delay between input and output, can at any time be found by using swr_get_delay().

The following code demonstrates the conversion loop assuming the parameters from above and caller-defined functions get_input() and handle_output():

uint8_t **input;
int in_samples;
while (get_input(&input, &in_samples)) {
uint8_t *output;
int out_samples = av_rescale_rnd(swr_get_delay(swr, 48000) +
in_samples, 44100, 48000, AV_ROUND_UP);
av_samples_alloc(&output, NULL, 2, out_samples,
out_samples = swr_convert(swr, &output, out_samples,
input, in_samples);
handle_output(output, out_samples);
}

When the conversion is finished, the conversion context and everything associated with it must be freed with swr_free(). A swr_close() function is also available, but it exists mainly for compatibility with libavresample, and is not required to be called.

There will be no memory leak if the data is not completely flushed before swr_free().

Macro Definition Documentation

◆ SWR_FLAG_RESAMPLE

#define SWR_FLAG_RESAMPLE   1

Force resampling even if equal sample rate.

Definition at line 143 of file swresample.h.

Enumeration Type Documentation

◆ SwrDitherType

Dithering algorithms.

Enumerator
SWR_DITHER_NONE 
SWR_DITHER_RECTANGULAR 
SWR_DITHER_TRIANGULAR 
SWR_DITHER_TRIANGULAR_HIGHPASS 
SWR_DITHER_NS 

not part of API/ABI

SWR_DITHER_NS_LIPSHITZ 
SWR_DITHER_NS_F_WEIGHTED 
SWR_DITHER_NS_MODIFIED_E_WEIGHTED 
SWR_DITHER_NS_IMPROVED_E_WEIGHTED 
SWR_DITHER_NS_SHIBATA 
SWR_DITHER_NS_LOW_SHIBATA 
SWR_DITHER_NS_HIGH_SHIBATA 
SWR_DITHER_NB 

not part of API/ABI

Definition at line 148 of file swresample.h.

◆ SwrEngine

enum SwrEngine

Resampling Engines.

Enumerator
SWR_ENGINE_SWR 

SW Resampler.

SWR_ENGINE_SOXR 

SoX Resampler.

SWR_ENGINE_NB 

not part of API/ABI

Definition at line 166 of file swresample.h.

◆ SwrFilterType

Resampling Filter Types.

Enumerator
SWR_FILTER_TYPE_CUBIC 

Cubic.

SWR_FILTER_TYPE_BLACKMAN_NUTTALL 

Blackman Nuttall windowed sinc.

SWR_FILTER_TYPE_KAISER 

Kaiser windowed sinc.

Definition at line 173 of file swresample.h.

Function Documentation

◆ swr_get_class()

const AVClass* swr_get_class ( void  )

Get the AVClass for SwrContext.

It can be used in combination with AV_OPT_SEARCH_FAKE_OBJ for examining options.

See also
av_opt_find().
Returns
the AVClass of SwrContext

Definition at line 143 of file options.c.

Referenced by opt_default(), resample_child_class_iterate(), and show_help_default().

◆ swr_alloc()

struct SwrContext* swr_alloc ( void  )

Allocate SwrContext.

If you use this function you will need to set the parameters (manually or with swr_alloc_set_opts2()) before calling swr_init().

See also
swr_alloc_set_opts2(), swr_init(), swr_free()
Returns
NULL on error, allocated context otherwise

Definition at line 148 of file options.c.

Referenced by config_audio_output(), main(), open_audio(), opus_decode_init(), preinit(), and swr_alloc_set_opts2().

◆ swr_init()

int swr_init ( struct SwrContext s)

Initialize context after user parameters have been set.

Note
The context must be configured using the AVOption API.
See also
av_opt_set_int()
av_opt_set_dict()
Parameters
[in,out]sSwr context to initialize
Returns
AVERROR error code in case of failure.

Definition at line 140 of file swresample.c.

Referenced by audio_decode_frame(), config_audio_output(), config_output(), config_props(), init_resampler(), LLVMFuzzerTestOneInput(), main(), open_audio(), opus_init_resample(), swr_convert_frame(), and swr_set_compensation().

◆ swr_is_initialized()

int swr_is_initialized ( struct SwrContext s)

Check whether an swr context has been initialized or not.

Parameters
[in]sSwr context to check
See also
swr_init()
Returns
positive if it has been initialized, 0 if not initialized

Definition at line 715 of file swresample.c.

Referenced by opus_decode_frame(), opus_decode_subpacket(), swr_convert(), and swr_convert_frame().

◆ swr_alloc_set_opts2()

int swr_alloc_set_opts2 ( struct SwrContext **  ps,
const AVChannelLayout out_ch_layout,
enum AVSampleFormat  out_sample_fmt,
int  out_sample_rate,
const AVChannelLayout in_ch_layout,
enum AVSampleFormat  in_sample_fmt,
int  in_sample_rate,
int  log_offset,
void *  log_ctx 
)

Allocate SwrContext if needed and set/reset common parameters.

This function does not require *ps to be allocated with swr_alloc(). On the other hand, swr_alloc() can use swr_alloc_set_opts2() to set the parameters on the allocated context.

Parameters
psPointer to an existing Swr context if available, or to NULL if not. On success, *ps will be set to the allocated context.
out_ch_layoutoutput channel layout (e.g. AV_CHANNEL_LAYOUT_*)
out_sample_fmtoutput sample format (AV_SAMPLE_FMT_*).
out_sample_rateoutput sample rate (frequency in Hz)
in_ch_layoutinput channel layout (e.g. AV_CHANNEL_LAYOUT_*)
in_sample_fmtinput sample format (AV_SAMPLE_FMT_*).
in_sample_rateinput sample rate (frequency in Hz)
log_offsetlogging level offset
log_ctxparent logging context, can be NULL
See also
swr_init(), swr_free()
Returns
0 on success, a negative AVERROR code on error. On error, the Swr context is freed and *ps set to NULL.

Definition at line 40 of file swresample.c.

Referenced by audio_decode_frame(), config_output(), config_props(), init_resampler(), LLVMFuzzerTestOneInput(), and main().

◆ swr_free()

void swr_free ( struct SwrContext **  s)

Free the given SwrContext and set the pointer to NULL.

Parameters
[in]sa pointer to a pointer to Swr context

Definition at line 121 of file swresample.c.

Referenced by audio_decode_frame(), close_stream(), init_resampler(), LLVMFuzzerTestOneInput(), main(), opus_decode_close(), stream_component_close(), swr_alloc_set_opts2(), and uninit().

◆ swr_close()

void swr_close ( struct SwrContext s)

Closes the context so that swr_is_initialized() returns 0.

The context can be brought back to life by running swr_init(), swr_init() can also be used without swr_close(). This function is mainly provided for simplifying the usecase where one tries to support libavresample and libswresample.

Parameters
[in,out]sSwr context to be closed

Definition at line 136 of file swresample.c.

Referenced by opus_decode_flush(), opus_decode_subpacket(), swr_config_frame(), swr_convert_frame(), and swr_init().

◆ swr_convert()

int swr_convert ( struct SwrContext s,
uint8_t *const *  out,
int  out_count,
const uint8_t *const *  in,
int  in_count 
)

Convert audio.

in and in_count can be set to 0 to flush the last few samples out at the end.

If more input is provided than output space, then the input will be buffered. You can avoid this buffering by using swr_get_out_samples() to retrieve an upper bound on the required number of output samples for the given number of input samples. Conversion will run directly without copying whenever possible.

Parameters
sallocated Swr context, with parameters set
outoutput buffers, only the first one need be set in case of packed audio
out_countamount of space available for output in samples per channel
ininput buffers, only the first one need to be set in case of packed audio
in_countnumber of input samples available in one channel
Returns
number of samples output per channel, negative value on error

Definition at line 719 of file swresample.c.

Referenced by audio_decode_frame(), convert_frame(), convert_samples(), filter_frame(), flush_frame(), LLVMFuzzerTestOneInput(), main(), opus_decode_frame(), opus_flush_resample(), opus_init_resample(), swr_convert(), swr_drop_output(), swr_inject_silence(), wrap(), and write_audio_frame().

◆ swr_next_pts()

int64_t swr_next_pts ( struct SwrContext s,
int64_t  pts 
)

Convert the next timestamp from input to output timestamps are in 1/(in_sample_rate * out_sample_rate) units.

Note
There are 2 slightly differently behaving modes.
  • When automatic timestamp compensation is not used, (min_compensation >= FLT_MAX) in this case timestamps will be passed through with delays compensated
  • When automatic timestamp compensation is used, (min_compensation < FLT_MAX) in this case the output timestamps will match output sample numbers. See ffmpeg-resampler(1) for the two modes of compensation.
Parameters
[in]sinitialized Swr context
[in]ptstimestamp for the next input sample, INT64_MIN if unknown
See also
swr_set_compensation(), swr_drop_output(), and swr_inject_silence() are function used internally for timestamp compensation.
Returns
the output timestamp for the next output sample

Definition at line 924 of file swresample.c.

Referenced by filter_frame(), and flush_frame().

◆ swr_set_compensation()

int swr_set_compensation ( struct SwrContext s,
int  sample_delta,
int  compensation_distance 
)

Activate resampling compensation ("soft" compensation).

This function is internally called when needed in swr_next_pts().

Parameters
[in,out]sallocated Swr context. If it is not initialized, or SWR_FLAG_RESAMPLE is not set, swr_init() is called with the flag set.
[in]sample_deltadelta in PTS per sample
[in]compensation_distancenumber of samples to compensate for
Returns
>= 0 on success, AVERROR error codes if:
  • s is NULL,
  • compensation_distance is less than 0,
  • compensation_distance is 0 but sample_delta is not,
  • compensation unsupported by resampler, or
  • swr_init() fails when called.

Definition at line 904 of file swresample.c.

Referenced by audio_decode_frame(), and swr_next_pts().

◆ swr_set_channel_mapping()

int swr_set_channel_mapping ( struct SwrContext s,
const int *  channel_map 
)

Set a customized input channel mapping.

Parameters
[in,out]sallocated Swr context, not yet initialized
[in]channel_mapcustomized input channel mapping (array of channel indexes, -1 for a muted channel)
Returns
>= 0 on success, or AVERROR error code in case of failure.

Definition at line 33 of file swresample.c.

Referenced by config_props().

◆ swr_build_matrix2()

int swr_build_matrix2 ( const AVChannelLayout in_layout,
const AVChannelLayout out_layout,
double  center_mix_level,
double  surround_mix_level,
double  lfe_mix_level,
double  maxval,
double  rematrix_volume,
double matrix,
ptrdiff_t  stride,
enum AVMatrixEncoding  matrix_encoding,
void *  log_context 
)

Generate a channel mixing matrix.

This function is the one used internally by libswresample for building the default mixing matrix. It is made public just as a utility function for building custom matrices.

Parameters
in_layoutinput channel layout
out_layoutoutput channel layout
center_mix_levelmix level for the center channel
surround_mix_levelmix level for the surround channel(s)
lfe_mix_levelmix level for the low-frequency effects channel
rematrix_maxvalif 1.0, coefficients will be normalized to prevent overflow. if INT_MAX, coefficients will not be normalized.
[out]matrixmixing coefficients; matrix[i + stride * o] is the weight of input channel i in output channel o.
stridedistance between adjacent input channels in the matrix array
matrix_encodingmatrixed stereo downmix mode (e.g. dplii)
log_ctxparent logging context, can be NULL
Returns
0 on success, negative AVERROR code on failure

Definition at line 127 of file rematrix.c.

Referenced by auto_matrix().

◆ swr_set_matrix()

int swr_set_matrix ( struct SwrContext s,
const double matrix,
int  stride 
)

Set a customized remix matrix.

Parameters
sallocated Swr context, not yet initialized
matrixremix coefficients; matrix[i + stride * o] is the weight of input channel i in output channel o
strideoffset between lines of the matrix
Returns
>= 0 on success, or AVERROR error code in case of failure.

Definition at line 65 of file rematrix.c.

Referenced by config_props().

◆ swr_drop_output()

int swr_drop_output ( struct SwrContext s,
int  count 
)

Drops the specified number of output samples.

This function, along with swr_inject_silence(), is called by swr_next_pts() if needed for "hard" compensation.

Parameters
sallocated Swr context
countnumber of samples to be dropped
Returns
>= 0 on success, or a negative AVERROR code on failure

Definition at line 835 of file swresample.c.

Referenced by swr_next_pts().

◆ swr_inject_silence()

int swr_inject_silence ( struct SwrContext s,
int  count 
)

Injects the specified number of silence samples.

This function, along with swr_drop_output(), is called by swr_next_pts() if needed for "hard" compensation.

Parameters
sallocated Swr context
countnumber of samples to be dropped
Returns
>= 0 on success, or a negative AVERROR code on failure

Definition at line 846 of file swresample.c.

Referenced by swr_inject_silence(), and swr_next_pts().

◆ swr_get_delay()

int64_t swr_get_delay ( struct SwrContext s,
int64_t  base 
)

Gets the delay the next input sample will experience relative to the next output sample.

Swresample can buffer data if more input has been provided than available output space, also converting between sample rates needs a delay. This function returns the sum of all such delays. The exact delay is not necessarily an integer value in either input or output sample rate. Especially when downsampling by a large value, the output sample rate may be a poor choice to represent the delay, similarly for upsampling and the input sample rate.

Parameters
sswr context
basetimebase in which the returned delay will be:
  • if it's set to 1 the returned delay is in seconds
  • if it's set to 1000 the returned delay is in milliseconds
  • if it's set to the input sample rate then the returned delay is in input samples
  • if it's set to the output sample rate then the returned delay is in output samples
  • if it's the least common multiple of in_sample_rate and out_sample_rate then an exact rounding-free delay will be returned
Returns
the delay in 1 / base units.

Definition at line 874 of file swresample.c.

Referenced by filter_frame(), main(), swr_convert_frame(), swr_next_pts(), and write_audio_frame().

◆ swr_get_out_samples()

int swr_get_out_samples ( struct SwrContext s,
int  in_samples 
)

Find an upper bound on the number of samples that the next swr_convert call will output, if called with in_samples of input samples.

This depends on the internal state, and anything changing the internal state (like further swr_convert() calls) will may change the number of samples swr_get_out_samples() returns for the same number of input samples.

Parameters
in_samplesnumber of input samples.
Note
any call to swr_inject_silence(), swr_convert(), swr_next_pts() or swr_set_compensation() invalidates this limit
it is recommended to pass the correct available buffer size to all functions like swr_convert() even if swr_get_out_samples() indicates that less would be used.
Returns
an upper bound on the number of samples that the next swr_convert will output or a negative value to indicate an error

Definition at line 882 of file swresample.c.

Referenced by swr_convert().

◆ swresample_version()

unsigned swresample_version ( void  )

Return the LIBSWRESAMPLE_VERSION_INT constant.

This is useful to check if the build-time libswresample has the same version as the run-time one.

Returns
the unsigned int-typed version

Definition at line 30 of file version.c.

◆ swresample_configuration()

const char* swresample_configuration ( void  )

Return the swr build-time configuration.

Returns
the build-time ./configure flags

Definition at line 36 of file version.c.

◆ swresample_license()

const char* swresample_license ( void  )

Return the swr license.

Returns
the license of libswresample, determined at build-time

Definition at line 41 of file version.c.

◆ swr_convert_frame()

int swr_convert_frame ( SwrContext swr,
AVFrame output,
const AVFrame input 
)

Convert the samples in the input AVFrame and write them to the output AVFrame.

Input and output AVFrames must have channel_layout, sample_rate and format set.

If the output AVFrame does not have the data pointers allocated the nb_samples field will be set using av_frame_get_buffer() is called to allocate the frame.

The output AVFrame can be NULL or have fewer allocated samples than required. In this case, any remaining samples not written to the output will be added to an internal FIFO buffer, to be returned at the next call to this function or to swr_convert().

If converting sample rate, there may be data remaining in the internal resampling delay buffer. swr_get_delay() tells the number of remaining samples. To get this data as output, call this function or swr_convert() with NULL input.

If the SwrContext configuration does not match the output and input AVFrame settings the conversion does not take place and depending on which AVFrame is not matching AVERROR_OUTPUT_CHANGED, AVERROR_INPUT_CHANGED or the result of a bitwise-OR of them is returned.

See also
swr_delay()
swr_convert()
swr_get_delay()
Parameters
swraudio resample context
outputoutput AVFrame
inputinput AVFrame
Returns
0 on success, AVERROR on failure or nonmatching configuration.

Definition at line 139 of file swresample_frame.c.

◆ swr_config_frame()

int swr_config_frame ( SwrContext swr,
const AVFrame out,
const AVFrame in 
)

Configure or reconfigure the SwrContext using the information provided by the AVFrames.

The original resampling context is reset even on failure. The function calls swr_close() internally if the context is open.

See also
swr_close();
Parameters
swraudio resample context
outoutput AVFrame
ininput AVFrame
Returns
0 on success, AVERROR on failure.

Definition at line 27 of file swresample_frame.c.

Referenced by swr_convert_frame().

AV_ROUND_UP
@ AV_ROUND_UP
Round toward +infinity.
Definition: mathematics.h:134
AV_SAMPLE_FMT_FLTP
@ AV_SAMPLE_FMT_FLTP
float, planar
Definition: samplefmt.h:66
AV_CHANNEL_LAYOUT_STEREO
#define AV_CHANNEL_LAYOUT_STEREO
Definition: channel_layout.h:393
output
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce output
Definition: filter_design.txt:225
get_input
static int get_input(AVFrame *frame, int frame_num)
Definition: filter_audio.c:239
av_samples_alloc
int av_samples_alloc(uint8_t **audio_data, int *linesize, int nb_channels, int nb_samples, enum AVSampleFormat sample_fmt, int align)
Allocate a samples buffer for nb_samples samples, and fill data pointers and linesize accordingly.
Definition: samplefmt.c:182
swr_convert
int attribute_align_arg swr_convert(struct SwrContext *s, uint8_t *const *out_arg, int out_count, const uint8_t *const *in_arg, int in_count)
Convert audio.
Definition: swresample.c:719
swr_get_delay
int64_t swr_get_delay(struct SwrContext *s, int64_t base)
Gets the delay the next input sample will experience relative to the next output sample.
Definition: swresample.c:874
swr_alloc
av_cold struct SwrContext * swr_alloc(void)
Allocate SwrContext.
Definition: options.c:148
SwrContext
The libswresample context.
Definition: swresample_internal.h:95
NULL
#define NULL
Definition: coverity.c:32
av_opt_set_int
int av_opt_set_int(void *obj, const char *name, int64_t val, int search_flags)
Definition: opt.c:880
av_rescale_rnd
int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd)
Rescale a 64-bit integer with specified rounding.
Definition: mathematics.c:58
swr_alloc_set_opts2
int swr_alloc_set_opts2(struct SwrContext **ps, const AVChannelLayout *out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate, const AVChannelLayout *in_ch_layout, enum AVSampleFormat in_sample_fmt, int in_sample_rate, int log_offset, void *log_ctx)
Allocate SwrContext if needed and set/reset common parameters.
Definition: swresample.c:40
AVChannelLayout
An AVChannelLayout holds information about the channel layout of audio data.
Definition: channel_layout.h:317
av_opt_set_chlayout
int av_opt_set_chlayout(void *obj, const char *name, const AVChannelLayout *channel_layout, int search_flags)
Definition: opt.c:1000
input
and forward the test the status of outputs and forward it to the corresponding return FFERROR_NOT_READY If the filters stores internally one or a few frame for some input
Definition: filter_design.txt:172
AV_SAMPLE_FMT_S16
@ AV_SAMPLE_FMT_S16
signed 16 bits
Definition: samplefmt.h:58
ret
ret
Definition: filter_design.txt:187
av_freep
#define av_freep(p)
Definition: tableprint_vlc.h:34
AV_CHANNEL_LAYOUT_5POINT1
#define AV_CHANNEL_LAYOUT_5POINT1
Definition: channel_layout.h:403
av_opt_set_sample_fmt
int av_opt_set_sample_fmt(void *obj, const char *name, enum AVSampleFormat fmt, int search_flags)
Definition: opt.c:979