libavcodec/resample.c File Reference

samplerate conversion for both audio and video More...

#include "avcodec.h"
#include "audioconvert.h"
#include "libavutil/opt.h"
#include "libavutil/samplefmt.h"

Go to the source code of this file.

Data Structures

struct  ReSampleContext

Defines

#define MAX_CHANNELS   8
#define SUPPORT_RESAMPLE(ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8)   ch8<<7 | ch7<<6 | ch6<<5 | ch5<<4 | ch4<<3 | ch3<<2 | ch2<<1 | ch1<<0

Functions

static const char * context_to_name (void *ptr)
static void stereo_to_mono (short *output, short *input, int n1)
static void mono_to_stereo (short *output, short *input, int n1)
static void surround_to_stereo (short **output, short *input, int channels, int samples)
static void deinterleave (short **output, short *input, int channels, int samples)
static void interleave (short *output, short **input, int channels, int samples)
static void ac3_5p1_mux (short *output, short *input1, short *input2, int n)
ReSampleContextav_audio_resample_init (int output_channels, int input_channels, int output_rate, int input_rate, enum AVSampleFormat sample_fmt_out, enum AVSampleFormat sample_fmt_in, int filter_length, int log2_phase_count, int linear, double cutoff)
 Initialize audio resampling context.
int audio_resample (ReSampleContext *s, short *output, short *input, int nb_samples)
void audio_resample_close (ReSampleContext *s)
 Free resample context.

Variables

static const AVOption options [] = {{NULL}}
static const AVClass audioresample_context_class
static const uint8_t supported_resampling [MAX_CHANNELS]


Detailed Description

samplerate conversion for both audio and video

Definition in file resample.c.


Define Documentation

#define MAX_CHANNELS   8

Definition at line 32 of file resample.c.

#define SUPPORT_RESAMPLE ( ch1,
ch2,
ch3,
ch4,
ch5,
ch6,
ch7,
ch8   )     ch8<<7 | ch7<<6 | ch6<<5 | ch5<<4 | ch4<<3 | ch3<<2 | ch2<<1 | ch1<<0

Definition at line 183 of file resample.c.


Function Documentation

static void ac3_5p1_mux ( short *  output,
short *  input1,
short *  input2,
int  n 
) [static]

Definition at line 166 of file resample.c.

Referenced by audio_resample().

int audio_resample ( ReSampleContext s,
short *  output,
short *  input,
int  nb_samples 
)

Definition at line 279 of file resample.c.

void audio_resample_close ( ReSampleContext s  ) 

Free resample context.

Parameters:
s a non-NULL pointer to a resample context previously created with av_audio_resample_init()

Definition at line 415 of file resample.c.

ReSampleContext* av_audio_resample_init ( int  output_channels,
int  input_channels,
int  output_rate,
int  input_rate,
enum AVSampleFormat  sample_fmt_out,
enum AVSampleFormat  sample_fmt_in,
int  filter_length,
int  log2_phase_count,
int  linear,
double  cutoff 
)

Initialize audio resampling context.

Parameters:
output_channels number of output channels
input_channels number of input channels
output_rate output sample rate
input_rate input sample rate
sample_fmt_out requested output sample format
sample_fmt_in input sample format
filter_length length of each FIR filter in the filterbank relative to the cutoff frequency
log2_phase_count log2 of the number of entries in the polyphase filterbank
linear if 1 then the used FIR filter will be linearly interpolated between the 2 closest, if 0 the closest will be used
cutoff cutoff frequency, 1.0 corresponds to half the output sampling rate
Returns:
allocated ReSampleContext, NULL if error occurred

Definition at line 198 of file resample.c.

static const char* context_to_name ( void *  ptr  )  [static]

Definition at line 36 of file resample.c.

static void deinterleave ( short **  output,
short *  input,
int  channels,
int  samples 
) [static]

Definition at line 144 of file resample.c.

Referenced by audio_resample(), and filter_samples().

static void interleave ( short *  output,
short **  input,
int  channels,
int  samples 
) [static]

Definition at line 155 of file resample.c.

static void mono_to_stereo ( short *  output,
short *  input,
int  n1 
) [static]

Definition at line 86 of file resample.c.

Referenced by audio_resample().

static void stereo_to_mono ( short *  output,
short *  input,
int  n1 
) [static]

Definition at line 61 of file resample.c.

Referenced by audio_resample().

static void surround_to_stereo ( short **  output,
short *  input,
int  channels,
int  samples 
) [static]

Definition at line 118 of file resample.c.

Referenced by audio_resample().


Variable Documentation

Initial value:

 {
    "ReSampleContext", context_to_name, options, LIBAVUTIL_VERSION_INT
}

Definition at line 42 of file resample.c.

const AVOption options[] = {{NULL}} [static]

Definition at line 41 of file resample.c.

const uint8_t supported_resampling[MAX_CHANNELS] [static]

Initial value:

 {
    
    SUPPORT_RESAMPLE(1, 1, 0, 0, 0, 0, 0, 0), 
    SUPPORT_RESAMPLE(1, 1, 0, 0, 0, 1, 0, 0), 
    SUPPORT_RESAMPLE(0, 0, 1, 0, 0, 0, 0, 0), 
    SUPPORT_RESAMPLE(0, 0, 0, 1, 0, 0, 0, 0), 
    SUPPORT_RESAMPLE(0, 0, 0, 0, 1, 0, 0, 0), 
    SUPPORT_RESAMPLE(0, 1, 0, 0, 0, 1, 0, 0), 
    SUPPORT_RESAMPLE(0, 0, 0, 0, 0, 0, 1, 0), 
    SUPPORT_RESAMPLE(0, 0, 0, 0, 0, 0, 0, 1), 
}

Definition at line 186 of file resample.c.

Referenced by av_audio_resample_init().


Generated on Fri Oct 26 02:46:10 2012 for FFmpeg by  doxygen 1.5.8