FFmpeg
opus_silk.h
Go to the documentation of this file.
1 /*
2  * Opus Silk functions/definitions
3  * Copyright (c) 2012 Andrew D'Addesio
4  * Copyright (c) 2013-2014 Mozilla Corporation
5  *
6  * This file is part of FFmpeg.
7  *
8  * FFmpeg is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * FFmpeg is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with FFmpeg; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 
23 #ifndef AVCODEC_OPUS_SILK_H
24 #define AVCODEC_OPUS_SILK_H
25 
26 #include "opus.h"
27 #include "opus_rc.h"
28 
29 #define SILK_HISTORY 322
30 #define SILK_MAX_LPC 16
31 
32 typedef struct SilkContext SilkContext;
33 
34 int ff_silk_init(void *logctx, SilkContext **ps, int output_channels);
35 void ff_silk_free(SilkContext **ps);
37 
38 /**
39  * Decode the LP layer of one Opus frame (which may correspond to several SILK
40  * frames).
41  */
43  float *output[2],
44  enum OpusBandwidth bandwidth, int coded_channels,
45  int duration_ms);
46 
47 #endif /* AVCODEC_OPUS_SILK_H */
SilkContext::output_channels
int output_channels
Definition: opus_silk.c:53
output
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce output
Definition: filter_design.txt:225
SilkContext::logctx
void * logctx
Definition: opus_silk.c:52
opus.h
ff_silk_free
void ff_silk_free(SilkContext **ps)
Definition: opus_silk.c:870
ff_silk_init
int ff_silk_init(void *logctx, SilkContext **ps, int output_channels)
Definition: opus_silk.c:883
SilkContext::bandwidth
enum OpusBandwidth bandwidth
Definition: opus_silk.c:61
s
#define s(width, name)
Definition: cbs_vp9.c:198
ff_silk_flush
void ff_silk_flush(SilkContext *s)
Definition: opus_silk.c:875
SilkContext
Definition: opus_silk.c:51
OpusRangeCoder
Definition: opus_rc.h:39
opus_rc.h
OpusBandwidth
OpusBandwidth
Definition: opus.h:49
ff_silk_decode_superframe
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: opus_silk.c:792