| Index: webrtc/modules/audio_coding/codecs/isac/main/interface/isac.h
|
| diff --git a/webrtc/modules/audio_coding/codecs/isac/main/interface/isac.h b/webrtc/modules/audio_coding/codecs/isac/main/interface/isac.h
|
| deleted file mode 100644
|
| index 1f5aeb36f41de5694fbb256993779219aea96490..0000000000000000000000000000000000000000
|
| --- a/webrtc/modules/audio_coding/codecs/isac/main/interface/isac.h
|
| +++ /dev/null
|
| @@ -1,724 +0,0 @@
|
| -/*
|
| - * 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 WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_INTERFACE_ISAC_H_
|
| -#define WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_INTERFACE_ISAC_H_
|
| -
|
| -#include <stddef.h>
|
| -
|
| -#include "webrtc/modules/audio_coding/codecs/isac/bandwidth_info.h"
|
| -#include "webrtc/typedefs.h"
|
| -
|
| -typedef struct WebRtcISACStruct ISACStruct;
|
| -
|
| -#if defined(__cplusplus)
|
| -extern "C" {
|
| -#endif
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_AssignSize(...)
|
| - *
|
| - * This function returns the size of the ISAC instance, so that the instance
|
| - * can be created outside iSAC.
|
| - *
|
| - * Input:
|
| - * - samplingRate : sampling rate of the input/output audio.
|
| - *
|
| - * Output:
|
| - * - sizeinbytes : number of bytes needed to allocate for the
|
| - * instance.
|
| - *
|
| - * Return value : 0 - Ok
|
| - * -1 - Error
|
| - */
|
| -
|
| - int16_t WebRtcIsac_AssignSize(
|
| - int* sizeinbytes);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_Assign(...)
|
| - *
|
| - * This function assignes the memory already created to the ISAC instance.
|
| - *
|
| - * Input:
|
| - * - *ISAC_main_inst : a pointer to the coder instance.
|
| - * - samplingRate : sampling rate of the input/output audio.
|
| - * - ISAC_inst_Addr : the already allocated memory, where we put the
|
| - * iSAC structure.
|
| - *
|
| - * Return value : 0 - Ok
|
| - * -1 - Error
|
| - */
|
| -
|
| - int16_t WebRtcIsac_Assign(
|
| - ISACStruct** ISAC_main_inst,
|
| - void* ISAC_inst_Addr);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_Create(...)
|
| - *
|
| - * This function creates an ISAC instance, which will contain the state
|
| - * information for one coding/decoding channel.
|
| - *
|
| - * Input:
|
| - * - *ISAC_main_inst : a pointer to the coder instance.
|
| - *
|
| - * Return value : 0 - Ok
|
| - * -1 - Error
|
| - */
|
| -
|
| - int16_t WebRtcIsac_Create(
|
| - ISACStruct** ISAC_main_inst);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_Free(...)
|
| - *
|
| - * This function frees the ISAC instance created at the beginning.
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : an ISAC instance.
|
| - *
|
| - * Return value : 0 - Ok
|
| - * -1 - Error
|
| - */
|
| -
|
| - int16_t WebRtcIsac_Free(
|
| - ISACStruct* ISAC_main_inst);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_EncoderInit(...)
|
| - *
|
| - * This function initializes an ISAC instance prior to the encoder calls.
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : ISAC instance.
|
| - * - CodingMode : 0 -> Bit rate and frame length are
|
| - * automatically adjusted to available bandwidth
|
| - * on transmission channel, just valid if codec
|
| - * is created to work in wideband mode.
|
| - * 1 -> User sets a frame length and a target bit
|
| - * rate which is taken as the maximum
|
| - * short-term average bit rate.
|
| - *
|
| - * Return value : 0 - Ok
|
| - * -1 - Error
|
| - */
|
| -
|
| - int16_t WebRtcIsac_EncoderInit(
|
| - ISACStruct* ISAC_main_inst,
|
| - int16_t CodingMode);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_Encode(...)
|
| - *
|
| - * This function encodes 10ms audio blocks and inserts it into a package.
|
| - * Input speech length has 160 samples if operating at 16 kHz sampling
|
| - * rate, or 320 if operating at 32 kHz sampling rate. The encoder buffers the
|
| - * input audio until the whole frame is buffered then proceeds with encoding.
|
| - *
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : ISAC instance.
|
| - * - speechIn : input speech vector.
|
| - *
|
| - * Output:
|
| - * - encoded : the encoded data vector
|
| - *
|
| - * Return value:
|
| - * : >0 - Length (in bytes) of coded data
|
| - * : 0 - The buffer didn't reach the chosen
|
| - * frame-size so it keeps buffering speech
|
| - * samples.
|
| - * : -1 - Error
|
| - */
|
| -
|
| - int WebRtcIsac_Encode(
|
| - ISACStruct* ISAC_main_inst,
|
| - const int16_t* speechIn,
|
| - uint8_t* encoded);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_DecoderInit(...)
|
| - *
|
| - * This function initializes an ISAC instance prior to the decoder calls.
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : ISAC instance.
|
| - */
|
| -
|
| - void WebRtcIsac_DecoderInit(ISACStruct* ISAC_main_inst);
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_UpdateBwEstimate(...)
|
| - *
|
| - * This function updates the estimate of the bandwidth.
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : ISAC instance.
|
| - * - encoded : encoded ISAC frame(s).
|
| - * - packet_size : size of the packet.
|
| - * - rtp_seq_number : the RTP number of the packet.
|
| - * - send_ts : the RTP send timestamp, given in samples
|
| - * - arr_ts : the arrival time of the packet (from NetEq)
|
| - * in samples.
|
| - *
|
| - * Return value : 0 - Ok
|
| - * -1 - Error
|
| - */
|
| -
|
| - int16_t WebRtcIsac_UpdateBwEstimate(
|
| - ISACStruct* ISAC_main_inst,
|
| - const uint8_t* encoded,
|
| - size_t packet_size,
|
| - uint16_t rtp_seq_number,
|
| - uint32_t send_ts,
|
| - uint32_t arr_ts);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_Decode(...)
|
| - *
|
| - * This function decodes an ISAC frame. At 16 kHz sampling rate, the length
|
| - * of the output audio could be either 480 or 960 samples, equivalent to
|
| - * 30 or 60 ms respectively. At 32 kHz sampling rate, the length of the
|
| - * output audio is 960 samples, which is 30 ms.
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : ISAC instance.
|
| - * - encoded : encoded ISAC frame(s).
|
| - * - len : bytes in encoded vector.
|
| - *
|
| - * Output:
|
| - * - decoded : The decoded vector.
|
| - *
|
| - * Return value : >0 - number of samples in decoded vector.
|
| - * -1 - Error.
|
| - */
|
| -
|
| - int WebRtcIsac_Decode(
|
| - ISACStruct* ISAC_main_inst,
|
| - const uint8_t* encoded,
|
| - size_t len,
|
| - int16_t* decoded,
|
| - int16_t* speechType);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_DecodePlc(...)
|
| - *
|
| - * This function conducts PLC for ISAC frame(s). Output speech length
|
| - * will be a multiple of frames, i.e. multiples of 30 ms audio. Therefore,
|
| - * the output is multiple of 480 samples if operating at 16 kHz and multiple
|
| - * of 960 if operating at 32 kHz.
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : ISAC instance.
|
| - * - noOfLostFrames : Number of PLC frames to produce.
|
| - *
|
| - * Output:
|
| - * - decoded : The decoded vector.
|
| - *
|
| - * Return value : Number of samples in decoded PLC vector
|
| - */
|
| -
|
| - size_t WebRtcIsac_DecodePlc(
|
| - ISACStruct* ISAC_main_inst,
|
| - int16_t* decoded,
|
| - size_t noOfLostFrames);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_Control(...)
|
| - *
|
| - * This function sets the limit on the short-term average bit-rate and the
|
| - * frame length. Should be used only in Instantaneous mode. At 16 kHz sampling
|
| - * rate, an average bit-rate between 10000 to 32000 bps is valid and a
|
| - * frame-size of 30 or 60 ms is acceptable. At 32 kHz, an average bit-rate
|
| - * between 10000 to 56000 is acceptable, and the valid frame-size is 30 ms.
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : ISAC instance.
|
| - * - rate : limit on the short-term average bit rate,
|
| - * in bits/second.
|
| - * - framesize : frame-size in millisecond.
|
| - *
|
| - * Return value : 0 - ok
|
| - * -1 - Error
|
| - */
|
| -
|
| - int16_t WebRtcIsac_Control(
|
| - ISACStruct* ISAC_main_inst,
|
| - int32_t rate,
|
| - int framesize);
|
| -
|
| - void WebRtcIsac_SetInitialBweBottleneck(ISACStruct* ISAC_main_inst,
|
| - int bottleneck_bits_per_second);
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_ControlBwe(...)
|
| - *
|
| - * This function sets the initial values of bottleneck and frame-size if
|
| - * iSAC is used in channel-adaptive mode. Therefore, this API is not
|
| - * applicable if the codec is created to operate in super-wideband mode.
|
| - *
|
| - * Through this API, users can enforce a frame-size for all values of
|
| - * bottleneck. Then iSAC will not automatically change the frame-size.
|
| - *
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : ISAC instance.
|
| - * - rateBPS : initial value of bottleneck in bits/second
|
| - * 10000 <= rateBPS <= 56000 is accepted
|
| - * For default bottleneck set rateBPS = 0
|
| - * - frameSizeMs : number of milliseconds per frame (30 or 60)
|
| - * - enforceFrameSize : 1 to enforce the given frame-size through
|
| - * out the adaptation process, 0 to let iSAC
|
| - * change the frame-size if required.
|
| - *
|
| - * Return value : 0 - ok
|
| - * -1 - Error
|
| - */
|
| -
|
| - int16_t WebRtcIsac_ControlBwe(
|
| - ISACStruct* ISAC_main_inst,
|
| - int32_t rateBPS,
|
| - int frameSizeMs,
|
| - int16_t enforceFrameSize);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_ReadFrameLen(...)
|
| - *
|
| - * This function returns the length of the frame represented in the packet.
|
| - *
|
| - * Input:
|
| - * - encoded : Encoded bit-stream
|
| - *
|
| - * Output:
|
| - * - frameLength : Length of frame in packet (in samples)
|
| - *
|
| - */
|
| -
|
| - int16_t WebRtcIsac_ReadFrameLen(
|
| - ISACStruct* ISAC_main_inst,
|
| - const uint8_t* encoded,
|
| - int16_t* frameLength);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_version(...)
|
| - *
|
| - * This function returns the version number.
|
| - *
|
| - * Output:
|
| - * - version : Pointer to character string
|
| - *
|
| - */
|
| -
|
| - void WebRtcIsac_version(
|
| - char *version);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_GetErrorCode(...)
|
| - *
|
| - * This function can be used to check the error code of an iSAC instance. When
|
| - * a function returns -1 a error code will be set for that instance. The
|
| - * function below extract the code of the last error that occurred in the
|
| - * specified instance.
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : ISAC instance
|
| - *
|
| - * Return value : Error code
|
| - */
|
| -
|
| - int16_t WebRtcIsac_GetErrorCode(
|
| - ISACStruct* ISAC_main_inst);
|
| -
|
| -
|
| - /****************************************************************************
|
| - * WebRtcIsac_GetUplinkBw(...)
|
| - *
|
| - * This function outputs the target bottleneck of the codec. In
|
| - * channel-adaptive mode, the target bottleneck is specified through in-band
|
| - * signalling retreived by bandwidth estimator.
|
| - * In channel-independent, also called instantaneous mode, the target
|
| - * bottleneck is provided to the encoder by calling xxx_control(...). If
|
| - * xxx_control is never called the default values is returned. The default
|
| - * value for bottleneck at 16 kHz encoder sampling rate is 32000 bits/sec,
|
| - * and it is 56000 bits/sec for 32 kHz sampling rate.
|
| - * Note that the output is the iSAC internal operating bottleneck which might
|
| - * differ slightly from the one provided through xxx_control().
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : iSAC instance
|
| - *
|
| - * Output:
|
| - * - *bottleneck : bottleneck in bits/sec
|
| - *
|
| - * Return value : -1 if error happens
|
| - * 0 bit-rates computed correctly.
|
| - */
|
| -
|
| - int16_t WebRtcIsac_GetUplinkBw(
|
| - ISACStruct* ISAC_main_inst,
|
| - int32_t* bottleneck);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_SetMaxPayloadSize(...)
|
| - *
|
| - * This function sets a limit for the maximum payload size of iSAC. The same
|
| - * value is used both for 30 and 60 ms packets. If the encoder sampling rate
|
| - * is 16 kHz the maximum payload size is between 120 and 400 bytes. If the
|
| - * encoder sampling rate is 32 kHz the maximum payload size is between 120
|
| - * and 600 bytes.
|
| - *
|
| - * If an out of range limit is used, the function returns -1, but the closest
|
| - * valid value will be applied.
|
| - *
|
| - * ---------------
|
| - * IMPORTANT NOTES
|
| - * ---------------
|
| - * The size of a packet is limited to the minimum of 'max-payload-size' and
|
| - * 'max-rate.' For instance, let's assume the max-payload-size is set to
|
| - * 170 bytes, and max-rate is set to 40 kbps. Note that a limit of 40 kbps
|
| - * translates to 150 bytes for 30ms frame-size & 300 bytes for 60ms
|
| - * frame-size. Then a packet with a frame-size of 30 ms is limited to 150,
|
| - * i.e. min(170, 150), and a packet with 60 ms frame-size is limited to
|
| - * 170 bytes, i.e. min(170, 300).
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : iSAC instance
|
| - * - maxPayloadBytes : maximum size of the payload in bytes
|
| - * valid values are between 120 and 400 bytes
|
| - * if encoder sampling rate is 16 kHz. For
|
| - * 32 kHz encoder sampling rate valid values
|
| - * are between 120 and 600 bytes.
|
| - *
|
| - * Return value : 0 if successful
|
| - * -1 if error happens
|
| - */
|
| -
|
| - int16_t WebRtcIsac_SetMaxPayloadSize(
|
| - ISACStruct* ISAC_main_inst,
|
| - int16_t maxPayloadBytes);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_SetMaxRate(...)
|
| - *
|
| - * This function sets the maximum rate which the codec may not exceed for
|
| - * any signal packet. The maximum rate is defined and payload-size per
|
| - * frame-size in bits per second.
|
| - *
|
| - * The codec has a maximum rate of 53400 bits per second (200 bytes per 30
|
| - * ms) if the encoder sampling rate is 16kHz, and 160 kbps (600 bytes/30 ms)
|
| - * if the encoder sampling rate is 32 kHz.
|
| - *
|
| - * It is possible to set a maximum rate between 32000 and 53400 bits/sec
|
| - * in wideband mode, and 32000 to 160000 bits/sec in super-wideband mode.
|
| - *
|
| - * If an out of range limit is used, the function returns -1, but the closest
|
| - * valid value will be applied.
|
| - *
|
| - * ---------------
|
| - * IMPORTANT NOTES
|
| - * ---------------
|
| - * The size of a packet is limited to the minimum of 'max-payload-size' and
|
| - * 'max-rate.' For instance, let's assume the max-payload-size is set to
|
| - * 170 bytes, and max-rate is set to 40 kbps. Note that a limit of 40 kbps
|
| - * translates to 150 bytes for 30ms frame-size & 300 bytes for 60ms
|
| - * frame-size. Then a packet with a frame-size of 30 ms is limited to 150,
|
| - * i.e. min(170, 150), and a packet with 60 ms frame-size is limited to
|
| - * 170 bytes, min(170, 300).
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : iSAC instance
|
| - * - maxRate : maximum rate in bits per second,
|
| - * valid values are 32000 to 53400 bits/sec in
|
| - * wideband mode, and 32000 to 160000 bits/sec in
|
| - * super-wideband mode.
|
| - *
|
| - * Return value : 0 if successful
|
| - * -1 if error happens
|
| - */
|
| -
|
| - int16_t WebRtcIsac_SetMaxRate(
|
| - ISACStruct* ISAC_main_inst,
|
| - int32_t maxRate);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_DecSampRate()
|
| - * Return the sampling rate of the decoded audio.
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : iSAC instance
|
| - *
|
| - * Return value : sampling frequency in Hertz.
|
| - *
|
| - */
|
| -
|
| - uint16_t WebRtcIsac_DecSampRate(ISACStruct* ISAC_main_inst);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_EncSampRate()
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : iSAC instance
|
| - *
|
| - * Return value : sampling rate in Hertz.
|
| - *
|
| - */
|
| -
|
| - uint16_t WebRtcIsac_EncSampRate(ISACStruct* ISAC_main_inst);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_SetDecSampRate()
|
| - * Set the sampling rate of the decoder. Initialization of the decoder WILL
|
| - * NOT overwrite the sampling rate of the encoder. The default value is 16 kHz
|
| - * which is set when the instance is created.
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : iSAC instance
|
| - * - sampRate : sampling rate in Hertz.
|
| - *
|
| - * Return value : 0 if successful
|
| - * -1 if failed.
|
| - */
|
| -
|
| - int16_t WebRtcIsac_SetDecSampRate(ISACStruct* ISAC_main_inst,
|
| - uint16_t samp_rate_hz);
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_SetEncSampRate()
|
| - * Set the sampling rate of the encoder. Initialization of the encoder WILL
|
| - * NOT overwrite the sampling rate of the encoder. The default value is 16 kHz
|
| - * which is set when the instance is created. The encoding-mode and the
|
| - * bottleneck remain unchanged by this call, however, the maximum rate and
|
| - * maximum payload-size will reset to their default value.
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : iSAC instance
|
| - * - sampRate : sampling rate in Hertz.
|
| - *
|
| - * Return value : 0 if successful
|
| - * -1 if failed.
|
| - */
|
| -
|
| - int16_t WebRtcIsac_SetEncSampRate(ISACStruct* ISAC_main_inst,
|
| - uint16_t sample_rate_hz);
|
| -
|
| -
|
| -
|
| - /******************************************************************************
|
| - * WebRtcIsac_GetNewBitStream(...)
|
| - *
|
| - * This function returns encoded data, with the recieved bwe-index in the
|
| - * stream. If the rate is set to a value less than bottleneck of codec
|
| - * the new bistream will be re-encoded with the given target rate.
|
| - * It should always return a complete packet, i.e. only called once
|
| - * even for 60 msec frames.
|
| - *
|
| - * NOTE 1! This function does not write in the ISACStruct, it is not allowed.
|
| - * NOTE 2! Currently not implemented for SWB mode.
|
| - * NOTE 3! Rates larger than the bottleneck of the codec will be limited
|
| - * to the current bottleneck.
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : ISAC instance.
|
| - * - bweIndex : Index of bandwidth estimate to put in new
|
| - * bitstream
|
| - * - rate : target rate of the transcoder is bits/sec.
|
| - * Valid values are the accepted rate in iSAC,
|
| - * i.e. 10000 to 56000.
|
| - * - isRCU : if the new bit-stream is an RCU stream.
|
| - * Note that the rate parameter always indicates
|
| - * the target rate of the main payload, regardless
|
| - * of 'isRCU' value.
|
| - *
|
| - * Output:
|
| - * - encoded : The encoded data vector
|
| - *
|
| - * Return value : >0 - Length (in bytes) of coded data
|
| - * -1 - Error or called in SWB mode
|
| - * NOTE! No error code is written to
|
| - * the struct since it is only allowed to read
|
| - * the struct.
|
| - */
|
| - int16_t WebRtcIsac_GetNewBitStream(
|
| - ISACStruct* ISAC_main_inst,
|
| - int16_t bweIndex,
|
| - int16_t jitterInfo,
|
| - int32_t rate,
|
| - uint8_t* encoded,
|
| - int16_t isRCU);
|
| -
|
| -
|
| -
|
| - /****************************************************************************
|
| - * WebRtcIsac_GetDownLinkBwIndex(...)
|
| - *
|
| - * This function returns index representing the Bandwidth estimate from
|
| - * other side to this side.
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : iSAC struct
|
| - *
|
| - * Output:
|
| - * - bweIndex : Bandwidth estimate to transmit to other side.
|
| - *
|
| - */
|
| -
|
| - int16_t WebRtcIsac_GetDownLinkBwIndex(
|
| - ISACStruct* ISAC_main_inst,
|
| - int16_t* bweIndex,
|
| - int16_t* jitterInfo);
|
| -
|
| -
|
| - /****************************************************************************
|
| - * WebRtcIsac_UpdateUplinkBw(...)
|
| - *
|
| - * This function takes an index representing the Bandwidth estimate from
|
| - * this side to other side and updates BWE.
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : iSAC struct
|
| - * - bweIndex : Bandwidth estimate from other side.
|
| - *
|
| - */
|
| -
|
| - int16_t WebRtcIsac_UpdateUplinkBw(
|
| - ISACStruct* ISAC_main_inst,
|
| - int16_t bweIndex);
|
| -
|
| -
|
| - /****************************************************************************
|
| - * WebRtcIsac_ReadBwIndex(...)
|
| - *
|
| - * This function returns the index of the Bandwidth estimate from the bitstream.
|
| - *
|
| - * Input:
|
| - * - encoded : Encoded bitstream
|
| - *
|
| - * Output:
|
| - * - frameLength : Length of frame in packet (in samples)
|
| - * - bweIndex : Bandwidth estimate in bitstream
|
| - *
|
| - */
|
| -
|
| - int16_t WebRtcIsac_ReadBwIndex(
|
| - const uint8_t* encoded,
|
| - int16_t* bweIndex);
|
| -
|
| -
|
| -
|
| - /*******************************************************************************
|
| - * WebRtcIsac_GetNewFrameLen(...)
|
| - *
|
| - * returns the frame lenght (in samples) of the next packet. In the case of channel-adaptive
|
| - * mode, iSAC decides on its frame lenght based on the estimated bottleneck
|
| - * this allows a user to prepare for the next packet (at the encoder)
|
| - *
|
| - * The primary usage is in CE to make the iSAC works in channel-adaptive mode
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : iSAC struct
|
| - *
|
| - * Return Value : frame lenght in samples
|
| - *
|
| - */
|
| -
|
| - int16_t WebRtcIsac_GetNewFrameLen(
|
| - ISACStruct* ISAC_main_inst);
|
| -
|
| -
|
| - /****************************************************************************
|
| - * WebRtcIsac_GetRedPayload(...)
|
| - *
|
| - * Populates "encoded" with the redundant payload of the recently encoded
|
| - * frame. This function has to be called once that WebRtcIsac_Encode(...)
|
| - * returns a positive value. Regardless of the frame-size this function will
|
| - * be called only once after encoding is completed.
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : iSAC struct
|
| - *
|
| - * Output:
|
| - * - encoded : the encoded data vector
|
| - *
|
| - *
|
| - * Return value:
|
| - * : >0 - Length (in bytes) of coded data
|
| - * : -1 - Error
|
| - *
|
| - *
|
| - */
|
| - int16_t WebRtcIsac_GetRedPayload(
|
| - ISACStruct* ISAC_main_inst,
|
| - uint8_t* encoded);
|
| -
|
| -
|
| - /****************************************************************************
|
| - * WebRtcIsac_DecodeRcu(...)
|
| - *
|
| - * This function decodes a redundant (RCU) iSAC frame. Function is called in
|
| - * NetEq with a stored RCU payload i case of packet loss. Output speech length
|
| - * will be a multiple of 480 samples: 480 or 960 samples,
|
| - * depending on the framesize (30 or 60 ms).
|
| - *
|
| - * Input:
|
| - * - ISAC_main_inst : ISAC instance.
|
| - * - encoded : encoded ISAC RCU frame(s)
|
| - * - len : bytes in encoded vector
|
| - *
|
| - * Output:
|
| - * - decoded : The decoded vector
|
| - *
|
| - * Return value : >0 - number of samples in decoded vector
|
| - * -1 - Error
|
| - */
|
| - int WebRtcIsac_DecodeRcu(
|
| - ISACStruct* ISAC_main_inst,
|
| - const uint8_t* encoded,
|
| - size_t len,
|
| - int16_t* decoded,
|
| - int16_t* speechType);
|
| -
|
| - /* Fills in an IsacBandwidthInfo struct. |inst| should be a decoder. */
|
| - void WebRtcIsac_GetBandwidthInfo(ISACStruct* inst, IsacBandwidthInfo* bwinfo);
|
| -
|
| - /* Uses the values from an IsacBandwidthInfo struct. |inst| should be an
|
| - encoder. */
|
| - void WebRtcIsac_SetBandwidthInfo(ISACStruct* inst,
|
| - const IsacBandwidthInfo* bwinfo);
|
| -
|
| - /* If |inst| is a decoder but not an encoder: tell it what sample rate the
|
| - encoder is using, for bandwidth estimation purposes. */
|
| - void WebRtcIsac_SetEncSampRateInDecoder(ISACStruct* inst, int sample_rate_hz);
|
| -
|
| -#if defined(__cplusplus)
|
| -}
|
| -#endif
|
| -
|
| -
|
| -
|
| -#endif /* WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_INTERFACE_ISAC_H_ */
|
|
|