FFmpeg
|
#include <stdint.h>
#include "mathops.h"
#include "opus.h"
#include "opus_rc.h"
#include "opus_silk.h"
#include "opustab.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 opus_silk.c.
Definition at line 35 of file opus_silk.c.
#define SILK_MAX_LAG (288 + LTP_ORDER / 2) |
Maximum residual history according to 4.2.7.6.1.
Definition at line 509 of file opus_silk.c.
#define LTP_ORDER 5 |
Order of the LTP filter.
Definition at line 512 of file opus_silk.c.
|
inlinestatic |
Definition at line 70 of file opus_silk.c.
Referenced by silk_decode_lpc().
Definition at line 148 of file opus_silk.c.
Referenced by silk_lsf2lpc().
Definition at line 206 of file opus_silk.c.
Referenced by silk_lsf2lpc().
Definition at line 223 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
inlinestatic |
Definition at line 310 of file opus_silk.c.
Referenced by silk_decode_frame().
|
inlinestatic |
Definition at line 407 of file opus_silk.c.
Referenced by silk_decode_excitation().
|
inlinestatic |
Definition at line 420 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 514 of file opus_silk.c.
Referenced by ff_silk_decode_superframe().
|
static |
Definition at line 743 of file opus_silk.c.
Referenced by ff_silk_decode_superframe().
|
static |
Definition at line 773 of file opus_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 791 of file opus_silk.c.
Referenced by opus_decode_frame().
void ff_silk_free | ( | SilkContext ** | ps | ) |
Definition at line 869 of file opus_silk.c.
Referenced by opus_decode_close().
void ff_silk_flush | ( | SilkContext * | s | ) |
Definition at line 874 of file opus_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 882 of file opus_silk.c.
Referenced by opus_decode_init().