#include "avcodec.h"
#include "get_bits.h"
#include "ra288.h"
#include "lpc.h"
#include "celp_math.h"
#include "celp_filters.h"
#include "dsputil.h"
Go to the source code of this file.
Data Structures | |
struct | RA288Context |
Defines | |
#define | BITSTREAM_READER_LE |
#define | MAX_BACKWARD_FILTER_ORDER 36 |
#define | MAX_BACKWARD_FILTER_LEN 40 |
#define | MAX_BACKWARD_FILTER_NONREC 35 |
#define | RA288_BLOCK_SIZE 5 |
#define | RA288_BLOCKS_PER_FRAME 32 |
Functions | |
static av_cold int | ra288_decode_init (AVCodecContext *avctx) |
static void | convolve (float *tgt, const float *src, int len, int n) |
static void | decode (RA288Context *ractx, float gain, int cb_coef) |
static void | do_hybrid_window (RA288Context *ractx, int order, int n, int non_rec, float *out, float *hist, float *out2, const float *window) |
Hybrid window filtering, see blocks 36 and 49 of the G.728 specification. | |
static void | backward_filter (RA288Context *ractx, float *hist, float *rec, const float *window, float *lpc, const float *tab, int order, int n, int non_rec, int move_size) |
Backward synthesis filter, find the LPC coefficients from past speech data. | |
static int | ra288_decode_frame (AVCodecContext *avctx, void *data, int *got_frame_ptr, AVPacket *avpkt) |
Variables | |
AVCodec | ff_ra_288_decoder |
#define MAX_BACKWARD_FILTER_LEN 40 |
#define MAX_BACKWARD_FILTER_NONREC 35 |
#define MAX_BACKWARD_FILTER_ORDER 36 |
#define RA288_BLOCK_SIZE 5 |
#define RA288_BLOCKS_PER_FRAME 32 |
static void backward_filter | ( | RA288Context * | ractx, | |
float * | hist, | |||
float * | rec, | |||
const float * | window, | |||
float * | lpc, | |||
const float * | tab, | |||
int | order, | |||
int | n, | |||
int | non_rec, | |||
int | move_size | |||
) | [static] |
Backward synthesis filter, find the LPC coefficients from past speech data.
Definition at line 157 of file ra288.c.
Referenced by ra288_decode_frame().
static void convolve | ( | float * | tgt, | |
const float * | src, | |||
int | len, | |||
int | n | |||
) | [static] |
static void decode | ( | RA288Context * | ractx, | |
float | gain, | |||
int | cb_coef | |||
) | [static] |
static void do_hybrid_window | ( | RA288Context * | ractx, | |
int | order, | |||
int | n, | |||
int | non_rec, | |||
float * | out, | |||
float * | hist, | |||
float * | out2, | |||
const float * | window | |||
) | [static] |
Hybrid window filtering, see blocks 36 and 49 of the G.728 specification.
order | filter order | |
n | input length | |
non_rec | number of non-recursive samples | |
out | filter output | |
hist | pointer to the input history of the filter | |
out | pointer to the non-recursive part of the output | |
out2 | pointer to the recursive part of the output | |
window | pointer to the windowing function table |
Definition at line 129 of file ra288.c.
Referenced by backward_filter().
static int ra288_decode_frame | ( | AVCodecContext * | avctx, | |
void * | data, | |||
int * | got_frame_ptr, | |||
AVPacket * | avpkt | |||
) | [static] |
static av_cold int ra288_decode_init | ( | AVCodecContext * | avctx | ) | [static] |
Initial value:
{ .name = "real_288", .type = AVMEDIA_TYPE_AUDIO, .id = CODEC_ID_RA_288, .priv_data_size = sizeof(RA288Context), .init = ra288_decode_init, .decode = ra288_decode_frame, .capabilities = CODEC_CAP_DR1, .long_name = NULL_IF_CONFIG_SMALL("RealAudio 2.0 (28.8K)"), }