/* * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ /* * Some definitions related to the codec database. */ #ifndef CODEC_DB_DEFINES_H #define CODEC_DB_DEFINES_H #include "typedefs.h" #define NUM_CODECS 47 /* probably too large with the limited set of supported codecs*/ #define NUM_TOTAL_CODECS kDecoderReservedEnd /* * Pointer to decoder function. */ typedef int16_t (*FuncDecode)(void* state, int16_t* encoded, int16_t len, int16_t* decoded, int16_t* speechType); /* * Pointer to PLC function. */ typedef int16_t (*FuncDecodePLC)(void* state, int16_t* decodec, int16_t frames); /* * Pointer to decoder init function. */ typedef int16_t (*FuncDecodeInit)(void* state); /* * Pointer to add late packet function. */ typedef int16_t (*FuncAddLatePkt)(void* state, int16_t* encoded, int16_t len); /* * Pointer to get MD infofunction. */ typedef int16_t (*FuncGetMDinfo)(void* state); /* * Pointer to pitch info function. * Return 0 for unvoiced, -1 if pitch not availiable. */ typedef int16_t (*FuncGetPitchInfo)(void* state, int16_t* encoded, int16_t* length); /* * Pointer to the update bandwidth estimate function */ typedef int16_t (*FuncUpdBWEst)(void* state, const uint16_t *encoded, int32_t packet_size, uint16_t rtp_seq_number, uint32_t send_ts, uint32_t arr_ts); /* * Pointer to the frame size estimate function. * Returns the estimated number of samples in the packet. */ typedef int (*FuncDurationEst)(void* state, const uint8_t* payload, int payload_length_bytes); /* * Pointer to error code function */ typedef int16_t (*FuncGetErrorCode)(void* state); typedef struct CodecFuncInst_t_ { FuncDecode funcDecode; FuncDecode funcDecodeRCU; FuncDecodePLC funcDecodePLC; FuncDecodeInit funcDecodeInit; FuncAddLatePkt funcAddLatePkt; FuncGetMDinfo funcGetMDinfo; FuncUpdBWEst funcUpdBWEst; /* Currently in use for the ISAC family (without LC) only*/ FuncDurationEst funcDurationEst; FuncGetErrorCode funcGetErrorCode; void * codec_state; uint16_t codec_fs; uint32_t timeStamp; } CodecFuncInst_t; #endif