FFmpeg
|
#include <stdint.h>
#include "libavutil/mem.h"
#include "mathops.h"
#include "opus.h"
#include "rc.h"
#include "silk.h"
#include "tab.h"
Go to the source code of this file.
Data Structures | |
struct | SilkFrame |
struct | SilkContext |
Macros | |
#define | ROUND_MULL(a, b, s) (((MUL64(a, b) >> ((s) - 1)) + 1) >> 1) |
#define | SILK_MAX_LAG (288 + LTP_ORDER / 2) |
Maximum residual history according to 4.2.7.6.1. More... | |
#define | LTP_ORDER 5 |
Order of the LTP filter. More... | |
Functions | |
static void | silk_stabilize_lsf (int16_t nlsf[16], int order, const uint16_t min_delta[17]) |
static int | silk_is_lpc_stable (const int16_t lpc[16], int order) |
static void | silk_lsp2poly (const int32_t lsp[], int32_t pol[], int half_order) |
static void | silk_lsf2lpc (const int16_t nlsf[16], float lpcf[16], int order) |
static void | silk_decode_lpc (SilkContext *s, SilkFrame *frame, OpusRangeCoder *rc, float lpc_leadin[16], float lpc[16], int *lpc_order, int *has_lpc_leadin, int voiced) |
static void | silk_count_children (OpusRangeCoder *rc, int model, int32_t total, int32_t child[2]) |
static void | silk_decode_excitation (SilkContext *s, OpusRangeCoder *rc, float *excitationf, int qoffset_high, int active, int voiced) |
static void | silk_decode_frame (SilkContext *s, OpusRangeCoder *rc, int frame_num, int channel, int coded_channels, int active, int active1, int redundant) |
static void | silk_unmix_ms (SilkContext *s, float *l, float *r) |
static void | silk_flush_frame (SilkFrame *frame) |
int | ff_silk_decode_superframe (SilkContext *s, OpusRangeCoder *rc, float *output[2], enum OpusBandwidth bandwidth, int coded_channels, int duration_ms) |
Decode the LP layer of one Opus frame (which may correspond to several SILK frames). More... | |
void | ff_silk_free (SilkContext **ps) |
void | ff_silk_flush (SilkContext *s) |
int | ff_silk_init (void *logctx, SilkContext **ps, int output_channels) |
Opus SILK decoder
Definition in file silk.c.
#define SILK_MAX_LAG (288 + LTP_ORDER / 2) |
|
inlinestatic |
Definition at line 71 of file silk.c.
Referenced by silk_decode_lpc().
|
inlinestatic |
Definition at line 149 of file silk.c.
Referenced by silk_lsf2lpc().
Definition at line 207 of file silk.c.
Referenced by silk_lsf2lpc().
|
static |
Definition at line 224 of file silk.c.
Referenced by silk_decode_lpc().
|
inlinestatic |
Definition at line 311 of file silk.c.
Referenced by silk_decode_frame().
|
inlinestatic |
Definition at line 408 of file silk.c.
Referenced by silk_decode_excitation().
|
inlinestatic |
Definition at line 421 of file silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 515 of file silk.c.
Referenced by ff_silk_decode_superframe().
|
static |
Definition at line 744 of file silk.c.
Referenced by ff_silk_decode_superframe().
|
static |
Definition at line 774 of file silk.c.
Referenced by ff_silk_decode_superframe(), and ff_silk_flush().
int ff_silk_decode_superframe | ( | SilkContext * | s, |
OpusRangeCoder * | rc, | ||
float * | output[2], | ||
enum OpusBandwidth | bandwidth, | ||
int | coded_channels, | ||
int | duration_ms | ||
) |
Decode the LP layer of one Opus frame (which may correspond to several SILK frames).
Definition at line 792 of file silk.c.
Referenced by opus_decode_frame().
void ff_silk_free | ( | SilkContext ** | ps | ) |
Definition at line 870 of file silk.c.
Referenced by opus_decode_close().
void ff_silk_flush | ( | SilkContext * | s | ) |
Definition at line 875 of file silk.c.
Referenced by ff_silk_init(), opus_decode_flush(), and opus_decode_frame().
int ff_silk_init | ( | void * | logctx, |
SilkContext ** | ps, | ||
int | output_channels | ||
) |
Definition at line 883 of file silk.c.
Referenced by opus_decode_init().