123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- /*
- * 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.
- */
- #ifndef MODULES_AUDIO_CODING_CODECS_G722_G722_INTERFACE_H_
- #define MODULES_AUDIO_CODING_CODECS_G722_G722_INTERFACE_H_
- #include <stdint.h>
- /*
- * Solution to support multiple instances
- */
- typedef struct WebRtcG722EncInst G722EncInst;
- typedef struct WebRtcG722DecInst G722DecInst;
- /*
- * Comfort noise constants
- */
- #define G722_WEBRTC_SPEECH 1
- #define G722_WEBRTC_CNG 2
- #ifdef __cplusplus
- extern "C" {
- #endif
- /****************************************************************************
- * WebRtcG722_CreateEncoder(...)
- *
- * Create memory used for G722 encoder
- *
- * Input:
- * - G722enc_inst : G722 instance for encoder
- *
- * Return value : 0 - Ok
- * -1 - Error
- */
- int16_t WebRtcG722_CreateEncoder(G722EncInst** G722enc_inst);
- /****************************************************************************
- * WebRtcG722_EncoderInit(...)
- *
- * This function initializes a G722 instance
- *
- * Input:
- * - G722enc_inst : G722 instance, i.e. the user that should receive
- * be initialized
- *
- * Return value : 0 - Ok
- * -1 - Error
- */
- int16_t WebRtcG722_EncoderInit(G722EncInst* G722enc_inst);
- /****************************************************************************
- * WebRtcG722_FreeEncoder(...)
- *
- * Free the memory used for G722 encoder
- *
- * Input:
- * - G722enc_inst : G722 instance for encoder
- *
- * Return value : 0 - Ok
- * -1 - Error
- */
- int WebRtcG722_FreeEncoder(G722EncInst* G722enc_inst);
- /****************************************************************************
- * WebRtcG722_Encode(...)
- *
- * This function encodes G722 encoded data.
- *
- * Input:
- * - G722enc_inst : G722 instance, i.e. the user that should encode
- * a packet
- * - speechIn : Input speech vector
- * - len : Samples in speechIn
- *
- * Output:
- * - encoded : The encoded data vector
- *
- * Return value : Length (in bytes) of coded data
- */
- size_t WebRtcG722_Encode(G722EncInst* G722enc_inst,
- const int16_t* speechIn,
- size_t len,
- uint8_t* encoded);
- /****************************************************************************
- * WebRtcG722_CreateDecoder(...)
- *
- * Create memory used for G722 encoder
- *
- * Input:
- * - G722dec_inst : G722 instance for decoder
- *
- * Return value : 0 - Ok
- * -1 - Error
- */
- int16_t WebRtcG722_CreateDecoder(G722DecInst** G722dec_inst);
- /****************************************************************************
- * WebRtcG722_DecoderInit(...)
- *
- * This function initializes a G722 instance
- *
- * Input:
- * - inst : G722 instance
- */
- void WebRtcG722_DecoderInit(G722DecInst* inst);
- /****************************************************************************
- * WebRtcG722_FreeDecoder(...)
- *
- * Free the memory used for G722 decoder
- *
- * Input:
- * - G722dec_inst : G722 instance for decoder
- *
- * Return value : 0 - Ok
- * -1 - Error
- */
- int WebRtcG722_FreeDecoder(G722DecInst* G722dec_inst);
- /****************************************************************************
- * WebRtcG722_Decode(...)
- *
- * This function decodes a packet with G729 frame(s). Output speech length
- * will be a multiple of 80 samples (80*frames/packet).
- *
- * Input:
- * - G722dec_inst : G722 instance, i.e. the user that should decode
- * a packet
- * - encoded : Encoded G722 frame(s)
- * - len : Bytes in encoded vector
- *
- * Output:
- * - decoded : The decoded vector
- * - speechType : 1 normal, 2 CNG (Since G722 does not have its own
- * DTX/CNG scheme it should always return 1)
- *
- * Return value : Samples in decoded vector
- */
- size_t WebRtcG722_Decode(G722DecInst* G722dec_inst,
- const uint8_t* encoded,
- size_t len,
- int16_t* decoded,
- int16_t* speechType);
- /****************************************************************************
- * WebRtcG722_Version(...)
- *
- * Get a string with the current version of the codec
- */
- int16_t WebRtcG722_Version(char* versionStr, short len);
- #ifdef __cplusplus
- }
- #endif
- #endif /* MODULES_AUDIO_CODING_CODECS_G722_G722_INTERFACE_H_ */
|