#include "libavutil/opt.h"
#include "swresample_internal.h"
#include "audioconvert.h"
#include "libavutil/avassert.h"
#include "libavutil/audioconvert.h"
Go to the source code of this file.
Defines | |
#define | C30DB M_SQRT2 |
#define | C15DB 1.189207115 |
#define | C__0DB 1.0 |
#define | C_15DB 0.840896415 |
#define | C_30DB M_SQRT1_2 |
#define | C_45DB 0.594603558 |
#define | C_60DB 0.5 |
#define | OFFSET(x) offsetof(SwrContext,x) |
#define | RSC 1 |
Functions | |
static const char * | context_to_name (void *ptr) |
int | swr_set_channel_mapping (struct SwrContext *s, const int *channel_map) |
Set a customized input channel mapping. | |
struct SwrContext * | swr_alloc (void) |
Allocate SwrContext. | |
struct SwrContext * | swr_alloc_set_opts (struct SwrContext *s, int64_t out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate, int64_t 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. | |
static void | free_temp (AudioData *a) |
void | swr_free (SwrContext **ss) |
Free the given SwrContext and set the pointer to NULL. | |
int | swr_init (struct SwrContext *s) |
Initialize context after user parameters have been set. | |
static int | realloc_audio (AudioData *a, int count) |
static void | copy (AudioData *out, AudioData *in, int count) |
static void | fill_audiodata (AudioData *out, uint8_t *in_arg[SWR_CH_MAX]) |
static void | buf_set (AudioData *out, AudioData *in, int count) |
out may be equal in. | |
static int | resample (SwrContext *s, AudioData *out_param, int out_count, const AudioData *in_param, int in_count) |
int | swr_convert (struct SwrContext *s, uint8_t *out_arg[SWR_CH_MAX], int out_count, const uint8_t *in_arg[SWR_CH_MAX], int in_count) |
Convert audio. | |
Variables | |
static const AVOption | options [] |
static const AVClass | av_class |
#define C15DB 1.189207115 |
Definition at line 28 of file swresample.c.
#define C30DB M_SQRT2 |
Definition at line 27 of file swresample.c.
#define C_15DB 0.840896415 |
Definition at line 30 of file swresample.c.
#define C_30DB M_SQRT1_2 |
Definition at line 31 of file swresample.c.
#define C_45DB 0.594603558 |
Definition at line 32 of file swresample.c.
#define C_60DB 0.5 |
Definition at line 33 of file swresample.c.
#define C__0DB 1.0 |
Definition at line 29 of file swresample.c.
#define OFFSET | ( | x | ) | offsetof(SwrContext,x) |
Definition at line 37 of file swresample.c.
#define RSC 1 |
Referenced by swr_init().
static const char* context_to_name | ( | void * | ptr | ) | [static] |
Definition at line 60 of file swresample.c.
Definition at line 284 of file swresample.c.
static void fill_audiodata | ( | AudioData * | out, | |
uint8_t * | in_arg[SWR_CH_MAX] | |||
) | [static] |
static void free_temp | ( | AudioData * | a | ) | [static] |
static int realloc_audio | ( | AudioData * | a, | |
int | count | |||
) | [static] |
static int resample | ( | SwrContext * | s, | |
AudioData * | out_param, | |||
int | out_count, | |||
const AudioData * | in_param, | |||
int | in_count | |||
) | [static] |
Definition at line 325 of file swresample.c.
Referenced by swr_convert().
struct SwrContext* swr_alloc | ( | void | ) | [read] |
Allocate SwrContext.
If you use this function you will need to set the parameters (manually or with swr_alloc_set_opts()) before calling swr_init().
Definition at line 80 of file swresample.c.
Referenced by swr_alloc_set_opts().
struct SwrContext* swr_alloc_set_opts | ( | struct SwrContext * | s, | |
int64_t | out_ch_layout, | |||
enum AVSampleFormat | out_sample_fmt, | |||
int | out_sample_rate, | |||
int64_t | in_ch_layout, | |||
enum AVSampleFormat | in_sample_fmt, | |||
int | in_sample_rate, | |||
int | log_offset, | |||
void * | log_ctx | |||
) | [read] |
Allocate SwrContext if needed and set/reset common parameters.
This function does not require s to be allocated with swr_alloc(). On the other hand, swr_alloc() can use swr_alloc_set_opts() to set the parameters on the allocated context.
s | Swr context, can be NULL | |
out_ch_layout | output channel layout (AV_CH_LAYOUT_*) | |
out_sample_fmt | output sample format (AV_SAMPLE_FMT_*). | |
out_sample_rate | output sample rate (frequency in Hz) | |
in_ch_layout | input channel layout (AV_CH_LAYOUT_*) | |
in_sample_fmt | input sample format (AV_SAMPLE_FMT_*). | |
in_sample_rate | input sample rate (frequency in Hz) | |
log_offset | logging level offset | |
log_ctx | parent logging context, can be NULL |
Definition at line 89 of file swresample.c.
Referenced by audio_decode_frame(), do_audio_out(), and main().
int swr_convert | ( | struct SwrContext * | s, | |
uint8_t * | out[SWR_CH_MAX], | |||
int | out_count, | |||
const uint8_t * | in[SWR_CH_MAX], | |||
int | in_count | |||
) |
Convert audio.
in and in_count can be set to 0 to flush the last few samples out at the end.
s | allocated Swr context, with parameters set | |
out | output buffers, only the first one need be set in case of packed audio | |
out_count | amount of space available for output in samples per channel | |
in | input buffers, only the first one need to be set in case of packed audio | |
in_count | number of input samples available in one channel |
Definition at line 399 of file swresample.c.
Referenced by audio_decode_frame(), do_audio_out(), and main().
void swr_free | ( | SwrContext ** | ss | ) |
Free the given SwrContext and set the pointer to NULL.
Definition at line 118 of file swresample.c.
Referenced by audio_decode_frame(), do_audio_out(), stream_component_close(), and transcode().
int swr_init | ( | struct SwrContext * | s | ) |
Initialize context after user parameters have been set.
Definition at line 134 of file swresample.c.
Referenced by audio_decode_frame(), do_audio_out(), and main().
int swr_set_channel_mapping | ( | struct SwrContext * | s, | |
const int * | channel_map | |||
) |
Set a customized input channel mapping.
s | allocated Swr context, not yet initialized | |
channel_map | customized input channel mapping (array of channel indexes, -1 for a muted channel) |
Definition at line 73 of file swresample.c.
Referenced by do_audio_out().
Initial value:
{ .class_name = "SwrContext", .item_name = context_to_name, .option = options, .version = LIBAVUTIL_VERSION_INT, .log_level_offset_offset = OFFSET(log_level_offset), .parent_log_context_offset = OFFSET(log_ctx), }
Definition at line 64 of file swresample.c.
Initial value:
{ {"ich", "input channel count", OFFSET( in.ch_count ), AV_OPT_TYPE_INT, {.dbl=2}, 0, SWR_CH_MAX, 0}, {"och", "output channel count", OFFSET(out.ch_count ), AV_OPT_TYPE_INT, {.dbl=2}, 0, SWR_CH_MAX, 0}, {"uch", "used channel count", OFFSET(used_ch_count ), AV_OPT_TYPE_INT, {.dbl=0}, 0, SWR_CH_MAX, 0}, {"isr", "input sample rate" , OFFSET( in_sample_rate), AV_OPT_TYPE_INT, {.dbl=48000}, 1, INT_MAX, 0}, {"osr", "output sample rate" , OFFSET(out_sample_rate), AV_OPT_TYPE_INT, {.dbl=48000}, 1, INT_MAX, 0}, {"isf", "input sample format", OFFSET( in_sample_fmt ), AV_OPT_TYPE_INT, {.dbl=AV_SAMPLE_FMT_S16}, 0, AV_SAMPLE_FMT_NB-1+256, 0}, {"osf", "output sample format", OFFSET(out_sample_fmt ), AV_OPT_TYPE_INT, {.dbl=AV_SAMPLE_FMT_S16}, 0, AV_SAMPLE_FMT_NB-1+256, 0}, {"tsf", "internal sample format", OFFSET(int_sample_fmt ), AV_OPT_TYPE_INT, {.dbl=AV_SAMPLE_FMT_NONE}, -1, AV_SAMPLE_FMT_FLT, 0}, {"icl", "input channel layout" , OFFSET( in_ch_layout), AV_OPT_TYPE_INT64, {.dbl=0}, 0, INT64_MAX, 0, "channel_layout"}, {"ocl", "output channel layout", OFFSET(out_ch_layout), AV_OPT_TYPE_INT64, {.dbl=0}, 0, INT64_MAX, 0, "channel_layout"}, {"clev", "center mix level" , OFFSET(clev) , AV_OPT_TYPE_FLOAT, {.dbl=C_30DB}, 0, 4, 0}, {"slev", "sourround mix level" , OFFSET(slev) , AV_OPT_TYPE_FLOAT, {.dbl=C_30DB}, 0, 4, 0}, {"rmvol", "rematrix volume" , OFFSET(rematrix_volume), AV_OPT_TYPE_FLOAT, {.dbl=1.0}, -1000, 1000, 0}, {"flags", NULL , OFFSET(flags) , AV_OPT_TYPE_FLAGS, {.dbl=0}, 0, UINT_MAX, 0, "flags"}, {"res", "force resampling", 0, AV_OPT_TYPE_CONST, {.dbl=SWR_FLAG_RESAMPLE}, INT_MIN, INT_MAX, 0, "flags"}, {0} }
Definition at line 38 of file swresample.c.