70 const AVFrame *frame,
int *got_packet_ptr)
85 energy += samples[i] * samples[i];
89 double dbov = 10 * log10(energy / 1081109975);
90 qdbov = av_clip(-floor(dbov), 0, 127);
95 avpkt->
data[0] = qdbov;
96 for (i = 0; i < p->
order; i++)
106 .
name =
"comfortnoise",
void * av_malloc(size_t size)
Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if ...
This structure describes decoded (raw) audio or video data.
struct CNGContext CNGContext
int ff_lpc_calc_ref_coefs(LPCContext *s, const int32_t *samples, int order, double *ref)
static int init(AVCodecParserContext *s)
void av_free(void *ptr)
Free a memory block which has been allocated with av_malloc(z)() or av_realloc(). ...
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
void av_log(void *avcl, int level, const char *fmt,...)
const char * name
Name of the codec implementation.
av_cold void ff_lpc_end(LPCContext *s)
Uninitialize LPCContext.
AVCodec ff_comfortnoise_encoder
int ff_alloc_packet(AVPacket *avpkt, int size)
Check AVPacket size and/or allocate data.
static av_cold int cng_encode_close(AVCodecContext *avctx)
int frame_size
Number of samples per channel in an audio frame.
main external API structure.
static void close(AVCodecParserContext *s)
Levinson-Durbin recursion.
av_cold int ff_lpc_init(LPCContext *s, int blocksize, int max_order, enum FFLPCType lpc_type)
Initialize LPCContext.
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
static int cng_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr)
common internal api header.
common internal and external API header
AVSampleFormat
Audio Sample Formats.
int channels
number of audio channels
static av_cold int cng_encode_init(AVCodecContext *avctx)
This structure stores compressed data.
int nb_samples
number of audio samples (per channel) described by this frame
if(!(ptr_align%ac->ptr_align)&&samples_align >=aligned_len)